From e14cbda55620f97500b345d88e8a129b853c2ba3 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jmdobry@users.noreply.github.com> Date: Mon, 2 Mar 2015 11:18:19 -0700 Subject: [PATCH 01/32] Badges --- README.md | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 4113c4a..c71a740 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ <img src="https://raw.githubusercontent.com/js-data/js-data/master/js-data.png" alt="js-data logo" title="js-data" align="right" width="64" height="64" /> -## js-data-angular [](http://badge.fury.io/bo/js-data-angular) [](http://badge.fury.io/js/js-data-angular) +## js-data-angular [](https://www.npmjs.org/package/js-data-angular) [](https://www.npmjs.org/package/js-data-angular) [](https://circleci.com/gh/js-data/js-data-angular/tree/master) [](https://www.npmjs.org/package/js-data-angular) [](https://github.com/js-data/js-data-angular/blob/master/LICENSE) Angular wrapper for [js-data](http://www.js-data.io). #### What happened Angular-data? Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as the framework-agnostic core. Documentation for Angular-data 1.x can be found at [angular-data.pseudobry.com](http://angular-data.pseudobry.com). -## Guides +### Guides - [Angular + JSData (js-data-angular)](http://www.js-data.io/docs/js-data-angular) - [Getting Started with js-data](http://www.js-data.io/docs/home) - [Resources/Models](http://www.js-data.io/docs/resources) @@ -22,7 +22,7 @@ Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as th - [JSData on the Server](http://www.js-data.io/docs/jsdata-on-the-server) - [FAQ](http://www.js-data.io/docs/faq) -## Js-data-angular API Documentation +### Js-data-angular API Documentation - [js-data-angular](http://www.js-data.io/docs/js-data-angular) - [DS](http://www.js-data.io/docs/ds) - [js-data-schema](http://www.js-data.io/docs/js-data-schema) @@ -35,18 +35,19 @@ Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as th - [DSMongoDBAdapter](http://www.js-data.io/docs/dsmongodbadapter) - [DSSqlAdapter](http://www.js-data.io/docs/dssqladapter) -## Project Status +### Project Status -| Branch | Master | -| ------ | ------ | -| Bower | [](http://badge.fury.io/bo/js-data-angular) | -| NPM | [](https://nodei.co/npm/js-data-angular/) | -| Build Status | [](https://travis-ci.org/js-data/js-data-angular) | -| Code Climate | [](https://codeclimate.com/github/js-data/js-data-angular) | -| Dependency Status | [](https://gemnasium.com/js-data/js-data-angular) | -| Coverage | [](https://coveralls.io/r/js-data/js-data-angular?branch=master) | +__Latest Release:__ [](https://github.com/js-data/js-data-angular/releases) -## Quick Start +__Status:__ + +[](https://gemnasium.com/js-data/js-data-angular) [](https://coveralls.io/r/js-data/js-data-angular?branch=master) [](https://www.codacy.com/public/jasondobry/js-data-angular/dashboard) + +__Supported Platforms:__ + +[](https://github.com/js-data/js-data) + +### Quick Start `bower install --save js-data js-data-angular` or `npm install --save js-data js-data-angular`. Load `js-data-angular.js` after `js-data.js`. @@ -94,16 +95,16 @@ app.controller('postCtrl', function ($scope, $routeParams, Post, Comment) { }); ``` -## Changelog +### Changelog [CHANGELOG.md](https://github.com/js-data/js-data-angular/blob/master/CHANGELOG.md) -## Community +### Community - [Mailing List](https://groups.io/org/groupsio/jsdata) - Ask your questions! - [Issues](https://github.com/js-data/js-data-angular/issues) - Found a bug? Feature request? Submit an issue! - [GitHub](https://github.com/js-data/js-data-angular) - View the source code for js-data. - [Contributing Guide](https://github.com/js-data/js-data-angular/blob/master/CONTRIBUTING.md) -## Contributing +### Contributing First, feel free to contact me with questions. [Mailing List](https://groups.io/org/groupsio/jsdata). [Issues](https://github.com/js-data/js-data-angular/issues). @@ -116,7 +117,7 @@ First, feel free to contact me with questions. [Mailing List](https://groups.io/ 1. Write your code, including relevant documentation and tests 1. Submit a PR and we'll review -## License +### License The MIT License (MIT) From 5559e336bc6f735cdd20507095f32064c0b568fe Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" <kent+github@doddsfamily.us> Date: Tue, 3 Mar 2015 14:14:01 -0700 Subject: [PATCH 02/32] UMDifying js-data-angular --- src/index.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/index.js b/src/index.js index 5c79398..6891425 100644 --- a/src/index.js +++ b/src/index.js @@ -1,21 +1,21 @@ /*jshint loopfunc:true*/ -(function (window, angular, undefined) { +(function (root, factory) { 'use strict'; - var JSData; - - try { - JSData = require('js-data'); - } catch (e) { - - } - - if (!JSData) { - JSData = window.JSData; + if (typeof define === 'function' && define.amd) { + define(['angular', 'js-data'], function(angular, JSData) { + return factory(root, angular, JSData, undefined); + }); + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = factory(root, require('angular') || root.angular, require('js-data'), undefined); + } else { + root.jsDataAngularModuleName = factory(root, root.angular, root.JSData, undefined); } +}(this, function(window, angular, JSData, undefined) { + 'use strict'; - if (!JSData) { - throw new Error('js-data must be loaded!'); + if (!JSData || !angular) { + throw new Error('js-data and angular must be loaded!'); } var DSUtils = JSData.DSUtils; @@ -502,5 +502,8 @@ DS.registerAdapter('http', DSHttpAdapter, { default: true }); }]); } + + // return the module name + return 'js-data'; -})(window, window.angular); +}); From 05c4e7a2065bbb8fa04d30adf1a461829e6acbc7 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 4 Mar 2015 20:32:07 -0700 Subject: [PATCH 03/32] Stable Version 2.2.2. Fixes #312 Fixes #313 --- .travis.yml | 13 -------- CHANGELOG.md | 6 ++++ Gruntfile.js | 30 +++++------------- dist/js-data-angular.js | 49 ++++++++++++++++++------------ dist/js-data-angular.min.js | 6 ++-- dist/js-data-angular.min.map | 2 +- package.json | 4 +-- src/index.js | 25 ++++++++++----- test/adapters/http/create.test.js | 2 +- test/adapters/http/destroy.test.js | 2 +- test/adapters/http/find.test.js | 2 +- test/adapters/http/update.test.js | 2 +- 12 files changed, 68 insertions(+), 75 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3f10973..0000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: node_js -node_js: - - "0.10" -before_install: - - npm install -g bower - - bower install - - npm install -g grunt-cli -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start -script: - - grunt test - - grunt coveralls || true diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d1d71e..0b35bf8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +##### 2.2.2 - 04 March 2015 + +###### Backwards compatible bug fixes +- #312 - UMDifying js-data-angular +- #313 - DSHttpAdapter#find/create/update/destroy do not call queryTransform + ##### 2.2.1 - 25 February 2015 ###### Backwards compatible bug fixes diff --git a/Gruntfile.js b/Gruntfile.js index e7c0f73..58acb59 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,7 +2,7 @@ * js-data-angular * http://github.com/js-data/js-data-angular * - * Copyright (c) 2014 Jason Dobry <http://www.js-data.io/js-data-angular> + * Copyright (c) 2014-2015 Jason Dobry <http://www.js-data.io/docs/js-data-angular> * Licensed under the MIT license. <https://github.com/js-data/js-data-angular/blob/master/LICENSE> */ module.exports = function (grunt) { @@ -40,7 +40,7 @@ module.exports = function (grunt) { '* @author Jason Dobry <jason.dobry@gmail.com>\n' + '* @file js-data-angular.min.js\n' + '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/js-data-angular/>\n' + - '* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/>\n' + + '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' + '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + '*\n' + '* @overview Angular wrapper for js-data.\n' + @@ -49,21 +49,6 @@ module.exports = function (grunt) { files: { 'dist/js-data-angular.min.js': ['dist/js-data-angular.js'] } - }, - scripts: { - files: { - 'doc/resources/js/libs.min.js': ['doc/resources/js/libs.js'] - } - } - }, - browserify: { - options: { - external: ['js-data'] - }, - dist: { - files: { - 'dist/js-data-angular.js': ['src/index.js'] - } } }, karma: { @@ -107,13 +92,13 @@ module.exports = function (grunt) { }); grunt.registerTask('banner', function () { - var file = grunt.file.read('dist/js-data-angular.js'); + var file = grunt.file.read('./src/index.js'); var banner = '/**\n' + '* @author Jason Dobry <jason.dobry@gmail.com>\n' + '* @file js-data-angular.js\n' + - '* @version ' + pkg.version + ' - Homepage <http://www.js-data.io/js-data-angular/>\n' + - '* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/>\n' + + '* @version ' + pkg.version + ' - Homepage <http://www.js-data.io/docs/js-data-angular/>\n' + + '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' + '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + '*\n' + '* @overview Angular wrapper for js-data.js.\n' + @@ -121,15 +106,14 @@ module.exports = function (grunt) { file = banner + file; - grunt.file.write('dist/js-data-angular.js', file); + grunt.file.write('./dist/js-data-angular.js', file); }); grunt.registerTask('build', [ 'clean', 'jshint', - 'browserify', 'banner', - 'uglify:main' + 'uglify' ]); grunt.registerTask('go', ['build', 'watch:dist']); grunt.registerTask('default', ['build']); diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 4b0db6b..a8ba577 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,31 +1,32 @@ /** * @author Jason Dobry <jason.dobry@gmail.com> * @file js-data-angular.js -* @version 2.2.1 - Homepage <http://www.js-data.io/js-data-angular/> -* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/> +* @version 2.2.2 - Homepage <http://www.js-data.io/docs/js-data-angular/> +* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * * @overview Angular wrapper for js-data.js. */ -(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ /*jshint loopfunc:true*/ -(function (window, angular, undefined) { +(function (root, factory) { 'use strict'; - var JSData; - - try { - JSData = require('js-data'); - } catch (e) { - - } - - if (!JSData) { - JSData = window.JSData; + if (typeof define === 'function' && define.amd) { + define(['angular', 'js-data'], function (angular, JSData) { + return factory(root, angular, JSData, undefined); + }); + } else if (typeof exports === 'object' && typeof module === 'object') { + module.exports = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); + } else if (typeof exports === 'object') { + exports.jsDataAngularModuleName = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); + } else { + root.jsDataAngularModuleName = factory(root, root.angular, root.JSData, undefined); } +}(this, function (window, angular, JSData, undefined) { + 'use strict'; - if (!JSData) { - throw new Error('js-data must be loaded!'); + if (!JSData || !angular) { + throw new Error('js-data and angular must be loaded!'); } var DSUtils = JSData.DSUtils; @@ -358,6 +359,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.GET( _this.getPath('find', resourceConfig, id, options), options @@ -393,6 +396,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.POST( _this.getPath('create', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), @@ -406,6 +411,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.PUT( _this.getPath('update', resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), @@ -438,6 +445,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.DEL( _this.getPath('destroy', resourceConfig, id, options), options @@ -472,7 +481,7 @@ var _this = this; var start = new Date(); config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length-1] !== '/') { + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { config.url += '/'; } config.method = config.method.toUpperCase(); @@ -513,6 +522,6 @@ }]); } -})(window, window.angular); - -},{"js-data":"js-data"}]},{},[1]); + // return the module name + return 'js-data'; +})); diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 20e146f..87c7a9e 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,12 +1,12 @@ /** * @author Jason Dobry <jason.dobry@gmail.com> * @file js-data-angular.min.js -* @version 2.2.1 - Homepage <https://www.js-data.io/js-data-angular/> -* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/> +* @version 2.2.2 - Homepage <https://www.js-data.io/js-data-angular/> +* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * * @overview Angular wrapper for js-data. */ -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a){!function(b,c,d){"use strict";function e(){}function f(a){this.defaults=new e,k(this.defaults,a)}function g(d){var e;try{e=a(d.project)}catch(f){}e||(e=b[d["class"]]),e&&("http"===d.name&&(l=!0),d.loaded=!0,c.module("js-data").provider(d["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new e(a.defaults)}]}))}var h;try{h=a("js-data")}catch(i){}if(h||(h=b.JSData),!h)throw new Error("js-data must be loaded!");var j=h.DSUtils,k=j.deepMixIn,l=!1,m=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"}],n=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"];c.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",function(){function a(){function a(a){var b=g.defer();try{a.call(d,c.bind(b,b.resolve),c.bind(b,b.reject))}catch(e){b.reject(e)}return b.promise}var e=Array.prototype.slice.call(arguments),f=e[e.length-2],g=e[e.length-1],i=new h.DS(b.defaults),k={};if(a.all=g.all,a.when=g.when,a.reject=g.reject,j.Promise=a,e.length)for(var l=0;l<e.length;l++)for(var o=0;o<m.length;o++)m[o].loaded&&!m[o].registered&&(m[o].registered=!0,i.registerAdapter(m[o].name,e[l]));for(var p=0;p<n.length;p++)k[n[p]]=i[n[p]],i[n[p]]=function(a){return function(){var b=arguments;return f.$$phase?k[a].apply(i,b):f.$apply(function(){return k[a].apply(i,b)})}}(n[p]);return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){i.observe.Platform.performMicrotaskCheckpoint()}),i}for(var b=this,e=h.DSErrors,f=[],g=0;g<m.length;g++)m[g].loaded&&f.push(m[g]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,f){var g=this;if(b=b||{},!g.definitions[a])throw new e.NER(a);if(!j.isObject(b))throw new e.IA('"params" must be an object!');if(!j.isObject(c))throw new e.IA('"scope" must be an object!');if(!j.isString(d))throw new e.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a)},function(){var e=g.filter(a,b);j.set(c,d,e),f&&f(null,e)})}catch(h){if(!f)throw h;f(h)}},h.DS.prototype.bindOne=function(a,b,c,d,f){var g=this;if(b=j.resolveId(g.definitions[a],b),!g.definitions[a])throw new e.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new e.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new e.IA('"scope" must be an object!');if(!j.isString(d))throw new e.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a,b)},function(){var e=g.get(a,b);j.set(c,d,e),f&&f(null,e)})}catch(h){if(!f)throw h;f(h)}},f.push("$rootScope"),f.push("$q"),f.push(a),b.$get=f});for(var o=0;o<m.length;o++)g(m[o]);if(!l){var p=e.prototype;p.queryTransform=function(a,b){return b},p.basePath="",p.forceTrailingSlash="",p.httpConfig={},p.log=console?function(a,b){console["function"==typeof console.info?"info":"log"](a,b)}:function(){},p.error=console?function(a,b){console["function"==typeof console.error?"error":"log"](a,b)}:function(){},p.deserialize=function(a,b){return b&&"data"in b?b.data:b},p.serialize=function(a,b){return b};var q=f.prototype;q.getPath=function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(j.isString(c)||j.isNumber(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),j.makePath.apply(j,f)},q.GET=function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(k(b,{url:a}))},q.POST=function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(k(c,{url:a,data:b}))},q.PUT=function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(k(c,{url:a,data:b||{}}))},q.DEL=function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(k(b,{url:a}))},q.find=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})},q.findAll=function(a,b,c){var d=this;return c=c||{},c=j.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),k(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},q.create=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},q.update=function(a,b,c,d){var e=this;return d=d||{},d.suffix=d.suffix||a.suffix,e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},q.updateAll=function(a,b,c,d){var e=this;return d=d||{},d=j.copy(d),d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),k(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},q.destroy=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},q.destroyAll=function(a,b,c){var d=this;return c=c||{},c=j.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),k(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},c.module("js-data").provider("DSHttpAdapter",function(){var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,c,d){q.HTTP=function(a){function c(a){var b=f.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-f.getTime())+"ms";return a.status>=200&&a.status<300?(e.defaults.log&&e.defaults.log(b,a),a):(e.defaults.error&&e.defaults.error("FAILED: "+b,a),d.reject(a))}var e=this,f=new Date;a=k(a,e.defaults.httpConfig),e.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=j.removeCircular(a.data));var g=a.suffix||e.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var e=new f(a.defaults);return c.registerAdapter("http",e,{"default":!0}),e}]}),c.module("js-data").run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}])}}(window,window.angular)},{"js-data":"js-data"}]},{},[1]); +!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["angular","js-data"],function(c,d){return b(a,c,d,void 0)}):"object"==typeof exports&&"object"==typeof module?module.exports=b(a,require("angular")||a.angular,require("js-data")||a.JSData,void 0):"object"==typeof exports?exports.jsDataAngularModuleName=b(a,require("angular")||a.angular,require("js-data")||a.JSData,void 0):a.jsDataAngularModuleName=b(a,a.angular,a.JSData,void 0)}(this,function(a,b,c,d){"use strict";function e(){}function f(a){this.defaults=new e,i(this.defaults,a)}function g(c){var d;try{d=require(c.project)}catch(e){}d||(d=a[c["class"]]),d&&("http"===c.name&&(j=!0),c.loaded=!0,b.module("js-data").provider(c["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new d(a.defaults)}]}))}if(!c||!b)throw new Error("js-data and angular must be loaded!");var h=c.DSUtils,i=h.deepMixIn,j=!1,k=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"}],l=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"];b.module("js-data",["ng"]).value("DSUtils",c.DSUtils).value("DSErrors",c.DSErrors).provider("DS",function(){function a(){function a(a){var c=i.defer();try{a.call(d,b.bind(c,c.resolve),b.bind(c,c.reject))}catch(e){c.reject(e)}return c.promise}var f=Array.prototype.slice.call(arguments),g=f[f.length-2],i=f[f.length-1],j=new c.DS(e.defaults),m={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,h.Promise=a,f.length)for(var n=0;n<f.length;n++)for(var o=0;o<k.length;o++)k[o].loaded&&!k[o].registered&&(k[o].registered=!0,j.registerAdapter(k[o].name,f[n]));for(var p=0;p<l.length;p++)m[l[p]]=j[l[p]],j[l[p]]=function(a){return function(){var b=arguments;return g.$$phase?m[a].apply(j,b):g.$apply(function(){return m[a].apply(j,b)})}}(l[p]);return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){j.observe.Platform.performMicrotaskCheckpoint()}),j}for(var e=this,f=c.DSErrors,g=[],i=0;i<k.length;i++)k[i].loaded&&g.push(k[i]["class"]);e.defaults={},c.DS.prototype.bindAll=function(a,b,c,d,e){var g=this;if(b=b||{},!g.definitions[a])throw new f.NER(a);if(!h.isObject(b))throw new f.IA('"params" must be an object!');if(!h.isObject(c))throw new f.IA('"scope" must be an object!');if(!h.isString(d))throw new f.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a)},function(){var f=g.filter(a,b);h.set(c,d,f),e&&e(null,f)})}catch(i){if(!e)throw i;e(i)}},c.DS.prototype.bindOne=function(a,b,c,d,e){var g=this;if(b=h.resolveId(g.definitions[a],b),!g.definitions[a])throw new f.NER(a);if(!h.isString(b)&&!h.isNumber(b))throw new f.IA('"id" must be a string or a number!');if(!h.isObject(c))throw new f.IA('"scope" must be an object!');if(!h.isString(d))throw new f.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a,b)},function(){var f=g.get(a,b);h.set(c,d,f),e&&e(null,f)})}catch(i){if(!e)throw i;e(i)}},g.push("$rootScope"),g.push("$q"),g.push(a),e.$get=g});for(var m=0;m<k.length;m++)g(k[m]);if(!j){var n=e.prototype;n.queryTransform=function(a,b){return b},n.basePath="",n.forceTrailingSlash="",n.httpConfig={},n.log=console?function(a,b){console["function"==typeof console.info?"info":"log"](a,b)}:function(){},n.error=console?function(a,b){console["function"==typeof console.error?"error":"log"](a,b)}:function(){},n.deserialize=function(a,b){return b&&"data"in b?b.data:b},n.serialize=function(a,b){return b};var o=f.prototype;o.getPath=function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(h.isString(c)||h.isNumber(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),h.makePath.apply(h,f)},o.GET=function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(i(b,{url:a}))},o.POST=function(a,b,c){return c=c||{},c=h.copy(c),"method"in c||(c.method="post"),this.HTTP(i(c,{url:a,data:b}))},o.PUT=function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(i(c,{url:a,data:b||{}}))},o.DEL=function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(i(b,{url:a}))},o.find=function(a,b,d){var e=this;return d=d||{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.GET(e.getPath("find",a,b,d),d).then(function(b){var f=(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b);return f?f:c.DSUtils.Promise.reject(new Error("Not Found!"))})},o.findAll=function(a,b,c){var d=this;return c=c||{},c=h.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),i(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.create=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.update=function(a,b,c,d){var e=this;return d=d||{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},o.updateAll=function(a,b,c,d){var e=this;return d=d||{},d=h.copy(d),d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),i(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},o.destroy=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.destroyAll=function(a,b,c){var d=this;return c=c||{},c=h.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),i(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},b.module("js-data").provider("DSHttpAdapter",function(){var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,c,d){o.HTTP=function(a){function c(a){var b=f.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-f.getTime())+"ms";return a.status>=200&&a.status<300?(e.defaults.log&&e.defaults.log(b,a),a):(e.defaults.error&&e.defaults.error("FAILED: "+b,a),d.reject(a))}var e=this,f=new Date;a=i(a,e.defaults.httpConfig),e.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=h.removeCircular(a.data));var g=a.suffix||e.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var e=new f(a.defaults);return c.registerAdapter("http",e,{"default":!0}),e}]}),b.module("js-data").run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}])}return"js-data"}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index 099c622..92791fd 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"window","angular","undefined","Defaults","DSHttpAdapter","options","this","defaults","deepMixIn","registerAdapter","adapter","Adapter","project","name","httpLoaded","loaded","module","provider","_this","$get","JSData","DSUtils","adapters","class","functionsToWrap","value","DSErrors","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","args","Array","prototype","slice","arguments","$rootScope","store","DS","originals","all","when","Promise","j","registered","k","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","isString","lastModified","items","filter","set","bindOne","id","resolveId","isNumber","item","get","defaultsPrototype","queryTransform","resource","basePath","forceTrailingSlash","httpConfig","log","console","b","info","error","deserialize","data","serialize","dsHttpAdapterPrototype","getPath","method","resourceConfig","getEndpoint","makePath","GET","url","config","HTTP","POST","attrs","copy","PUT","DEL","find","suffix","then","findAll","create","update","updateAll","destroy","destroyAll","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","removeCircular","substr","default","run","js-data"],"mappings":";;;;;;;;;;CASA,QAAUA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,EAAEA,EAAEF,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAkD,IAAI,GAA1CL,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKa,GAAG,SAAST,IAExc,SAAWU,EAAQC,EAASC,GAC1B,YAyDA,SAASC,MAIT,QAASC,GAAcC,GACrBC,KAAKC,SAAW,GAAIJ,GACpBK,EAAUF,KAAKC,SAAUF,GAG3B,QAASI,GAAgBC,GACvB,GAAIC,EAEJ,KACEA,EAAUrB,EAAQoB,EAAQE,SAC1B,MAAO9B,IAIJ6B,IACHA,EAAUX,EAAOU,EAAAA,WAGfC,IACmB,SAAjBD,EAAQG,OACVC,GAAa,GAEfJ,EAAQK,QAAS,EACjBd,EAAQe,OAAO,WAAWC,SAASP,EAAAA,SAAe,WAChD,GAAIQ,GAAQZ,IACZY,GAAMX,YACNW,EAAMC,MAAQ,WACZ,MAAO,IAAIR,GAAQO,EAAMX,eAtFjC,GAAIa,EAEJ,KACEA,EAAS9B,EAAQ,WACjB,MAAOR,IAQT,GAJKsC,IACHA,EAASpB,EAAOoB,SAGbA,EACH,KAAM,IAAI3B,OAAM,0BAGlB,IAAI4B,GAAUD,EAAOC,QAEjBb,EAAYa,EAAQb,UACpBM,GAAa,EAEbQ,IAEAV,QAAS,eACTC,KAAM,OACNU,QAAO,kBAGPX,QAAS,uBACTC,KAAM,eACNU,QAAO,0BAGPX,QAAS,sBACTC,KAAM,cACNU,QAAO,yBAGPX,QAAS,mBACTC,KAAM,WACNU,QAAO,sBAIPC,GACF,UACA,SACA,QACA,SACA,OACA,UACA,cACA,gBAwCFvB,GAAQe,OAAO,WAAY,OACxBS,MAAM,UAAWL,EAAOC,SACxBI,MAAM,WAAYL,EAAOM,UACzBT,SAAS,KAAM,WAiFd,QAASU,KAOP,QAASC,GAASC,GAChB,GAAIC,GAAWC,EAAGC,OAElB,KACEH,EAAShC,KAAKK,EACZD,EAAQgC,KAAKH,EAAUA,EAASI,SAChCjC,EAAQgC,KAAKH,EAAUA,EAASK,SAClC,MAAOC,GACPN,EAASK,OAAOC,GAGlB,MAAON,GAASO,QAjBlB,GAAIC,GAAOC,MAAMC,UAAUC,MAAM5C,KAAK6C,WAClCC,EAAaL,EAAKA,EAAKxC,OAAS,GAChCiC,EAAKO,EAAKA,EAAKxC,OAAS,GACxB8C,EAAQ,GAAIxB,GAAOyB,GAAG3B,EAAMX,UAC5BuC,IAuBJ,IAPAlB,EAASmB,IAAMhB,EAAGgB,IAClBnB,EAASoB,KAAOjB,EAAGiB,KACnBpB,EAASO,OAASJ,EAAGI,OAErBd,EAAQ4B,QAAUrB,EAGdU,EAAKxC,OACP,IAAK,GAAIP,GAAI,EAAGA,EAAI+C,EAAKxC,OAAQP,IAC/B,IAAK,GAAI2D,GAAI,EAAGA,EAAI5B,EAASxB,OAAQoD,IAC/B5B,EAAS4B,GAAGnC,SAAWO,EAAS4B,GAAGC,aACrC7B,EAAS4B,GAAGC,YAAa,EACzBP,EAAMnC,gBAAgBa,EAAS4B,GAAGrC,KAAMyB,EAAK/C,IAOrD,KAAK,GAAI6D,GAAI,EAAGA,EAAI5B,EAAgB1B,OAAQsD,IAC1CN,EAAUtB,EAAgB4B,IAAMR,EAAMpB,EAAgB4B,IACtDR,EAAMpB,EAAgB4B,IAAM,SAAWvC,GACrC,MAAO,YACL,GAAIyB,GAAOI,SACX,OAAKC,GAAWU,QAKTP,EAAUjC,GAAMyC,MAAMV,EAAON,GAJ3BK,EAAWY,OAAO,WACvB,MAAOT,GAAUjC,GAAMyC,MAAMV,EAAON,OAKzCd,EAAgB4B,GAUrB,QAN8B,kBAAnBI,QAAOC,SAAmD,kBAAlBlB,OAAMkB,UACvDd,EAAWe,OAAO,WAChBd,EAAMa,QAAQE,SAASC,+BAIpBhB,EAzIT,IAAK,GAJD1B,GAAQZ,KACRoB,EAAWN,EAAOM,SAClBmC,KAEKtE,EAAI,EAAGA,EAAI+B,EAASxB,OAAQP,IAC/B+B,EAAS/B,GAAGwB,QACd8C,EAAKC,KAAKxC,EAAS/B,GAAT+B,SAIdJ,GAAMX,YAENa,EAAOyB,GAAGL,UAAUuB,QAAU,SAAUC,EAAcC,EAAQC,EAAOC,EAAMC,GACzE,GAAIlD,GAAQZ,IAIZ,IAFA2D,EAASA,OAEJ/C,EAAMmD,YAAYL,GACrB,KAAM,IAAItC,GAAS4C,IAAIN,EAClB,KAAK3C,EAAQkD,SAASN,GAC3B,KAAM,IAAIvC,GAAS8C,GAAG,8BACjB,KAAKnD,EAAQkD,SAASL,GAC3B,KAAM,IAAIxC,GAAS8C,GAAG,6BACjB,KAAKnD,EAAQoD,SAASN,GAC3B,KAAM,IAAIzC,GAAS8C,GAAG,2BAGxB,KACE,MAAON,GAAMR,OAAO,WAClB,MAAOxC,GAAMwD,aAAaV,IACzB,WACD,GAAIW,GAAQzD,EAAM0D,OAAOZ,EAAcC,EACvC5C,GAAQwD,IAAIX,EAAOC,EAAMQ,GACrBP,GACFA,EAAG,KAAMO,KAGb,MAAOvC,GACP,IAAIgC,EAGF,KAAMhC,EAFNgC,GAAGhC,KAOThB,EAAOyB,GAAGL,UAAUsC,QAAU,SAAUd,EAAce,EAAIb,EAAOC,EAAMC,GACrE,GAAIlD,GAAQZ,IAGZ,IADAyE,EAAK1D,EAAQ2D,UAAU9D,EAAMmD,YAAYL,GAAee,IACnD7D,EAAMmD,YAAYL,GACrB,KAAM,IAAItC,GAAS4C,IAAIN,EAClB,KAAK3C,EAAQoD,SAASM,KAAQ1D,EAAQ4D,SAASF,GACpD,KAAM,IAAIrD,GAAS8C,GAAG,qCACjB,KAAKnD,EAAQkD,SAASL,GAC3B,KAAM,IAAIxC,GAAS8C,GAAG,6BACjB,KAAKnD,EAAQoD,SAASN,GAC3B,KAAM,IAAIzC,GAAS8C,GAAG,2BAGxB,KACE,MAAON,GAAMR,OAAO,WAClB,MAAOxC,GAAMwD,aAAaV,EAAce,IACvC,WACD,GAAIG,GAAOhE,EAAMiE,IAAInB,EAAce,EACnC1D,GAAQwD,IAAIX,EAAOC,EAAMe,GACrBd,GACFA,EAAG,KAAMc,KAGb,MAAO9C,GACP,IAAIgC,EAGF,KAAMhC,EAFNgC,GAAGhC,KAwETyB,EAAKC,KAAK,cACVD,EAAKC,KAAK,MACVD,EAAKC,KAAKnC,GAEVT,EAAMC,KAAO0C,GAIjB,KAAK,GAAItE,GAAI,EAAGA,EAAI+B,EAASxB,OAAQP,IACnCkB,EAAgBa,EAAS/B,GAG3B,KAAKuB,EAAY,CACf,GAAIsE,GAAoBjF,EAASqC,SAEjC4C,GAAkBC,eAAiB,SAAUC,EAAUrB,GACrD,MAAOA,IAGTmB,EAAkBG,SAAW,GAE7BH,EAAkBI,mBAAqB,GAEvCJ,EAAkBK,cAElBL,EAAkBM,IAAMC,QAAU,SAAUtG,EAAGuG,GAC7CD,QAAgC,kBAAjBA,SAAQE,KAAsB,OAAS,OAAOxG,EAAGuG,IAC9D,aAGJR,EAAkBU,MAAQH,QAAU,SAAUtG,EAAGuG,GAC/CD,QAAiC,kBAAlBA,SAAQG,MAAuB,QAAU,OAAOzG,EAAGuG,IAChE,aAGJR,EAAkBW,YAAc,SAAUT,EAAUU,GAClD,MAAOA,IAAQ,QAAUA,GAAOA,EAAKA,KAAeA,GAGtDZ,EAAkBa,UAAY,SAAUX,EAAUU,GAChD,MAAOA,GAGT,IAAIE,GAAyB9F,EAAcoC,SAE3C0D,GAAuBC,QAAU,SAAUC,EAAQC,EAAgBtB,EAAI1E,GACrE,GAAIa,GAAQZ,IACZD,GAAUA,KACV,IAAIiC,IACFjC,EAAQkF,UAAYrE,EAAMX,SAASgF,UAAYc,EAAed,SAC9Dc,EAAeC,YAAajF,EAAQoD,SAASM,IAAO1D,EAAQ4D,SAASF,IAAkB,WAAXqB,EAAuBrB,EAAK,KAAM1E,GAKhH,QAHe,SAAX+F,GAAgC,WAAXA,GAAkC,YAAXA,IAC9C9D,EAAKwB,KAAKiB,GAEL1D,EAAQkF,SAASjD,MAAMjC,EAASiB,IAGzC4D,EAAuBM,IAAM,SAAUC,EAAKC,GAK1C,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,OAEX9F,KAAKqG,KAAKnG,EAAUkG,GACzBD,IAAKA,MAITP,EAAuBU,KAAO,SAAUH,EAAKI,EAAOH,GAMlD,MALAA,GAASA,MACTA,EAASrF,EAAQyF,KAAKJ,GAChB,UAAYA,KAChBA,EAAON,OAAS,QAEX9F,KAAKqG,KAAKnG,EAAUkG,GACzBD,IAAKA,EACLT,KAAMa,MAIVX,EAAuBa,IAAM,SAAUN,EAAKI,EAAOH,GAKjD,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,OAEX9F,KAAKqG,KAAKnG,EAAUkG,GACzBD,IAAKA,EACLT,KAAMa,UAIVX,EAAuBc,IAAM,SAAUP,EAAKC,GAK1C,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,UAEX9F,KAAKqG,KAAKnG,EAAUkG,GACzBD,IAAKA,MAITP,EAAuBe,KAAO,SAAUZ,EAAgBtB,EAAI1E,GAC1D,GAAIa,GAAQZ,IAGZ,OAFAD,GAAUA,MACVA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAC3ChG,EAAMsF,IACXtF,EAAMiF,QAAQ,OAAQE,EAAgBtB,EAAI1E,GAC1CA,GACA8G,KAAK,SAAUnB,GACb,GAAId,IAAQ7E,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,EACpG,OAAKd,GAGIA,EAFA9D,EAAOC,QAAQ4B,QAAQd,OAAO,GAAI1C,OAAM,kBAOvDyG,EAAuBkB,QAAU,SAAUf,EAAgBpC,EAAQ5D,GACjE,GAAIa,GAAQZ,IASZ,OARAD,GAAUA,MACVA,EAAUgB,EAAQyF,KAAKzG,GACvBA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAClD7G,EAAQ4D,OAAS5D,EAAQ4D,WACrBA,IACFA,EAAS/C,EAAMX,SAAS8E,eAAegB,EAAgBpC,GACvDzD,EAAUH,EAAQ4D,OAAQA,IAErB/C,EAAMsF,IACXtF,EAAMiF,QAAQ,UAAWE,EAAgBpC,EAAQ5D,GACjDA,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItGE,EAAuBmB,OAAS,SAAUhB,EAAgBQ,EAAOxG,GAC/D,GAAIa,GAAQZ,IAGZ,OAFAD,GAAUA,MACVA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAC3ChG,EAAM0F,KACX1F,EAAMiF,QAAQ,SAAUE,EAAgBQ,EAAOxG,IAC9CA,EAAQ4F,UAAY5F,EAAQ4F,UAAY/E,EAAMX,SAAS0F,WAAWI,EAAgBQ,GACnFxG,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItGE,EAAuBoB,OAAS,SAAUjB,EAAgBtB,EAAI8B,EAAOxG,GACnE,GAAIa,GAAQZ,IAGZ,OAFAD,GAAUA,MACVA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAC3ChG,EAAM6F,IACX7F,EAAMiF,QAAQ,SAAUE,EAAgBtB,EAAI1E,IAC3CA,EAAQ4F,UAAY5F,EAAQ4F,UAAY/E,EAAMX,SAAS0F,WAAWI,EAAgBQ,GACnFxG,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItGE,EAAuBqB,UAAY,SAAUlB,EAAgBQ,EAAO5C,EAAQ5D,GAC1E,GAAIa,GAAQZ,IASZ,OARAD,GAAUA,MACVA,EAAUgB,EAAQyF,KAAKzG,GACvBA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAClD7G,EAAQ4D,OAAS5D,EAAQ4D,WACrBA,IACFA,EAAS/C,EAAMX,SAAS8E,eAAegB,EAAgBpC,GACvDzD,EAAUH,EAAQ4D,OAAQA,IAErB3D,KAAKyG,IACV7F,EAAMiF,QAAQ,YAAaE,EAAgBQ,EAAOxG,IACjDA,EAAQ4F,UAAY5F,EAAQ4F,UAAY/E,EAAMX,SAAS0F,WAAWI,EAAgBQ,GACnFxG,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItGE,EAAuBsB,QAAU,SAAUnB,EAAgBtB,EAAI1E,GAC7D,GAAIa,GAAQZ,IAGZ,OAFAD,GAAUA,MACVA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAC3ChG,EAAM8F,IACX9F,EAAMiF,QAAQ,UAAWE,EAAgBtB,EAAI1E,GAC7CA,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItGE,EAAuBuB,WAAa,SAAUpB,EAAgBpC,EAAQ5D,GACpE,GAAIa,GAAQZ,IASZ,OARAD,GAAUA,MACVA,EAAUgB,EAAQyF,KAAKzG,GACvBA,EAAQ6G,OAAS7G,EAAQ6G,QAAUb,EAAea,OAClD7G,EAAQ4D,OAAS5D,EAAQ4D,WACrBA,IACFA,EAAS/C,EAAMX,SAAS8E,eAAegB,EAAgBpC,GACvDzD,EAAUH,EAAQ4D,OAAQA,IAErB3D,KAAK0G,IACV9F,EAAMiF,QAAQ,aAAcE,EAAgBpC,EAAQ5D,GACpDA,GACA8G,KAAK,SAAUnB,GACb,OAAQ3F,EAAQ0F,YAAc1F,EAAQ0F,YAAc7E,EAAMX,SAASwF,aAAaM,EAAgBL,MAItG/F,EAAQe,OAAO,WAAWC,SAAS,gBAAiB,WAClD,GAAIC,GAAQZ,IACZY,GAAMX,YACNW,EAAMC,MAAQ,QAAS,KAAM,KAAM,SAAUuG,EAAO7E,EAAId,GACtDmE,EAAuBS,KAAO,SAAUD,GAgBtC,QAASiB,GAAY3B,GACnB,GAAI4B,GAAMC,EAAMC,cAAgB,MAAQ9B,EAAKU,OAAON,OAAO2B,cAAgB,IAAM/B,EAAKU,OAAOD,IAAM,MAAQT,EAAKgC,OAAS,MAAO,GAAIC,OAAOC,UAAYL,EAAMK,WAAa,IAC1K,OAAIlC,GAAKgC,QAAU,KAAOhC,EAAKgC,OAAS,KAClC9G,EAAMX,SAASmF,KACjBxE,EAAMX,SAASmF,IAAIkC,EAAK5B,GAEnBA,IAEH9E,EAAMX,SAASuF,OACjB5E,EAAMX,SAASuF,MAAM,WAAa8B,EAAK5B,GAElCjE,EAAGI,OAAO6D,IA1BrB,GAAI9E,GAAQZ,KACRuH,EAAQ,GAAII,KAChBvB,GAASlG,EAAUkG,EAAQxF,EAAMX,SAASkF,YACtCvE,EAAMX,SAASiF,oBAA0D,MAApCkB,EAAOD,IAAIC,EAAOD,IAAI3G,OAAO,KACpE4G,EAAOD,KAAO,KAEhBC,EAAON,OAASM,EAAON,OAAO2B,cACH,gBAAhBrB,GAAOV,OAChBU,EAAOV,KAAO3E,EAAQ8G,eAAezB,EAAOV,MAE9C,IAAIkB,GAASR,EAAOQ,QAAUhG,EAAMX,SAAS2G,MAoB7C,OAnBIA,IAAUR,EAAOD,IAAI2B,OAAO1B,EAAOD,IAAI3G,OAASoH,EAAOpH,UAAYoH,IACrER,EAAOD,KAAOS,GAkBTQ,EAAMhB,GAAQS,KAAKQ,EAAaA,GAGzC,IAAIjH,GAAU,GAAIN,GAAcc,EAAMX,SAEtC,OADAsC,GAAGpC,gBAAgB,OAAQC,GAAW2H,WAAS,IACxC3H,MAIXT,EAAQe,OAAO,WAAWsH,KAAK,KAAM,gBAAiB,SAAUzF,EAAIzC,GAClEyC,EAAGpC,gBAAgB,OAAQL,GAAiBiI,WAAS,SAIxDrI,OAAQA,OAAOC,WAEfsI,UAAU,iBAAiB"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","define","amd","angular","JSData","undefined","exports","module","require","jsDataAngularModuleName","this","window","Defaults","DSHttpAdapter","options","defaults","deepMixIn","registerAdapter","adapter","Adapter","project","e","name","httpLoaded","loaded","provider","_this","$get","Error","DSUtils","adapters","class","functionsToWrap","value","DSErrors","load","QPromise","executor","deferred","$q","defer","call","bind","resolve","reject","err","promise","args","Array","prototype","slice","arguments","$rootScope","length","store","DS","originals","all","when","Promise","i","j","registered","k","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","isString","lastModified","items","filter","set","bindOne","id","resolveId","isNumber","item","get","defaultsPrototype","queryTransform","resource","basePath","forceTrailingSlash","httpConfig","log","console","a","b","info","error","deserialize","data","serialize","dsHttpAdapterPrototype","getPath","method","resourceConfig","getEndpoint","makePath","GET","url","config","HTTP","POST","attrs","copy","PUT","DEL","find","suffix","then","findAll","create","update","updateAll","destroy","destroyAll","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","removeCircular","substr","default","run"],"mappings":";;;;;;;;;;CAUC,SAAUA,EAAMC,GACf,YAEsB,mBAAXC,SAAyBA,OAAOC,IACzCD,QAAQ,UAAW,WAAY,SAAUE,EAASC,GAChD,MAAOJ,GAAQD,EAAMI,EAASC,EAAQC,UAEZ,gBAAZC,UAA0C,gBAAXC,QAC/CA,OAAOD,QAAUN,EAAQD,EAAMS,QAAQ,YAAcT,EAAKI,QAASK,QAAQ,YAAcT,EAAKK,OAAQC,QAC1E,gBAAZC,SAChBA,QAAQG,wBAA0BT,EAAQD,EAAMS,QAAQ,YAAcT,EAAKI,QAASK,QAAQ,YAAcT,EAAKK,OAAQC,QAEvHN,EAAKU,wBAA0BT,EAAQD,EAAMA,EAAKI,QAASJ,EAAKK,OAAQC,SAE1EK,KAAM,SAAUC,EAAQR,EAASC,EAAQC,GACzC,YA6CA,SAASO,MAIT,QAASC,GAAcC,GACrBJ,KAAKK,SAAW,GAAIH,GACpBI,EAAUN,KAAKK,SAAUD,GAG3B,QAASG,GAAgBC,GACvB,GAAIC,EAEJ,KACEA,EAAUX,QAAQU,EAAQE,SAC1B,MAAOC,IAIJF,IACHA,EAAUR,EAAOO,EAAAA,WAGfC,IACmB,SAAjBD,EAAQI,OACVC,GAAa,GAEfL,EAAQM,QAAS,EACjBrB,EAAQI,OAAO,WAAWkB,SAASP,EAAAA,SAAe,WAChD,GAAIQ,GAAQhB,IACZgB,GAAMX,YACNW,EAAMC,MAAQ,WACZ,MAAO,IAAIR,GAAQO,EAAMX,eA1EjC,IAAKX,IAAWD,EACd,KAAM,IAAIyB,OAAM,sCAGlB,IAAIC,GAAUzB,EAAOyB,QAEjBb,EAAYa,EAAQb,UACpBO,GAAa,EAEbO,IAEAV,QAAS,eACTE,KAAM,OACNS,QAAO,kBAGPX,QAAS,uBACTE,KAAM,eACNS,QAAO,0BAGPX,QAAS,sBACTE,KAAM,cACNS,QAAO,yBAGPX,QAAS,mBACTE,KAAM,WACNS,QAAO,sBAIPC,GACF,UACA,SACA,QACA,SACA,OACA,UACA,cACA,gBAwCF7B,GAAQI,OAAO,WAAY,OACxB0B,MAAM,UAAW7B,EAAOyB,SACxBI,MAAM,WAAY7B,EAAO8B,UACzBT,SAAS,KAAM,WAiFd,QAASU,KAOP,QAASC,GAASC,GAChB,GAAIC,GAAWC,EAAGC,OAElB,KACEH,EAASI,KAAKpC,EACZF,EAAQuC,KAAKJ,EAAUA,EAASK,SAChCxC,EAAQuC,KAAKJ,EAAUA,EAASM,SAClC,MAAOC,GACPP,EAASM,OAAOC,GAGlB,MAAOP,GAASQ,QAjBlB,GAAIC,GAAOC,MAAMC,UAAUC,MAAMT,KAAKU,WAClCC,EAAaL,EAAKA,EAAKM,OAAS,GAChCd,EAAKQ,EAAKA,EAAKM,OAAS,GACxBC,EAAQ,GAAIlD,GAAOmD,GAAG7B,EAAMX,UAC5ByC,IAuBJ,IAPApB,EAASqB,IAAMlB,EAAGkB,IAClBrB,EAASsB,KAAOnB,EAAGmB,KACnBtB,EAASQ,OAASL,EAAGK,OAErBf,EAAQ8B,QAAUvB,EAGdW,EAAKM,OACP,IAAK,GAAIO,GAAI,EAAGA,EAAIb,EAAKM,OAAQO,IAC/B,IAAK,GAAIC,GAAI,EAAGA,EAAI/B,EAASuB,OAAQQ,IAC/B/B,EAAS+B,GAAGrC,SAAWM,EAAS+B,GAAGC,aACrChC,EAAS+B,GAAGC,YAAa,EACzBR,EAAMrC,gBAAgBa,EAAS+B,GAAGvC,KAAMyB,EAAKa,IAOrD,KAAK,GAAIG,GAAI,EAAGA,EAAI/B,EAAgBqB,OAAQU,IAC1CP,EAAUxB,EAAgB+B,IAAMT,EAAMtB,EAAgB+B,IACtDT,EAAMtB,EAAgB+B,IAAM,SAAWzC,GACrC,MAAO,YACL,GAAIyB,GAAOI,SACX,OAAKC,GAAWY,QAKTR,EAAUlC,GAAM2C,MAAMX,EAAOP,GAJ3BK,EAAWc,OAAO,WACvB,MAAOV,GAAUlC,GAAM2C,MAAMX,EAAOP,OAKzCf,EAAgB+B,GAUrB,QAN8B,kBAAnBI,QAAOC,SAAmD,kBAAlBpB,OAAMoB,UACvDhB,EAAWiB,OAAO,WAChBf,EAAMc,QAAQE,SAASC,+BAIpBjB,EAzIT,IAAK,GAJD5B,GAAQhB,KACRwB,EAAW9B,EAAO8B,SAClBsC,KAEKZ,EAAI,EAAGA,EAAI9B,EAASuB,OAAQO,IAC/B9B,EAAS8B,GAAGpC,QACdgD,EAAKC,KAAK3C,EAAS8B,GAAT9B,SAIdJ,GAAMX,YAENX,EAAOmD,GAAGN,UAAUyB,QAAU,SAAUC,EAAcC,EAAQC,EAAOC,EAAMC,GACzE,GAAIrD,GAAQhB,IAIZ,IAFAkE,EAASA,OAEJlD,EAAMsD,YAAYL,GACrB,KAAM,IAAIzC,GAAS+C,IAAIN,EAClB,KAAK9C,EAAQqD,SAASN,GAC3B,KAAM,IAAI1C,GAASiD,GAAG,8BACjB,KAAKtD,EAAQqD,SAASL,GAC3B,KAAM,IAAI3C,GAASiD,GAAG,6BACjB,KAAKtD,EAAQuD,SAASN,GAC3B,KAAM,IAAI5C,GAASiD,GAAG,2BAGxB,KACE,MAAON,GAAMR,OAAO,WAClB,MAAO3C,GAAM2D,aAAaV,IACzB,WACD,GAAIW,GAAQ5D,EAAM6D,OAAOZ,EAAcC,EACvC/C,GAAQ2D,IAAIX,EAAOC,EAAMQ,GACrBP,GACFA,EAAG,KAAMO,KAGb,MAAOzC,GACP,IAAIkC,EAGF,KAAMlC,EAFNkC,GAAGlC,KAOTzC,EAAOmD,GAAGN,UAAUwC,QAAU,SAAUd,EAAce,EAAIb,EAAOC,EAAMC,GACrE,GAAIrD,GAAQhB,IAGZ,IADAgF,EAAK7D,EAAQ8D,UAAUjE,EAAMsD,YAAYL,GAAee,IACnDhE,EAAMsD,YAAYL,GACrB,KAAM,IAAIzC,GAAS+C,IAAIN,EAClB,KAAK9C,EAAQuD,SAASM,KAAQ7D,EAAQ+D,SAASF,GACpD,KAAM,IAAIxD,GAASiD,GAAG,qCACjB,KAAKtD,EAAQqD,SAASL,GAC3B,KAAM,IAAI3C,GAASiD,GAAG,6BACjB,KAAKtD,EAAQuD,SAASN,GAC3B,KAAM,IAAI5C,GAASiD,GAAG,2BAGxB,KACE,MAAON,GAAMR,OAAO,WAClB,MAAO3C,GAAM2D,aAAaV,EAAce,IACvC,WACD,GAAIG,GAAOnE,EAAMoE,IAAInB,EAAce,EACnC7D,GAAQ2D,IAAIX,EAAOC,EAAMe,GACrBd,GACFA,EAAG,KAAMc,KAGb,MAAOhD,GACP,IAAIkC,EAGF,KAAMlC,EAFNkC,GAAGlC,KAwET2B,EAAKC,KAAK,cACVD,EAAKC,KAAK,MACVD,EAAKC,KAAKtC,GAEVT,EAAMC,KAAO6C,GAIjB,KAAK,GAAIZ,GAAI,EAAGA,EAAI9B,EAASuB,OAAQO,IACnC3C,EAAgBa,EAAS8B,GAG3B,KAAKrC,EAAY,CACf,GAAIwE,GAAoBnF,EAASqC,SAEjC8C,GAAkBC,eAAiB,SAAUC,EAAUrB,GACrD,MAAOA,IAGTmB,EAAkBG,SAAW,GAE7BH,EAAkBI,mBAAqB,GAEvCJ,EAAkBK,cAElBL,EAAkBM,IAAMC,QAAU,SAAUC,EAAGC,GAC7CF,QAAgC,kBAAjBA,SAAQG,KAAsB,OAAS,OAAOF,EAAGC,IAC9D,aAGJT,EAAkBW,MAAQJ,QAAU,SAAUC,EAAGC,GAC/CF,QAAiC,kBAAlBA,SAAQI,MAAuB,QAAU,OAAOH,EAAGC,IAChE,aAGJT,EAAkBY,YAAc,SAAUV,EAAUW,GAClD,MAAOA,IAAQ,QAAUA,GAAOA,EAAKA,KAAeA,GAGtDb,EAAkBc,UAAY,SAAUZ,EAAUW,GAChD,MAAOA,GAGT,IAAIE,GAAyBjG,EAAcoC,SAE3C6D,GAAuBC,QAAU,SAAUC,EAAQC,EAAgBvB,EAAI5E,GACrE,GAAIY,GAAQhB,IACZI,GAAUA,KACV,IAAIiC,IACFjC,EAAQoF,UAAYxE,EAAMX,SAASmF,UAAYe,EAAef,SAC9De,EAAeC,YAAarF,EAAQuD,SAASM,IAAO7D,EAAQ+D,SAASF,IAAkB,WAAXsB,EAAuBtB,EAAK,KAAM5E,GAKhH,QAHe,SAAXkG,GAAgC,WAAXA,GAAkC,YAAXA,IAC9CjE,EAAK0B,KAAKiB,GAEL7D,EAAQsF,SAASlD,MAAMpC,EAASkB,IAGzC+D,EAAuBM,IAAM,SAAUC,EAAKC,GAK1C,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,OAEXtG,KAAK6G,KAAKvG,EAAUsG,GACzBD,IAAKA,MAITP,EAAuBU,KAAO,SAAUH,EAAKI,EAAOH,GAMlD,MALAA,GAASA,MACTA,EAASzF,EAAQ6F,KAAKJ,GAChB,UAAYA,KAChBA,EAAON,OAAS,QAEXtG,KAAK6G,KAAKvG,EAAUsG,GACzBD,IAAKA,EACLT,KAAMa,MAIVX,EAAuBa,IAAM,SAAUN,EAAKI,EAAOH,GAKjD,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,OAEXtG,KAAK6G,KAAKvG,EAAUsG,GACzBD,IAAKA,EACLT,KAAMa,UAIVX,EAAuBc,IAAM,SAAUP,EAAKC,GAK1C,MAJAA,GAASA,MACH,UAAYA,KAChBA,EAAON,OAAS,UAEXtG,KAAK6G,KAAKvG,EAAUsG,GACzBD,IAAKA,MAITP,EAAuBe,KAAO,SAAUZ,EAAgBvB,EAAI5E,GAC1D,GAAIY,GAAQhB,IAKZ,OAJAI,GAAUA,MACVA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACzB9D,EAAQ8D,OAASlD,EAAMX,SAASiF,eAAeiB,EAAgBnG,EAAQ8D,QAChElD,EAAM0F,IACX1F,EAAMqF,QAAQ,OAAQE,EAAgBvB,EAAI5E,GAC1CA,GACAiH,KAAK,SAAUnB,GACb,GAAIf,IAAQ/E,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,EACpG,OAAKf,GAGIA,EAFAzF,EAAOyB,QAAQ8B,QAAQf,OAAO,GAAIhB,OAAM,kBAOvDkF,EAAuBkB,QAAU,SAAUf,EAAgBrC,EAAQ9D,GACjE,GAAIY,GAAQhB,IASZ,OARAI,GAAUA,MACVA,EAAUe,EAAQ6F,KAAK5G,GACvBA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACrBA,IACFA,EAASlD,EAAMX,SAASiF,eAAeiB,EAAgBrC,GACvD5D,EAAUF,EAAQ8D,OAAQA,IAErBlD,EAAM0F,IACX1F,EAAMqF,QAAQ,UAAWE,EAAgBrC,EAAQ9D,GACjDA,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGE,EAAuBmB,OAAS,SAAUhB,EAAgBQ,EAAO3G,GAC/D,GAAIY,GAAQhB,IAKZ,OAJAI,GAAUA,MACVA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACzB9D,EAAQ8D,OAASlD,EAAMX,SAASiF,eAAeiB,EAAgBnG,EAAQ8D,QAChElD,EAAM8F,KACX9F,EAAMqF,QAAQ,SAAUE,EAAgBQ,EAAO3G,IAC9CA,EAAQ+F,UAAY/F,EAAQ+F,UAAYnF,EAAMX,SAAS8F,WAAWI,EAAgBQ,GACnF3G,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGE,EAAuBoB,OAAS,SAAUjB,EAAgBvB,EAAI+B,EAAO3G,GACnE,GAAIY,GAAQhB,IAKZ,OAJAI,GAAUA,MACVA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACzB9D,EAAQ8D,OAASlD,EAAMX,SAASiF,eAAeiB,EAAgBnG,EAAQ8D,QAChElD,EAAMiG,IACXjG,EAAMqF,QAAQ,SAAUE,EAAgBvB,EAAI5E,IAC3CA,EAAQ+F,UAAY/F,EAAQ+F,UAAYnF,EAAMX,SAAS8F,WAAWI,EAAgBQ,GACnF3G,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGE,EAAuBqB,UAAY,SAAUlB,EAAgBQ,EAAO7C,EAAQ9D,GAC1E,GAAIY,GAAQhB,IASZ,OARAI,GAAUA,MACVA,EAAUe,EAAQ6F,KAAK5G,GACvBA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACrBA,IACFA,EAASlD,EAAMX,SAASiF,eAAeiB,EAAgBrC,GACvD5D,EAAUF,EAAQ8D,OAAQA,IAErBlE,KAAKiH,IACVjG,EAAMqF,QAAQ,YAAaE,EAAgBQ,EAAO3G,IACjDA,EAAQ+F,UAAY/F,EAAQ+F,UAAYnF,EAAMX,SAAS8F,WAAWI,EAAgBQ,GACnF3G,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGE,EAAuBsB,QAAU,SAAUnB,EAAgBvB,EAAI5E,GAC7D,GAAIY,GAAQhB,IAKZ,OAJAI,GAAUA,MACVA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACzB9D,EAAQ8D,OAASlD,EAAMX,SAASiF,eAAeiB,EAAgBnG,EAAQ8D,QAChElD,EAAMkG,IACXlG,EAAMqF,QAAQ,UAAWE,EAAgBvB,EAAI5E,GAC7CA,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGE,EAAuBuB,WAAa,SAAUpB,EAAgBrC,EAAQ9D,GACpE,GAAIY,GAAQhB,IASZ,OARAI,GAAUA,MACVA,EAAUe,EAAQ6F,KAAK5G,GACvBA,EAAQgH,OAAShH,EAAQgH,QAAUb,EAAea,OAClDhH,EAAQ8D,OAAS9D,EAAQ8D,WACrBA,IACFA,EAASlD,EAAMX,SAASiF,eAAeiB,EAAgBrC,GACvD5D,EAAUF,EAAQ8D,OAAQA,IAErBlE,KAAKkH,IACVlG,EAAMqF,QAAQ,aAAcE,EAAgBrC,EAAQ9D,GACpDA,GACAiH,KAAK,SAAUnB,GACb,OAAQ9F,EAAQ6F,YAAc7F,EAAQ6F,YAAcjF,EAAMX,SAAS4F,aAAaM,EAAgBL,MAItGzG,EAAQI,OAAO,WAAWkB,SAAS,gBAAiB,WAClD,GAAIC,GAAQhB,IACZgB,GAAMX,YACNW,EAAMC,MAAQ,QAAS,KAAM,KAAM,SAAU2G,EAAO/E,EAAIhB,GACtDuE,EAAuBS,KAAO,SAAUD,GAgBtC,QAASiB,GAAY3B,GACnB,GAAI4B,GAAMC,EAAMC,cAAgB,MAAQ9B,EAAKU,OAAON,OAAO2B,cAAgB,IAAM/B,EAAKU,OAAOD,IAAM,MAAQT,EAAKgC,OAAS,MAAO,GAAIC,OAAOC,UAAYL,EAAMK,WAAa,IAC1K,OAAIlC,GAAKgC,QAAU,KAAOhC,EAAKgC,OAAS,KAClClH,EAAMX,SAASsF,KACjB3E,EAAMX,SAASsF,IAAImC,EAAK5B,GAEnBA,IAEHlF,EAAMX,SAAS2F,OACjBhF,EAAMX,SAAS2F,MAAM,WAAa8B,EAAK5B,GAElCrE,EAAGK,OAAOgE,IA1BrB,GAAIlF,GAAQhB,KACR+H,EAAQ,GAAII,KAChBvB,GAAStG,EAAUsG,EAAQ5F,EAAMX,SAASqF,YACtC1E,EAAMX,SAASoF,oBAA4D,MAAtCmB,EAAOD,IAAIC,EAAOD,IAAIhE,OAAS,KACtEiE,EAAOD,KAAO,KAEhBC,EAAON,OAASM,EAAON,OAAO2B,cACH,gBAAhBrB,GAAOV,OAChBU,EAAOV,KAAO/E,EAAQkH,eAAezB,EAAOV,MAE9C,IAAIkB,GAASR,EAAOQ,QAAUpG,EAAMX,SAAS+G,MAoB7C,OAnBIA,IAAUR,EAAOD,IAAI2B,OAAO1B,EAAOD,IAAIhE,OAASyE,EAAOzE,UAAYyE,IACrER,EAAOD,KAAOS,GAkBTQ,EAAMhB,GAAQS,KAAKQ,EAAaA,GAGzC,IAAIrH,GAAU,GAAIL,GAAca,EAAMX,SAEtC,OADAwC,GAAGtC,gBAAgB,OAAQC,GAAW+H,WAAS,IACxC/H,MAIXf,EAAQI,OAAO,WAAW2I,KAAK,KAAM,gBAAiB,SAAU3F,EAAI1C,GAClE0C,EAAGtC,gBAAgB,OAAQJ,GAAiBoI,WAAS,OAKzD,MAAO"} \ No newline at end of file diff --git a/package.json b/package.json index 6299628..f3686de 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "2.2.1", + "version": "2.2.2", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -21,7 +21,6 @@ "main": "src/index.js", "devDependencies": { "grunt": "0.4.5", - "grunt-browserify": "3.4.0", "grunt-contrib-clean": "0.6.0", "grunt-contrib-jshint": "0.11.0", "grunt-contrib-uglify": "0.8.0", @@ -45,7 +44,6 @@ "test": "grunt test" }, "dependencies": { - "mout": "0.11.0", "js-data": ">=1.1.0" } } diff --git a/src/index.js b/src/index.js index 6891425..fa76644 100644 --- a/src/index.js +++ b/src/index.js @@ -3,15 +3,17 @@ 'use strict'; if (typeof define === 'function' && define.amd) { - define(['angular', 'js-data'], function(angular, JSData) { + define(['angular', 'js-data'], function (angular, JSData) { return factory(root, angular, JSData, undefined); }); - } else if (typeof module !== 'undefined' && module.exports) { - module.exports = factory(root, require('angular') || root.angular, require('js-data'), undefined); + } else if (typeof exports === 'object' && typeof module === 'object') { + module.exports = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); + } else if (typeof exports === 'object') { + exports.jsDataAngularModuleName = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); } else { root.jsDataAngularModuleName = factory(root, root.angular, root.JSData, undefined); } -}(this, function(window, angular, JSData, undefined) { +}(this, function (window, angular, JSData, undefined) { 'use strict'; if (!JSData || !angular) { @@ -348,6 +350,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.GET( _this.getPath('find', resourceConfig, id, options), options @@ -383,6 +387,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.POST( _this.getPath('create', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), @@ -396,6 +402,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.PUT( _this.getPath('update', resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), @@ -428,6 +436,8 @@ var _this = this; options = options || {}; options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.DEL( _this.getPath('destroy', resourceConfig, id, options), options @@ -462,7 +472,7 @@ var _this = this; var start = new Date(); config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length-1] !== '/') { + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { config.url += '/'; } config.method = config.method.toUpperCase(); @@ -502,8 +512,7 @@ DS.registerAdapter('http', DSHttpAdapter, { default: true }); }]); } - + // return the module name return 'js-data'; - -}); +})); diff --git a/test/adapters/http/create.test.js b/test/adapters/http/create.test.js index 35dff6a..d692da9 100644 --- a/test/adapters/http/create.test.js +++ b/test/adapters/http/create.test.js @@ -31,6 +31,6 @@ describe('DSHttpAdapter.create', function () { $httpBackend.flush(); - assert.equal(lifecycle.queryTransform.callCount, 0, 'queryTransform should not have been called'); + assert.equal(lifecycle.queryTransform.callCount, 2, 'queryTransform should have been called twice'); }); }); diff --git a/test/adapters/http/destroy.test.js b/test/adapters/http/destroy.test.js index dc25160..8ec0df3 100644 --- a/test/adapters/http/destroy.test.js +++ b/test/adapters/http/destroy.test.js @@ -25,6 +25,6 @@ describe('DSHttpAdapter.destroy', function () { $httpBackend.flush(); - assert.equal(lifecycle.queryTransform.callCount, 0, 'queryTransform should not have been called'); + assert.equal(lifecycle.queryTransform.callCount, 2, 'queryTransform should have been called twice'); }); }); diff --git a/test/adapters/http/find.test.js b/test/adapters/http/find.test.js index ad99d9d..2c0bb95 100644 --- a/test/adapters/http/find.test.js +++ b/test/adapters/http/find.test.js @@ -25,7 +25,7 @@ describe('DSHttpAdapter.find', function () { $httpBackend.flush(); - assert.equal(lifecycle.queryTransform.callCount, 0, 'queryTransform should not have been called'); + assert.equal(lifecycle.queryTransform.callCount, 2, 'queryTransform should have been called twice'); }); it('should error if the item is undefined', function () { diff --git a/test/adapters/http/update.test.js b/test/adapters/http/update.test.js index 060132e..e29c4ef 100644 --- a/test/adapters/http/update.test.js +++ b/test/adapters/http/update.test.js @@ -31,6 +31,6 @@ describe('DSHttpAdapter.update', function () { $httpBackend.flush(); - assert.equal(lifecycle.queryTransform.callCount, 0, 'queryTransform should not have been called'); + assert.equal(lifecycle.queryTransform.callCount, 2, 'queryTransform should have been called twice'); }); }); From 86a9c7d1c509739d9213a6c9e53d06a04b3dada1 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Sun, 8 Mar 2015 21:34:49 -0600 Subject: [PATCH 04/32] Stable Version 2.2.3. Converted to ES6. --- .jshintrc | 1 - CHANGELOG.md | 7 +- Gruntfile.js | 73 ++- dist/js-data-angular.js | 1158 ++++++++++++++++++---------------- dist/js-data-angular.min.js | 8 +- dist/js-data-angular.min.map | 2 +- package.json | 19 +- src/index.js | 651 ++++++++++--------- 8 files changed, 1020 insertions(+), 899 deletions(-) diff --git a/.jshintrc b/.jshintrc index e408dcf..eed0c57 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,7 +1,6 @@ { "node": false, "browser": true, - "es5": true, "esnext": true, "bitwise": true, "camelcase": true, diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b35bf8..05391f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ +##### 2.2.3 - 08 March 2015 + +###### Other +- Converted to ES6, using Babel.js to transpile to ES5. + ##### 2.2.2 - 04 March 2015 ###### Backwards compatible bug fixes -- #312 - UMDifying js-data-angular +- #312 - UMDifying js-data-angular - #313 - DSHttpAdapter#find/create/update/destroy do not call queryTransform ##### 2.2.1 - 25 February 2015 diff --git a/Gruntfile.js b/Gruntfile.js index 58acb59..ca7988b 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -13,7 +13,15 @@ module.exports = function (grunt) { }); require('time-grunt')(grunt); + var webpack = require('webpack'); var pkg = grunt.file.readJSON('package.json'); + var banner = 'js-data-angular\n' + + '@version ' + pkg.version + ' - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' + + '@author Jason Dobry <jason.dobry@gmail.com>\n' + + '@copyright (c) 2014-2015 Jason Dobry \n' + + '@license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + + '\n' + + '@overview Angular wrapper for js-data.'; // Project configuration. grunt.initConfig({ @@ -21,10 +29,6 @@ module.exports = function (grunt) { clean: { dist: ['dist/'] }, - jshint: { - all: ['Gruntfile.js', 'src/**/*.js'], - jshintrc: '.jshintrc' - }, watch: { dist: { files: ['src/**/*.js'], @@ -36,10 +40,10 @@ module.exports = function (grunt) { options: { sourceMap: true, sourceMapName: 'dist/js-data-angular.min.map', - banner: '/**\n' + + banner: '/*!\n' + + '* js-data-angular\n' + + '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' + '* @author Jason Dobry <jason.dobry@gmail.com>\n' + - '* @file js-data-angular.min.js\n' + - '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/js-data-angular/>\n' + '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' + '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + '*\n' + @@ -80,6 +84,40 @@ module.exports = function (grunt) { options: { coverage_dir: 'coverage' } + }, + webpack: { + dist: { + entry: './src/index.js', + output: { + filename: './dist/js-data-angular.js', + libraryTarget: 'umd', + library: 'jsDataAngularModuleName' + }, + externals: { + 'js-data': { + amd: 'js-data', + commonjs: 'js-data', + commonjs2: 'js-data', + root: 'JSData' + }, + 'angular': 'angular' + }, + module: { + loaders: [ + { test: /(src)(.+)\.js$/, exclude: /node_modules/, loader: 'babel-loader?blacklist=useStrict' } + ], + preLoaders: [ + { + test: /(src)(.+)\.js$|(test)(.+)\.js$/, // include .js files + exclude: /node_modules/, // exclude any and all files in the node_modules folder + loader: "jshint-loader?failOnHint=true" + } + ] + }, + plugins: [ + new webpack.BannerPlugin(banner) + ] + } } }); @@ -91,28 +129,9 @@ module.exports = function (grunt) { grunt.file.write(filePath, file); }); - grunt.registerTask('banner', function () { - var file = grunt.file.read('./src/index.js'); - - var banner = '/**\n' + - '* @author Jason Dobry <jason.dobry@gmail.com>\n' + - '* @file js-data-angular.js\n' + - '* @version ' + pkg.version + ' - Homepage <http://www.js-data.io/docs/js-data-angular/>\n' + - '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' + - '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + - '*\n' + - '* @overview Angular wrapper for js-data.js.\n' + - '*/\n'; - - file = banner + file; - - grunt.file.write('./dist/js-data-angular.js', file); - }); - grunt.registerTask('build', [ 'clean', - 'jshint', - 'banner', + 'webpack', 'uglify' ]); grunt.registerTask('go', ['build', 'watch:dist']); diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index a8ba577..bacca2a 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,527 +1,631 @@ -/** -* @author Jason Dobry <jason.dobry@gmail.com> -* @file js-data-angular.js -* @version 2.2.2 - Homepage <http://www.js-data.io/docs/js-data-angular/> -* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> -* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> -* -* @overview Angular wrapper for js-data.js. -*/ -/*jshint loopfunc:true*/ -(function (root, factory) { - 'use strict'; - - if (typeof define === 'function' && define.amd) { - define(['angular', 'js-data'], function (angular, JSData) { - return factory(root, angular, JSData, undefined); - }); - } else if (typeof exports === 'object' && typeof module === 'object') { - module.exports = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); - } else if (typeof exports === 'object') { - exports.jsDataAngularModuleName = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); - } else { - root.jsDataAngularModuleName = factory(root, root.angular, root.JSData, undefined); - } -}(this, function (window, angular, JSData, undefined) { - 'use strict'; - - if (!JSData || !angular) { - throw new Error('js-data and angular must be loaded!'); - } - - var DSUtils = JSData.DSUtils; - - var deepMixIn = DSUtils.deepMixIn; - var httpLoaded = false; - - var adapters = [ - { - project: 'js-data-http', - name: 'http', - class: 'DSHttpAdapter' - }, - { - project: 'js-data-localstorage', - name: 'localstorage', - class: 'DSLocalStorageAdapter' - }, - { - project: 'js-data-localforage', - name: 'localforage', - class: 'DSLocalForageAdapter' - }, - { - project: 'js-data-firebase', - name: 'firebase', - class: 'DSFirebaseAdapter' - } - ]; - - var functionsToWrap = [ - 'compute', - 'digest', - 'eject', - 'inject', - 'link', - 'linkAll', - 'linkInverse', - 'unlinkInverse' - ]; - - function Defaults() { - - } - - function DSHttpAdapter(options) { - this.defaults = new Defaults(); - deepMixIn(this.defaults, options); - } - - function registerAdapter(adapter) { - var Adapter; - - try { - Adapter = require(adapter.project); - } catch (e) { - - } - - if (!Adapter) { - Adapter = window[adapter.class]; - } - - if (Adapter) { - if (adapter.name === 'http') { - httpLoaded = true; - } - adapter.loaded = true; - angular.module('js-data').provider(adapter.class, function () { - var _this = this; - _this.defaults = {}; - _this.$get = [function () { - return new Adapter(_this.defaults); - }]; - }); - } - } - - angular.module('js-data', ['ng']) - .value('DSUtils', JSData.DSUtils) - .value('DSErrors', JSData.DSErrors) - .provider('DS', function () { - - var _this = this; - var DSErrors = JSData.DSErrors; - var deps = []; - - for (var i = 0; i < adapters.length; i++) { - if (adapters[i].loaded) { - deps.push(adapters[i].class); - } - } - - _this.defaults = {}; - - JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { - var _this = this; - - params = params || {}; - - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isObject(params)) { - throw new DSErrors.IA('"params" must be an object!'); - } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName); - }, function () { - var items = _this.filter(resourceName, params); - DSUtils.set(scope, expr, items); - if (cb) { - cb(null, items); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { - var _this = this; - - id = DSUtils.resolveId(_this.definitions[resourceName], id); - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { - throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName, id); - }, function () { - var item = _this.get(resourceName, id); - DSUtils.set(scope, expr, item); - if (cb) { - cb(null, item); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - function load() { - var args = Array.prototype.slice.call(arguments); - var $rootScope = args[args.length - 2]; - var $q = args[args.length - 1]; - var store = new JSData.DS(_this.defaults); - var originals = {}; - - function QPromise(executor) { - var deferred = $q.defer(); - - try { - executor.call(undefined, - angular.bind(deferred, deferred.resolve), - angular.bind(deferred, deferred.reject)); - } catch (err) { - deferred.reject(err); - } - - return deferred.promise; - } - - QPromise.all = $q.all; - QPromise.when = $q.when; - QPromise.reject = $q.reject; - - DSUtils.Promise = QPromise; - - // Register any adapters that have been loaded - if (args.length) { - for (var i = 0; i < args.length; i++) { - for (var j = 0; j < adapters.length; j++) { - if (adapters[j].loaded && !adapters[j].registered) { - adapters[j].registered = true; - store.registerAdapter(adapters[j].name, args[i]); - } - } - } - } - - // Wrap certain sync functions with $apply - for (var k = 0; k < functionsToWrap.length; k++) { - originals[functionsToWrap[k]] = store[functionsToWrap[k]]; - store[functionsToWrap[k]] = (function (name) { - return function () { - var args = arguments; - if (!$rootScope.$$phase) { - return $rootScope.$apply(function () { - return originals[name].apply(store, args); - }); - } - return originals[name].apply(store, args); - }; - })(functionsToWrap[k]); - } - - // Hook into the digest loop - if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { - $rootScope.$watch(function () { - store.observe.Platform.performMicrotaskCheckpoint(); - }); - } - - return store; - } - - deps.push('$rootScope'); - deps.push('$q'); - deps.push(load); - - _this.$get = deps; - }); - - - for (var i = 0; i < adapters.length; i++) { - registerAdapter(adapters[i]); - } - - if (!httpLoaded) { - var defaultsPrototype = Defaults.prototype; - - defaultsPrototype.queryTransform = function (resource, params) { - return params; - }; - - defaultsPrototype.basePath = ''; - - defaultsPrototype.forceTrailingSlash = ''; - - defaultsPrototype.httpConfig = {}; - - defaultsPrototype.log = console ? function (a, b) { - console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - } : function () { - }; - - defaultsPrototype.error = console ? function (a, b) { - console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - } : function () { - }; - - defaultsPrototype.deserialize = function (resource, data) { - return data ? ('data' in data ? data.data : data) : data; - }; - - defaultsPrototype.serialize = function (resource, data) { - return data; - }; - - var dsHttpAdapterPrototype = DSHttpAdapter.prototype; - - dsHttpAdapterPrototype.getPath = function (method, resourceConfig, id, options) { - var _this = this; - options = options || {}; - var args = [ - options.basePath || _this.defaults.basePath || resourceConfig.basePath, - resourceConfig.getEndpoint((DSUtils.isString(id) || DSUtils.isNumber(id) || method === 'create') ? id : null, options) - ]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); - } - return DSUtils.makePath.apply(DSUtils, args); - }; - - dsHttpAdapterPrototype.GET = function (url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - }; - - dsHttpAdapterPrototype.POST = function (url, attrs, config) { - config = config || {}; - config = DSUtils.copy(config); - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); - }; - - dsHttpAdapterPrototype.PUT = function (url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); - }; - - dsHttpAdapterPrototype.DEL = function (url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - }; - - dsHttpAdapterPrototype.find = function (resourceConfig, id, options) { - var _this = this; - options = options || {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET( - _this.getPath('find', resourceConfig, id, options), - options - ).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - if (!item) { - return JSData.DSUtils.Promise.reject(new Error('Not Found!')); - } else { - return item; - } - }); - }; - - dsHttpAdapterPrototype.findAll = function (resourceConfig, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET( - _this.getPath('findAll', resourceConfig, params, options), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - dsHttpAdapterPrototype.create = function (resourceConfig, attrs, options) { - var _this = this; - options = options || {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST( - _this.getPath('create', resourceConfig, attrs, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - dsHttpAdapterPrototype.update = function (resourceConfig, id, attrs, options) { - var _this = this; - options = options || {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT( - _this.getPath('update', resourceConfig, id, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - dsHttpAdapterPrototype.updateAll = function (resourceConfig, attrs, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT( - _this.getPath('updateAll', resourceConfig, attrs, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - dsHttpAdapterPrototype.destroy = function (resourceConfig, id, options) { - var _this = this; - options = options || {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL( - _this.getPath('destroy', resourceConfig, id, options), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - dsHttpAdapterPrototype.destroyAll = function (resourceConfig, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL( - _this.getPath('destroyAll', resourceConfig, params, options), - options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; - - angular.module('js-data').provider('DSHttpAdapter', function () { - var _this = this; - _this.defaults = {}; - _this.$get = ['$http', 'DS', '$q', function ($http, DS, $q) { - dsHttpAdapterPrototype.HTTP = function (config) { - var _this = this; - var start = new Date(); - config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { - config.url += '/'; - } - config.method = config.method.toUpperCase(); - if (typeof config.data === 'object') { - config.data = DSUtils.removeCircular(config.data); - } - var suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { - config.url += suffix; - } - - function logResponse(data) { - var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); - } - return data; - } else { - if (_this.defaults.error) { - _this.defaults.error('FAILED: ' + str, data); - } - return $q.reject(data); - } - } - - return $http(config).then(logResponse, logResponse); - }; - - var adapter = new DSHttpAdapter(_this.defaults); - DS.registerAdapter('http', adapter, { default: true }); - return adapter; - }]; - }); - - angular.module('js-data').run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { - DS.registerAdapter('http', DSHttpAdapter, { default: true }); - }]); - } - - // return the module name - return 'js-data'; -})); +/*! + * js-data-angular + * @version 2.2.3 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @author Jason Dobry <jason.dobry@gmail.com> + * @copyright (c) 2014-2015 Jason Dobry + * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> + * + * @overview Angular wrapper for js-data. + */ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory((function webpackLoadOptionalExternalModule() { try { return require("js-data"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("angular"); } catch(e) {} }())); + else if(typeof define === 'function' && define.amd) + define(["js-data", "angular"], factory); + else if(typeof exports === 'object') + exports["jsDataAngularModuleName"] = factory((function webpackLoadOptionalExternalModule() { try { return require("js-data"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("angular"); } catch(e) {} }())); + else + root["jsDataAngularModuleName"] = factory(root["JSData"], root["angular"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + var _createClass = (function () { function defineProperties(target, props) { for (var key in props) { var prop = props[key]; prop.configurable = true; if (prop.value) prop.writable = true; } Object.defineProperties(target, props); } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; + + /*jshint loopfunc:true*/ + var angular = undefined, + JSData = undefined; + try { + JSData = __webpack_require__(1); + } catch (e) {} + + if (!JSData) { + try { + JSData = window.JSData; + } catch (e) {} + } + if (!JSData) { + throw new Error("js-data must be loaded!"); + } + try { + angular = __webpack_require__(2); + } catch (e) {} + + if (!angular) { + try { + angular = window.angular; + } catch (e) {} + } + if (!angular) { + throw new Error("angular must be loaded!"); + } + + var DSUtils = JSData.DSUtils; + var DSErrors = JSData.DSErrors; + var deepMixIn = DSUtils.deepMixIn; + var copy = DSUtils.copy; + var removeCircular = DSUtils.removeCircular; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + var makePath = DSUtils.makePath; + var httpLoaded = false; + + var adapters = [{ + project: "js-data-http", + name: "http", + "class": "DSHttpAdapter" + }, { + project: "js-data-localstorage", + name: "localstorage", + "class": "DSLocalStorageAdapter" + }, { + project: "js-data-localforage", + name: "localforage", + "class": "DSLocalForageAdapter" + }, { + project: "js-data-firebase", + name: "firebase", + "class": "DSFirebaseAdapter" + }]; + + var functionsToWrap = ["compute", "digest", "eject", "inject", "link", "linkAll", "linkInverse", "unlinkInverse"]; + + function registerAdapter(adapter) { + var Adapter = undefined; + + try { + Adapter = __webpack_require__(3)(adapter.project); + } catch (e) {} + + if (!Adapter) { + Adapter = window[adapter["class"]]; + } + + if (Adapter) { + if (adapter.name === "http") { + httpLoaded = true; + } + adapter.loaded = true; + angular.module("js-data").provider(adapter["class"], function () { + var _this = this; + _this.defaults = {}; + _this.$get = [function () { + return new Adapter(_this.defaults); + }]; + }); + } + } + + var DSProvider = function DSProvider() { + _classCallCheck(this, DSProvider); + + var _this = this; + var deps = []; + + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].loaded) { + deps.push(adapters[i]["class"]); + } + } + + _this.defaults = {}; + + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + var _this = this; + + params = params || {}; + + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!DSUtils.isObject(params)) { + throw new DSErrors.IA("\"params\" must be an object!"); + } else if (!DSUtils.isObject(scope)) { + throw new DSErrors.IA("\"scope\" must be an object!"); + } else if (!DSUtils.isString(expr)) { + throw new DSErrors.IA("\"expr\" must be a string!"); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName); + }, function () { + var items = _this.filter(resourceName, params); + DSUtils.set(scope, expr, items); + if (cb) { + cb(null, items); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + var _this = this; + + id = DSUtils.resolveId(_this.definitions[resourceName], id); + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { + throw new DSErrors.IA("\"id\" must be a string or a number!"); + } else if (!DSUtils.isObject(scope)) { + throw new DSErrors.IA("\"scope\" must be an object!"); + } else if (!DSUtils.isString(expr)) { + throw new DSErrors.IA("\"expr\" must be a string!"); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName, id); + }, function () { + var item = _this.get(resourceName, id); + DSUtils.set(scope, expr, item); + if (cb) { + cb(null, item); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + function load() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var $rootScope = args[args.length - 2]; + var $q = args[args.length - 1]; + var store = new JSData.DS(_this.defaults); + var originals = {}; + + function QPromise(executor) { + var deferred = $q.defer(); + + try { + executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); + } catch (err) { + deferred.reject(err); + } + + return deferred.promise; + } + + QPromise.all = $q.all; + QPromise.when = $q.when; + QPromise.reject = $q.reject; + + DSUtils.Promise = QPromise; + + // Register any adapters that have been loaded + if (args.length) { + for (var i = 0; i < args.length; i++) { + for (var j = 0; j < adapters.length; j++) { + if (adapters[j].loaded && !adapters[j].registered) { + adapters[j].registered = true; + store.registerAdapter(adapters[j].name, args[i]); + } + } + } + } + + // Wrap certain sync functions with $apply + for (var k = 0; k < functionsToWrap.length; k++) { + (function () { + var name = functionsToWrap[k]; + originals[name] = store[name]; + store[name] = function () { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + if (!$rootScope.$$phase) { + return $rootScope.$apply(function () { + return originals[name].apply(store, args); + }); + } + return originals[name].apply(store, args); + }; + })(); + } + + // Hook into the digest loop + if (typeof Object.observe !== "function" || typeof Array.observe !== "function") { + $rootScope.$watch(function () { + return store.observe.Platform.performMicrotaskCheckpoint(); + }); + } + + return store; + } + + deps.push("$rootScope"); + deps.push("$q"); + deps.push(load); + + _this.$get = deps; + }; + + angular.module("js-data", ["ng"]).value("DSUtils", JSData.DSUtils).value("DSErrors", JSData.DSErrors).provider("DS", DSProvider); + + for (var i = 0; i < adapters.length; i++) { + registerAdapter(adapters[i]); + } + + if (!httpLoaded) { + (function () { + var Defaults = (function () { + function Defaults() { + _classCallCheck(this, Defaults); + } + + _createClass(Defaults, { + queryTransform: { + value: function queryTransform(resourceConfig, params) { + return params; + } + }, + deserialize: { + value: function deserialize(resourceConfig, data) { + return data ? "data" in data ? data.data : data : data; + } + }, + serialize: { + value: function serialize(resourceConfig, data) { + return data; + } + }, + log: { + value: function log() {} + }, + error: { + value: function error() {} + } + }); + + return Defaults; + })(); + + var defaultsPrototype = Defaults.prototype; + + defaultsPrototype.basePath = ""; + + defaultsPrototype.forceTrailingSlash = ""; + + defaultsPrototype.httpConfig = {}; + + var DSHttpAdapter = (function () { + function DSHttpAdapter(options) { + _classCallCheck(this, DSHttpAdapter); + + this.defaults = new Defaults(); + if (console) { + this.defaults.log = function (a, b) { + return console[typeof console.info === "function" ? "info" : "log"](a, b); + }; + } + if (console) { + this.defaults.error = function (a, b) { + return console[typeof console.error === "function" ? "error" : "log"](a, b); + }; + } + deepMixIn(this.defaults, options); + } + + _createClass(DSHttpAdapter, { + getPath: { + value: function getPath(method, resourceConfig, id, options) { + var _this = this; + options = options || {}; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === "create" ? id : null, options)]; + if (method === "find" || method === "update" || method === "destroy") { + args.push(id); + } + return makePath.apply(DSUtils, args); + } + }, + GET: { + value: function GET(url, config) { + config = config || {}; + if (!("method" in config)) { + config.method = "get"; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, + POST: { + value: function POST(url, attrs, config) { + config = config || {}; + config = DSUtils.copy(config); + if (!("method" in config)) { + config.method = "post"; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs + })); + } + }, + PUT: { + value: function PUT(url, attrs, config) { + config = config || {}; + if (!("method" in config)) { + config.method = "put"; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs || {} + })); + } + }, + DEL: { + value: function DEL(url, config) { + config = config || {}; + if (!("method" in config)) { + config.method = "delete"; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, + find: { + value: function find(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.GET(_this.getPath("find", resourceConfig, id, options), options).then(function (data) { + var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? JSData.DSUtils.Promise.reject(new Error("Not Found!")) : item; + }); + } + }, + findAll: { + value: function findAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return _this.GET(_this.getPath("findAll", resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, + create: { + value: function create(resourceConfig, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.POST(_this.getPath("create", resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, + update: { + value: function update(resourceConfig, id, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.PUT(_this.getPath("update", resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, + updateAll: { + value: function updateAll(resourceConfig, attrs, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.PUT(_this.getPath("updateAll", resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, + destroy: { + value: function destroy(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.DEL(_this.getPath("destroy", resourceConfig, id, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, + destroyAll: { + value: function destroyAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.DEL(_this.getPath("destroyAll", resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + } + }); + + return DSHttpAdapter; + })(); + + var dsHttpAdapterPrototype = DSHttpAdapter.prototype; + + var DSHttpAdapterProvider = function DSHttpAdapterProvider() { + _classCallCheck(this, DSHttpAdapterProvider); + + var _this = this; + _this.defaults = {}; + _this.$get = ["$http", "DS", "$q", function ($http, DS, $q) { + dsHttpAdapterPrototype.HTTP = function (config) { + var _this = this; + var start = new Date(); + config = copy(config); + config = deepMixIn(config, _this.defaults.httpConfig); + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== "/") { + config.url += "/"; + } + config.method = config.method.toUpperCase(); + if (typeof config.data === "object") { + config.data = removeCircular(config.data); + } + var suffix = config.suffix || _this.defaults.suffix; + if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { + config.url += suffix; + } + + function logResponse(data) { + var str = "" + start.toUTCString() + " - " + data.config.method.toUpperCase() + " " + data.config.url + " - " + data.status + " " + (new Date().getTime() - start.getTime()) + "ms"; + if (data.status >= 200 && data.status < 300) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error("FAILED: " + str, data); + } + return $q.reject(data); + } + } + + return $http(config).then(logResponse, logResponse); + }; + + var adapter = new DSHttpAdapter(_this.defaults); + DS.registerAdapter("http", adapter, { "default": true }); + return adapter; + }]; + }; + + angular.module("js-data").provider("DSHttpAdapter", DSHttpAdapterProvider); + })(); + } + angular.module("js-data").run(["DS", "DSHttpAdapter", function (DS, DSHttpAdapter) { + return DS.registerAdapter("http", DSHttpAdapter, { "default": true }); + }]); + + // return the module name + module.exports = "js-data"; + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + if(typeof __WEBPACK_EXTERNAL_MODULE_1__ === 'undefined') {var e = new Error("Cannot find module \"undefined\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = __WEBPACK_EXTERNAL_MODULE_1__; + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + if(typeof __WEBPACK_EXTERNAL_MODULE_2__ === 'undefined') {var e = new Error("Cannot find module \"angular\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = __WEBPACK_EXTERNAL_MODULE_2__; + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + var map = {}; + function webpackContext(req) { + return __webpack_require__(webpackContextResolve(req)); + }; + function webpackContextResolve(req) { + return map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }()); + }; + webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); + }; + webpackContext.resolve = webpackContextResolve; + module.exports = webpackContext; + webpackContext.id = 3; + + +/***/ } +/******/ ]) +}); +; \ No newline at end of file diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 87c7a9e..6a373d9 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,12 +1,12 @@ -/** +/*! +* js-data-angular +* @version 2.2.3 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> -* @file js-data-angular.min.js -* @version 2.2.2 - Homepage <https://www.js-data.io/js-data-angular/> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * * @overview Angular wrapper for js-data. */ -!function(a,b){"use strict";"function"==typeof define&&define.amd?define(["angular","js-data"],function(c,d){return b(a,c,d,void 0)}):"object"==typeof exports&&"object"==typeof module?module.exports=b(a,require("angular")||a.angular,require("js-data")||a.JSData,void 0):"object"==typeof exports?exports.jsDataAngularModuleName=b(a,require("angular")||a.angular,require("js-data")||a.JSData,void 0):a.jsDataAngularModuleName=b(a,a.angular,a.JSData,void 0)}(this,function(a,b,c,d){"use strict";function e(){}function f(a){this.defaults=new e,i(this.defaults,a)}function g(c){var d;try{d=require(c.project)}catch(e){}d||(d=a[c["class"]]),d&&("http"===c.name&&(j=!0),c.loaded=!0,b.module("js-data").provider(c["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new d(a.defaults)}]}))}if(!c||!b)throw new Error("js-data and angular must be loaded!");var h=c.DSUtils,i=h.deepMixIn,j=!1,k=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"}],l=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"];b.module("js-data",["ng"]).value("DSUtils",c.DSUtils).value("DSErrors",c.DSErrors).provider("DS",function(){function a(){function a(a){var c=i.defer();try{a.call(d,b.bind(c,c.resolve),b.bind(c,c.reject))}catch(e){c.reject(e)}return c.promise}var f=Array.prototype.slice.call(arguments),g=f[f.length-2],i=f[f.length-1],j=new c.DS(e.defaults),m={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,h.Promise=a,f.length)for(var n=0;n<f.length;n++)for(var o=0;o<k.length;o++)k[o].loaded&&!k[o].registered&&(k[o].registered=!0,j.registerAdapter(k[o].name,f[n]));for(var p=0;p<l.length;p++)m[l[p]]=j[l[p]],j[l[p]]=function(a){return function(){var b=arguments;return g.$$phase?m[a].apply(j,b):g.$apply(function(){return m[a].apply(j,b)})}}(l[p]);return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){j.observe.Platform.performMicrotaskCheckpoint()}),j}for(var e=this,f=c.DSErrors,g=[],i=0;i<k.length;i++)k[i].loaded&&g.push(k[i]["class"]);e.defaults={},c.DS.prototype.bindAll=function(a,b,c,d,e){var g=this;if(b=b||{},!g.definitions[a])throw new f.NER(a);if(!h.isObject(b))throw new f.IA('"params" must be an object!');if(!h.isObject(c))throw new f.IA('"scope" must be an object!');if(!h.isString(d))throw new f.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a)},function(){var f=g.filter(a,b);h.set(c,d,f),e&&e(null,f)})}catch(i){if(!e)throw i;e(i)}},c.DS.prototype.bindOne=function(a,b,c,d,e){var g=this;if(b=h.resolveId(g.definitions[a],b),!g.definitions[a])throw new f.NER(a);if(!h.isString(b)&&!h.isNumber(b))throw new f.IA('"id" must be a string or a number!');if(!h.isObject(c))throw new f.IA('"scope" must be an object!');if(!h.isString(d))throw new f.IA('"expr" must be a string!');try{return c.$watch(function(){return g.lastModified(a,b)},function(){var f=g.get(a,b);h.set(c,d,f),e&&e(null,f)})}catch(i){if(!e)throw i;e(i)}},g.push("$rootScope"),g.push("$q"),g.push(a),e.$get=g});for(var m=0;m<k.length;m++)g(k[m]);if(!j){var n=e.prototype;n.queryTransform=function(a,b){return b},n.basePath="",n.forceTrailingSlash="",n.httpConfig={},n.log=console?function(a,b){console["function"==typeof console.info?"info":"log"](a,b)}:function(){},n.error=console?function(a,b){console["function"==typeof console.error?"error":"log"](a,b)}:function(){},n.deserialize=function(a,b){return b&&"data"in b?b.data:b},n.serialize=function(a,b){return b};var o=f.prototype;o.getPath=function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(h.isString(c)||h.isNumber(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),h.makePath.apply(h,f)},o.GET=function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(i(b,{url:a}))},o.POST=function(a,b,c){return c=c||{},c=h.copy(c),"method"in c||(c.method="post"),this.HTTP(i(c,{url:a,data:b}))},o.PUT=function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(i(c,{url:a,data:b||{}}))},o.DEL=function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(i(b,{url:a}))},o.find=function(a,b,d){var e=this;return d=d||{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.GET(e.getPath("find",a,b,d),d).then(function(b){var f=(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b);return f?f:c.DSUtils.Promise.reject(new Error("Not Found!"))})},o.findAll=function(a,b,c){var d=this;return c=c||{},c=h.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),i(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.create=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.update=function(a,b,c,d){var e=this;return d=d||{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},o.updateAll=function(a,b,c,d){var e=this;return d=d||{},d=h.copy(d),d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),i(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})},o.destroy=function(a,b,c){var d=this;return c=c||{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},o.destroyAll=function(a,b,c){var d=this;return c=c||{},c=h.copy(c),c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),i(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})},b.module("js-data").provider("DSHttpAdapter",function(){var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,c,d){o.HTTP=function(a){function c(a){var b=f.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-f.getTime())+"ms";return a.status>=200&&a.status<300?(e.defaults.log&&e.defaults.log(b,a),a):(e.defaults.error&&e.defaults.error("FAILED: "+b,a),d.reject(a))}var e=this,f=new Date;a=i(a,e.defaults.httpConfig),e.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=h.removeCircular(a.data));var g=a.suffix||e.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var e=new f(a.defaults);return c.registerAdapter("http",e,{"default":!0}),e}]}),b.module("js-data").run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}])}return"js-data"}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)s[n].loaded&&!s[n].registered&&(s[n].registered=!0,k.registerAdapter(s[n].name,d[m]));for(var o=0;o<t.length;o++)!function(){var a=t[o];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}}();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,{queryTransform:{value:function(a,b){return b}},deserialize:{value:function(a,b){return b&&"data"in b?b.data:b}},serialize:{value:function(a,b){return b}},log:{value:function(){}},error:{value:function(){}}}),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,{getPath:{value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},GET:{value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},POST:{value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},PUT:{value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},DEL:{value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},find:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},findAll:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},create:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},update:{value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},updateAll:{value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},destroy:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},destroyAll:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}}),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),a.exports="js-data"},function(b){if("undefined"==typeof a){var c=new Error('Cannot find module "undefined"');throw c.code="MODULE_NOT_FOUND",c}b.exports=a},function(a){if("undefined"==typeof b){var c=new Error('Cannot find module "angular"');throw c.code="MODULE_NOT_FOUND",c}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index 92791fd..c9e321e 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","define","amd","angular","JSData","undefined","exports","module","require","jsDataAngularModuleName","this","window","Defaults","DSHttpAdapter","options","defaults","deepMixIn","registerAdapter","adapter","Adapter","project","e","name","httpLoaded","loaded","provider","_this","$get","Error","DSUtils","adapters","class","functionsToWrap","value","DSErrors","load","QPromise","executor","deferred","$q","defer","call","bind","resolve","reject","err","promise","args","Array","prototype","slice","arguments","$rootScope","length","store","DS","originals","all","when","Promise","i","j","registered","k","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","isString","lastModified","items","filter","set","bindOne","id","resolveId","isNumber","item","get","defaultsPrototype","queryTransform","resource","basePath","forceTrailingSlash","httpConfig","log","console","a","b","info","error","deserialize","data","serialize","dsHttpAdapterPrototype","getPath","method","resourceConfig","getEndpoint","makePath","GET","url","config","HTTP","POST","attrs","copy","PUT","DEL","find","suffix","then","findAll","create","update","updateAll","destroy","destroyAll","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","removeCircular","substr","default","run"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","key","prop","configurable","value","writable","Object","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","i","j","registered","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","Defaults","queryTransform","resourceConfig","deserialize","data","serialize","log","error","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","a","b","info","getPath","method","getEndpoint","GET","url","config","HTTP","POST","attrs","PUT","DEL","find","suffix","then","findAll","create","update","updateAll","destroy","destroyAll","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index f3686de..fab568d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "2.2.2", + "version": "2.2.3", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -18,32 +18,39 @@ "url": "https://github.com/js-data/js-data-angular/blob/master/LICENSE" } ], - "main": "src/index.js", + "main": "dist/js-data-angular.js", "devDependencies": { + "babel-core": "^4.7.3", + "babel-loader": "^4.1.0", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", - "grunt-contrib-jshint": "0.11.0", "grunt-contrib-uglify": "0.8.0", "grunt-contrib-watch": "0.6.1", "grunt-karma": "0.10.1", "grunt-karma-coveralls": "2.5.3", + "grunt-webpack": "^1.0.8", + "jit-grunt": "0.9.1", + "jshint": "^2.6.3", + "jshint-loader": "^0.8.3", "karma": "0.12.31", "karma-chai": "0.1.0", "karma-chrome-launcher": "0.1.7", "karma-coverage": "0.2.7", - "karma-script-launcher": "0.1.0", "karma-firefox-launcher": "0.1.4", - "karma-phantomjs-launcher": "0.1.4", "karma-mocha": "0.1.10", + "karma-phantomjs-launcher": "0.1.4", + "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", "karma-spec-reporter": "0.0.16", "time-grunt": "1.1.0", - "jit-grunt": "0.9.1" + "webpack": "^1.7.2", + "webpack-dev-server": "^1.7.0" }, "scripts": { "test": "grunt test" }, "dependencies": { + "angular": ">=1.1.0", "js-data": ">=1.1.0" } } diff --git a/src/index.js b/src/index.js index fa76644..477fd4e 100644 --- a/src/index.js +++ b/src/index.js @@ -1,374 +1,372 @@ /*jshint loopfunc:true*/ -(function (root, factory) { - 'use strict'; - - if (typeof define === 'function' && define.amd) { - define(['angular', 'js-data'], function (angular, JSData) { - return factory(root, angular, JSData, undefined); - }); - } else if (typeof exports === 'object' && typeof module === 'object') { - module.exports = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); - } else if (typeof exports === 'object') { - exports.jsDataAngularModuleName = factory(root, require('angular') || root.angular, require('js-data') || root.JSData, undefined); - } else { - root.jsDataAngularModuleName = factory(root, root.angular, root.JSData, undefined); +let angular, JSData; +try { + JSData = require('js-data'); +} catch (e) { +} + +if (!JSData) { + try { + JSData = window.JSData; + } catch (e) { } -}(this, function (window, angular, JSData, undefined) { - 'use strict'; - - if (!JSData || !angular) { - throw new Error('js-data and angular must be loaded!'); +} +if (!JSData) { + throw new Error('js-data must be loaded!'); +} +try { + angular = require('angular'); +} catch (e) { +} + +if (!angular) { + try { + angular = window.angular; + } catch (e) { } - - var DSUtils = JSData.DSUtils; - - var deepMixIn = DSUtils.deepMixIn; - var httpLoaded = false; - - var adapters = [ - { - project: 'js-data-http', - name: 'http', - class: 'DSHttpAdapter' - }, - { - project: 'js-data-localstorage', - name: 'localstorage', - class: 'DSLocalStorageAdapter' - }, - { - project: 'js-data-localforage', - name: 'localforage', - class: 'DSLocalForageAdapter' - }, - { - project: 'js-data-firebase', - name: 'firebase', - class: 'DSFirebaseAdapter' - } - ]; - - var functionsToWrap = [ - 'compute', - 'digest', - 'eject', - 'inject', - 'link', - 'linkAll', - 'linkInverse', - 'unlinkInverse' - ]; - - function Defaults() { - +} +if (!angular) { + throw new Error('angular must be loaded!'); +} + +let DSUtils = JSData.DSUtils; +let DSErrors = JSData.DSErrors; +let deepMixIn = DSUtils.deepMixIn; +let copy = DSUtils.copy; +let removeCircular = DSUtils.removeCircular; +let isString = DSUtils.isString; +let isNumber = DSUtils.isNumber; +let makePath = DSUtils.makePath; +let httpLoaded = false; + +let adapters = [ + { + project: 'js-data-http', + name: 'http', + class: 'DSHttpAdapter' + }, + { + project: 'js-data-localstorage', + name: 'localstorage', + class: 'DSLocalStorageAdapter' + }, + { + project: 'js-data-localforage', + name: 'localforage', + class: 'DSLocalForageAdapter' + }, + { + project: 'js-data-firebase', + name: 'firebase', + class: 'DSFirebaseAdapter' } +]; + +let functionsToWrap = [ + 'compute', + 'digest', + 'eject', + 'inject', + 'link', + 'linkAll', + 'linkInverse', + 'unlinkInverse' +]; + +function registerAdapter(adapter) { + let Adapter; + + try { + Adapter = require(adapter.project); + } catch (e) { - function DSHttpAdapter(options) { - this.defaults = new Defaults(); - deepMixIn(this.defaults, options); } - function registerAdapter(adapter) { - var Adapter; - - try { - Adapter = require(adapter.project); - } catch (e) { + if (!Adapter) { + Adapter = window[adapter.class]; + } + if (Adapter) { + if (adapter.name === 'http') { + httpLoaded = true; } + adapter.loaded = true; + angular.module('js-data').provider(adapter.class, function () { + let _this = this; + _this.defaults = {}; + _this.$get = [() => new Adapter(_this.defaults)]; + }); + } +} - if (!Adapter) { - Adapter = window[adapter.class]; - } +class DSProvider { + constructor() { + let _this = this; + let deps = []; - if (Adapter) { - if (adapter.name === 'http') { - httpLoaded = true; + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].loaded) { + deps.push(adapters[i].class); } - adapter.loaded = true; - angular.module('js-data').provider(adapter.class, function () { - var _this = this; - _this.defaults = {}; - _this.$get = [function () { - return new Adapter(_this.defaults); - }]; - }); } - } - angular.module('js-data', ['ng']) - .value('DSUtils', JSData.DSUtils) - .value('DSErrors', JSData.DSErrors) - .provider('DS', function () { + _this.defaults = {}; - var _this = this; - var DSErrors = JSData.DSErrors; - var deps = []; + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + let _this = this; - for (var i = 0; i < adapters.length; i++) { - if (adapters[i].loaded) { - deps.push(adapters[i].class); - } - } - - _this.defaults = {}; + params = params || {}; - JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { - var _this = this; - - params = params || {}; + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!DSUtils.isObject(params)) { + throw new DSErrors.IA('"params" must be an object!'); + } else if (!DSUtils.isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!DSUtils.isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isObject(params)) { - throw new DSErrors.IA('"params" must be an object!'); - } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); + try { + return scope.$watch(() => _this.lastModified(resourceName), () => { + let items = _this.filter(resourceName, params); + DSUtils.set(scope, expr, items); + if (cb) { + cb(null, items); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; } + } + }; - try { - return scope.$watch(function () { - return _this.lastModified(resourceName); - }, function () { - var items = _this.filter(resourceName, params); - DSUtils.set(scope, expr, items); - if (cb) { - cb(null, items); - } - }); - } catch (err) { + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + let _this = this; + + id = DSUtils.resolveId(_this.definitions[resourceName], id); + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { + throw new DSErrors.IA('"id" must be a string or a number!'); + } else if (!DSUtils.isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!DSUtils.isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } + + try { + return scope.$watch(() => _this.lastModified(resourceName, id), () => { + let item = _this.get(resourceName, id); + DSUtils.set(scope, expr, item); if (cb) { - cb(err); - } else { - throw err; + cb(null, item); } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; } - }; - - JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { - var _this = this; - - id = DSUtils.resolveId(_this.definitions[resourceName], id); - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { - throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } + } + }; + + function load(...args) { + let $rootScope = args[args.length - 2]; + let $q = args[args.length - 1]; + let store = new JSData.DS(_this.defaults); + let originals = {}; + + function QPromise(executor) { + let deferred = $q.defer(); try { - return scope.$watch(function () { - return _this.lastModified(resourceName, id); - }, function () { - var item = _this.get(resourceName, id); - DSUtils.set(scope, expr, item); - if (cb) { - cb(null, item); - } - }); + executor.call(undefined, + angular.bind(deferred, deferred.resolve), + angular.bind(deferred, deferred.reject)); } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } + deferred.reject(err); } - }; - - function load() { - var args = Array.prototype.slice.call(arguments); - var $rootScope = args[args.length - 2]; - var $q = args[args.length - 1]; - var store = new JSData.DS(_this.defaults); - var originals = {}; - - function QPromise(executor) { - var deferred = $q.defer(); - - try { - executor.call(undefined, - angular.bind(deferred, deferred.resolve), - angular.bind(deferred, deferred.reject)); - } catch (err) { - deferred.reject(err); - } - return deferred.promise; - } + return deferred.promise; + } - QPromise.all = $q.all; - QPromise.when = $q.when; - QPromise.reject = $q.reject; + QPromise.all = $q.all; + QPromise.when = $q.when; + QPromise.reject = $q.reject; - DSUtils.Promise = QPromise; + DSUtils.Promise = QPromise; - // Register any adapters that have been loaded - if (args.length) { - for (var i = 0; i < args.length; i++) { - for (var j = 0; j < adapters.length; j++) { - if (adapters[j].loaded && !adapters[j].registered) { - adapters[j].registered = true; - store.registerAdapter(adapters[j].name, args[i]); - } + // Register any adapters that have been loaded + if (args.length) { + for (var i = 0; i < args.length; i++) { + for (var j = 0; j < adapters.length; j++) { + if (adapters[j].loaded && !adapters[j].registered) { + adapters[j].registered = true; + store.registerAdapter(adapters[j].name, args[i]); } } } + } - // Wrap certain sync functions with $apply - for (var k = 0; k < functionsToWrap.length; k++) { - originals[functionsToWrap[k]] = store[functionsToWrap[k]]; - store[functionsToWrap[k]] = (function (name) { - return function () { - var args = arguments; - if (!$rootScope.$$phase) { - return $rootScope.$apply(function () { - return originals[name].apply(store, args); - }); - } - return originals[name].apply(store, args); - }; - })(functionsToWrap[k]); - } - - // Hook into the digest loop - if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { - $rootScope.$watch(function () { - store.observe.Platform.performMicrotaskCheckpoint(); - }); - } - - return store; + // Wrap certain sync functions with $apply + for (var k = 0; k < functionsToWrap.length; k++) { + let name = functionsToWrap[k]; + originals[name] = store[name]; + store[name] = (...args) => { + if (!$rootScope.$$phase) { + return $rootScope.$apply(() => originals[name].apply(store, args)); + } + return originals[name].apply(store, args); + }; } - deps.push('$rootScope'); - deps.push('$q'); - deps.push(load); + // Hook into the digest loop + if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { + $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint()); + } - _this.$get = deps; - }); + return store; + } + deps.push('$rootScope'); + deps.push('$q'); + deps.push(load); - for (var i = 0; i < adapters.length; i++) { - registerAdapter(adapters[i]); + _this.$get = deps; } +} +angular.module('js-data', ['ng']) + .value('DSUtils', JSData.DSUtils) + .value('DSErrors', JSData.DSErrors) + .provider('DS', DSProvider); + + +for (var i = 0; i < adapters.length; i++) { + registerAdapter(adapters[i]); +} - if (!httpLoaded) { - var defaultsPrototype = Defaults.prototype; +if (!httpLoaded) { - defaultsPrototype.queryTransform = function (resource, params) { + class Defaults { + queryTransform(resourceConfig, params) { return params; - }; + } + + deserialize(resourceConfig, data) { + return data ? ('data' in data ? data.data : data) : data; + } - defaultsPrototype.basePath = ''; + serialize(resourceConfig, data) { + return data; + } - defaultsPrototype.forceTrailingSlash = ''; + log() { - defaultsPrototype.httpConfig = {}; + } - defaultsPrototype.log = console ? function (a, b) { - console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - } : function () { - }; + error() { - defaultsPrototype.error = console ? function (a, b) { - console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - } : function () { - }; + } + } + let defaultsPrototype = Defaults.prototype; - defaultsPrototype.deserialize = function (resource, data) { - return data ? ('data' in data ? data.data : data) : data; - }; + defaultsPrototype.basePath = ''; - defaultsPrototype.serialize = function (resource, data) { - return data; - }; + defaultsPrototype.forceTrailingSlash = ''; + + defaultsPrototype.httpConfig = {}; - var dsHttpAdapterPrototype = DSHttpAdapter.prototype; + class DSHttpAdapter { + constructor(options) { + this.defaults = new Defaults(); + if (console) { + this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b); + } + if (console) { + this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b); + } + deepMixIn(this.defaults, options); + } - dsHttpAdapterPrototype.getPath = function (method, resourceConfig, id, options) { - var _this = this; + getPath(method, resourceConfig, id, options) { + let _this = this; options = options || {}; - var args = [ + let args = [ options.basePath || _this.defaults.basePath || resourceConfig.basePath, - resourceConfig.getEndpoint((DSUtils.isString(id) || DSUtils.isNumber(id) || method === 'create') ? id : null, options) + resourceConfig.getEndpoint((isString(id) || isNumber(id) || method === 'create') ? id : null, options) ]; if (method === 'find' || method === 'update' || method === 'destroy') { args.push(id); } - return DSUtils.makePath.apply(DSUtils, args); - }; + return makePath.apply(DSUtils, args); + } - dsHttpAdapterPrototype.GET = function (url, config) { + GET(url, config) { config = config || {}; if (!('method' in config)) { config.method = 'get'; } return this.HTTP(deepMixIn(config, { - url: url + url })); - }; + } - dsHttpAdapterPrototype.POST = function (url, attrs, config) { + POST(url, attrs, config) { config = config || {}; config = DSUtils.copy(config); if (!('method' in config)) { config.method = 'post'; } return this.HTTP(deepMixIn(config, { - url: url, + url, data: attrs })); - }; + } - dsHttpAdapterPrototype.PUT = function (url, attrs, config) { + PUT(url, attrs, config) { config = config || {}; if (!('method' in config)) { config.method = 'put'; } return this.HTTP(deepMixIn(config, { - url: url, + url, data: attrs || {} })); - }; + } - dsHttpAdapterPrototype.DEL = function (url, config) { + DEL(url, config) { config = config || {}; if (!('method' in config)) { config.method = 'delete'; } return this.HTTP(deepMixIn(config, { - url: url + url })); - }; + } - dsHttpAdapterPrototype.find = function (resourceConfig, id, options) { - var _this = this; - options = options || {}; + find(resourceConfig, id, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.GET( _this.getPath('find', resourceConfig, id, options), options - ).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - if (!item) { - return JSData.DSUtils.Promise.reject(new Error('Not Found!')); - } else { - return item; - } + ).then(data => { + let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? JSData.DSUtils.Promise.reject(new Error('Not Found!')) : item; }); - }; + } - dsHttpAdapterPrototype.findAll = function (resourceConfig, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); + findAll(resourceConfig, params, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; if (params) { @@ -378,14 +376,12 @@ return _this.GET( _this.getPath('findAll', resourceConfig, params, options), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } - dsHttpAdapterPrototype.create = function (resourceConfig, attrs, options) { - var _this = this; - options = options || {}; + create(resourceConfig, attrs, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; options.params = _this.defaults.queryTransform(resourceConfig, options.params); @@ -393,14 +389,12 @@ _this.getPath('create', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } - dsHttpAdapterPrototype.update = function (resourceConfig, id, attrs, options) { - var _this = this; - options = options || {}; + update(resourceConfig, id, attrs, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; options.params = _this.defaults.queryTransform(resourceConfig, options.params); @@ -408,15 +402,12 @@ _this.getPath('update', resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } - dsHttpAdapterPrototype.updateAll = function (resourceConfig, attrs, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); + updateAll(resourceConfig, attrs, params, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; if (params) { @@ -427,29 +418,24 @@ _this.getPath('updateAll', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } - dsHttpAdapterPrototype.destroy = function (resourceConfig, id, options) { - var _this = this; - options = options || {}; + destroy(resourceConfig, id, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.DEL( _this.getPath('destroy', resourceConfig, id, options), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } - dsHttpAdapterPrototype.destroyAll = function (resourceConfig, params, options) { - var _this = this; - options = options || {}; - options = DSUtils.copy(options); + destroyAll(resourceConfig, params, options) { + let _this = this; + options = options ? copy(options) : {}; options.suffix = options.suffix || resourceConfig.suffix; options.params = options.params || {}; if (params) { @@ -459,33 +445,36 @@ return this.DEL( _this.getPath('destroyAll', resourceConfig, params, options), options - ).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - }; + ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); + } + } + + let dsHttpAdapterPrototype = DSHttpAdapter.prototype; - angular.module('js-data').provider('DSHttpAdapter', function () { - var _this = this; + class DSHttpAdapterProvider { + constructor() { + let _this = this; _this.defaults = {}; - _this.$get = ['$http', 'DS', '$q', function ($http, DS, $q) { + _this.$get = ['$http', 'DS', '$q', ($http, DS, $q) => { dsHttpAdapterPrototype.HTTP = function (config) { - var _this = this; - var start = new Date(); + let _this = this; + let start = new Date(); + config = copy(config); config = deepMixIn(config, _this.defaults.httpConfig); if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { config.url += '/'; } config.method = config.method.toUpperCase(); if (typeof config.data === 'object') { - config.data = DSUtils.removeCircular(config.data); + config.data = removeCircular(config.data); } - var suffix = config.suffix || _this.defaults.suffix; + let suffix = config.suffix || _this.defaults.suffix; if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { config.url += suffix; } function logResponse(data) { - var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + let str = `${start.toUTCString()} - ${data.config.method.toUpperCase()} ${data.config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`; if (data.status >= 200 && data.status < 300) { if (_this.defaults.log) { _this.defaults.log(str, data); @@ -493,7 +482,7 @@ return data; } else { if (_this.defaults.error) { - _this.defaults.error('FAILED: ' + str, data); + _this.defaults.error(`FAILED: ${str}`, data); } return $q.reject(data); } @@ -502,17 +491,15 @@ return $http(config).then(logResponse, logResponse); }; - var adapter = new DSHttpAdapter(_this.defaults); - DS.registerAdapter('http', adapter, { default: true }); + let adapter = new DSHttpAdapter(_this.defaults); + DS.registerAdapter('http', adapter, { 'default': true }); return adapter; }]; - }); - - angular.module('js-data').run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { - DS.registerAdapter('http', DSHttpAdapter, { default: true }); - }]); + } } + angular.module('js-data').provider('DSHttpAdapter', DSHttpAdapterProvider); +} +angular.module('js-data').run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => DS.registerAdapter('http', DSHttpAdapter, { 'default': true })]); - // return the module name - return 'js-data'; -})); +// return the module name +export default 'js-data'; From a5aa4770ba0822df2fe13a9394dca231b8ffae78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Mahieu?= <mahieuloic@gmail.com> Date: Wed, 15 Apr 2015 10:33:04 +0200 Subject: [PATCH 05/32] Add support of `js-data-sql` adapter --- src/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.js b/src/index.js index 477fd4e..e1046ce 100644 --- a/src/index.js +++ b/src/index.js @@ -59,6 +59,11 @@ let adapters = [ project: 'js-data-firebase', name: 'firebase', class: 'DSFirebaseAdapter' + }, + { + project: 'js-data-sql', + name: 'sql', + class: 'DSSqlAdapter' } ]; From 846c4c0d7392523bfdad1ebff527c24e33731acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Mahieu?= <mahieuloic@gmail.com> Date: Wed, 15 Apr 2015 10:36:00 +0200 Subject: [PATCH 06/32] Fix adapter registration when multiple are available --- src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.js b/src/index.js index e1046ce..8acfbbb 100644 --- a/src/index.js +++ b/src/index.js @@ -213,6 +213,7 @@ class DSProvider { if (adapters[j].loaded && !adapters[j].registered) { adapters[j].registered = true; store.registerAdapter(adapters[j].name, args[i]); + break; } } } From 7131efeb7cf3fc0f0cf3c7b1c226247c981ba79b Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 15 Apr 2015 09:57:02 -0600 Subject: [PATCH 07/32] Stable Version 2.3.0. Merged #328 --- CHANGELOG.md | 8 + Gruntfile.js | 4 +- bower.json | 7 +- circle.yml | 4 + dist/js-data-angular.js | 469 ++++++++++---------- dist/js-data-angular.min.js | 4 +- dist/js-data-angular.min.map | 2 +- package.json | 24 +- src/index.js | 10 +- test/datastore/async_methods/update.test.js | 40 +- 10 files changed, 305 insertions(+), 267 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05391f8..5fba3c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +##### 2.3.0 - 15 April 2015 + +###### Backwards compatible API changes +- #328 - Add support for `js-data-sql` adapter + +###### Backwards compatible bug fixes +- #328 - Fixed adapter registration + ##### 2.2.3 - 08 March 2015 ###### Other diff --git a/Gruntfile.js b/Gruntfile.js index ca7988b..260ac9a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -104,11 +104,11 @@ module.exports = function (grunt) { }, module: { loaders: [ - { test: /(src)(.+)\.js$/, exclude: /node_modules/, loader: 'babel-loader?blacklist=useStrict' } + { test: /(.+)\.js$/, exclude: /node_modules/, loader: 'babel-loader?blacklist=useStrict' } ], preLoaders: [ { - test: /(src)(.+)\.js$|(test)(.+)\.js$/, // include .js files + test: /(.+)\.js$/, // include .js files exclude: /node_modules/, // exclude any and all files in the node_modules folder loader: "jshint-loader?failOnHint=true" } diff --git a/bower.json b/bower.json index a1f3e2a..4c785fa 100644 --- a/bower.json +++ b/bower.json @@ -28,7 +28,10 @@ "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { - "js-data": ">=1.1.0", - "angular": ">=1.0.3" + "js-data": ">=1.5.7", + "angular": ">=1.1.0" + }, + "resolutions": { + "angular": "1.3.2" } } diff --git a/circle.yml b/circle.yml index 74b0946..7ffcd64 100644 --- a/circle.yml +++ b/circle.yml @@ -1,3 +1,7 @@ +general: + branches: + ignore: + - gh-pages # list of branches to ignore dependencies: pre: - bower install diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index bacca2a..b6bc7ea 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 2.2.3 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 2.3.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -63,10 +63,13 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - var _createClass = (function () { function defineProperties(target, props) { for (var key in props) { var prop = props[key]; prop.configurable = true; if (prop.value) prop.writable = true; } Object.defineProperties(target, props); } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + Object.defineProperty(exports, '__esModule', { + value: true + }); /*jshint loopfunc:true*/ var angular = undefined, JSData = undefined; @@ -80,7 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap } catch (e) {} } if (!JSData) { - throw new Error("js-data must be loaded!"); + throw new Error('js-data must be loaded!'); } try { angular = __webpack_require__(2); @@ -92,7 +95,7 @@ return /******/ (function(modules) { // webpackBootstrap } catch (e) {} } if (!angular) { - throw new Error("angular must be loaded!"); + throw new Error('angular must be loaded!'); } var DSUtils = JSData.DSUtils; @@ -106,24 +109,28 @@ return /******/ (function(modules) { // webpackBootstrap var httpLoaded = false; var adapters = [{ - project: "js-data-http", - name: "http", - "class": "DSHttpAdapter" + project: 'js-data-http', + name: 'http', + 'class': 'DSHttpAdapter' }, { - project: "js-data-localstorage", - name: "localstorage", - "class": "DSLocalStorageAdapter" + project: 'js-data-localstorage', + name: 'localstorage', + 'class': 'DSLocalStorageAdapter' }, { - project: "js-data-localforage", - name: "localforage", - "class": "DSLocalForageAdapter" + project: 'js-data-localforage', + name: 'localforage', + 'class': 'DSLocalForageAdapter' }, { - project: "js-data-firebase", - name: "firebase", - "class": "DSFirebaseAdapter" + project: 'js-data-firebase', + name: 'firebase', + 'class': 'DSFirebaseAdapter' + }, { + project: 'js-data-sql', + name: 'sql', + 'class': 'DSSqlAdapter' }]; - var functionsToWrap = ["compute", "digest", "eject", "inject", "link", "linkAll", "linkInverse", "unlinkInverse"]; + var functionsToWrap = ['compute', 'digest', 'eject', 'inject', 'link', 'linkAll', 'linkInverse', 'unlinkInverse']; function registerAdapter(adapter) { var Adapter = undefined; @@ -133,15 +140,15 @@ return /******/ (function(modules) { // webpackBootstrap } catch (e) {} if (!Adapter) { - Adapter = window[adapter["class"]]; + Adapter = window[adapter['class']]; } if (Adapter) { - if (adapter.name === "http") { + if (adapter.name === 'http') { httpLoaded = true; } adapter.loaded = true; - angular.module("js-data").provider(adapter["class"], function () { + angular.module('js-data').provider(adapter['class'], function () { var _this = this; _this.defaults = {}; _this.$get = [function () { @@ -159,7 +166,7 @@ return /******/ (function(modules) { // webpackBootstrap for (var i = 0; i < adapters.length; i++) { if (adapters[i].loaded) { - deps.push(adapters[i]["class"]); + deps.push(adapters[i]['class']); } } @@ -173,11 +180,11 @@ return /******/ (function(modules) { // webpackBootstrap if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); } else if (!DSUtils.isObject(params)) { - throw new DSErrors.IA("\"params\" must be an object!"); + throw new DSErrors.IA('"params" must be an object!'); } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA("\"scope\" must be an object!"); + throw new DSErrors.IA('"scope" must be an object!'); } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA("\"expr\" must be a string!"); + throw new DSErrors.IA('"expr" must be a string!'); } try { @@ -206,11 +213,11 @@ return /******/ (function(modules) { // webpackBootstrap if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { - throw new DSErrors.IA("\"id\" must be a string or a number!"); + throw new DSErrors.IA('"id" must be a string or a number!'); } else if (!DSUtils.isObject(scope)) { - throw new DSErrors.IA("\"scope\" must be an object!"); + throw new DSErrors.IA('"scope" must be an object!'); } else if (!DSUtils.isString(expr)) { - throw new DSErrors.IA("\"expr\" must be a string!"); + throw new DSErrors.IA('"expr" must be a string!'); } try { @@ -267,33 +274,36 @@ return /******/ (function(modules) { // webpackBootstrap if (adapters[j].loaded && !adapters[j].registered) { adapters[j].registered = true; store.registerAdapter(adapters[j].name, args[i]); + break; } } } } + var _loop = function () { + var name = functionsToWrap[k]; + originals[name] = store[name]; + store[name] = function () { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + if (!$rootScope.$$phase) { + return $rootScope.$apply(function () { + return originals[name].apply(store, args); + }); + } + return originals[name].apply(store, args); + }; + }; + // Wrap certain sync functions with $apply for (var k = 0; k < functionsToWrap.length; k++) { - (function () { - var name = functionsToWrap[k]; - originals[name] = store[name]; - store[name] = function () { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - if (!$rootScope.$$phase) { - return $rootScope.$apply(function () { - return originals[name].apply(store, args); - }); - } - return originals[name].apply(store, args); - }; - })(); + _loop(); } // Hook into the digest loop - if (typeof Object.observe !== "function" || typeof Array.observe !== "function") { + if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { $rootScope.$watch(function () { return store.observe.Platform.performMicrotaskCheckpoint(); }); @@ -302,14 +312,14 @@ return /******/ (function(modules) { // webpackBootstrap return store; } - deps.push("$rootScope"); - deps.push("$q"); + deps.push('$rootScope'); + deps.push('$q'); deps.push(load); _this.$get = deps; }; - angular.module("js-data", ["ng"]).value("DSUtils", JSData.DSUtils).value("DSErrors", JSData.DSErrors).provider("DS", DSProvider); + angular.module('js-data', ['ng']).value('DSUtils', JSData.DSUtils).value('DSErrors', JSData.DSErrors).provider('DS', DSProvider); for (var i = 0; i < adapters.length; i++) { registerAdapter(adapters[i]); @@ -322,38 +332,37 @@ return /******/ (function(modules) { // webpackBootstrap _classCallCheck(this, Defaults); } - _createClass(Defaults, { - queryTransform: { - value: function queryTransform(resourceConfig, params) { - return params; - } - }, - deserialize: { - value: function deserialize(resourceConfig, data) { - return data ? "data" in data ? data.data : data : data; - } - }, - serialize: { - value: function serialize(resourceConfig, data) { - return data; - } - }, - log: { - value: function log() {} - }, - error: { - value: function error() {} + _createClass(Defaults, [{ + key: 'queryTransform', + value: function queryTransform(resourceConfig, params) { + return params; } - }); + }, { + key: 'deserialize', + value: function deserialize(resourceConfig, data) { + return data ? 'data' in data ? data.data : data : data; + } + }, { + key: 'serialize', + value: function serialize(resourceConfig, data) { + return data; + } + }, { + key: 'log', + value: function log() {} + }, { + key: 'error', + value: function error() {} + }]); return Defaults; })(); var defaultsPrototype = Defaults.prototype; - defaultsPrototype.basePath = ""; + defaultsPrototype.basePath = ''; - defaultsPrototype.forceTrailingSlash = ""; + defaultsPrototype.forceTrailingSlash = ''; defaultsPrototype.httpConfig = {}; @@ -364,171 +373,170 @@ return /******/ (function(modules) { // webpackBootstrap this.defaults = new Defaults(); if (console) { this.defaults.log = function (a, b) { - return console[typeof console.info === "function" ? "info" : "log"](a, b); + return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); }; } if (console) { this.defaults.error = function (a, b) { - return console[typeof console.error === "function" ? "error" : "log"](a, b); + return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); }; } deepMixIn(this.defaults, options); } - _createClass(DSHttpAdapter, { - getPath: { - value: function getPath(method, resourceConfig, id, options) { - var _this = this; - options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === "create" ? id : null, options)]; - if (method === "find" || method === "update" || method === "destroy") { - args.push(id); - } - return makePath.apply(DSUtils, args); - } - }, - GET: { - value: function GET(url, config) { - config = config || {}; - if (!("method" in config)) { - config.method = "get"; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, - POST: { - value: function POST(url, attrs, config) { - config = config || {}; - config = DSUtils.copy(config); - if (!("method" in config)) { - config.method = "post"; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); - } - }, - PUT: { - value: function PUT(url, attrs, config) { - config = config || {}; - if (!("method" in config)) { - config.method = "put"; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); - } - }, - DEL: { - value: function DEL(url, config) { - config = config || {}; - if (!("method" in config)) { - config.method = "delete"; - } - return this.HTTP(deepMixIn(config, { - url: url - })); + _createClass(DSHttpAdapter, [{ + key: 'getPath', + value: function getPath(method, resourceConfig, id, options) { + var _this = this; + options = options || {}; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + if (method === 'find' || method === 'update' || method === 'destroy') { + args.push(id); } - }, - find: { - value: function find(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET(_this.getPath("find", resourceConfig, id, options), options).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - return !item ? JSData.DSUtils.Promise.reject(new Error("Not Found!")) : item; - }); + return makePath.apply(DSUtils, args); + } + }, { + key: 'GET', + value: function GET(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'get'; } - }, - findAll: { - value: function findAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET(_this.getPath("findAll", resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'POST', + value: function POST(url, attrs, config) { + config = config || {}; + config = DSUtils.copy(config); + if (!('method' in config)) { + config.method = 'post'; } - }, - create: { - value: function create(resourceConfig, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST(_this.getPath("create", resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs + })); + } + }, { + key: 'PUT', + value: function PUT(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'put'; } - }, - update: { - value: function update(resourceConfig, id, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT(_this.getPath("update", resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs || {} + })); + } + }, { + key: 'DEL', + value: function DEL(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'delete'; } - }, - updateAll: { - value: function updateAll(resourceConfig, attrs, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT(_this.getPath("updateAll", resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'find', + value: function find(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { + var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? JSData.DSUtils.Promise.reject(new Error('Not Found!')) : item; + }); + } + }, { + key: 'findAll', + value: function findAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); } - }, - destroy: { - value: function destroy(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL(_this.getPath("destroy", resourceConfig, id, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'create', + value: function create(resourceConfig, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.POST(_this.getPath('create', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'update', + value: function update(resourceConfig, id, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.PUT(_this.getPath('update', resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'updateAll', + value: function updateAll(resourceConfig, attrs, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); } - }, - destroyAll: { - value: function destroyAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL(_this.getPath("destroyAll", resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); + return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroy', + value: function destroy(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroyAll', + value: function destroyAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); } + return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); } - }); + }]); return DSHttpAdapter; })(); @@ -540,17 +548,17 @@ return /******/ (function(modules) { // webpackBootstrap var _this = this; _this.defaults = {}; - _this.$get = ["$http", "DS", "$q", function ($http, DS, $q) { + _this.$get = ['$http', 'DS', '$q', function ($http, DS, $q) { dsHttpAdapterPrototype.HTTP = function (config) { var _this = this; var start = new Date(); config = copy(config); config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== "/") { - config.url += "/"; + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { + config.url += '/'; } config.method = config.method.toUpperCase(); - if (typeof config.data === "object") { + if (typeof config.data === 'object') { config.data = removeCircular(config.data); } var suffix = config.suffix || _this.defaults.suffix; @@ -559,7 +567,7 @@ return /******/ (function(modules) { // webpackBootstrap } function logResponse(data) { - var str = "" + start.toUTCString() + " - " + data.config.method.toUpperCase() + " " + data.config.url + " - " + data.status + " " + (new Date().getTime() - start.getTime()) + "ms"; + var str = '' + start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; if (data.status >= 200 && data.status < 300) { if (_this.defaults.log) { _this.defaults.log(str, data); @@ -567,7 +575,7 @@ return /******/ (function(modules) { // webpackBootstrap return data; } else { if (_this.defaults.error) { - _this.defaults.error("FAILED: " + str, data); + _this.defaults.error('FAILED: ' + str, data); } return $q.reject(data); } @@ -577,20 +585,21 @@ return /******/ (function(modules) { // webpackBootstrap }; var adapter = new DSHttpAdapter(_this.defaults); - DS.registerAdapter("http", adapter, { "default": true }); + DS.registerAdapter('http', adapter, { 'default': true }); return adapter; }]; }; - angular.module("js-data").provider("DSHttpAdapter", DSHttpAdapterProvider); + angular.module('js-data').provider('DSHttpAdapter', DSHttpAdapterProvider); })(); } - angular.module("js-data").run(["DS", "DSHttpAdapter", function (DS, DSHttpAdapter) { - return DS.registerAdapter("http", DSHttpAdapter, { "default": true }); + angular.module('js-data').run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { + return DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); }]); // return the module name - module.exports = "js-data"; + exports['default'] = 'js-data'; + module.exports = exports['default']; /***/ }, /* 1 */ diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 6a373d9..abdb04d 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 2.2.3 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 2.3.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c in b){var d=b[c];d.configurable=!0,d.value&&(d.writable=!0)}Object.defineProperties(a,b)}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)s[n].loaded&&!s[n].registered&&(s[n].registered=!0,k.registerAdapter(s[n].name,d[m]));for(var o=0;o<t.length;o++)!function(){var a=t[o];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}}();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,{queryTransform:{value:function(a,b){return b}},deserialize:{value:function(a,b){return b&&"data"in b?b.data:b}},serialize:{value:function(a,b){return b}},log:{value:function(){}},error:{value:function(){}}}),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,{getPath:{value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},GET:{value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},POST:{value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},PUT:{value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},DEL:{value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},find:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},findAll:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},create:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},update:{value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},updateAll:{value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},destroy:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},destroyAll:{value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}}),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),a.exports="js-data"},function(b){if("undefined"==typeof a){var c=new Error('Cannot find module "undefined"');throw c.code="MODULE_NOT_FOUND",c}b.exports=a},function(a){if("undefined"==typeof b){var c=new Error('Cannot find module "angular"');throw c.code="MODULE_NOT_FOUND",c}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)if(s[n].loaded&&!s[n].registered){s[n].registered=!0,k.registerAdapter(s[n].name,d[m]);break}for(var o=function(){var a=t[p];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}},p=0;p<t.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),b["default"]="js-data",a.exports=b["default"]},function(b,c,d){if("undefined"==typeof a){var e=new Error('Cannot find module "undefined"');throw e.code="MODULE_NOT_FOUND",e}b.exports=a},function(a,c,d){if("undefined"==typeof b){var e=new Error('Cannot find module "angular"');throw e.code="MODULE_NOT_FOUND",e}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index c9e321e..78693aa 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","key","prop","configurable","value","writable","Object","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","i","j","registered","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","Defaults","queryTransform","resourceConfig","deserialize","data","serialize","log","error","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","a","b","info","getPath","method","getEndpoint","GET","url","config","HTTP","POST","attrs","PUT","DEL","find","suffix","then","findAll","create","update","updateAll","destroy","destroyAll","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","value","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","log","a","b","info","error","method","getEndpoint","url","config","HTTP","attrs","suffix","queryTransform","GET","getPath","then","deserialize","POST","serialize","PUT","DEL","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index fab568d..9cb3939 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "2.2.3", + "version": "2.3.0", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -20,18 +20,18 @@ ], "main": "dist/js-data-angular.js", "devDependencies": { - "babel-core": "^4.7.3", - "babel-loader": "^4.1.0", + "babel-core": "5.1.9", + "babel-loader": "5.0.0", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", - "grunt-contrib-uglify": "0.8.0", + "grunt-contrib-uglify": "0.9.1", "grunt-contrib-watch": "0.6.1", "grunt-karma": "0.10.1", "grunt-karma-coveralls": "2.5.3", - "grunt-webpack": "^1.0.8", + "grunt-webpack": "1.0.8", "jit-grunt": "0.9.1", - "jshint": "^2.6.3", - "jshint-loader": "^0.8.3", + "jshint": "2.7.0", + "jshint-loader": "0.8.3", "karma": "0.12.31", "karma-chai": "0.1.0", "karma-chrome-launcher": "0.1.7", @@ -41,16 +41,16 @@ "karma-phantomjs-launcher": "0.1.4", "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", - "karma-spec-reporter": "0.0.16", + "karma-spec-reporter": "0.0.18", "time-grunt": "1.1.0", - "webpack": "^1.7.2", - "webpack-dev-server": "^1.7.0" + "webpack": "1.8.4", + "webpack-dev-server": "1.8.0" }, "scripts": { "test": "grunt test" }, - "dependencies": { + "peerDependencies": { "angular": ">=1.1.0", - "js-data": ">=1.1.0" + "js-data": ">=1.5.7" } } diff --git a/src/index.js b/src/index.js index 8acfbbb..5ff163d 100644 --- a/src/index.js +++ b/src/index.js @@ -43,27 +43,27 @@ let adapters = [ { project: 'js-data-http', name: 'http', - class: 'DSHttpAdapter' + 'class': 'DSHttpAdapter' }, { project: 'js-data-localstorage', name: 'localstorage', - class: 'DSLocalStorageAdapter' + 'class': 'DSLocalStorageAdapter' }, { project: 'js-data-localforage', name: 'localforage', - class: 'DSLocalForageAdapter' + 'class': 'DSLocalForageAdapter' }, { project: 'js-data-firebase', name: 'firebase', - class: 'DSFirebaseAdapter' + 'class': 'DSFirebaseAdapter' }, { project: 'js-data-sql', name: 'sql', - class: 'DSSqlAdapter' + 'class': 'DSSqlAdapter' } ]; diff --git a/test/datastore/async_methods/update.test.js b/test/datastore/async_methods/update.test.js index bfb07b1..174cf0d 100644 --- a/test/datastore/async_methods/update.test.js +++ b/test/datastore/async_methods/update.test.js @@ -102,20 +102,26 @@ describe('DS.update', function () { $httpBackend.flush(); - $httpBackend.expectPUT('http://test.angular-cache.com/user/4/comment/6', { content: 'stuff' }).respond(200, testComment2); + $httpBackend.expectPUT('http://test.angular-cache.com/user/4/comment/6', { content: 'stuff', other: 'stuff' }).respond(200, testComment2); var comment = DS.inject('comment', testComment2); - function onBeforeUpdate(resourceName, attrs) { - attrs.other = 'stuff'; - assert.equal(resourceName, 'comment'); - assert.deepEqual(angular.toJson(attrs), angular.toJson({ content: 'stuff', other: 'stuff' })); + function onBeforeUpdate(resource, attrs) { + try { + attrs.other = 'stuff'; + assert.equal(angular.toJson(attrs), angular.toJson({ content: 'stuff', other: 'stuff' })); + } catch (e) { + console.log(e.stack); + } } - function onAfterUpdate(resourceName, attrs) { - assert.equal(resourceName, 'comment'); - assert.deepEqual(angular.toJson(attrs), angular.toJson(testComment2)); - assert.isFalse(testComment2 === attrs); + function onAfterUpdate(resource, attrs) { + try { + assert.deepEqual(angular.toJson(attrs), angular.toJson(testComment2)); + assert.isFalse(testComment2 === attrs); + } catch (e) { + console.log(e.stack); + } } Comment.on('DS.beforeUpdate', onBeforeUpdate); @@ -128,8 +134,12 @@ describe('DS.update', function () { approvedBy: 4 } }).then(function (comment) { - assert.deepEqual(angular.toJson(comment), angular.toJson(testComment2)); - assert.deepEqual(angular.toJson(comment), angular.toJson(DS.get('comment', 6))); + try { + assert.deepEqual(angular.toJson(comment), angular.toJson(testComment2)); + assert.deepEqual(angular.toJson(comment), angular.toJson(DS.get('comment', 6))); + } catch (e) { + console.log(e.stack); + } }, function () { fail('Should not have failed!'); }); @@ -147,8 +157,12 @@ describe('DS.update', function () { approvedBy: false } }).then(function (comment) { - assert.deepEqual(angular.toJson(comment), angular.toJson(testComment2)); - assert.deepEqual(angular.toJson(comment), angular.toJson(DS.get('comment', 6))); + try { + assert.deepEqual(angular.toJson(comment), angular.toJson(testComment2)); + assert.deepEqual(angular.toJson(comment), angular.toJson(DS.get('comment', 6))); + } catch (e) { + console.log(e.stack); + } }, function () { fail('Should not have failed!'); }); From 72e310542799a03cf0ccf054e46583359cc72658 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 15 Apr 2015 10:19:31 -0600 Subject: [PATCH 08/32] Stable Version 2.4.0. #327 --- CHANGELOG.md | 5 +++++ dist/js-data-angular.js | 5 ++++- dist/js-data-angular.min.js | 4 ++-- dist/js-data-angular.min.map | 2 +- package.json | 2 +- src/index.js | 3 +++ 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fba3c3..93f0c37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +##### 2.4.0 - 15 April 2015 + +###### Backwards compatible API changes +- #327 - `bindOne` now updates computed properties on change + ##### 2.3.0 - 15 April 2015 ###### Backwards compatible API changes diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index b6bc7ea..bf234d3 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 2.3.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 2.4.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -225,6 +225,9 @@ return /******/ (function(modules) { // webpackBootstrap return _this.lastModified(resourceName, id); }, function () { var item = _this.get(resourceName, id); + if (item) { + _this.compute(resourceName, id); + } DSUtils.set(scope, expr, item); if (cb) { cb(null, item); diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index abdb04d..e88c1b2 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 2.3.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 2.4.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)if(s[n].loaded&&!s[n].registered){s[n].registered=!0,k.registerAdapter(s[n].name,d[m]);break}for(var o=function(){var a=t[p];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}},p=0;p<t.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),b["default"]="js-data",a.exports=b["default"]},function(b,c,d){if("undefined"==typeof a){var e=new Error('Cannot find module "undefined"');throw e.code="MODULE_NOT_FOUND",e}b.exports=a},function(a,c,d){if("undefined"==typeof b){var e=new Error('Cannot find module "angular"');throw e.code="MODULE_NOT_FOUND",e}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)if(s[n].loaded&&!s[n].registered){s[n].registered=!0,k.registerAdapter(s[n].name,d[m]);break}for(var o=function(){var a=t[p];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}},p=0;p<t.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),b["default"]="js-data",a.exports=b["default"]},function(b,c,d){if("undefined"==typeof a){var e=new Error('Cannot find module "undefined"');throw e.code="MODULE_NOT_FOUND",e}b.exports=a},function(a,c,d){if("undefined"==typeof b){var e=new Error('Cannot find module "angular"');throw e.code="MODULE_NOT_FOUND",e}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index 78693aa..b182301 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","value","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","log","a","b","info","error","method","getEndpoint","url","config","HTTP","attrs","suffix","queryTransform","GET","getPath","then","deserialize","POST","serialize","PUT","DEL","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","value","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","compute","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","log","a","b","info","error","method","getEndpoint","url","config","HTTP","attrs","suffix","queryTransform","GET","getPath","then","deserialize","POST","serialize","PUT","DEL","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 9cb3939..7103743 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "2.3.0", + "version": "2.4.0", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", diff --git a/src/index.js b/src/index.js index 5ff163d..c8ab825 100644 --- a/src/index.js +++ b/src/index.js @@ -166,6 +166,9 @@ class DSProvider { try { return scope.$watch(() => _this.lastModified(resourceName, id), () => { let item = _this.get(resourceName, id); + if (item) { + _this.compute(resourceName, id); + } DSUtils.set(scope, expr, item); if (cb) { cb(null, item); From f6322427cb500b8783649982da1e76e5ccea85df Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Fri, 17 Apr 2015 23:16:22 -0600 Subject: [PATCH 09/32] Stable Version 3.0.0-beta.1. --- .gitignore | 2 + CHANGELOG.md | 2 + Gruntfile.js | 10 +- bower.json | 6 +- build_examples/r.js/README.md | 3 + build_examples/r.js/app.js | 9 + build_examples/r.js/index.html | 14 + build_examples/r.js/main.js | 24 + build_examples/r.js/require.config.js | 6 + dist/js-data-angular.js | 687 +++++++++--------- dist/js-data-angular.min.js | 4 +- dist/js-data-angular.min.map | 2 +- karma.conf.js | 2 +- karma.start.js | 2 +- package.json | 21 +- src/index.js | 351 +-------- test/datastore/async_methods/create.test.js | 7 +- .../async_methods/loadRelations.test.js | 18 +- 18 files changed, 489 insertions(+), 681 deletions(-) create mode 100644 build_examples/r.js/README.md create mode 100644 build_examples/r.js/app.js create mode 100644 build_examples/r.js/index.html create mode 100644 build_examples/r.js/main.js create mode 100644 build_examples/r.js/require.config.js diff --git a/.gitignore b/.gitignore index c311dea..e2c404a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,5 @@ bower_components/ *.iml .idea/ + +build_examples/r.js/bundle.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 93f0c37..7b2c6e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +##### 3.0.0-beta.1 - 17 April 2015 + ##### 2.4.0 - 15 April 2015 ###### Backwards compatible API changes diff --git a/Gruntfile.js b/Gruntfile.js index 260ac9a..cd74a22 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -72,7 +72,7 @@ module.exports = function (grunt) { files: [ 'bower_components/angular-1.3.2/angular.js', 'bower_components/angular-mocks-1.3.2/angular-mocks.js', - 'bower_components/js-data/dist/js-data.js', + 'node_modules/js-data/dist/js-data.js', 'dist/js-data-angular.min.js', 'karma.start.js', 'test/**/*.js' @@ -87,24 +87,26 @@ module.exports = function (grunt) { }, webpack: { dist: { + debug: true, entry: './src/index.js', output: { filename: './dist/js-data-angular.js', - libraryTarget: 'umd', + libraryTarget: 'umd2', library: 'jsDataAngularModuleName' }, externals: { 'js-data': { - amd: 'js-data', + amd: 'JSData', commonjs: 'js-data', commonjs2: 'js-data', root: 'JSData' }, + 'axios': 'axios', 'angular': 'angular' }, module: { loaders: [ - { test: /(.+)\.js$/, exclude: /node_modules/, loader: 'babel-loader?blacklist=useStrict' } + { test: /(.+)\.js$/, loader: 'babel-loader?blacklist=useStrict' } ], preLoaders: [ { diff --git a/bower.json b/bower.json index 4c785fa..ce47a82 100644 --- a/bower.json +++ b/bower.json @@ -25,10 +25,12 @@ "angular-mocks-1.1.5": "angular-mocks-unstable#1.1.5", "angular-mocks-1.2.16": "angular-mocks#1.2.16", "angular-mocks-1.2.25": "angular-mocks#1.2.25", - "angular-mocks-1.3.2": "angular-mocks#1.3.2" + "angular-mocks-1.3.2": "angular-mocks#1.3.2", + "requirejs": "~2.1.17" }, "dependencies": { - "js-data": ">=1.5.7", + "js-data": "2.0.0-beta.3", + "js-data-http": "2.0.0-beta.3", "angular": ">=1.1.0" }, "resolutions": { diff --git a/build_examples/r.js/README.md b/build_examples/r.js/README.md new file mode 100644 index 0000000..f72e67f --- /dev/null +++ b/build_examples/r.js/README.md @@ -0,0 +1,3 @@ +`r.js -o require.config.js` will produce `bundle.js` + +In `index.html` switch `script/main` between `main` (load scripts dynamically) and `bundle` (load bundled scripts) diff --git a/build_examples/r.js/app.js b/build_examples/r.js/app.js new file mode 100644 index 0000000..6ead9cf --- /dev/null +++ b/build_examples/r.js/app.js @@ -0,0 +1,9 @@ +define('app', [ + 'angular', + 'js-data-angular' +], function (angular, jsDataModuleName) { + return angular.module('app', [jsDataModuleName]) + .run(function (DS, DSVersion, $rootScope) { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; + }); +}); diff --git a/build_examples/r.js/index.html b/build_examples/r.js/index.html new file mode 100644 index 0000000..582dbb7 --- /dev/null +++ b/build_examples/r.js/index.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<html> +<head> + <title>My App</title> + <!-- load scripts dynamically --> + <!--<script data-main="main" src="../../bower_components/requirejs/require.js"></script>--> + + <!-- load bundled scripts --> + <script data-main="bundle" src="../../bower_components/requirejs/require.js"></script> +</head> +<body ng-cloak> +<h1>{{ test }}</h1> +</body> +</html> diff --git a/build_examples/r.js/main.js b/build_examples/r.js/main.js new file mode 100644 index 0000000..6e87465 --- /dev/null +++ b/build_examples/r.js/main.js @@ -0,0 +1,24 @@ +require.config({ + paths: { + angular: '../../bower_components/angular/angular', + 'js-data-angular': '../../dist/js-data-angular', + 'JSData': '../../bower_components/js-data/dist/js-data' + }, + shim: { + 'angular': { + exports: 'angular' + } + } +}); + +require([ + 'angular', + 'app', + 'JSData' + ], function (angular, app) { + angular.element(document.getElementsByTagName('html')[0]).ready(function () { + // bootstrap the app manually + angular.bootstrap(document, ['app']); + }); + } +); diff --git a/build_examples/r.js/require.config.js b/build_examples/r.js/require.config.js new file mode 100644 index 0000000..a89ae0f --- /dev/null +++ b/build_examples/r.js/require.config.js @@ -0,0 +1,6 @@ +({ + name: 'main', + mainConfigFile: 'main.js', + out: 'bundle.js', + optimize: 'none' +}) diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index bf234d3..3db2b58 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 2.4.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 3.0.0-beta.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -9,14 +9,16 @@ */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory((function webpackLoadOptionalExternalModule() { try { return require("js-data"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("angular"); } catch(e) {} }())); + module.exports = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); else if(typeof define === 'function' && define.amd) - define(["js-data", "angular"], factory); + define(["JSData", "angular"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { + return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root["axios"]); + }); else if(typeof exports === 'object') - exports["jsDataAngularModuleName"] = factory((function webpackLoadOptionalExternalModule() { try { return require("js-data"); } catch(e) {} }()), (function webpackLoadOptionalExternalModule() { try { return require("angular"); } catch(e) {} }())); + exports["jsDataAngularModuleName"] = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); else - root["jsDataAngularModuleName"] = factory(root["JSData"], root["angular"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { + root["jsDataAngularModuleName"] = factory(root["JSData"], root["angular"], root["axios"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -63,7 +65,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -71,48 +73,28 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); /*jshint loopfunc:true*/ - var angular = undefined, - JSData = undefined; - try { - JSData = __webpack_require__(1); - } catch (e) {} - if (!JSData) { - try { - JSData = window.JSData; - } catch (e) {} - } - if (!JSData) { - throw new Error('js-data must be loaded!'); - } - try { - angular = __webpack_require__(2); - } catch (e) {} + var _JSData = __webpack_require__(1); - if (!angular) { - try { - angular = window.angular; - } catch (e) {} - } - if (!angular) { - throw new Error('angular must be loaded!'); - } + var _JSData2 = _interopRequireWildcard(_JSData); - var DSUtils = JSData.DSUtils; - var DSErrors = JSData.DSErrors; - var deepMixIn = DSUtils.deepMixIn; - var copy = DSUtils.copy; - var removeCircular = DSUtils.removeCircular; + var _DSHttpAdapter = __webpack_require__(4); + + var _DSHttpAdapter2 = _interopRequireWildcard(_DSHttpAdapter); + + var _angular = __webpack_require__(2); + + var _angular2 = _interopRequireWildcard(_angular); + + var DSUtils = _JSData2['default'].DSUtils; + var DSErrors = _JSData2['default'].DSErrors; var isString = DSUtils.isString; var isNumber = DSUtils.isNumber; - var makePath = DSUtils.makePath; - var httpLoaded = false; + var isObject = DSUtils.isObject; + var set = DSUtils.set; + var resolveId = DSUtils.resolveId; var adapters = [{ - project: 'js-data-http', - name: 'http', - 'class': 'DSHttpAdapter' - }, { project: 'js-data-localstorage', name: 'localstorage', 'class': 'DSLocalStorageAdapter' @@ -130,7 +112,7 @@ return /******/ (function(modules) { // webpackBootstrap 'class': 'DSSqlAdapter' }]; - var functionsToWrap = ['compute', 'digest', 'eject', 'inject', 'link', 'linkAll', 'linkInverse', 'unlinkInverse']; + var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; function registerAdapter(adapter) { var Adapter = undefined; @@ -144,11 +126,8 @@ return /******/ (function(modules) { // webpackBootstrap } if (Adapter) { - if (adapter.name === 'http') { - httpLoaded = true; - } adapter.loaded = true; - angular.module('js-data').provider(adapter['class'], function () { + _angular2['default'].module('js-data').provider(adapter['class'], function () { var _this = this; _this.defaults = {}; _this.$get = [function () { @@ -158,6 +137,20 @@ return /******/ (function(modules) { // webpackBootstrap } } + var DSHttpAdapterProvider = function DSHttpAdapterProvider() { + _classCallCheck(this, DSHttpAdapterProvider); + + var defaults = {}; + this.defaults = defaults; + + this.$get = ['$http', 'DS', function ($http, DS) { + defaults.http = defaults.http || $http; + var adapter = new _DSHttpAdapter2['default'](defaults); + DS.registerAdapter('http', adapter, { 'default': true }); + return adapter; + }]; + }; + var DSProvider = function DSProvider() { _classCallCheck(this, DSProvider); @@ -172,18 +165,18 @@ return /******/ (function(modules) { // webpackBootstrap _this.defaults = {}; - JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + _JSData2['default'].DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { var _this = this; params = params || {}; if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isObject(params)) { + } else if (!isObject(params)) { throw new DSErrors.IA('"params" must be an object!'); - } else if (!DSUtils.isObject(scope)) { + } else if (!isObject(scope)) { throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { + } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } @@ -192,7 +185,7 @@ return /******/ (function(modules) { // webpackBootstrap return _this.lastModified(resourceName); }, function () { var items = _this.filter(resourceName, params); - DSUtils.set(scope, expr, items); + set(scope, expr, items); if (cb) { cb(null, items); } @@ -206,17 +199,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + _JSData2['default'].DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { var _this = this; - id = DSUtils.resolveId(_this.definitions[resourceName], id); + id = resolveId(_this.definitions[resourceName], id); if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { + } else if (!isString(id) && !isNumber(id)) { throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!DSUtils.isObject(scope)) { + } else if (!isObject(scope)) { throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { + } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } @@ -228,7 +221,7 @@ return /******/ (function(modules) { // webpackBootstrap if (item) { _this.compute(resourceName, id); } - DSUtils.set(scope, expr, item); + set(scope, expr, item); if (cb) { cb(null, item); } @@ -249,14 +242,14 @@ return /******/ (function(modules) { // webpackBootstrap var $rootScope = args[args.length - 2]; var $q = args[args.length - 1]; - var store = new JSData.DS(_this.defaults); + var store = new _JSData2['default'].DS(_this.defaults); var originals = {}; function QPromise(executor) { var deferred = $q.defer(); try { - executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); + executor.call(undefined, _angular2['default'].bind(deferred, deferred.resolve), _angular2['default'].bind(deferred, deferred.reject)); } catch (err) { deferred.reject(err); } @@ -322,284 +315,14 @@ return /******/ (function(modules) { // webpackBootstrap _this.$get = deps; }; - angular.module('js-data', ['ng']).value('DSUtils', JSData.DSUtils).value('DSErrors', JSData.DSErrors).provider('DS', DSProvider); + _angular2['default'].module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', _JSData2['default'].version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { + DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); + }]); for (var i = 0; i < adapters.length; i++) { registerAdapter(adapters[i]); } - if (!httpLoaded) { - (function () { - var Defaults = (function () { - function Defaults() { - _classCallCheck(this, Defaults); - } - - _createClass(Defaults, [{ - key: 'queryTransform', - value: function queryTransform(resourceConfig, params) { - return params; - } - }, { - key: 'deserialize', - value: function deserialize(resourceConfig, data) { - return data ? 'data' in data ? data.data : data : data; - } - }, { - key: 'serialize', - value: function serialize(resourceConfig, data) { - return data; - } - }, { - key: 'log', - value: function log() {} - }, { - key: 'error', - value: function error() {} - }]); - - return Defaults; - })(); - - var defaultsPrototype = Defaults.prototype; - - defaultsPrototype.basePath = ''; - - defaultsPrototype.forceTrailingSlash = ''; - - defaultsPrototype.httpConfig = {}; - - var DSHttpAdapter = (function () { - function DSHttpAdapter(options) { - _classCallCheck(this, DSHttpAdapter); - - this.defaults = new Defaults(); - if (console) { - this.defaults.log = function (a, b) { - return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - }; - } - if (console) { - this.defaults.error = function (a, b) { - return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - }; - } - deepMixIn(this.defaults, options); - } - - _createClass(DSHttpAdapter, [{ - key: 'getPath', - value: function getPath(method, resourceConfig, id, options) { - var _this = this; - options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); - } - return makePath.apply(DSUtils, args); - } - }, { - key: 'GET', - value: function GET(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'POST', - value: function POST(url, attrs, config) { - config = config || {}; - config = DSUtils.copy(config); - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); - } - }, { - key: 'PUT', - value: function PUT(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); - } - }, { - key: 'DEL', - value: function DEL(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'find', - value: function find(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - return !item ? JSData.DSUtils.Promise.reject(new Error('Not Found!')) : item; - }); - } - }, { - key: 'findAll', - value: function findAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'create', - value: function create(resourceConfig, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST(_this.getPath('create', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'update', - value: function update(resourceConfig, id, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT(_this.getPath('update', resourceConfig, id, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'updateAll', - value: function updateAll(resourceConfig, attrs, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroy', - value: function destroy(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroyAll', - value: function destroyAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }]); - - return DSHttpAdapter; - })(); - - var dsHttpAdapterPrototype = DSHttpAdapter.prototype; - - var DSHttpAdapterProvider = function DSHttpAdapterProvider() { - _classCallCheck(this, DSHttpAdapterProvider); - - var _this = this; - _this.defaults = {}; - _this.$get = ['$http', 'DS', '$q', function ($http, DS, $q) { - dsHttpAdapterPrototype.HTTP = function (config) { - var _this = this; - var start = new Date(); - config = copy(config); - config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { - config.url += '/'; - } - config.method = config.method.toUpperCase(); - if (typeof config.data === 'object') { - config.data = removeCircular(config.data); - } - var suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { - config.url += suffix; - } - - function logResponse(data) { - var str = '' + start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); - } - return data; - } else { - if (_this.defaults.error) { - _this.defaults.error('FAILED: ' + str, data); - } - return $q.reject(data); - } - } - - return $http(config).then(logResponse, logResponse); - }; - - var adapter = new DSHttpAdapter(_this.defaults); - DS.registerAdapter('http', adapter, { 'default': true }); - return adapter; - }]; - }; - - angular.module('js-data').provider('DSHttpAdapter', DSHttpAdapterProvider); - })(); - } - angular.module('js-data').run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { - return DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); - }]); - // return the module name exports['default'] = 'js-data'; module.exports = exports['default']; @@ -608,14 +331,12 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - if(typeof __WEBPACK_EXTERNAL_MODULE_1__ === 'undefined') {var e = new Error("Cannot find module \"undefined\""); e.code = 'MODULE_NOT_FOUND'; throw e;} module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { - if(typeof __WEBPACK_EXTERNAL_MODULE_2__ === 'undefined') {var e = new Error("Cannot find module \"angular\""); e.code = 'MODULE_NOT_FOUND'; throw e;} module.exports = __WEBPACK_EXTERNAL_MODULE_2__; /***/ }, @@ -637,6 +358,302 @@ return /******/ (function(modules) { // webpackBootstrap webpackContext.id = 3; +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _JSData = __webpack_require__(1); + + var _JSData2 = _interopRequireWildcard(_JSData); + + var axios = null; + + try { + axios = __webpack_require__(5); + } catch (e) {} + + var DSUtils = _JSData2['default'].DSUtils; + var deepMixIn = DSUtils.deepMixIn; + var removeCircular = DSUtils.removeCircular; + var copy = DSUtils.copy; + var makePath = DSUtils.makePath; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + + var Defaults = (function () { + function Defaults() { + _classCallCheck(this, Defaults); + } + + _createClass(Defaults, [{ + key: 'queryTransform', + value: function queryTransform(resourceConfig, params) { + return params; + } + }, { + key: 'deserialize', + value: function deserialize(resourceConfig, data) { + return data ? 'data' in data ? data.data : data : data; + } + }, { + key: 'serialize', + value: function serialize(resourceConfig, data) { + return data; + } + }, { + key: 'log', + value: function log() {} + }, { + key: 'error', + value: function error() {} + }]); + + return Defaults; + })(); + + var defaultsPrototype = Defaults.prototype; + + defaultsPrototype.basePath = ''; + + defaultsPrototype.forceTrailingSlash = ''; + + defaultsPrototype.httpConfig = {}; + + var DSHttpAdapter = (function () { + function DSHttpAdapter(options) { + _classCallCheck(this, DSHttpAdapter); + + this.defaults = new Defaults(); + if (console) { + this.defaults.log = function (a, b) { + return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); + }; + } + if (console) { + this.defaults.error = function (a, b) { + return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); + }; + } + deepMixIn(this.defaults, options); + this.http = options.http || axios; + } + + _createClass(DSHttpAdapter, [{ + key: 'getPath', + value: function getPath(method, resourceConfig, id, options) { + var _this = this; + options = options || {}; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + if (method === 'find' || method === 'update' || method === 'destroy') { + args.push(id); + } + return makePath.apply(DSUtils, args); + } + }, { + key: 'HTTP', + value: function HTTP(config) { + var _this = this; + var start = new Date(); + config = copy(config); + config = deepMixIn(config, _this.defaults.httpConfig); + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { + config.url += '/'; + } + if (typeof config.data === 'object') { + config.data = removeCircular(config.data); + } + config.method = config.method.toUpperCase(); + var suffix = config.suffix || _this.defaults.suffix; + if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { + config.url += suffix; + } + + function logResponse(data) { + var str = '' + start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + if (data.status >= 200 && data.status < 300) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error('\'FAILED: ' + str, data); + } + return DSUtils.Promise.reject(data); + } + } + + if (!this.http) { + throw new Error('You have not configured this adapter with an http library!'); + } + + return this.http(config).then(logResponse, logResponse); + } + }, { + key: 'GET', + value: function GET(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'get'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'POST', + value: function POST(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'post'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs + })); + } + }, { + key: 'PUT', + value: function PUT(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'put'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs || {} + })); + } + }, { + key: 'DEL', + value: function DEL(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'delete'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'find', + value: function find(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { + var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item; + }); + } + }, { + key: 'findAll', + value: function findAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'create', + value: function create(resourceConfig, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'update', + value: function update(resourceConfig, id, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'updateAll', + value: function updateAll(resourceConfig, attrs, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroy', + value: function destroy(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroyAll', + value: function destroyAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }]); + + return DSHttpAdapter; + })(); + + exports['default'] = DSHttpAdapter; + module.exports = exports['default']; + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + if(typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + /***/ } /******/ ]) }); diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index e88c1b2..907995d 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 2.4.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 3.0.0-beta.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],b):"object"==typeof exports?exports.jsDataAngularModuleName=b(function(){try{return require("js-data")}catch(a){}}(),function(){try{return require("angular")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular)}(this,function(a,b){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&("http"===a.name&&(r=!0),a.loaded=!0,g.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=void 0,h=void 0;try{h=c(1)}catch(i){}if(!h)try{h=window.JSData}catch(i){}if(!h)throw new Error("js-data must be loaded!");try{g=c(2)}catch(i){}if(!g)try{g=window.angular}catch(i){}if(!g)throw new Error("angular must be loaded!");var j=h.DSUtils,k=h.DSErrors,l=j.deepMixIn,m=j.copy,n=j.removeCircular,o=j.isString,p=j.isNumber,q=j.makePath,r=!1,s=[{project:"js-data-http",name:"http","class":"DSHttpAdapter"},{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],t=["compute","digest","eject","inject","link","linkAll","linkInverse","unlinkInverse"],u=function w(){function a(){function a(a){var b=i.defer();try{a.call(void 0,g.bind(b,b.resolve),g.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],i=d[d.length-1],k=new h.DS(b.defaults),l={};if(a.all=i.all,a.when=i.when,a.reject=i.reject,j.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<s.length;n++)if(s[n].loaded&&!s[n].registered){s[n].registered=!0,k.registerAdapter(s[n].name,d[m]);break}for(var o=function(){var a=t[p];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?l[a].apply(k,c):f.$apply(function(){return l[a].apply(k,c)})}},p=0;p<t.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}f(this,w);for(var b=this,c=[],d=0;d<s.length;d++)s[d].loaded&&c.push(s[d]["class"]);b.defaults={},h.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new k.NER(a);if(!j.isObject(b))throw new k.IA('"params" must be an object!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=j.resolveId(f.definitions[a],b),!f.definitions[a])throw new k.NER(a);if(!j.isString(b)&&!j.isNumber(b))throw new k.IA('"id" must be a string or a number!');if(!j.isObject(c))throw new k.IA('"scope" must be an object!');if(!j.isString(d))throw new k.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),j.set(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};g.module("js-data",["ng"]).value("DSUtils",h.DSUtils).value("DSErrors",h.DSErrors).provider("DS",u);for(var v=0;v<s.length;v++)d(s[v]);r||!function(){var a=function(){function a(){f(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),b=a.prototype;b.basePath="",b.forceTrailingSlash="",b.httpConfig={};var c=function(){function b(c){f(this,b),this.defaults=new a,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,c)}return e(b,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(o(c)||p(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),q.apply(j,f)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},c=j.copy(c),"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:h.DSUtils.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),(c.serialize?c.serialize:d.defaults.serialize)(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?m(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),(d.serialize?d.serialize:e.defaults.serialize)(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?m(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),b}(),d=c.prototype,i=function k(){f(this,k);var a=this;a.defaults={},a.$get=["$http","DS","$q",function(b,e,f){d.HTTP=function(a){function c(a){var b=""+e.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-e.getTime())+"ms";return a.status>=200&&a.status<300?(d.defaults.log&&d.defaults.log(b,a),a):(d.defaults.error&&d.defaults.error("FAILED: "+b,a),f.reject(a))}var d=this,e=new Date;a=m(a),a=l(a,d.defaults.httpConfig),d.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),a.method=a.method.toUpperCase(),"object"==typeof a.data&&(a.data=n(a.data));var g=a.suffix||d.defaults.suffix;return g&&a.url.substr(a.url.length-g.length)!==g&&(a.url+=g),b(a).then(c,c)};var g=new c(a.defaults);return e.registerAdapter("http",g,{"default":!0}),g}]};g.module("js-data").provider("DSHttpAdapter",i)}(),g.module("js-data").run(["DS","DSHttpAdapter",function(a,b){return a.registerAdapter("http",b,{"default":!0})}]),b["default"]="js-data",a.exports=b["default"]},function(b,c,d){if("undefined"==typeof a){var e=new Error('Cannot find module "undefined"');throw e.code="MODULE_NOT_FOUND",e}b.exports=a},function(a,c,d){if("undefined"==typeof b){var e=new Error('Cannot find module "angular"');throw e.code="MODULE_NOT_FOUND",e}a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["JSData","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,l["default"].module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(a){return a&&a.__esModule?a:{"default":a}},f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=e(g),i=c(4),j=e(i),k=c(2),l=e(k),m=h["default"].DSUtils,n=h["default"].DSErrors,o=m.isString,p=m.isNumber,q=m.isObject,r=m.set,s=m.resolveId,t=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],u=["compute","digest","eject","inject"],v=function y(){f(this,y);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new j["default"](a);return c.registerAdapter("http",d,{"default":!0}),d}]},w=function z(){function a(){function a(a){var b=g.defer();try{a.call(void 0,l["default"].bind(b,b.resolve),l["default"].bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],g=d[d.length-1],i=new h["default"].DS(b.defaults),j={};if(a.all=g.all,a.when=g.when,a.reject=g.reject,m.Promise=a,d.length)for(var k=0;k<d.length;k++)for(var n=0;n<t.length;n++)if(t[n].loaded&&!t[n].registered){t[n].registered=!0,i.registerAdapter(t[n].name,d[k]);break}for(var o=function(){var a=u[p];j[a]=i[a],i[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?j[a].apply(i,c):f.$apply(function(){return j[a].apply(i,c)})}},p=0;p<u.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return i.observe.Platform.performMicrotaskCheckpoint()}),i}f(this,z);for(var b=this,c=[],d=0;d<t.length;d++)t[d].loaded&&c.push(t[d]["class"]);b.defaults={},h["default"].DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new n.NER(a);if(!q(b))throw new n.IA('"params" must be an object!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h["default"].DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=s(f.definitions[a],b),!f.definitions[a])throw new n.NER(a);if(!o(b)&&!p(b))throw new n.IA('"id" must be a string or a number!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};l["default"].module("js-data",["ng"]).value("DSUtils",m).value("DSErrors",n).value("DSVersion",h["default"].version).provider("DS",w).provider("DSHttpAdapter",v).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var x=0;x<t.length;x++)d(t[x]);b["default"]="js-data",a.exports=b["default"]},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=d(g),i=null;try{i=c(5)}catch(j){}var k=h["default"].DSUtils,l=k.deepMixIn,m=k.removeCircular,n=k.copy,o=k.makePath,p=k.isString,q=k.isNumber,r=function(){function a(){e(this,a)}return f(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),s=r.prototype;s.basePath="",s.forceTrailingSlash="",s.httpConfig={};var t=function(){function a(b){e(this,a),this.defaults=new r,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,b),this.http=b.http||i}return f(a,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(p(c)||q(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),o.apply(k,f)}},{key:"HTTP",value:function(a){function b(a){var b=""+d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),k.Promise.reject(a))}var c=this,d=new Date;a=n(a),a=l(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=m(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:k.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();b["default"]=t,a.exports=b["default"]},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index b182301..ef1338d 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","name","httpLoaded","angular","provider","_this","defaults","$get","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","value","JSData","Error","DSUtils","DSErrors","deepMixIn","copy","removeCircular","isString","isNumber","makePath","adapters","class","functionsToWrap","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","args","Array","_key","$rootScope","store","DS","originals","all","when","Promise","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","bindAll","resourceName","params","scope","expr","cb","definitions","NER","isObject","IA","lastModified","items","filter","set","bindOne","resolveId","item","get","compute","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","DSHttpAdapter","options","console","log","a","b","info","error","method","getEndpoint","url","config","HTTP","attrs","suffix","queryTransform","GET","getPath","then","deserialize","POST","serialize","PUT","DEL","dsHttpAdapterPrototype","DSHttpAdapterProvider","$http","logResponse","str","start","toUTCString","toUpperCase","status","Date","getTime","substr","default","run","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","_angular2","provider","_this","defaults","$get","_interopRequireWildcard","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_JSData","_JSData2","_DSHttpAdapter","_DSHttpAdapter2","_angular","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","version","run","DSHttpAdapter","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","method","getEndpoint","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 6e57fb6..43b6ffc 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -23,7 +23,7 @@ module.exports = function (config) { files: [ 'bower_components/angular-1.3.2/angular.js', 'bower_components/angular-mocks-1.3.2/angular-mocks.js', - 'bower_components/js-data/dist/js-data.js', + 'node_modules/js-data/dist/js-data.js', 'dist/js-data-angular.js', 'karma.start.js', 'test/**/*.js' diff --git a/karma.start.js b/karma.start.js index 7e9176c..1054600 100644 --- a/karma.start.js +++ b/karma.start.js @@ -80,7 +80,7 @@ beforeEach(function () { lifecycle.beforeInject = function () { lifecycle.beforeInject.callCount += 1; }; - lifecycle.afterInject = function () { + lifecycle.afterInject = function (resource, data) { lifecycle.afterInject.callCount += 1; }; lifecycle.serialize = function (resourceName, data) { diff --git a/package.json b/package.json index 7103743..8027dbf 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "2.4.0", + "version": "3.0.0-beta.1", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -20,7 +20,7 @@ ], "main": "dist/js-data-angular.js", "devDependencies": { - "babel-core": "5.1.9", + "babel-core": "5.1.10", "babel-loader": "5.0.0", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", @@ -30,27 +30,28 @@ "grunt-karma-coveralls": "2.5.3", "grunt-webpack": "1.0.8", "jit-grunt": "0.9.1", - "jshint": "2.7.0", "jshint-loader": "0.8.3", "karma": "0.12.31", "karma-chai": "0.1.0", - "karma-chrome-launcher": "0.1.7", - "karma-coverage": "0.2.7", + "karma-chrome-launcher": "0.1.8", + "karma-coverage": "0.3.1", "karma-firefox-launcher": "0.1.4", "karma-mocha": "0.1.10", "karma-phantomjs-launcher": "0.1.4", "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", - "karma-spec-reporter": "0.0.18", - "time-grunt": "1.1.0", - "webpack": "1.8.4", + "karma-spec-reporter": "0.0.19", + "time-grunt": "1.1.1", "webpack-dev-server": "1.8.0" }, "scripts": { "test": "grunt test" }, "peerDependencies": { - "angular": ">=1.1.0", - "js-data": ">=1.5.7" + "angular": ">=1.1.0" + }, + "dependencies": { + "js-data": ">=2.0.0-beta.3", + "js-data-http": ">=2.0.0-beta.3" } } diff --git a/src/index.js b/src/index.js index c8ab825..4ca1d07 100644 --- a/src/index.js +++ b/src/index.js @@ -1,50 +1,12 @@ /*jshint loopfunc:true*/ -let angular, JSData; -try { - JSData = require('js-data'); -} catch (e) { -} +import JSData from 'js-data'; +import DSHttpAdapter from '../node_modules/js-data-http/src/index.js'; +import angular from 'angular'; -if (!JSData) { - try { - JSData = window.JSData; - } catch (e) { - } -} -if (!JSData) { - throw new Error('js-data must be loaded!'); -} -try { - angular = require('angular'); -} catch (e) { -} - -if (!angular) { - try { - angular = window.angular; - } catch (e) { - } -} -if (!angular) { - throw new Error('angular must be loaded!'); -} - -let DSUtils = JSData.DSUtils; -let DSErrors = JSData.DSErrors; -let deepMixIn = DSUtils.deepMixIn; -let copy = DSUtils.copy; -let removeCircular = DSUtils.removeCircular; -let isString = DSUtils.isString; -let isNumber = DSUtils.isNumber; -let makePath = DSUtils.makePath; -let httpLoaded = false; +let { DSUtils, DSErrors } = JSData; +let { isString, isNumber, isObject, set, resolveId } = DSUtils; let adapters = [ - { - project: 'js-data-http', - name: 'http', - 'class': 'DSHttpAdapter' - }, { project: 'js-data-localstorage', name: 'localstorage', @@ -71,11 +33,7 @@ let functionsToWrap = [ 'compute', 'digest', 'eject', - 'inject', - 'link', - 'linkAll', - 'linkInverse', - 'unlinkInverse' + 'inject' ]; function registerAdapter(adapter) { @@ -92,9 +50,6 @@ function registerAdapter(adapter) { } if (Adapter) { - if (adapter.name === 'http') { - httpLoaded = true; - } adapter.loaded = true; angular.module('js-data').provider(adapter.class, function () { let _this = this; @@ -104,6 +59,20 @@ function registerAdapter(adapter) { } } +class DSHttpAdapterProvider { + constructor() { + let defaults = {}; + this.defaults = defaults; + + this.$get = ['$http', 'DS', ($http, DS) => { + defaults.http = defaults.http || $http; + let adapter = new DSHttpAdapter(defaults); + DS.registerAdapter('http', adapter, { 'default': true }); + return adapter; + }]; + } +} + class DSProvider { constructor() { let _this = this; @@ -124,18 +93,18 @@ class DSProvider { if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isObject(params)) { + } else if (!isObject(params)) { throw new DSErrors.IA('"params" must be an object!'); - } else if (!DSUtils.isObject(scope)) { + } else if (!isObject(scope)) { throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { + } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } try { return scope.$watch(() => _this.lastModified(resourceName), () => { let items = _this.filter(resourceName, params); - DSUtils.set(scope, expr, items); + set(scope, expr, items); if (cb) { cb(null, items); } @@ -152,14 +121,14 @@ class DSProvider { JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { let _this = this; - id = DSUtils.resolveId(_this.definitions[resourceName], id); + id = resolveId(_this.definitions[resourceName], id); if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); - } else if (!DSUtils.isString(id) && !DSUtils.isNumber(id)) { + } else if (!isString(id) && !isNumber(id)) { throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!DSUtils.isObject(scope)) { + } else if (!isObject(scope)) { throw new DSErrors.IA('"scope" must be an object!'); - } else if (!DSUtils.isString(expr)) { + } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } @@ -169,7 +138,7 @@ class DSProvider { if (item) { _this.compute(resourceName, id); } - DSUtils.set(scope, expr, item); + set(scope, expr, item); if (cb) { cb(null, item); } @@ -250,265 +219,19 @@ class DSProvider { } } angular.module('js-data', ['ng']) - .value('DSUtils', JSData.DSUtils) - .value('DSErrors', JSData.DSErrors) - .provider('DS', DSProvider); + .value('DSUtils', DSUtils) + .value('DSErrors', DSErrors) + .value('DSVersion', JSData.version) + .provider('DS', DSProvider) + .provider('DSHttpAdapter', DSHttpAdapterProvider) + .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => { + DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); + }]); for (var i = 0; i < adapters.length; i++) { registerAdapter(adapters[i]); } -if (!httpLoaded) { - - class Defaults { - queryTransform(resourceConfig, params) { - return params; - } - - deserialize(resourceConfig, data) { - return data ? ('data' in data ? data.data : data) : data; - } - - serialize(resourceConfig, data) { - return data; - } - - log() { - - } - - error() { - - } - } - let defaultsPrototype = Defaults.prototype; - - defaultsPrototype.basePath = ''; - - defaultsPrototype.forceTrailingSlash = ''; - - defaultsPrototype.httpConfig = {}; - - class DSHttpAdapter { - constructor(options) { - this.defaults = new Defaults(); - if (console) { - this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - } - if (console) { - this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - } - deepMixIn(this.defaults, options); - } - - getPath(method, resourceConfig, id, options) { - let _this = this; - options = options || {}; - let args = [ - options.basePath || _this.defaults.basePath || resourceConfig.basePath, - resourceConfig.getEndpoint((isString(id) || isNumber(id) || method === 'create') ? id : null, options) - ]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); - } - return makePath.apply(DSUtils, args); - } - - GET(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url - })); - } - - POST(url, attrs, config) { - config = config || {}; - config = DSUtils.copy(config); - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url, - data: attrs - })); - } - - PUT(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url, - data: attrs || {} - })); - } - - DEL(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url - })); - } - - find(resourceConfig, id, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET( - _this.getPath('find', resourceConfig, id, options), - options - ).then(data => { - let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - return !item ? JSData.DSUtils.Promise.reject(new Error('Not Found!')) : item; - }); - } - - findAll(resourceConfig, params, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET( - _this.getPath('findAll', resourceConfig, params, options), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - - create(resourceConfig, attrs, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST( - _this.getPath('create', resourceConfig, attrs, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - - update(resourceConfig, id, attrs, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT( - _this.getPath('update', resourceConfig, id, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - - updateAll(resourceConfig, attrs, params, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT( - _this.getPath('updateAll', resourceConfig, attrs, options), - (options.serialize ? options.serialize : _this.defaults.serialize)(resourceConfig, attrs), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - - destroy(resourceConfig, id, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL( - _this.getPath('destroy', resourceConfig, id, options), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - - destroyAll(resourceConfig, params, options) { - let _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL( - _this.getPath('destroyAll', resourceConfig, params, options), - options - ).then(data => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)); - } - } - - let dsHttpAdapterPrototype = DSHttpAdapter.prototype; - - class DSHttpAdapterProvider { - constructor() { - let _this = this; - _this.defaults = {}; - _this.$get = ['$http', 'DS', '$q', ($http, DS, $q) => { - dsHttpAdapterPrototype.HTTP = function (config) { - let _this = this; - let start = new Date(); - config = copy(config); - config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { - config.url += '/'; - } - config.method = config.method.toUpperCase(); - if (typeof config.data === 'object') { - config.data = removeCircular(config.data); - } - let suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { - config.url += suffix; - } - - function logResponse(data) { - let str = `${start.toUTCString()} - ${data.config.method.toUpperCase()} ${data.config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); - } - return data; - } else { - if (_this.defaults.error) { - _this.defaults.error(`FAILED: ${str}`, data); - } - return $q.reject(data); - } - } - - return $http(config).then(logResponse, logResponse); - }; - - let adapter = new DSHttpAdapter(_this.defaults); - DS.registerAdapter('http', adapter, { 'default': true }); - return adapter; - }]; - } - } - angular.module('js-data').provider('DSHttpAdapter', DSHttpAdapterProvider); -} -angular.module('js-data').run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => DS.registerAdapter('http', DSHttpAdapter, { 'default': true })]); - // return the module name export default 'js-data'; diff --git a/test/datastore/async_methods/create.test.js b/test/datastore/async_methods/create.test.js index 0564ef3..8679fc2 100644 --- a/test/datastore/async_methods/create.test.js +++ b/test/datastore/async_methods/create.test.js @@ -177,7 +177,7 @@ describe('DS.create', function () { $httpBackend.flush(); }); it('should find inverse links', function () { - DS.inject('organization', { + var organization = DS.inject('organization', { id: 77 }); @@ -189,15 +189,14 @@ describe('DS.create', function () { DS.create('user', { organizationId: 77, id: 88 - }, { upsert: false, findBelongsTo: true }).then(function (user) { - var organization = DS.link('organization', 77, ['user']); + }, { upsert: false }).then(function (user) { assert.isArray(organization.users); assert.equal(1, organization.users.length); assert.isObject(user.organization); assert.isTrue(user.organization === organization); assert.isTrue(user === organization.users[0]); }, function () { - fail('Should not have succeeded!'); + fail('Should not have failed!'); }); $httpBackend.flush(); diff --git a/test/datastore/async_methods/loadRelations.test.js b/test/datastore/async_methods/loadRelations.test.js index 459cdd6..d6f2abb 100644 --- a/test/datastore/async_methods/loadRelations.test.js +++ b/test/datastore/async_methods/loadRelations.test.js @@ -12,7 +12,7 @@ describe('DS.loadRelations', function () { $httpBackend.expectGET('http://test.angular-cache.com/profile?approvedBy=10&userId=10').respond(200, [profile15]); $httpBackend.expectGET('http://test.angular-cache.com/organization/14?approvedBy=10').respond(200, organization14); - DS.loadRelations('user', 10, ['comment', 'profile', 'organization'], { params: { approvedBy: 10 } }).then(function (user) { + DS.loadRelations('user', 10, ['comment', 'profile', 'organization'], { params: { approvedBy: 10 }, findStrictCache: true }).then(function (user) { try { assert.deepEqual(user.comments[0].id, DS.get('comment', user.comments[0].id).id); assert.deepEqual(user.comments[0].user, DS.get('comment', user.comments[0].id).user); @@ -26,7 +26,7 @@ describe('DS.loadRelations', function () { DS.inject('comment', comment19); $httpBackend.expectGET('http://test.angular-cache.com/user/20').respond(200, user20); $httpBackend.expectGET('http://test.angular-cache.com/user/19').respond(200, user19); - DS.loadRelations('comment', 19, ['user']).then(function (comment) { + DS.loadRelations('comment', 19, ['user'], { findStrictCache: true }).then(function (comment) { try { assert.isObject(comment.user); assert.equal(comment.user.id, user20.id); @@ -49,7 +49,9 @@ describe('DS.loadRelations', function () { fail(err); }); - $httpBackend.flush(); + setTimeout(function () { + $httpBackend.flush(); + }, 30); }); it('should get an item from the server but not store it if cacheResponse is false', function () { DS.inject('user', { @@ -66,7 +68,7 @@ describe('DS.loadRelations', function () { $httpBackend.expectGET('http://test.angular-cache.com/profile?userId=10').respond(200, [profile15]); $httpBackend.expectGET('http://test.angular-cache.com/organization/14').respond(200, organization14); - DS.loadRelations('user', 10, ['comment', 'profile', 'organization'], { cacheResponse: false }).then(function (user) { + DS.loadRelations('user', 10, ['comment', 'profile', 'organization'], { cacheResponse: false, findStrictCache: true }).then(function (user) { assert.deepEqual(angular.toJson(user.comments), angular.toJson([ comment11, comment12, @@ -80,11 +82,13 @@ describe('DS.loadRelations', function () { assert.isUndefined(DS.get('comment', 13)); assert.isUndefined(DS.get('organization', 14)); assert.isUndefined(DS.get('profile', 15)); - }, function () { + }).catch(function (e) { fail('should not have failed!'); }); - $httpBackend.flush(); + setTimeout(function () { + $httpBackend.flush(); + }, 30); }); it('should correctly propagate errors', function () { DS.inject('user', { @@ -117,7 +121,7 @@ describe('DS.loadRelations', function () { $httpBackend.expectGET('http://test.angular-cache.com/organization/14/user').respond(200, [copy]); - DS.loadRelations('organization', organization, ['user']).then(function (organization) { + DS.loadRelations('organization', organization, ['user'], { findStrictCache: true }).then(function (organization) { assert.equal(organization.users[0].id, 10); $httpBackend.expectGET('http://test.angular-cache.com/organization/14/user/10/comment').respond(200, [comment11, comment12]); From ab5575c5c1b05b26f66c3a83851e9650d79be165 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Sun, 19 Apr 2015 20:07:04 -0600 Subject: [PATCH 10/32] Stable Version 3.0.0-beta.2. --- .gitignore | 2 ++ CHANGELOG.md | 10 ++++++++++ Gruntfile.js | 2 +- bower.json | 3 +-- build_examples/browserify/README.md | 3 +++ build_examples/browserify/app.js | 17 +++++++++++++++++ build_examples/browserify/index.html | 11 +++++++++++ build_examples/r.js/index.html | 4 ++-- build_examples/r.js/main.js | 5 ++--- build_examples/webpack/README.md | 3 +++ build_examples/webpack/app.js | 17 +++++++++++++++++ build_examples/webpack/index.html | 11 +++++++++++ build_examples/webpack/webpack.config.js | 12 ++++++++++++ dist/js-data-angular.js | 4 ++-- dist/js-data-angular.min.js | 4 ++-- dist/js-data-angular.min.map | 2 +- package.json | 2 +- 17 files changed, 98 insertions(+), 14 deletions(-) create mode 100644 build_examples/browserify/README.md create mode 100644 build_examples/browserify/app.js create mode 100644 build_examples/browserify/index.html create mode 100644 build_examples/webpack/README.md create mode 100644 build_examples/webpack/app.js create mode 100644 build_examples/webpack/index.html create mode 100644 build_examples/webpack/webpack.config.js diff --git a/.gitignore b/.gitignore index e2c404a..1a7da08 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ bower_components/ .idea/ build_examples/r.js/bundle.js +build_examples/browserify/bundle.js +build_examples/webpack/bundle.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b2c6e8..3de7929 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ +##### 3.0.0-beta.2 - 19 April 2015 + +Added examples of various build setups `./build_examples/` + ##### 3.0.0-beta.1 - 17 April 2015 +###### Backwards compatible API changes +- #306 - Keep it DRY + +###### Other +- #314 - Switch to using peerDependencies + ##### 2.4.0 - 15 April 2015 ###### Backwards compatible API changes diff --git a/Gruntfile.js b/Gruntfile.js index cd74a22..7e41652 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -96,7 +96,7 @@ module.exports = function (grunt) { }, externals: { 'js-data': { - amd: 'JSData', + amd: 'js-data', commonjs: 'js-data', commonjs2: 'js-data', root: 'JSData' diff --git a/bower.json b/bower.json index ce47a82..3d95803 100644 --- a/bower.json +++ b/bower.json @@ -25,8 +25,7 @@ "angular-mocks-1.1.5": "angular-mocks-unstable#1.1.5", "angular-mocks-1.2.16": "angular-mocks#1.2.16", "angular-mocks-1.2.25": "angular-mocks#1.2.25", - "angular-mocks-1.3.2": "angular-mocks#1.3.2", - "requirejs": "~2.1.17" + "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { "js-data": "2.0.0-beta.3", diff --git a/build_examples/browserify/README.md b/build_examples/browserify/README.md new file mode 100644 index 0000000..2fd013c --- /dev/null +++ b/build_examples/browserify/README.md @@ -0,0 +1,3 @@ +`browserify -x axios app.js > bundle.js` will produce `bundle.js` + +Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/build_examples/browserify/app.js b/build_examples/browserify/app.js new file mode 100644 index 0000000..542325e --- /dev/null +++ b/build_examples/browserify/app.js @@ -0,0 +1,17 @@ +// this is what you would do in a real app +// var angular = require('angular'); + +// for the example to work +var angular = require('../../node_modules/angular'); + +console.log(angular); + +angular.module('app', [ + // this is what you would do in a real app + // require('js-data-angular') + + // for the example to work + require('../../dist/js-data-angular.js') +]).run(function (DS, DSVersion, $rootScope) { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; +}); diff --git a/build_examples/browserify/index.html b/build_examples/browserify/index.html new file mode 100644 index 0000000..9769ccd --- /dev/null +++ b/build_examples/browserify/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html ng-app="app"> +<head> + <title>My App</title> + <!-- load bundled scripts --> + <script src="bundle.js"></script> +</head> +<body> +<h1>{{ test }}</h1> +</body> +</html> diff --git a/build_examples/r.js/index.html b/build_examples/r.js/index.html index 582dbb7..781e49d 100644 --- a/build_examples/r.js/index.html +++ b/build_examples/r.js/index.html @@ -3,10 +3,10 @@ <head> <title>My App</title> <!-- load scripts dynamically --> - <!--<script data-main="main" src="../../bower_components/requirejs/require.js"></script>--> + <script data-main="main" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.17/require.min.js"></script> <!-- load bundled scripts --> - <script data-main="bundle" src="../../bower_components/requirejs/require.js"></script> + <!--<script data-main="bundle" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.17/require.min.js"></script>--> </head> <body ng-cloak> <h1>{{ test }}</h1> diff --git a/build_examples/r.js/main.js b/build_examples/r.js/main.js index 6e87465..f3e8fb5 100644 --- a/build_examples/r.js/main.js +++ b/build_examples/r.js/main.js @@ -2,7 +2,7 @@ require.config({ paths: { angular: '../../bower_components/angular/angular', 'js-data-angular': '../../dist/js-data-angular', - 'JSData': '../../bower_components/js-data/dist/js-data' + 'js-data': '../../bower_components/js-data/dist/js-data' }, shim: { 'angular': { @@ -13,8 +13,7 @@ require.config({ require([ 'angular', - 'app', - 'JSData' + 'app' ], function (angular, app) { angular.element(document.getElementsByTagName('html')[0]).ready(function () { // bootstrap the app manually diff --git a/build_examples/webpack/README.md b/build_examples/webpack/README.md new file mode 100644 index 0000000..2fd013c --- /dev/null +++ b/build_examples/webpack/README.md @@ -0,0 +1,3 @@ +`browserify -x axios app.js > bundle.js` will produce `bundle.js` + +Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/build_examples/webpack/app.js b/build_examples/webpack/app.js new file mode 100644 index 0000000..542325e --- /dev/null +++ b/build_examples/webpack/app.js @@ -0,0 +1,17 @@ +// this is what you would do in a real app +// var angular = require('angular'); + +// for the example to work +var angular = require('../../node_modules/angular'); + +console.log(angular); + +angular.module('app', [ + // this is what you would do in a real app + // require('js-data-angular') + + // for the example to work + require('../../dist/js-data-angular.js') +]).run(function (DS, DSVersion, $rootScope) { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; +}); diff --git a/build_examples/webpack/index.html b/build_examples/webpack/index.html new file mode 100644 index 0000000..9769ccd --- /dev/null +++ b/build_examples/webpack/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html ng-app="app"> +<head> + <title>My App</title> + <!-- load bundled scripts --> + <script src="bundle.js"></script> +</head> +<body> +<h1>{{ test }}</h1> +</body> +</html> diff --git a/build_examples/webpack/webpack.config.js b/build_examples/webpack/webpack.config.js new file mode 100644 index 0000000..fc1fbc3 --- /dev/null +++ b/build_examples/webpack/webpack.config.js @@ -0,0 +1,12 @@ +module.exports = { + entry: './app.js', + output: { + filename: 'bundle.js' + }, + externals: ['axios'], + resolve: { + alias: { + 'js-data-angular': '../dist/js-data-angular.js' + } + } +}; diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 3db2b58..99c2696 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 3.0.0-beta.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 3.0.0-beta.2 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -11,7 +11,7 @@ if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); else if(typeof define === 'function' && define.amd) - define(["JSData", "angular"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { + define(["js-data", "angular"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root["axios"]); }); else if(typeof exports === 'object') diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 907995d..a8107e4 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.0.0-beta.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 3.0.0-beta.2 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["JSData","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,l["default"].module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(a){return a&&a.__esModule?a:{"default":a}},f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=e(g),i=c(4),j=e(i),k=c(2),l=e(k),m=h["default"].DSUtils,n=h["default"].DSErrors,o=m.isString,p=m.isNumber,q=m.isObject,r=m.set,s=m.resolveId,t=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],u=["compute","digest","eject","inject"],v=function y(){f(this,y);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new j["default"](a);return c.registerAdapter("http",d,{"default":!0}),d}]},w=function z(){function a(){function a(a){var b=g.defer();try{a.call(void 0,l["default"].bind(b,b.resolve),l["default"].bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],g=d[d.length-1],i=new h["default"].DS(b.defaults),j={};if(a.all=g.all,a.when=g.when,a.reject=g.reject,m.Promise=a,d.length)for(var k=0;k<d.length;k++)for(var n=0;n<t.length;n++)if(t[n].loaded&&!t[n].registered){t[n].registered=!0,i.registerAdapter(t[n].name,d[k]);break}for(var o=function(){var a=u[p];j[a]=i[a],i[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?j[a].apply(i,c):f.$apply(function(){return j[a].apply(i,c)})}},p=0;p<u.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return i.observe.Platform.performMicrotaskCheckpoint()}),i}f(this,z);for(var b=this,c=[],d=0;d<t.length;d++)t[d].loaded&&c.push(t[d]["class"]);b.defaults={},h["default"].DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new n.NER(a);if(!q(b))throw new n.IA('"params" must be an object!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h["default"].DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=s(f.definitions[a],b),!f.definitions[a])throw new n.NER(a);if(!o(b)&&!p(b))throw new n.IA('"id" must be a string or a number!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};l["default"].module("js-data",["ng"]).value("DSUtils",m).value("DSErrors",n).value("DSVersion",h["default"].version).provider("DS",w).provider("DSHttpAdapter",v).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var x=0;x<t.length;x++)d(t[x]);b["default"]="js-data",a.exports=b["default"]},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=d(g),i=null;try{i=c(5)}catch(j){}var k=h["default"].DSUtils,l=k.deepMixIn,m=k.removeCircular,n=k.copy,o=k.makePath,p=k.isString,q=k.isNumber,r=function(){function a(){e(this,a)}return f(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),s=r.prototype;s.basePath="",s.forceTrailingSlash="",s.httpConfig={};var t=function(){function a(b){e(this,a),this.defaults=new r,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,b),this.http=b.http||i}return f(a,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(p(c)||q(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),o.apply(k,f)}},{key:"HTTP",value:function(a){function b(a){var b=""+d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),k.Promise.reject(a))}var c=this,d=new Date;a=n(a),a=l(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=m(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:k.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();b["default"]=t,a.exports=b["default"]},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,l["default"].module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(a){return a&&a.__esModule?a:{"default":a}},f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=e(g),i=c(4),j=e(i),k=c(2),l=e(k),m=h["default"].DSUtils,n=h["default"].DSErrors,o=m.isString,p=m.isNumber,q=m.isObject,r=m.set,s=m.resolveId,t=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],u=["compute","digest","eject","inject"],v=function y(){f(this,y);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new j["default"](a);return c.registerAdapter("http",d,{"default":!0}),d}]},w=function z(){function a(){function a(a){var b=g.defer();try{a.call(void 0,l["default"].bind(b,b.resolve),l["default"].bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],g=d[d.length-1],i=new h["default"].DS(b.defaults),j={};if(a.all=g.all,a.when=g.when,a.reject=g.reject,m.Promise=a,d.length)for(var k=0;k<d.length;k++)for(var n=0;n<t.length;n++)if(t[n].loaded&&!t[n].registered){t[n].registered=!0,i.registerAdapter(t[n].name,d[k]);break}for(var o=function(){var a=u[p];j[a]=i[a],i[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?j[a].apply(i,c):f.$apply(function(){return j[a].apply(i,c)})}},p=0;p<u.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return i.observe.Platform.performMicrotaskCheckpoint()}),i}f(this,z);for(var b=this,c=[],d=0;d<t.length;d++)t[d].loaded&&c.push(t[d]["class"]);b.defaults={},h["default"].DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new n.NER(a);if(!q(b))throw new n.IA('"params" must be an object!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h["default"].DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=s(f.definitions[a],b),!f.definitions[a])throw new n.NER(a);if(!o(b)&&!p(b))throw new n.IA('"id" must be a string or a number!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};l["default"].module("js-data",["ng"]).value("DSUtils",m).value("DSErrors",n).value("DSVersion",h["default"].version).provider("DS",w).provider("DSHttpAdapter",v).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var x=0;x<t.length;x++)d(t[x]);b["default"]="js-data",a.exports=b["default"]},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=d(g),i=null;try{i=c(5)}catch(j){}var k=h["default"].DSUtils,l=k.deepMixIn,m=k.removeCircular,n=k.copy,o=k.makePath,p=k.isString,q=k.isNumber,r=function(){function a(){e(this,a)}return f(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),s=r.prototype;s.basePath="",s.forceTrailingSlash="",s.httpConfig={};var t=function(){function a(b){e(this,a),this.defaults=new r,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,b),this.http=b.http||i}return f(a,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(p(c)||q(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),o.apply(k,f)}},{key:"HTTP",value:function(a){function b(a){var b=""+d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),k.Promise.reject(a))}var c=this,d=new Date;a=n(a),a=l(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=m(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:k.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();b["default"]=t,a.exports=b["default"]},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index ef1338d..d4373a4 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","_angular2","provider","_this","defaults","$get","_interopRequireWildcard","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_JSData","_JSData2","_DSHttpAdapter","_DSHttpAdapter2","_angular","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","version","run","DSHttpAdapter","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","method","getEndpoint","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","_angular2","provider","_this","defaults","$get","_interopRequireWildcard","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_JSData","_JSData2","_DSHttpAdapter","_DSHttpAdapter2","_angular","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","version","run","DSHttpAdapter","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","method","getEndpoint","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 8027dbf..cab54fd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.2", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", From c083e7ed43d51c949777eedf2f737781297667a2 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Sun, 28 Jun 2015 15:15:07 -0400 Subject: [PATCH 11/32] Stable Version 3.0.0-rc.1. --- CHANGELOG.md | 4 + README.md | 4 +- bower.json | 7 +- build_examples/browserify/README.md | 2 +- build_examples/r.js/README.md | 2 +- build_examples/webpack/README.md | 2 +- dist/js-data-angular.js | 119 +++++++++++++++++----------- dist/js-data-angular.min.js | 4 +- dist/js-data-angular.min.map | 2 +- package.json | 32 ++++---- src/index.js | 9 ++- 11 files changed, 108 insertions(+), 79 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3de7929..c1652ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +##### 3.0.0-rc.1 - 28 June 2015 + +Stable Version 3.0.0-rc.1 + ##### 3.0.0-beta.2 - 19 April 2015 Added examples of various build setups `./build_examples/` diff --git a/README.md b/README.md index c71a740..caf9d4d 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Angular wrapper for [js-data](http://www.js-data.io). #### What happened Angular-data? -Js-data-angular is Angular-data 2.0, with [js-data](http://www.js-data.io) as the framework-agnostic core. Documentation for Angular-data 1.x can be found at [angular-data.pseudobry.com](http://angular-data.pseudobry.com). +Angular-data is deprecated. js-data + js-data-angular is the new hotness. ### Guides - [Angular + JSData (js-data-angular)](http://www.js-data.io/docs/js-data-angular) @@ -41,7 +41,7 @@ __Latest Release:__ [](https://gemnasium.com/js-data/js-data-angular) [](https://coveralls.io/r/js-data/js-data-angular?branch=master) [](https://www.codacy.com/public/jasondobry/js-data-angular/dashboard) +[](https://gemnasium.com/js-data/js-data-angular) [](https://coveralls.io/r/js-data/js-data-angular?branch=master) [](https://www.codacy.com/public/jasondobry/js-data-angular/dashboard) __Supported Platforms:__ diff --git a/bower.json b/bower.json index 3d95803..f0f7b25 100644 --- a/bower.json +++ b/bower.json @@ -28,11 +28,8 @@ "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { - "js-data": "2.0.0-beta.3", - "js-data-http": "2.0.0-beta.3", + "js-data": "2.0.0-rc.1", + "js-data-http": "2.0.0-rc.1", "angular": ">=1.1.0" - }, - "resolutions": { - "angular": "1.3.2" } } diff --git a/build_examples/browserify/README.md b/build_examples/browserify/README.md index 2fd013c..bac593a 100644 --- a/build_examples/browserify/README.md +++ b/build_examples/browserify/README.md @@ -1,3 +1,3 @@ -`browserify -x axios app.js > bundle.js` will produce `bundle.js` +Running `browserify -x axios app.js > bundle.js` in this directory will produce `bundle.js` Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/build_examples/r.js/README.md b/build_examples/r.js/README.md index f72e67f..0632f37 100644 --- a/build_examples/r.js/README.md +++ b/build_examples/r.js/README.md @@ -1,3 +1,3 @@ -`r.js -o require.config.js` will produce `bundle.js` +Running `r.js -o require.config.js` in this directory will produce `bundle.js` In `index.html` switch `script/main` between `main` (load scripts dynamically) and `bundle` (load bundled scripts) diff --git a/build_examples/webpack/README.md b/build_examples/webpack/README.md index 2fd013c..14fa7b9 100644 --- a/build_examples/webpack/README.md +++ b/build_examples/webpack/README.md @@ -1,3 +1,3 @@ -`browserify -x axios app.js > bundle.js` will produce `bundle.js` +Running `webpack` in this directory will produce `bundle.js` Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 99c2696..c8d910f 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 3.0.0-beta.2 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -65,29 +65,15 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); /*jshint loopfunc:true*/ + var JSData = __webpack_require__(1); + var DSHttpAdapter = __webpack_require__(4); + var angular = __webpack_require__(2); - var _JSData = __webpack_require__(1); - - var _JSData2 = _interopRequireWildcard(_JSData); - - var _DSHttpAdapter = __webpack_require__(4); - - var _DSHttpAdapter2 = _interopRequireWildcard(_DSHttpAdapter); - - var _angular = __webpack_require__(2); - - var _angular2 = _interopRequireWildcard(_angular); - - var DSUtils = _JSData2['default'].DSUtils; - var DSErrors = _JSData2['default'].DSErrors; + var DSUtils = JSData.DSUtils; + var DSErrors = JSData.DSErrors; var isString = DSUtils.isString; var isNumber = DSUtils.isNumber; var isObject = DSUtils.isObject; @@ -127,7 +113,7 @@ return /******/ (function(modules) { // webpackBootstrap if (Adapter) { adapter.loaded = true; - _angular2['default'].module('js-data').provider(adapter['class'], function () { + angular.module('js-data').provider(adapter['class'], function () { var _this = this; _this.defaults = {}; _this.$get = [function () { @@ -145,7 +131,7 @@ return /******/ (function(modules) { // webpackBootstrap this.$get = ['$http', 'DS', function ($http, DS) { defaults.http = defaults.http || $http; - var adapter = new _DSHttpAdapter2['default'](defaults); + var adapter = new DSHttpAdapter(defaults); DS.registerAdapter('http', adapter, { 'default': true }); return adapter; }]; @@ -165,7 +151,7 @@ return /******/ (function(modules) { // webpackBootstrap _this.defaults = {}; - _JSData2['default'].DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { var _this = this; params = params || {}; @@ -199,7 +185,7 @@ return /******/ (function(modules) { // webpackBootstrap } }; - _JSData2['default'].DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { var _this = this; id = resolveId(_this.definitions[resourceName], id); @@ -242,14 +228,14 @@ return /******/ (function(modules) { // webpackBootstrap var $rootScope = args[args.length - 2]; var $q = args[args.length - 1]; - var store = new _JSData2['default'].DS(_this.defaults); + var store = new JSData.DS(_this.defaults); var originals = {}; function QPromise(executor) { var deferred = $q.defer(); try { - executor.call(undefined, _angular2['default'].bind(deferred, deferred.resolve), _angular2['default'].bind(deferred, deferred.reject)); + executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); } catch (err) { deferred.reject(err); } @@ -315,7 +301,7 @@ return /******/ (function(modules) { // webpackBootstrap _this.$get = deps; }; - _angular2['default'].module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', _JSData2['default'].version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { + angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); }]); @@ -324,8 +310,8 @@ return /******/ (function(modules) { // webpackBootstrap } // return the module name - exports['default'] = 'js-data'; - module.exports = exports['default']; + module.exports = 'js-data'; + module.exports.name = 'js-data'; /***/ }, /* 1 */ @@ -362,27 +348,18 @@ return /******/ (function(modules) { // webpackBootstrap /* 4 */ /***/ function(module, exports, __webpack_require__) { - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _JSData = __webpack_require__(1); - - var _JSData2 = _interopRequireWildcard(_JSData); + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + var JSData = __webpack_require__(1); var axios = null; try { axios = __webpack_require__(5); } catch (e) {} - var DSUtils = _JSData2['default'].DSUtils; + var DSUtils = JSData.DSUtils; var deepMixIn = DSUtils.deepMixIn; var removeCircular = DSUtils.removeCircular; var copy = DSUtils.copy; @@ -449,11 +426,62 @@ return /******/ (function(modules) { // webpackBootstrap } _createClass(DSHttpAdapter, [{ + key: 'getEndpoint', + value: function getEndpoint(resourceConfig, id, options) { + var _this2 = this; + + options = options || {}; + options.params = options.params || {}; + + var item = undefined; + var parentKey = resourceConfig.parentKey; + var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; + var parentField = resourceConfig.parentField; + var parentDef = resourceConfig.getResource(resourceConfig.parent); + var parentId = options.params[parentKey]; + + if (parentId === false || !parentKey || !parentDef) { + if (parentId === false) { + delete options.params[parentKey]; + } + return endpoint; + } else { + delete options.params[parentKey]; + + if (DSUtils._sn(id)) { + item = resourceConfig.get(id); + } else if (DSUtils._o(id)) { + item = id; + } + + if (item) { + parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); + } + + if (parentId) { + var _ret = (function () { + delete options.endpoint; + var _options = {}; + DSUtils.forOwn(options, function (value, key) { + _options[key] = value; + }); + return { + v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) + }; + })(); + + if (typeof _ret === 'object') return _ret.v; + } else { + return endpoint; + } + } + } + }, { key: 'getPath', value: function getPath(method, resourceConfig, id, options) { var _this = this; options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, resourceConfig.getEndpoint(isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; if (method === 'find' || method === 'update' || method === 'destroy') { args.push(id); } @@ -479,7 +507,7 @@ return /******/ (function(modules) { // webpackBootstrap } function logResponse(data) { - var str = '' + start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; if (data.status >= 200 && data.status < 300) { if (_this.defaults.log) { _this.defaults.log(str, data); @@ -644,8 +672,7 @@ return /******/ (function(modules) { // webpackBootstrap return DSHttpAdapter; })(); - exports['default'] = DSHttpAdapter; - module.exports = exports['default']; + module.exports = DSHttpAdapter; /***/ }, /* 5 */ diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index a8107e4..6930ad8 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.0.0-beta.2 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,l["default"].module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var e=function(a){return a&&a.__esModule?a:{"default":a}},f=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=e(g),i=c(4),j=e(i),k=c(2),l=e(k),m=h["default"].DSUtils,n=h["default"].DSErrors,o=m.isString,p=m.isNumber,q=m.isObject,r=m.set,s=m.resolveId,t=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],u=["compute","digest","eject","inject"],v=function y(){f(this,y);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new j["default"](a);return c.registerAdapter("http",d,{"default":!0}),d}]},w=function z(){function a(){function a(a){var b=g.defer();try{a.call(void 0,l["default"].bind(b,b.resolve),l["default"].bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var f=d[d.length-2],g=d[d.length-1],i=new h["default"].DS(b.defaults),j={};if(a.all=g.all,a.when=g.when,a.reject=g.reject,m.Promise=a,d.length)for(var k=0;k<d.length;k++)for(var n=0;n<t.length;n++)if(t[n].loaded&&!t[n].registered){t[n].registered=!0,i.registerAdapter(t[n].name,d[k]);break}for(var o=function(){var a=u[p];j[a]=i[a],i[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return f.$$phase?j[a].apply(i,c):f.$apply(function(){return j[a].apply(i,c)})}},p=0;p<u.length;p++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&f.$watch(function(){return i.observe.Platform.performMicrotaskCheckpoint()}),i}f(this,z);for(var b=this,c=[],d=0;d<t.length;d++)t[d].loaded&&c.push(t[d]["class"]);b.defaults={},h["default"].DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new n.NER(a);if(!q(b))throw new n.IA('"params" must be an object!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},h["default"].DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=s(f.definitions[a],b),!f.definitions[a])throw new n.NER(a);if(!o(b)&&!p(b))throw new n.IA('"id" must be a string or a number!');if(!q(c))throw new n.IA('"scope" must be an object!');if(!o(d))throw new n.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),r(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};l["default"].module("js-data",["ng"]).value("DSUtils",m).value("DSErrors",n).value("DSVersion",h["default"].version).provider("DS",w).provider("DSHttpAdapter",v).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var x=0;x<t.length;x++)d(t[x]);b["default"]="js-data",a.exports=b["default"]},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}();Object.defineProperty(b,"__esModule",{value:!0});var g=c(1),h=d(g),i=null;try{i=c(5)}catch(j){}var k=h["default"].DSUtils,l=k.deepMixIn,m=k.removeCircular,n=k.copy,o=k.makePath,p=k.isString,q=k.isNumber,r=function(){function a(){e(this,a)}return f(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),s=r.prototype;s.basePath="",s.forceTrailingSlash="",s.httpConfig={};var t=function(){function a(b){e(this,a),this.defaults=new r,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),l(this.defaults,b),this.http=b.http||i}return f(a,[{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,b.getEndpoint(p(c)||q(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),o.apply(k,f)}},{key:"HTTP",value:function(a){function b(a){var b=""+d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),k.Promise.reject(a))}var c=this,d=new Date;a=n(a),a=l(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=m(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(l(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(l(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(l(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(l(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:k.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?n(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),l(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?n(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),l(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();b["default"]=t,a.exports=b["default"]},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,h.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var f=c(1),g=c(4),h=c(2),i=f.DSUtils,j=f.DSErrors,k=i.isString,l=i.isNumber,m=i.isObject,n=i.set,o=i.resolveId,p=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],q=["compute","digest","eject","inject"],r=function u(){d(this,u);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new g(a);return c.registerAdapter("http",d,{"default":!0}),d}]},s=function v(){function a(){function a(a){var b=j.defer();try{a.call(void 0,h.bind(b,b.resolve),h.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var g=d[d.length-2],j=d[d.length-1],k=new f.DS(b.defaults),l={};if(a.all=j.all,a.when=j.when,a.reject=j.reject,i.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<p.length;n++)if(p[n].loaded&&!p[n].registered){p[n].registered=!0,k.registerAdapter(p[n].name,d[m]);break}for(var o=function(){var a=q[r];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return g.$$phase?l[a].apply(k,c):g.$apply(function(){return l[a].apply(k,c)})}},r=0;r<q.length;r++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}d(this,v);for(var b=this,c=[],e=0;e<p.length;e++)p[e].loaded&&c.push(p[e]["class"]);b.defaults={},f.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new j.NER(a);if(!m(b))throw new j.IA('"params" must be an object!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},f.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=o(f.definitions[a],b),!f.definitions[a])throw new j.NER(a);if(!k(b)&&!l(b))throw new j.IA('"id" must be a string or a number!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};h.module("js-data",["ng"]).value("DSUtils",i).value("DSErrors",j).value("DSVersion",f.version).provider("DS",s).provider("DSHttpAdapter",r).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var t=0;t<p.length;t++)e(p[t]);a.exports="js-data",a.exports.name="js-data"},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=c(1),g=null;try{g=c(5)}catch(h){}var i=f.DSUtils,j=i.deepMixIn,k=i.removeCircular,l=i.copy,m=i.makePath,n=i.isString,o=i.isNumber,p=function(){function a(){d(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),q=p.prototype;q.basePath="",q.forceTrailingSlash="",q.httpConfig={};var r=function(){function a(b){d(this,a),this.defaults=new p,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),j(this.defaults,b),this.http=b.http||g}return e(a,[{key:"getEndpoint",value:function(a,b,c){var d=this;c=c||{},c.params=c.params||{};var e=void 0,f=a.parentKey,g=c.hasOwnProperty("endpoint")?c.endpoint:a.endpoint,h=a.parentField,j=a.getResource(a.parent),k=c.params[f];if(k===!1||!f||!j)return k===!1&&delete c.params[f],g;if(delete c.params[f],i._sn(b)?e=a.get(b):i._o(b)&&(e=b),e&&(k=k||e[f]||(e[h]?e[h][j.idAttribute]:null)),!k)return g;var l=function(){delete c.endpoint;var a={};return i.forOwn(c,function(b,c){a[c]=b}),{v:i.makePath(d.getEndpoint(j,k,i._(j,a)),k,g)}}();return"object"==typeof l?l.v:void 0}},{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,this.getEndpoint(b,n(c)||o(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),m.apply(i,f)}},{key:"HTTP",value:function(a){function b(a){var b=d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),i.Promise.reject(a))}var c=this,d=new Date;a=l(a),a=j(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=k(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(j(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(j(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(j(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(j(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:i.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),j(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();a.exports=r},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index d4373a4..5a5833b 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","registerAdapter","adapter","Adapter","undefined","project","window","_angular2","provider","_this","defaults","$get","_interopRequireWildcard","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_JSData","_JSData2","_DSHttpAdapter","_DSHttpAdapter2","_angular","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","version","run","DSHttpAdapter","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","method","getEndpoint","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","undefined","project","window","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","value","version","run","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","_this2","parentKey","endpoint","hasOwnProperty","parentField","parentDef","getResource","parent","parentId","_sn","_o","idAttribute","_ret","_options","forOwn","v","getEndpoint","_","method","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index cab54fd..fed3d8b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.0.0-beta.2", + "version": "3.0.0-rc.1", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -20,38 +20,38 @@ ], "main": "dist/js-data-angular.js", "devDependencies": { - "babel-core": "5.1.10", - "babel-loader": "5.0.0", + "babel-core": "5.6.15", + "babel-loader": "5.2.2", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", "grunt-contrib-uglify": "0.9.1", "grunt-contrib-watch": "0.6.1", - "grunt-karma": "0.10.1", + "grunt-karma": "0.11.1", "grunt-karma-coveralls": "2.5.3", - "grunt-webpack": "1.0.8", + "grunt-webpack": "1.0.10", "jit-grunt": "0.9.1", "jshint-loader": "0.8.3", - "karma": "0.12.31", + "karma": "0.12.37", "karma-chai": "0.1.0", - "karma-chrome-launcher": "0.1.8", - "karma-coverage": "0.3.1", - "karma-firefox-launcher": "0.1.4", - "karma-mocha": "0.1.10", - "karma-phantomjs-launcher": "0.1.4", + "karma-chrome-launcher": "0.2.0", + "karma-coverage": "0.4.2", + "karma-firefox-launcher": "0.1.6", + "karma-mocha": "0.2.0", + "karma-phantomjs-launcher": "0.2.0", "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", "karma-spec-reporter": "0.0.19", - "time-grunt": "1.1.1", - "webpack-dev-server": "1.8.0" + "time-grunt": "1.2.1", + "webpack-dev-server": "1.10.1" }, "scripts": { "test": "grunt test" }, "peerDependencies": { - "angular": ">=1.1.0" + "angular": ">=1.1.0", + "js-data": "2.0.0-rc.1" }, "dependencies": { - "js-data": ">=2.0.0-beta.3", - "js-data-http": ">=2.0.0-beta.3" + "js-data-http": "2.0.0-rc.1" } } diff --git a/src/index.js b/src/index.js index 4ca1d07..b8040b6 100644 --- a/src/index.js +++ b/src/index.js @@ -1,7 +1,7 @@ /*jshint loopfunc:true*/ -import JSData from 'js-data'; -import DSHttpAdapter from '../node_modules/js-data-http/src/index.js'; -import angular from 'angular'; +let JSData = require('js-data'); +let DSHttpAdapter = require('../node_modules/js-data-http/src/index.js'); +let angular = require('angular'); let { DSUtils, DSErrors } = JSData; let { isString, isNumber, isObject, set, resolveId } = DSUtils; @@ -234,4 +234,5 @@ for (var i = 0; i < adapters.length; i++) { } // return the module name -export default 'js-data'; +module.exports = 'js-data'; +module.exports.name = 'js-data'; From f272b603dbd71c187d155beee47a5c5a4d790a53 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Sun, 28 Jun 2015 15:36:43 -0400 Subject: [PATCH 12/32] Remove unused versions of angular from bower.json --- Gruntfile.js | 2 +- bower.json | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 7e41652..4966178 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -72,7 +72,7 @@ module.exports = function (grunt) { files: [ 'bower_components/angular-1.3.2/angular.js', 'bower_components/angular-mocks-1.3.2/angular-mocks.js', - 'node_modules/js-data/dist/js-data.js', + 'node_modules/js-data/dist/js-data.min.js', 'dist/js-data-angular.min.js', 'karma.start.js', 'test/**/*.js' diff --git a/bower.json b/bower.json index f0f7b25..c5ea6fd 100644 --- a/bower.json +++ b/bower.json @@ -18,13 +18,7 @@ "package.json" ], "devDependencies": { - "angular-1.1.5": "angular-unstable#1.1.5", - "angular-1.2.16": "angular#1.2.16", - "angular-1.2.25": "angular#1.2.25", "angular-1.3.2": "angular#1.3.2", - "angular-mocks-1.1.5": "angular-mocks-unstable#1.1.5", - "angular-mocks-1.2.16": "angular-mocks#1.2.16", - "angular-mocks-1.2.25": "angular-mocks#1.2.25", "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { From 95ef554b299e7b09081b905014919d2da75341c8 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 1 Jul 2015 10:12:39 -0400 Subject: [PATCH 13/32] Added Webpack ES6 build example. #338 --- build_examples/webpack_es6/README.md | 3 + build_examples/webpack_es6/app.js | 8 + build_examples/webpack_es6/bundle.js | 810 +++++++++++++++++++ build_examples/webpack_es6/index.html | 11 + build_examples/webpack_es6/webpack.config.js | 17 + 5 files changed, 849 insertions(+) create mode 100644 build_examples/webpack_es6/README.md create mode 100644 build_examples/webpack_es6/app.js create mode 100644 build_examples/webpack_es6/bundle.js create mode 100644 build_examples/webpack_es6/index.html create mode 100644 build_examples/webpack_es6/webpack.config.js diff --git a/build_examples/webpack_es6/README.md b/build_examples/webpack_es6/README.md new file mode 100644 index 0000000..14fa7b9 --- /dev/null +++ b/build_examples/webpack_es6/README.md @@ -0,0 +1,3 @@ +Running `webpack` in this directory will produce `bundle.js` + +Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/build_examples/webpack_es6/app.js b/build_examples/webpack_es6/app.js new file mode 100644 index 0000000..40c0f8c --- /dev/null +++ b/build_examples/webpack_es6/app.js @@ -0,0 +1,8 @@ +import angular from 'angular'; +import jsDataModuleName from 'js-data-angular'; + +angular.module('app', [ + jsDataModuleName +]).run((DS, DSVersion, $rootScope) => { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; +}); diff --git a/build_examples/webpack_es6/bundle.js b/build_examples/webpack_es6/bundle.js new file mode 100644 index 0000000..63a7168 --- /dev/null +++ b/build_examples/webpack_es6/bundle.js @@ -0,0 +1,810 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + var _angular = __webpack_require__(2); + + var _angular2 = _interopRequireDefault(_angular); + + var _jsDataAngular = __webpack_require__(1); + + var _jsDataAngular2 = _interopRequireDefault(_jsDataAngular); + + _angular2['default'].module('app', [_jsDataAngular2['default']]).run(function (DS, DSVersion, $rootScope) { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; + }); + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + /*! + * js-data-angular + * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @author Jason Dobry <jason.dobry@gmail.com> + * @copyright (c) 2014-2015 Jason Dobry + * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> + * + * @overview Angular wrapper for js-data. + */ + (function webpackUniversalModuleDefinition(root, factory) { + if (true) module.exports = factory(__webpack_require__(5), __webpack_require__(2), (function webpackLoadOptionalExternalModule() { + try { + return __webpack_require__(3); + } catch (e) {} + })());else if (typeof define === 'function' && define.amd) define(['js-data', 'angular'], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { + return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root['axios']); + });else if (typeof exports === 'object') exports['jsDataAngularModuleName'] = factory(require('js-data'), require('angular'), (function webpackLoadOptionalExternalModule() { + try { + return require('axios'); + } catch (e) {} + })());else root['jsDataAngularModuleName'] = factory(root['JSData'], root['angular'], root['axios']); + })(this, function (__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { + return ( /******/(function (modules) { + // webpackBootstrap + /******/ // The module cache + /******/var installedModules = {}; + + /******/ // The require function + /******/function __webpack_require__(moduleId) { + + /******/ // Check if module is in cache + /******/if (installedModules[moduleId]) + /******/return installedModules[moduleId].exports; + + /******/ // Create a new module (and put it into the cache) + /******/var module = installedModules[moduleId] = { + /******/exports: {}, + /******/id: moduleId, + /******/loaded: false + /******/ }; + + /******/ // Execute the module function + /******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + + /******/ // Flag the module as loaded + /******/module.loaded = true; + + /******/ // Return the exports of the module + /******/return module.exports; + /******/ + } + + /******/ // expose the modules object (__webpack_modules__) + /******/__webpack_require__.m = modules; + + /******/ // expose the module cache + /******/__webpack_require__.c = installedModules; + + /******/ // __webpack_public_path__ + /******/__webpack_require__.p = ''; + + /******/ // Load entry module and return exports + /******/return __webpack_require__(0); + /******/ + })([ + /* 0 */ + /***/function (module, exports, __webpack_require__) { + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function'); + } + } + + /*jshint loopfunc:true*/ + var JSData = __webpack_require__(1); + var DSHttpAdapter = __webpack_require__(4); + var angular = __webpack_require__(2); + + var DSUtils = JSData.DSUtils; + var DSErrors = JSData.DSErrors; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + var isObject = DSUtils.isObject; + var set = DSUtils.set; + var resolveId = DSUtils.resolveId; + + var adapters = [{ + project: 'js-data-localstorage', + name: 'localstorage', + 'class': 'DSLocalStorageAdapter' + }, { + project: 'js-data-localforage', + name: 'localforage', + 'class': 'DSLocalForageAdapter' + }, { + project: 'js-data-firebase', + name: 'firebase', + 'class': 'DSFirebaseAdapter' + }, { + project: 'js-data-sql', + name: 'sql', + 'class': 'DSSqlAdapter' + }]; + + var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; + + function registerAdapter(adapter) { + var Adapter = undefined; + + try { + Adapter = __webpack_require__(3)(adapter.project); + } catch (e) {} + + if (!Adapter) { + Adapter = window[adapter['class']]; + } + + if (Adapter) { + adapter.loaded = true; + angular.module('js-data').provider(adapter['class'], function () { + var _this = this; + _this.defaults = {}; + _this.$get = [function () { + return new Adapter(_this.defaults); + }]; + }); + } + } + + var DSHttpAdapterProvider = function DSHttpAdapterProvider() { + _classCallCheck(this, DSHttpAdapterProvider); + + var defaults = {}; + this.defaults = defaults; + + this.$get = ['$http', 'DS', function ($http, DS) { + defaults.http = defaults.http || $http; + var adapter = new DSHttpAdapter(defaults); + DS.registerAdapter('http', adapter, { 'default': true }); + return adapter; + }]; + }; + + var DSProvider = function DSProvider() { + _classCallCheck(this, DSProvider); + + var _this = this; + var deps = []; + + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].loaded) { + deps.push(adapters[i]['class']); + } + } + + _this.defaults = {}; + + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + var _this = this; + + params = params || {}; + + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!isObject(params)) { + throw new DSErrors.IA('"params" must be an object!'); + } else if (!isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName); + }, function () { + var items = _this.filter(resourceName, params); + set(scope, expr, items); + if (cb) { + cb(null, items); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + var _this = this; + + id = resolveId(_this.definitions[resourceName], id); + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!isString(id) && !isNumber(id)) { + throw new DSErrors.IA('"id" must be a string or a number!'); + } else if (!isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName, id); + }, function () { + var item = _this.get(resourceName, id); + if (item) { + _this.compute(resourceName, id); + } + set(scope, expr, item); + if (cb) { + cb(null, item); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + function load() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var $rootScope = args[args.length - 2]; + var $q = args[args.length - 1]; + var store = new JSData.DS(_this.defaults); + var originals = {}; + + function QPromise(executor) { + var deferred = $q.defer(); + + try { + executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); + } catch (err) { + deferred.reject(err); + } + + return deferred.promise; + } + + QPromise.all = $q.all; + QPromise.when = $q.when; + QPromise.reject = $q.reject; + + DSUtils.Promise = QPromise; + + // Register any adapters that have been loaded + if (args.length) { + for (var i = 0; i < args.length; i++) { + for (var j = 0; j < adapters.length; j++) { + if (adapters[j].loaded && !adapters[j].registered) { + adapters[j].registered = true; + store.registerAdapter(adapters[j].name, args[i]); + break; + } + } + } + } + + var _loop = function _loop() { + var name = functionsToWrap[k]; + originals[name] = store[name]; + store[name] = function () { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + if (!$rootScope.$$phase) { + return $rootScope.$apply(function () { + return originals[name].apply(store, args); + }); + } + return originals[name].apply(store, args); + }; + }; + + // Wrap certain sync functions with $apply + for (var k = 0; k < functionsToWrap.length; k++) { + _loop(); + } + + // Hook into the digest loop + if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { + $rootScope.$watch(function () { + return store.observe.Platform.performMicrotaskCheckpoint(); + }); + } + + return store; + } + + deps.push('$rootScope'); + deps.push('$q'); + deps.push(load); + + _this.$get = deps; + }; + + angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { + DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); + }]); + + for (var i = 0; i < adapters.length; i++) { + registerAdapter(adapters[i]); + } + + // return the module name + module.exports = 'js-data'; + module.exports.name = 'js-data'; + + /***/ + }, + /* 1 */ + /***/function (module, exports, __webpack_require__) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_1__; + + /***/ + }, + /* 2 */ + /***/function (module, exports, __webpack_require__) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_2__; + + /***/ + }, + /* 3 */ + /***/function (module, exports, __webpack_require__) { + + var map = {}; + function webpackContext(req) { + return __webpack_require__(webpackContextResolve(req)); + }; + function webpackContextResolve(req) { + return map[req] || (function () { + throw new Error('Cannot find module \'' + req + '\'.'); + })(); + }; + webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); + }; + webpackContext.resolve = webpackContextResolve; + module.exports = webpackContext; + webpackContext.id = 3; + + /***/ + }, + /* 4 */ + /***/function (module, exports, __webpack_require__) { + + var _createClass = (function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); + } + }return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; + }; + })(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function'); + } + } + + var JSData = __webpack_require__(1); + var axios = null; + + try { + axios = __webpack_require__(5); + } catch (e) {} + + var DSUtils = JSData.DSUtils; + var deepMixIn = DSUtils.deepMixIn; + var removeCircular = DSUtils.removeCircular; + var copy = DSUtils.copy; + var makePath = DSUtils.makePath; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + + var Defaults = (function () { + function Defaults() { + _classCallCheck(this, Defaults); + } + + _createClass(Defaults, [{ + key: 'queryTransform', + value: function queryTransform(resourceConfig, params) { + return params; + } + }, { + key: 'deserialize', + value: function deserialize(resourceConfig, data) { + return data ? 'data' in data ? data.data : data : data; + } + }, { + key: 'serialize', + value: function serialize(resourceConfig, data) { + return data; + } + }, { + key: 'log', + value: function log() {} + }, { + key: 'error', + value: function error() {} + }]); + + return Defaults; + })(); + + var defaultsPrototype = Defaults.prototype; + + defaultsPrototype.basePath = ''; + + defaultsPrototype.forceTrailingSlash = ''; + + defaultsPrototype.httpConfig = {}; + + var DSHttpAdapter = (function () { + function DSHttpAdapter(options) { + _classCallCheck(this, DSHttpAdapter); + + this.defaults = new Defaults(); + if (console) { + this.defaults.log = function (a, b) { + return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); + }; + } + if (console) { + this.defaults.error = function (a, b) { + return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); + }; + } + deepMixIn(this.defaults, options); + this.http = options.http || axios; + } + + _createClass(DSHttpAdapter, [{ + key: 'getEndpoint', + value: function getEndpoint(resourceConfig, id, options) { + var _this2 = this; + + options = options || {}; + options.params = options.params || {}; + + var item = undefined; + var parentKey = resourceConfig.parentKey; + var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; + var parentField = resourceConfig.parentField; + var parentDef = resourceConfig.getResource(resourceConfig.parent); + var parentId = options.params[parentKey]; + + if (parentId === false || !parentKey || !parentDef) { + if (parentId === false) { + delete options.params[parentKey]; + } + return endpoint; + } else { + delete options.params[parentKey]; + + if (DSUtils._sn(id)) { + item = resourceConfig.get(id); + } else if (DSUtils._o(id)) { + item = id; + } + + if (item) { + parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); + } + + if (parentId) { + var _ret = (function () { + delete options.endpoint; + var _options = {}; + DSUtils.forOwn(options, function (value, key) { + _options[key] = value; + }); + return { + v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) + }; + })(); + + if (typeof _ret === 'object') return _ret.v; + } else { + return endpoint; + } + } + } + }, { + key: 'getPath', + value: function getPath(method, resourceConfig, id, options) { + var _this = this; + options = options || {}; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + if (method === 'find' || method === 'update' || method === 'destroy') { + args.push(id); + } + return makePath.apply(DSUtils, args); + } + }, { + key: 'HTTP', + value: function HTTP(config) { + var _this = this; + var start = new Date(); + config = copy(config); + config = deepMixIn(config, _this.defaults.httpConfig); + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { + config.url += '/'; + } + if (typeof config.data === 'object') { + config.data = removeCircular(config.data); + } + config.method = config.method.toUpperCase(); + var suffix = config.suffix || _this.defaults.suffix; + if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { + config.url += suffix; + } + + function logResponse(data) { + var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + if (data.status >= 200 && data.status < 300) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error('\'FAILED: ' + str, data); + } + return DSUtils.Promise.reject(data); + } + } + + if (!this.http) { + throw new Error('You have not configured this adapter with an http library!'); + } + + return this.http(config).then(logResponse, logResponse); + } + }, { + key: 'GET', + value: function GET(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'get'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'POST', + value: function POST(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'post'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs + })); + } + }, { + key: 'PUT', + value: function PUT(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'put'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs || {} + })); + } + }, { + key: 'DEL', + value: function DEL(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'delete'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'find', + value: function find(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { + var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item; + }); + } + }, { + key: 'findAll', + value: function findAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'create', + value: function create(resourceConfig, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'update', + value: function update(resourceConfig, id, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'updateAll', + value: function updateAll(resourceConfig, attrs, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroy', + value: function destroy(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroyAll', + value: function destroyAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }]); + + return DSHttpAdapter; + })(); + + module.exports = DSHttpAdapter; + + /***/ + }, + /* 5 */ + /***/function (module, exports, __webpack_require__) { + + if (typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') { + var e = new Error('Cannot find module "axios"');e.code = 'MODULE_NOT_FOUND';throw e; + } + module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + + /***/ + } + /******/]) + ); + }); + ; + + /************************************************************************/ + /******/ + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(4); + module.exports = angular; + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + if(typeof axios === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = axios; + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + var require;(function(window,document,undefined){'use strict';function minErr(module,ErrorConstructor){ErrorConstructor = ErrorConstructor || Error;return function(){var code=arguments[0],prefix='[' + (module?module + ':':'') + code + '] ',template=arguments[1],templateArgs=arguments,message,i;message = prefix + template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1),arg;if(index + 2 < templateArgs.length){return toDebugString(templateArgs[index + 2]);}return match;});message = message + '\nhttp://errors.angularjs.org/1.3.15/' + (module?module + '/':'') + code;for(i = 2;i < arguments.length;i++) {message = message + (i == 2?'?':'&') + 'p' + (i - 2) + '=' + encodeURIComponent(toDebugString(arguments[i]));}return new ErrorConstructor(message);};}var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/;var VALIDITY_STATE_PROPERTY='validity';var lowercase=function lowercase(string){return isString(string)?string.toLowerCase():string;};var hasOwnProperty=Object.prototype.hasOwnProperty;var uppercase=function uppercase(string){return isString(string)?string.toUpperCase():string;};var manualLowercase=function manualLowercase(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) | 32);}):s;};var manualUppercase=function manualUppercase(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) & ~32);}):s;};if('i' !== 'I'.toLowerCase()){lowercase = manualLowercase;uppercase = manualUppercase;}var msie,jqLite,jQuery,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,ngMinErr=minErr('ng'),angular=window.angular || (window.angular = {}),angularModule,uid=0;msie = document.documentMode;function isArrayLike(obj){if(obj == null || isWindow(obj)){return false;}var length=obj.length;if(obj.nodeType === NODE_TYPE_ELEMENT && length){return true;}return isString(obj) || isArray(obj) || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;}function forEach(obj,iterator,context){var key,length;if(obj){if(isFunction(obj)){for(key in obj) {if(key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))){iterator.call(context,obj[key],key,obj);}}}else if(isArray(obj) || isArrayLike(obj)){var isPrimitive=typeof obj !== 'object';for(key = 0,length = obj.length;key < length;key++) {if(isPrimitive || key in obj){iterator.call(context,obj[key],key,obj);}}}else if(obj.forEach && obj.forEach !== forEach){obj.forEach(iterator,context,obj);}else {for(key in obj) {if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key,obj);}}}}return obj;}function sortedKeys(obj){return Object.keys(obj).sort();}function forEachSorted(obj,iterator,context){var keys=sortedKeys(obj);for(var i=0;i < keys.length;i++) {iterator.call(context,obj[keys[i]],keys[i]);}return keys;}function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value);};}function nextUid(){return ++uid;}function setHashKey(obj,h){if(h){obj.$$hashKey = h;}else {delete obj.$$hashKey;}}function extend(dst){var h=dst.$$hashKey;for(var i=1,ii=arguments.length;i < ii;i++) {var obj=arguments[i];if(obj){var keys=Object.keys(obj);for(var j=0,jj=keys.length;j < jj;j++) {var key=keys[j];dst[key] = obj[key];}}}setHashKey(dst,h);return dst;}function int(str){return parseInt(str,10);}function inherit(parent,extra){return extend(Object.create(parent),extra);}function noop(){}noop.$inject = [];function identity($){return $;}identity.$inject = [];function valueFn(value){return function(){return value;};}function isUndefined(value){return typeof value === 'undefined';}function isDefined(value){return typeof value !== 'undefined';}function isObject(value){return value !== null && typeof value === 'object';}function isString(value){return typeof value === 'string';}function isNumber(value){return typeof value === 'number';}function isDate(value){return toString.call(value) === '[object Date]';}var isArray=Array.isArray;function isFunction(value){return typeof value === 'function';}function isRegExp(value){return toString.call(value) === '[object RegExp]';}function isWindow(obj){return obj && obj.window === obj;}function isScope(obj){return obj && obj.$evalAsync && obj.$watch;}function isFile(obj){return toString.call(obj) === '[object File]';}function isFormData(obj){return toString.call(obj) === '[object FormData]';}function isBlob(obj){return toString.call(obj) === '[object Blob]';}function isBoolean(value){return typeof value === 'boolean';}function isPromiseLike(obj){return obj && isFunction(obj.then);}var trim=function trim(value){return isString(value)?value.trim():value;};var escapeForRegexp=function escapeForRegexp(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,'\\$1').replace(/\x08/g,'\\x08');};function isElement(node){return !!(node && (node.nodeName || node.prop && node.attr && node.find));}function makeMap(str){var obj={},items=str.split(','),i;for(i = 0;i < items.length;i++) obj[items[i]] = true;return obj;}function nodeName_(element){return lowercase(element.nodeName || element[0] && element[0].nodeName);}function includes(array,obj){return Array.prototype.indexOf.call(array,obj) != -1;}function arrayRemove(array,value){var index=array.indexOf(value);if(index >= 0)array.splice(index,1);return value;}function copy(source,destination,stackSource,stackDest){if(isWindow(source) || isScope(source)){throw ngMinErr('cpws','Can\'t copy! Making copies of Window or Scope instances is not supported.');}if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){var emptyObject=Object.create(Object.getPrototypeOf(source));destination = copy(source,emptyObject,stackSource,stackDest);}}}else {if(source === destination)throw ngMinErr('cpi','Can\'t copy! Source and destination are identical.');stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1)return stackDest[index];stackSource.push(source);stackDest.push(destination);}var result;if(isArray(source)){destination.length = 0;for(var i=0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {var h=destination.$$hashKey;if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){result = copy(source[key],null,stackSource,stackDest);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}setHashKey(destination,h);}}return destination;}function shallowCopy(src,dst){if(isArray(src)){dst = dst || [];for(var i=0,ii=src.length;i < ii;i++) {dst[i] = src[i];}}else if(isObject(src)){dst = dst || {};for(var key in src) {if(!(key.charAt(0) === '$' && key.charAt(1) === '$')){dst[key] = src[key];}}}return dst || src;}function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2)return true;if(o1 === null || o2 === null)return false;if(o1 !== o1 && o2 !== o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2))return false;if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key]))return false;}return true;}}else if(isDate(o1)){if(!isDate(o2))return false;_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1)){return isRegExp(o2)?o1.toString() == o2.toString():false;}else {if(isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || isArray(o2) || isDate(o2) || isRegExp(o2))return false;keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key]))return false;}return true;}}}return false;}}var csp=function csp(){if(isDefined(csp.isActive_))return csp.isActive_;var active=!!(document.querySelector('[ng-csp]') || document.querySelector('[data-ng-csp]'));if(!active){try{new Function('');}catch(e) {active = true;}}return csp.isActive_ = active;};function concat(array1,array2,index){return array1.concat(slice.call(array2,index));}function sliceArgs(args,startIndex){return slice.call(args,startIndex || 0);}function bind(self,fn){var curryArgs=arguments.length > 2?sliceArgs(arguments,2):[];if(isFunction(fn) && !(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs);}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self);};}else {return fn;}}function toJsonReplacer(key,value){var val=value;if(typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$'){val = undefined;}else if(isWindow(value)){val = '$WINDOW';}else if(value && document === value){val = '$DOCUMENT';}else if(isScope(value)){val = '$SCOPE';}return val;}function toJson(obj,pretty){if(typeof obj === 'undefined')return undefined;if(!isNumber(pretty)){pretty = pretty?2:null;}return JSON.stringify(obj,toJsonReplacer,pretty);}function fromJson(json){return isString(json)?JSON.parse(json):json;}function startingTag(element){element = jqLite(element).clone();try{element.empty();}catch(e) {}var elemHtml=jqLite('<div>').append(element).html();try{return element[0].nodeType === NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return '<' + lowercase(nodeName);});}catch(e) {return lowercase(elemHtml);}}function tryDecodeURIComponent(value){try{return decodeURIComponent(value);}catch(e) {}}function parseKeyValue(keyValue){var obj={},key_value,key;forEach((keyValue || '').split('&'),function(keyValue){if(keyValue){key_value = keyValue.replace(/\+/g,'%20').split('=');key = tryDecodeURIComponent(key_value[0]);if(isDefined(key)){var val=isDefined(key_value[1])?tryDecodeURIComponent(key_value[1]):true;if(!hasOwnProperty.call(obj,key)){obj[key] = val;}else if(isArray(obj[key])){obj[key].push(val);}else {obj[key] = [obj[key],val];}}}});return obj;}function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){if(isArray(value)){forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,true) + (arrayValue === true?'':'=' + encodeUriQuery(arrayValue,true)));});}else {parts.push(encodeUriQuery(key,true) + (value === true?'':'=' + encodeUriQuery(value,true)));}});return parts.length?parts.join('&'):'';}function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,'&').replace(/%3D/gi,'=').replace(/%2B/gi,'+');}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,'@').replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%3B/gi,';').replace(/%20/g,pctEncodeSpaces?'%20':'+');}var ngAttrPrefixes=['ng-','data-ng-','ng:','x-ng-'];function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;element = jqLite(element);for(i = 0;i < ii;++i) {attr = ngAttrPrefixes[i] + ngAttr;if(isString(attr = element.attr(attr))){return attr;}}return null;}function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';if(!appElement && element.hasAttribute && element.hasAttribute(name)){appElement = element;module = element.getAttribute(name);}});forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';var candidate;if(!appElement && (candidate = element.querySelector('[' + name.replace(':','\\:') + ']'))){appElement = candidate;module = candidate.getAttribute(name);}});if(appElement){config.strictDi = getNgAttribute(appElement,'strict-di') !== null;bootstrap(appElement,module?[module]:[],config);}}function bootstrap(element,modules,config){if(!isObject(config))config = {};var defaultConfig={strictDi:false};config = extend(defaultConfig,config);var doBootstrap=function doBootstrap(){element = jqLite(element);if(element.injector()){var tag=element[0] === document?'document':startingTag(element);throw ngMinErr('btstrpd','App Already Bootstrapped with this Element \'{0}\'',tag.replace(/</,'<').replace(/>/,'>'));}modules = modules || [];modules.unshift(['$provide',function($provide){$provide.value('$rootElement',element);}]);if(config.debugInfoEnabled){modules.push(['$compileProvider',function($compileProvider){$compileProvider.debugInfoEnabled(true);}]);}modules.unshift('ng');var injector=createInjector(modules,config.strictDi);injector.invoke(['$rootScope','$rootElement','$compile','$injector',function bootstrapApply(scope,element,compile,injector){scope.$apply(function(){element.data('$injector',injector);compile(element)(scope);});}]);return injector;};var NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/;var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window && NG_ENABLE_DEBUG_INFO.test(window.name)){config.debugInfoEnabled = true;window.name = window.name.replace(NG_ENABLE_DEBUG_INFO,'');}if(window && !NG_DEFER_BOOTSTRAP.test(window.name)){return doBootstrap();}window.name = window.name.replace(NG_DEFER_BOOTSTRAP,'');angular.resumeBootstrap = function(extraModules){forEach(extraModules,function(module){modules.push(module);});return doBootstrap();};if(isFunction(angular.resumeDeferredBootstrap)){angular.resumeDeferredBootstrap();}}function reloadWithDebugInfo(){window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;window.location.reload();}function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector){throw ngMinErr('test','no injector found for element argument to getTestability');}return injector.get('$$testability');}var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator = separator || '_';return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return (pos?separator:'') + letter.toLowerCase();});}var bindJQueryFired=false;var skipDestroyOnNextJQueryCleanData;function bindJQuery(){var originalCleanData;if(bindJQueryFired){return;}jQuery = window.jQuery;if(jQuery && jQuery.fn.on){jqLite = jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});originalCleanData = jQuery.cleanData;jQuery.cleanData = function(elems){var events;if(!skipDestroyOnNextJQueryCleanData){for(var i=0,elem;(elem = elems[i]) != null;i++) {events = jQuery._data(elem,'events');if(events && events.$destroy){jQuery(elem).triggerHandler('$destroy');}}}else {skipDestroyOnNextJQueryCleanData = false;}originalCleanData(elems);};}else {jqLite = JQLite;}angular.element = jqLite;bindJQueryFired = true;}function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq','Argument \'{0}\' is {1}',name || '?',reason || 'required');}return arg;}function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation && isArray(arg)){arg = arg[arg.length - 1];}assertArg(isFunction(arg),name,'not a function, got ' + (arg && typeof arg === 'object'?arg.constructor.name || 'Object':typeof arg));return arg;}function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}}function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split('.');var key;var lastInstance=obj;var len=keys.length;for(var i=0;i < len;i++) {key = keys[i];if(obj){obj = (lastInstance = obj)[key];}}if(!bindFnToScope && isFunction(obj)){return bind(lastInstance,obj);}return obj;}function getBlockNodes(nodes){var node=nodes[0];var endNode=nodes[nodes.length - 1];var blockNodes=[node];do {node = node.nextSibling;if(!node)break;blockNodes.push(node);}while(node !== endNode);return jqLite(blockNodes);}function createMap(){return Object.create(null);}var NODE_TYPE_ELEMENT=1;var NODE_TYPE_TEXT=3;var NODE_TYPE_COMMENT=8;var NODE_TYPE_DOCUMENT=9;var NODE_TYPE_DOCUMENT_FRAGMENT=11;function setupModuleLoader(window){var $injectorMinErr=minErr('$injector');var ngMinErr=minErr('ng');function ensure(obj,name,factory){return obj[name] || (obj[name] = factory());}var angular=ensure(window,'angular',Object);angular.$$minErr = angular.$$minErr || minErr;return ensure(angular,'module',function(){var modules={};return function module(name,requires,configFn){var assertNotHasOwnProperty=function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}};assertNotHasOwnProperty(name,'module');if(requires && modules.hasOwnProperty(name)){modules[name] = null;}return ensure(modules,name,function(){if(!requires){throw $injectorMinErr('nomod','Module \'{0}\' is not available! You either misspelled ' + 'the module name or forgot to load it. If registering a module ensure that you ' + 'specify the dependencies as the second argument.',name);}var invokeQueue=[];var configBlocks=[];var runBlocks=[];var config=invokeLater('$injector','invoke','push',configBlocks);var moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater('$provide','provider'),factory:invokeLater('$provide','factory'),service:invokeLater('$provide','service'),value:invokeLater('$provide','value'),constant:invokeLater('$provide','constant','unshift'),animation:invokeLater('$animateProvider','register'),filter:invokeLater('$filterProvider','register'),controller:invokeLater('$controllerProvider','register'),directive:invokeLater('$compileProvider','directive'),config:config,run:function run(block){runBlocks.push(block);return this;}};if(configFn){config(configFn);}return moduleInstance;function invokeLater(provider,method,insertMethod,queue){if(!queue)queue = invokeQueue;return function(){queue[insertMethod || 'push']([provider,method,arguments]);return moduleInstance;};}});};});}function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){val = toJsonReplacer(key,val);if(isObject(val)){if(seen.indexOf(val) >= 0)return '<<already seen>>';seen.push(val);}return val;});}function toDebugString(obj){if(typeof obj === 'function'){return obj.toString().replace(/ \{[\s\S]*$/,'');}else if(typeof obj === 'undefined'){return 'undefined';}else if(typeof obj !== 'string'){return serializeObject(obj);}return obj;}var version={full:'1.3.15',major:1,minor:3,dot:15,codeName:'locality-filtration'};function publishExternalAPI(angular){extend(angular,{'bootstrap':bootstrap,'copy':copy,'extend':extend,'equals':equals,'element':jqLite,'forEach':forEach,'injector':createInjector,'noop':noop,'bind':bind,'toJson':toJson,'fromJson':fromJson,'identity':identity,'isUndefined':isUndefined,'isDefined':isDefined,'isString':isString,'isFunction':isFunction,'isObject':isObject,'isNumber':isNumber,'isElement':isElement,'isArray':isArray,'version':version,'isDate':isDate,'lowercase':lowercase,'uppercase':uppercase,'callbacks':{counter:0},'getTestability':getTestability,'$$minErr':minErr,'$$csp':csp,'reloadWithDebugInfo':reloadWithDebugInfo});angularModule = setupModuleLoader(window);try{angularModule('ngLocale');}catch(e) {angularModule('ngLocale',[]).provider('$locale',$LocaleProvider);}angularModule('ng',['ngLocale'],['$provide',function ngModule($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider});$provide.provider('$compile',$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$asyncCallback:$$AsyncCallbackProvider,$$jqLite:$$jqLiteProvider});}]);}JQLite.expando = 'ng339';var jqCache=JQLite.cache = {},jqId=1,addEventListenerFn=function addEventListenerFn(element,type,fn){element.addEventListener(type,fn,false);},removeEventListenerFn=function removeEventListenerFn(element,type,fn){element.removeEventListener(type,fn,false);};JQLite._data = function(node){return this.cache[node[this.expando]] || {};};function jqNextId(){return ++jqId;}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;var MOUSE_EVENT_MAP={mouseleave:'mouseout',mouseenter:'mouseover'};var jqLiteMinErr=minErr('jqLite');function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter;}).replace(MOZ_HACK_REGEXP,'Moz$1');}var SINGLE_TAG_REGEXP=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var HTML_REGEXP=/<|&#?\w+;/;var TAG_NAME_REGEXP=/<([\w:]+)/;var XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;var wrapMap={'option':[1,'<select multiple="multiple">','</select>'],'thead':[1,'<table>','</table>'],'col':[2,'<table><colgroup>','</colgroup></table>'],'tr':[2,'<table><tbody>','</tbody></table>'],'td':[3,'<table><tbody><tr>','</tr></tbody></table>'],'_default':[0,'','']};wrapMap.optgroup = wrapMap.option;wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;wrapMap.th = wrapMap.td;function jqLiteIsTextNode(html){return !HTML_REGEXP.test(html);}function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;}function jqLiteBuildFragment(html,context){var tmp,tag,wrap,fragment=context.createDocumentFragment(),nodes=[],i;if(jqLiteIsTextNode(html)){nodes.push(context.createTextNode(html));}else {tmp = tmp || fragment.appendChild(context.createElement('div'));tag = (TAG_NAME_REGEXP.exec(html) || ['',''])[1].toLowerCase();wrap = wrapMap[tag] || wrapMap._default;tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP,'<$1></$2>') + wrap[2];i = wrap[0];while(i--) {tmp = tmp.lastChild;}nodes = concat(nodes,tmp.childNodes);tmp = fragment.firstChild;tmp.textContent = '';}fragment.textContent = '';fragment.innerHTML = '';forEach(nodes,function(node){fragment.appendChild(node);});return fragment;}function jqLiteParseHTML(html,context){context = context || document;var parsed;if(parsed = SINGLE_TAG_REGEXP.exec(html)){return [context.createElement(parsed[1])];}if(parsed = jqLiteBuildFragment(html,context)){return parsed.childNodes;}return [];}function JQLite(element){if(element instanceof JQLite){return element;}var argIsString;if(isString(element)){element = trim(element);argIsString = true;}if(!(this instanceof JQLite)){if(argIsString && element.charAt(0) != '<'){throw jqLiteMinErr('nosel','Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');}return new JQLite(element);}if(argIsString){jqLiteAddNodes(this,jqLiteParseHTML(element));}else {jqLiteAddNodes(this,element);}}function jqLiteClone(element){return element.cloneNode(true);}function jqLiteDealoc(element,onlyDescendants){if(!onlyDescendants)jqLiteRemoveData(element);if(element.querySelectorAll){var descendants=element.querySelectorAll('*');for(var i=0,l=descendants.length;i < l;i++) {jqLiteRemoveData(descendants[i]);}}}function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('offargs','jqLite#off() does not support the `selector` argument');var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var handle=expandoStore && expandoStore.handle;if(!handle)return;if(!type){for(type in events) {if(type !== '$destroy'){removeEventListenerFn(element,type,handle);}delete events[type];}}else {forEach(type.split(' '),function(type){if(isDefined(fn)){var listenerFns=events[type];arrayRemove(listenerFns || [],fn);if(listenerFns && listenerFns.length > 0){return;}}removeEventListenerFn(element,type,handle);delete events[type];});}}function jqLiteRemoveData(element,name){var expandoId=element.ng339;var expandoStore=expandoId && jqCache[expandoId];if(expandoStore){if(name){delete expandoStore.data[name];return;}if(expandoStore.handle){if(expandoStore.events.$destroy){expandoStore.handle({},'$destroy');}jqLiteOff(element);}delete jqCache[expandoId];element.ng339 = undefined;}}function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId && jqCache[expandoId];if(createIfNecessary && !expandoStore){element.ng339 = expandoId = jqNextId();expandoStore = jqCache[expandoId] = {events:{},data:{},handle:undefined};}return expandoStore;}function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value);var isSimpleGetter=!isSimpleSetter && key && !isObject(key);var massGetter=!key;var expandoStore=jqLiteExpandoStore(element,!isSimpleGetter);var data=expandoStore && expandoStore.data;if(isSimpleSetter){data[key] = value;}else {if(massGetter){return data;}else {if(isSimpleGetter){return data && data[key];}else {extend(data,key);}}}}}function jqLiteHasClass(element,selector){if(!element.getAttribute)return false;return (' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').indexOf(' ' + selector + ' ') > -1;}function jqLiteRemoveClass(element,cssClasses){if(cssClasses && element.setAttribute){forEach(cssClasses.split(' '),function(cssClass){element.setAttribute('class',trim((' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').replace(' ' + trim(cssClass) + ' ',' ')));});}}function jqLiteAddClass(element,cssClasses){if(cssClasses && element.setAttribute){var existingClasses=(' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ');forEach(cssClasses.split(' '),function(cssClass){cssClass = trim(cssClass);if(existingClasses.indexOf(' ' + cssClass + ' ') === -1){existingClasses += cssClass + ' ';}});element.setAttribute('class',trim(existingClasses));}}function jqLiteAddNodes(root,elements){if(elements){if(elements.nodeType){root[root.length++] = elements;}else {var length=elements.length;if(typeof length === 'number' && elements.window !== elements){if(length){for(var i=0;i < length;i++) {root[root.length++] = elements[i];}}}else {root[root.length++] = elements;}}}}function jqLiteController(element,name){return jqLiteInheritedData(element,'$' + (name || 'ngController') + 'Controller');}function jqLiteInheritedData(element,name,value){if(element.nodeType == NODE_TYPE_DOCUMENT){element = element.documentElement;}var names=isArray(name)?name:[name];while(element) {for(var i=0,ii=names.length;i < ii;i++) {if((value = jqLite.data(element,names[i])) !== undefined)return value;}element = element.parentNode || element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host;}}function jqLiteEmpty(element){jqLiteDealoc(element,true);while(element.firstChild) {element.removeChild(element.firstChild);}}function jqLiteRemove(element,keepData){if(!keepData)jqLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element);}function jqLiteDocumentLoaded(action,win){win = win || window;if(win.document.readyState === 'complete'){win.setTimeout(action);}else {jqLite(win).on('load',action);}}var JQLitePrototype=JQLite.prototype = {ready:function ready(fn){var fired=false;function trigger(){if(fired)return;fired = true;fn();}if(document.readyState === 'complete'){setTimeout(trigger);}else {this.on('DOMContentLoaded',trigger);JQLite(window).on('load',trigger);}},toString:function toString(){var value=[];forEach(this,function(e){value.push('' + e);});return '[' + value.join(', ') + ']';},eq:function eq(index){return index >= 0?jqLite(this[index]):jqLite(this[this.length + index]);},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','),function(value){BOOLEAN_ATTR[lowercase(value)] = value;});var BOOLEAN_ELEMENTS={};forEach('input,select,option,textarea,button,form,details'.split(','),function(value){BOOLEAN_ELEMENTS[value] = true;});var ALIASED_ATTR={'ngMinlength':'minlength','ngMaxlength':'maxlength','ngMin':'min','ngMax':'max','ngPattern':'pattern'};function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;}function getAliasedAttrName(element,name){var nodeName=element.nodeName;return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name];}forEach({data:jqLiteData,removeData:jqLiteRemoveData},function(fn,name){JQLite[name] = fn;});forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function scope(element){return jqLite.data(element,'$scope') || jqLiteInheritedData(element.parentNode || element,['$isolateScope','$scope']);},isolateScope:function isolateScope(element){return jqLite.data(element,'$isolateScope') || jqLite.data(element,'$isolateScopeNoTemplate');},controller:jqLiteController,injector:function injector(element){return jqLiteInheritedData(element,'$injector');},removeAttr:function removeAttr(element,name){element.removeAttribute(name);},hasClass:jqLiteHasClass,css:function css(element,name,value){name = camelCase(name);if(isDefined(value)){element.style[name] = value;}else {return element.style[name];}},attr:function attr(element,name,value){var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name] = true;element.setAttribute(name,lowercasedName);}else {element[name] = false;element.removeAttribute(lowercasedName);}}else {return element[name] || (element.attributes.getNamedItem(name) || noop).specified?lowercasedName:undefined;}}else if(isDefined(value)){element.setAttribute(name,value);}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret === null?undefined:ret;}},prop:function prop(element,name,value){if(isDefined(value)){element[name] = value;}else {return element[name];}},text:(function(){getText.$dv = '';return getText;function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT?element.textContent:'';}element.textContent = value;}})(),val:function val(element,value){if(isUndefined(value)){if(element.multiple && nodeName_(element) === 'select'){var result=[];forEach(element.options,function(option){if(option.selected){result.push(option.value || option.text);}});return result.length === 0?null:result;}return element.value;}element.value = value;},html:function html(element,value){if(isUndefined(value)){return element.innerHTML;}jqLiteDealoc(element,true);element.innerHTML = value;},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name] = function(arg1,arg2){var i,key;var nodeCount=this.length;if(fn !== jqLiteEmpty && (fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)?arg1:arg2) === undefined){if(isObject(arg1)){for(i = 0;i < nodeCount;i++) {if(fn === jqLiteData){fn(this[i],arg1);}else {for(key in arg1) {fn(this[i],key,arg1[key]);}}}return this;}else {var value=fn.$dv;var jj=value === undefined?Math.min(nodeCount,1):nodeCount;for(var j=0;j < jj;j++) {var nodeValue=fn(this[j],arg1,arg2);value = value?value + nodeValue:nodeValue;}return value;}}else {for(i = 0;i < nodeCount;i++) {fn(this[i],arg1,arg2);}return this;}};});function createEventHandler(element,events){var eventHandler=function eventHandler(event,type){event.isDefaultPrevented = function(){return event.defaultPrevented;};var eventFns=events[type || event.type];var eventFnsLength=eventFns?eventFns.length:0;if(!eventFnsLength)return;if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation = function(){event.immediatePropagationStopped = true;if(event.stopPropagation){event.stopPropagation();}if(originalStopImmediatePropagation){originalStopImmediatePropagation.call(event);}};}event.isImmediatePropagationStopped = function(){return event.immediatePropagationStopped === true;};if(eventFnsLength > 1){eventFns = shallowCopy(eventFns);}for(var i=0;i < eventFnsLength;i++) {if(!event.isImmediatePropagationStopped()){eventFns[i].call(element,event);}}};eventHandler.elem = element;return eventHandler;}forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('onargs','jqLite#on() does not support the `selector` or `eventData` parameters');if(!jqLiteAcceptsData(element)){return;}var expandoStore=jqLiteExpandoStore(element,true);var events=expandoStore.events;var handle=expandoStore.handle;if(!handle){handle = expandoStore.handle = createEventHandler(element,events);}var types=type.indexOf(' ') >= 0?type.split(' '):[type];var i=types.length;while(i--) {type = types[i];var eventFns=events[type];if(!eventFns){events[type] = [];if(type === 'mouseenter' || type === 'mouseleave'){jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;if(!related || related !== target && !target.contains(related)){handle(event,type);}});}else {if(type !== '$destroy'){addEventListenerFn(element,type,handle);}}eventFns = events[type];}eventFns.push(fn);}},off:jqLiteOff,one:function one(element,type,fn){element = jqLite(element);element.on(type,function onFn(){element.off(type,fn);element.off(type,onFn);});element.on(type,fn);},replaceWith:function replaceWith(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling);}else {parent.replaceChild(node,element);}index = node;});},children:function children(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType === NODE_TYPE_ELEMENT)children.push(element);});return children;},contents:function contents(element){return element.contentDocument || element.childNodes || [];},append:function append(element,node){var nodeType=element.nodeType;if(nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT)return;node = new JQLite(node);for(var i=0,ii=node.length;i < ii;i++) {var child=node[i];element.appendChild(child);}},prepend:function prepend(element,node){if(element.nodeType === NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index);});}},wrap:function wrap(element,wrapNode){wrapNode = jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element);}wrapNode.appendChild(element);},remove:jqLiteRemove,detach:function detach(element){jqLiteRemove(element,true);},after:function after(element,newElement){var index=element,parent=element.parentNode;newElement = new JQLite(newElement);for(var i=0,ii=newElement.length;i < ii;i++) {var node=newElement[i];parent.insertBefore(node,index.nextSibling);index = node;}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function toggleClass(element,selector,condition){if(selector){forEach(selector.split(' '),function(className){var classCondition=condition;if(isUndefined(classCondition)){classCondition = !jqLiteHasClass(element,className);}(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className);});}},parent:function parent(element){var parent=element.parentNode;return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT?parent:null;},next:function next(element){return element.nextElementSibling;},find:function find(element,selector){if(element.getElementsByTagName){return element.getElementsByTagName(selector);}else {return [];}},clone:jqLiteClone,triggerHandler:function triggerHandler(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs;var eventName=event.type || event;var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var eventFns=events && events[eventName];if(eventFns){dummyEvent = {preventDefault:function preventDefault(){this.defaultPrevented = true;},isDefaultPrevented:function isDefaultPrevented(){return this.defaultPrevented === true;},stopImmediatePropagation:function stopImmediatePropagation(){this.immediatePropagationStopped = true;},isImmediatePropagationStopped:function isImmediatePropagationStopped(){return this.immediatePropagationStopped === true;},stopPropagation:noop,type:eventName,target:element};if(event.type){dummyEvent = extend(dummyEvent,event);}eventFnsCopy = shallowCopy(eventFns);handlerArgs = extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent];forEach(eventFnsCopy,function(fn){if(!dummyEvent.isImmediatePropagationStopped()){fn.apply(element,handlerArgs);}});}}},function(fn,name){JQLite.prototype[name] = function(arg1,arg2,arg3){var value;for(var i=0,ii=this.length;i < ii;i++) {if(isUndefined(value)){value = fn(this[i],arg1,arg2,arg3);if(isDefined(value)){value = jqLite(value);}}else {jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));}}return isDefined(value)?value:this;};JQLite.prototype.bind = JQLite.prototype.on;JQLite.prototype.unbind = JQLite.prototype.off;});function $$jqLiteProvider(){this.$get = function $$jqLite(){return extend(JQLite,{hasClass:function hasClass(node,classes){if(node.attr)node = node[0];return jqLiteHasClass(node,classes);},addClass:function addClass(node,classes){if(node.attr)node = node[0];return jqLiteAddClass(node,classes);},removeClass:function removeClass(node,classes){if(node.attr)node = node[0];return jqLiteRemoveClass(node,classes);}});};}function hashKey(obj,nextUidFn){var key=obj && obj.$$hashKey;if(key){if(typeof key === 'function'){key = obj.$$hashKey();}return key;}var objType=typeof obj;if(objType == 'function' || objType == 'object' && obj !== null){key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();}else {key = objType + ':' + obj;}return key;}function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid = function(){return ++uid;};}forEach(array,this.put,this);}HashMap.prototype = {put:function put(key,value){this[hashKey(key,this.nextUid)] = value;},get:function get(key){return this[hashKey(key,this.nextUid)];},remove:function remove(key){var value=this[key = hashKey(key,this.nextUid)];delete this[key];return value;}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;var $injectorMinErr=minErr('$injector');function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,''),args=fnText.match(FN_ARGS);if(args){return 'function(' + (args[1] || '').replace(/[\s\r\n]+/,' ') + ')';}return 'fn';}function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if(typeof fn === 'function'){if(!($inject = fn.$inject)){$inject = [];if(fn.length){if(strictDi){if(!isString(name) || !name){name = fn.name || anonFn(fn);}throw $injectorMinErr('strictdi','{0} is not using explicit annotation and cannot be invoked in strict mode',name);}fnText = fn.toString().replace(STRIP_COMMENTS,'');argDecl = fnText.match(FN_ARGS);forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name);});});}fn.$inject = $inject;}}else if(isArray(fn)){last = fn.length - 1;assertArgFn(fn[last],'fn');$inject = fn.slice(0,last);}else {assertArgFn(fn,'fn',true);}return $inject;}function createInjector(modulesToLoad,strictDi){strictDi = strictDi === true;var INSTANTIATING={},providerSuffix='Provider',path=[],loadedModules=new HashMap([],true),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector = createInternalInjector(providerCache,function(serviceName,caller){if(angular.isString(caller)){path.push(caller);}throw $injectorMinErr('unpr','Unknown provider: {0}',path.join(' <- '));}),instanceCache={},instanceInjector=instanceCache.$injector = createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName + providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName);});forEach(loadModules(modulesToLoad),function(fn){instanceInjector.invoke(fn || noop);});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate));}else {return delegate(key,value);}};}function provider(name,provider_){assertNotHasOwnProperty(name,'service');if(isFunction(provider_) || isArray(provider_)){provider_ = providerInjector.instantiate(provider_);}if(!provider_.$get){throw $injectorMinErr('pget','Provider \'{0}\' must define $get factory method.',name);}return providerCache[name + providerSuffix] = provider_;}function enforceReturnValue(name,factory){return function enforcedReturnValue(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result)){throw $injectorMinErr('undef','Provider \'{0}\' must return a value from $get factory method.',name);}return result;};}function factory(name,factoryFn,enforce){return provider(name,{$get:enforce !== false?enforceReturnValue(name,factoryFn):factoryFn});}function service(name,constructor){return factory(name,['$injector',function($injector){return $injector.instantiate(constructor);}]);}function value(name,val){return factory(name,valueFn(val),false);}function constant(name,value){assertNotHasOwnProperty(name,'constant');providerCache[name] = value;instanceCache[name] = value;}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName + providerSuffix),orig$get=origProvider.$get;origProvider.$get = function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance});};}function loadModules(modulesToLoad){var runBlocks=[],moduleFn;forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);function runInvokeQueue(queue){var i,ii;for(i = 0,ii = queue.length;i < ii;i++) {var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2]);}}try{if(isString(module)){moduleFn = angularModule(module);runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);runInvokeQueue(moduleFn._invokeQueue);runInvokeQueue(moduleFn._configBlocks);}else if(isFunction(module)){runBlocks.push(providerInjector.invoke(module));}else if(isArray(module)){runBlocks.push(providerInjector.invoke(module));}else {assertArgFn(module,'module');}}catch(e) {if(isArray(module)){module = module[module.length - 1];}if(e.message && e.stack && e.stack.indexOf(e.message) == -1){e = e.message + '\n' + e.stack;}throw $injectorMinErr('modulerr','Failed to instantiate module {0} due to:\n{1}',module,e.stack || e.message || e);}});return runBlocks;}function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName] === INSTANTIATING){throw $injectorMinErr('cdep','Circular dependency found: {0}',serviceName + ' <- ' + path.join(' <- '));}return cache[serviceName];}else {try{path.unshift(serviceName);cache[serviceName] = INSTANTIATING;return cache[serviceName] = factory(serviceName,caller);}catch(err) {if(cache[serviceName] === INSTANTIATING){delete cache[serviceName];}throw err;}finally {path.shift();}}}function invoke(fn,self,locals,serviceName){if(typeof locals === 'string'){serviceName = locals;locals = null;}var args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName),length,i,key;for(i = 0,length = $inject.length;i < length;i++) {key = $inject[i];if(typeof key !== 'string'){throw $injectorMinErr('itkn','Incorrect injection token! Expected service name as string, got {0}',key);}args.push(locals && locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName));}if(isArray(fn)){fn = fn[length];}return fn.apply(self,args);}function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length - 1]:Type).prototype || null);var returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue) || isFunction(returnedValue)?returnedValue:instance;}return {invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function has(name){return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);}};}}createInjector.$$annotate = annotate;function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling = function(){autoScrollingEnabled = false;};this.$get = ['$window','$location','$rootScope',function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=null;Array.prototype.some.call(list,function(element){if(nodeName_(element) === 'a'){result = element;return true;}});return result;}function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset)){offset = offset();}else if(isElement(offset)){var elem=offset[0];var style=$window.getComputedStyle(elem);if(style.position !== 'fixed'){offset = 0;}else {offset = elem.getBoundingClientRect().bottom;}}else if(!isNumber(offset)){offset = 0;}return offset;}function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop - offset);}}else {$window.scrollTo(0,0);}}function scroll(){var hash=$location.hash(),elm;if(!hash)scrollTo(null);else if(elm = document.getElementById(hash))scrollTo(elm);else if(elm = getFirstAnchor(document.getElementsByName(hash)))scrollTo(elm);else if(hash === 'top')scrollTo(null);}if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash();},function autoScrollWatchAction(newVal,oldVal){if(newVal === oldVal && newVal === '')return;jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll);});});}return scroll;}];}var $animateMinErr=minErr('$animate');var $AnimateProvider=['$provide',function($provide){this.$$selectors = {};this.register = function(name,factory){var key=name + '-animation';if(name && name.charAt(0) != '.')throw $animateMinErr('notcsel','Expecting class selector starting with \'.\' got \'{0}\'.',name);this.$$selectors[name.substr(1)] = key;$provide.factory(key,factory);};this.classNameFilter = function(expression){if(arguments.length === 1){this.$$classNameFilter = expression instanceof RegExp?expression:null;}return this.$$classNameFilter;};this.$get = ['$$q','$$asyncCallback','$rootScope',function($$q,$$asyncCallback,$rootScope){var currentDefer;function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();defer.promise.$$cancelFn = function ngAnimateMaybeCancel(){cancelFn && cancelFn();};$rootScope.$$postDigest(function ngAnimatePostDigest(){cancelFn = fn(function ngAnimateNotifyComplete(){defer.resolve();});});return defer.promise;}function resolveElementClasses(element,classes){var toAdd=[],toRemove=[];var hasClasses=createMap();forEach((element.attr('class') || '').split(/\s+/),function(className){hasClasses[className] = true;});forEach(classes,function(status,className){var hasClass=hasClasses[className];if(status === false && hasClass){toRemove.push(className);}else if(status === true && !hasClass){toAdd.push(className);}});return toAdd.length + toRemove.length > 0 && [toAdd.length?toAdd:null,toRemove.length?toRemove:null];}function cachedClassManipulation(cache,classes,op){for(var i=0,ii=classes.length;i < ii;++i) {var className=classes[i];cache[className] = op;}}function asyncPromise(){if(!currentDefer){currentDefer = $$q.defer();$$asyncCallback(function(){currentDefer.resolve();currentDefer = null;});}return currentDefer.promise;}function applyStyles(element,options){if(angular.isObject(options)){var styles=extend(options.from || {},options.to || {});element.css(styles);}}return {animate:function animate(element,from,to){applyStyles(element,{from:from,to:to});return asyncPromise();},enter:function enter(element,parent,after,options){applyStyles(element,options);after?after.after(element):parent.prepend(element);return asyncPromise();},leave:function leave(element,options){applyStyles(element,options);element.remove();return asyncPromise();},move:function move(element,parent,after,options){return this.enter(element,parent,after,options);},addClass:function addClass(element,className,options){return this.setClass(element,className,[],options);},$$addClassImmediately:function $$addClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteAddClass(element,className);});applyStyles(element,options);return asyncPromise();},removeClass:function removeClass(element,className,options){return this.setClass(element,[],className,options);},$$removeClassImmediately:function $$removeClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteRemoveClass(element,className);});applyStyles(element,options);return asyncPromise();},setClass:function setClass(element,add,remove,options){var self=this;var STORAGE_KEY='$$animateClasses';var createdCache=false;element = jqLite(element);var cache=element.data(STORAGE_KEY);if(!cache){cache = {classes:{},options:options};createdCache = true;}else if(options && cache.options){cache.options = angular.extend(cache.options || {},options);}var classes=cache.classes;add = isArray(add)?add:add.split(' ');remove = isArray(remove)?remove:remove.split(' ');cachedClassManipulation(classes,add,true);cachedClassManipulation(classes,remove,false);if(createdCache){cache.promise = runAnimationPostDigest(function(done){var cache=element.data(STORAGE_KEY);element.removeData(STORAGE_KEY);if(cache){var classes=resolveElementClasses(element,cache.classes);if(classes){self.$$setClassImmediately(element,classes[0],classes[1],cache.options);}}done();});element.data(STORAGE_KEY,cache);}return cache.promise;},$$setClassImmediately:function $$setClassImmediately(element,add,remove,options){add && this.$$addClassImmediately(element,add);remove && this.$$removeClassImmediately(element,remove);applyStyles(element,options);return asyncPromise();},enabled:noop,cancel:noop};}];}];function $$AsyncCallbackProvider(){this.$get = ['$$rAF','$timeout',function($$rAF,$timeout){return $$rAF.supported?function(fn){return $$rAF(fn);}:function(fn){return $timeout(fn,0,false);};}];}function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock = false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest = completeOutstandingRequest;self.$$incOutstandingRequestCount = function(){outstandingRequestCount++;};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1));}finally {outstandingRequestCount--;if(outstandingRequestCount === 0){while(outstandingRequestCallbacks.length) {try{outstandingRequestCallbacks.pop()();}catch(e) {$log.error(e);}}}}}function getHash(url){var index=url.indexOf('#');return index === -1?'':url.substr(index + 1);}self.notifyWhenNoOutstandingRequests = function(callback){forEach(pollFns,function(pollFn){pollFn();});if(outstandingRequestCount === 0){callback();}else {outstandingRequestCallbacks.push(callback);}};var pollFns=[],pollTimeout;self.addPollFn = function(fn){if(isUndefined(pollTimeout))startPoller(100,setTimeout);pollFns.push(fn);return fn;};function startPoller(interval,setTimeout){(function check(){forEach(pollFns,function(pollFn){pollFn();});pollTimeout = setTimeout(check,interval);})();}var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find('base'),reloadLocation=null;cacheState();lastHistoryState = cachedState;self.url = function(url,replace,state){if(isUndefined(state)){state = null;}if(location !== window.location)location = window.location;if(history !== window.history)history = window.history;if(url){var sameState=lastHistoryState === state;if(lastBrowserUrl === url && (!$sniffer.history || sameState)){return self;}var sameBase=lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);lastBrowserUrl = url;lastHistoryState = state;if($sniffer.history && (!sameBase || !sameState)){history[replace?'replaceState':'pushState'](state,'',url);cacheState();lastHistoryState = cachedState;}else {if(!sameBase){reloadLocation = url;}if(replace){location.replace(url);}else if(!sameBase){location.href = url;}else {location.hash = getHash(url);}}return self;}else {return reloadLocation || location.href.replace(/%27/g,'\'');}};self.state = function(){return cachedState;};var urlChangeListeners=[],urlChangeInit=false;function cacheStateAndFireUrlChange(){cacheState();fireUrlChange();}function getCurrentState(){try{return history.state;}catch(e) {}}var lastCachedState=null;function cacheState(){cachedState = getCurrentState();cachedState = isUndefined(cachedState)?null:cachedState;if(equals(cachedState,lastCachedState)){cachedState = lastCachedState;}lastCachedState = cachedState;}function fireUrlChange(){if(lastBrowserUrl === self.url() && lastHistoryState === cachedState){return;}lastBrowserUrl = self.url();lastHistoryState = cachedState;forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState);});}self.onUrlChange = function(callback){if(!urlChangeInit){if($sniffer.history)jqLite(window).on('popstate',cacheStateAndFireUrlChange);jqLite(window).on('hashchange',cacheStateAndFireUrlChange);urlChangeInit = true;}urlChangeListeners.push(callback);return callback;};self.$$checkUrlChange = fireUrlChange;self.baseHref = function(){var href=baseElement.attr('href');return href?href.replace(/^(https?\:)?\/\/[^\/]*/,''):'';};var lastCookies={};var lastCookieString='';var cookiePath=self.baseHref();function safeDecodeURIComponent(str){try{return decodeURIComponent(str);}catch(e) {return str;}}self.cookies = function(name,value){var cookieLength,cookieArray,cookie,i,index;if(name){if(value === undefined){rawDocument.cookie = encodeURIComponent(name) + '=;path=' + cookiePath + ';expires=Thu, 01 Jan 1970 00:00:00 GMT';}else {if(isString(value)){cookieLength = (rawDocument.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=' + cookiePath).length + 1;if(cookieLength > 4096){$log.warn('Cookie \'' + name + '\' possibly not set or overflowed because it was too large (' + cookieLength + ' > 4096 bytes)!');}}}}else {if(rawDocument.cookie !== lastCookieString){lastCookieString = rawDocument.cookie;cookieArray = lastCookieString.split('; ');lastCookies = {};for(i = 0;i < cookieArray.length;i++) {cookie = cookieArray[i];index = cookie.indexOf('=');if(index > 0){name = safeDecodeURIComponent(cookie.substring(0,index));if(lastCookies[name] === undefined){lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));}}}}return lastCookies;}};self.defer = function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId = setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn);},delay || 0);pendingDeferIds[timeoutId] = true;return timeoutId;};self.defer.cancel = function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true;}return false;};}function $BrowserProvider(){this.$get = ['$window','$log','$sniffer','$document',function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer);}];}function $CacheFactoryProvider(){this.$get = function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw minErr('$cacheFactory')('iid','CacheId \'{0}\' is already taken!',cacheId);}var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options && options.capacity || Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId] = {put:function put(key,value){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key] || (lruHash[key] = {key:key});refresh(lruEntry);}if(isUndefined(value))return;if(!(key in data))size++;data[key] = value;if(size > capacity){this.remove(staleEnd.key);}return value;},get:function get(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);}return data[key];},remove:function remove(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry == freshEnd)freshEnd = lruEntry.p;if(lruEntry == staleEnd)staleEnd = lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];}delete data[key];size--;},removeAll:function removeAll(){data = {};size = 0;lruHash = {};freshEnd = staleEnd = null;},destroy:function destroy(){data = null;stats = null;lruHash = null;delete caches[cacheId];},info:function info(){return extend({},stats,{size:size});}};function refresh(entry){if(entry != freshEnd){if(!staleEnd){staleEnd = entry;}else if(staleEnd == entry){staleEnd = entry.n;}link(entry.n,entry.p);link(entry,freshEnd);freshEnd = entry;freshEnd.n = null;}}function link(nextEntry,prevEntry){if(nextEntry != prevEntry){if(nextEntry)nextEntry.p = prevEntry;if(prevEntry)prevEntry.n = nextEntry;}}}cacheFactory.info = function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId] = cache.info();});return info;};cacheFactory.get = function(cacheId){return caches[cacheId];};return cacheFactory;};}function $TemplateCacheProvider(){this.$get = ['$cacheFactory',function($cacheFactory){return $cacheFactory('templates');}];}var $compileMinErr=minErr('$compile');$CompileProvider.$inject = ['$provide','$$sanitizeUriProvider'];function $CompileProvider($provide,$$sanitizeUriProvider){var hasDirectives={},Suffix='Directive',COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap('ngSrc,ngSrcset,src,srcset'),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/;var EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;function parseIsolateBindings(scope,directiveName){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;var bindings={};forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match){throw $compileMinErr('iscp','Invalid isolate scope definition for directive \'{0}\'.' + ' Definition: {... {1}: \'{2}\' ...}',directiveName,scopeName,definition);}bindings[scopeName] = {mode:match[1][0],collection:match[2] === '*',optional:match[3] === '?',attrName:match[4] || scopeName};});return bindings;}this.directive = function registerDirective(name,directiveFactory){assertNotHasOwnProperty(name,'directive');if(isString(name)){assertArg(directiveFactory,'directiveFactory');if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name] = [];$provide.factory(name + Suffix,['$injector','$exceptionHandler',function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive = {compile:valueFn(directive)};}else if(!directive.compile && directive.link){directive.compile = valueFn(directive.link);}directive.priority = directive.priority || 0;directive.index = index;directive.name = directive.name || name;directive.require = directive.require || directive.controller && directive.name;directive.restrict = directive.restrict || 'EA';if(isObject(directive.scope)){directive.$$isolateBindings = parseIsolateBindings(directive.scope,directive.name);}directives.push(directive);}catch(e) {$exceptionHandler(e);}});return directives;}]);}hasDirectives[name].push(directiveFactory);}else {forEach(name,reverseParams(registerDirective));}return this;};this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.aHrefSanitizationWhitelist();}};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();}};var debugInfoEnabled=true;this.debugInfoEnabled = function(enabled){if(isDefined(enabled)){debugInfoEnabled = enabled;return this;}return debugInfoEnabled;};this.$get = ['$injector','$interpolate','$exceptionHandler','$templateRequest','$parse','$controller','$rootScope','$document','$sce','$animate','$$sanitizeUri',function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){var Attributes=function Attributes(element,attributesToCopy){if(attributesToCopy){var keys=Object.keys(attributesToCopy);var i,l,key;for(i = 0,l = keys.length;i < l;i++) {key = keys[i];this[key] = attributesToCopy[key];}}else {this.$attr = {};}this.$$element = element;};Attributes.prototype = {$normalize:directiveNormalize,$addClass:function $addClass(classVal){if(classVal && classVal.length > 0){$animate.addClass(this.$$element,classVal);}},$removeClass:function $removeClass(classVal){if(classVal && classVal.length > 0){$animate.removeClass(this.$$element,classVal);}},$updateClass:function $updateClass(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);if(toAdd && toAdd.length){$animate.addClass(this.$$element,toAdd);}var toRemove=tokenDifference(oldClasses,newClasses);if(toRemove && toRemove.length){$animate.removeClass(this.$$element,toRemove);}},$set:function $set(key,value,writeAttr,attrName){var node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(node,key),observer=key,nodeName;if(booleanKey){this.$$element.prop(key,value);attrName = booleanKey;}else if(aliasedKey){this[aliasedKey] = value;observer = aliasedKey;}this[key] = value;if(attrName){this.$attr[key] = attrName;}else {attrName = this.$attr[key];if(!attrName){this.$attr[key] = attrName = snake_case(key,'-');}}nodeName = nodeName_(this.$$element);if(nodeName === 'a' && key === 'href' || nodeName === 'img' && key === 'src'){this[key] = value = $$sanitizeUri(value,key === 'src');}else if(nodeName === 'img' && key === 'srcset'){var result='';var trimmedSrcset=trim(value);var srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/;var pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/;var rawUris=trimmedSrcset.split(pattern);var nbrUrisWith2parts=Math.floor(rawUris.length / 2);for(var i=0;i < nbrUrisWith2parts;i++) {var innerIdx=i * 2;result += $$sanitizeUri(trim(rawUris[innerIdx]),true);result += ' ' + trim(rawUris[innerIdx + 1]);}var lastTuple=trim(rawUris[i * 2]).split(/\s/);result += $$sanitizeUri(trim(lastTuple[0]),true);if(lastTuple.length === 2){result += ' ' + trim(lastTuple[1]);}this[key] = value = result;}if(writeAttr !== false){if(value === null || value === undefined){this.$$element.removeAttr(attrName);}else {this.$$element.attr(attrName,value);}}var $$observers=this.$$observers;$$observers && forEach($$observers[observer],function(fn){try{fn(value);}catch(e) {$exceptionHandler(e);}});},$observe:function $observe(key,fn){var attrs=this,$$observers=attrs.$$observers || (attrs.$$observers = createMap()),listeners=$$observers[key] || ($$observers[key] = []);listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter && attrs.hasOwnProperty(key)){fn(attrs[key]);}});return function(){arrayRemove(listeners,fn);};}};function safeAddClass($element,className){try{$element.addClass(className);}catch(e) {}}var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=startSymbol == '{{' || endSymbol == '}}'?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol);},NG_ATTR_BINDING=/^ngAttr[A-Z]/;compile.$$addBindingInfo = debugInfoEnabled?function $$addBindingInfo($element,binding){var bindings=$element.data('$binding') || [];if(isArray(binding)){bindings = bindings.concat(binding);}else {bindings.push(binding);}$element.data('$binding',bindings);}:noop;compile.$$addBindingClass = debugInfoEnabled?function $$addBindingClass($element){safeAddClass($element,'ng-binding');}:noop;compile.$$addScopeInfo = debugInfoEnabled?function $$addScopeInfo($element,scope,isolated,noTemplate){var dataName=isolated?noTemplate?'$isolateScopeNoTemplate':'$isolateScope':'$scope';$element.data(dataName,scope);}:noop;compile.$$addScopeClass = debugInfoEnabled?function $$addScopeClass($element,isolated){safeAddClass($element,isolated?'ng-isolate-scope':'ng-scope');}:noop;return compile;function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){if(!($compileNodes instanceof jqLite)){$compileNodes = jqLite($compileNodes);}forEach($compileNodes,function(node,index){if(node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/)){$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function publicLinkFn(scope,cloneConnectFn,options){assertArg(scope,'scope');options = options || {};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;if(parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude){parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude;}if(!namespace){namespace = detectNamespaceForChildElements(futureParentElement);}var $linkNode;if(namespace !== 'html'){$linkNode = jqLite(wrapTemplate(namespace,jqLite('<div>').append($compileNodes).html()));}else if(cloneConnectFn){$linkNode = JQLitePrototype.clone.call($compileNodes);}else {$linkNode = $compileNodes;}if(transcludeControllers){for(var controllerName in transcludeControllers) {$linkNode.data('$' + controllerName + 'Controller',transcludeControllers[controllerName].instance);}}compile.$$addScopeInfo($linkNode,scope);if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn);return $linkNode;};}function detectNamespaceForChildElements(parentElement){var node=parentElement && parentElement[0];if(!node){return 'html';}else {return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/)?'svg':'html';}}function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){var linkFns=[],attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound;for(var i=0;i < nodeList.length;i++) {attrs = new Attributes();directives = collectDirectives(nodeList[i],[],attrs,i === 0?maxPriority:undefined,ignoreDirective);nodeLinkFn = directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null;if(nodeLinkFn && nodeLinkFn.scope){compile.$$addScopeClass(attrs.$$element);}childLinkFn = nodeLinkFn && nodeLinkFn.terminal || !(childNodes = nodeList[i].childNodes) || !childNodes.length?null:compileNodes(childNodes,nodeLinkFn?(nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) && nodeLinkFn.transclude:transcludeFn);if(nodeLinkFn || childLinkFn){linkFns.push(i,nodeLinkFn,childLinkFn);linkFnFound = true;nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn;}previousCompileContext = null;}return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn;var stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;stableNodeList = new Array(nodeListLength);for(i = 0;i < linkFns.length;i += 3) {idx = linkFns[i];stableNodeList[idx] = nodeList[idx];}}else {stableNodeList = nodeList;}for(i = 0,ii = linkFns.length;i < ii;) {node = stableNodeList[linkFns[i++]];nodeLinkFn = linkFns[i++];childLinkFn = linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope = scope.$new();compile.$$addScopeInfo(jqLite(node),childScope);}else {childScope = scope;}if(nodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn,nodeLinkFn.elementTranscludeOnThisElement);}else if(!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn){childBoundTranscludeFn = parentBoundTranscludeFn;}else if(!parentBoundTranscludeFn && transcludeFn){childBoundTranscludeFn = createBoundTranscludeFn(scope,transcludeFn);}else {childBoundTranscludeFn = null;}nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn);}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn);}}}}function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn,elementTransclusion){var boundTranscludeFn=function boundTranscludeFn(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){if(!transcludedScope){transcludedScope = scope.$new(false,containingScope);transcludedScope.$$transcluded = true;}return transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement});};return boundTranscludeFn;}function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),'E',maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs && nAttrs.length;j < jj;j++) {var attrStartName=false;var attrEndName=false;attr = nAttrs[j];name = attr.name;value = trim(attr.value);ngAttrName = directiveNormalize(name);if(isNgAttr = NG_ATTR_BINDING.test(ngAttrName)){name = name.replace(PREFIX_REGEXP,'').substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase();});}var directiveNName=ngAttrName.replace(/(Start|End)$/,'');if(directiveIsMultiElement(directiveNName)){if(ngAttrName === directiveNName + 'Start'){attrStartName = name;attrEndName = name.substr(0,name.length - 5) + 'end';name = name.substr(0,name.length - 6);}}nName = directiveNormalize(name.toLowerCase());attrsMap[nName] = name;if(isNgAttr || !attrs.hasOwnProperty(nName)){attrs[nName] = value;if(getBooleanAttrName(node,nName)){attrs[nName] = true;}}addAttrInterpolateDirective(node,directives,value,nName,isNgAttr);addDirective(directives,nName,'A',maxPriority,ignoreDirective,attrStartName,attrEndName);}className = node.className;if(isObject(className)){className = className.animVal;}if(isString(className) && className !== ''){while(match = CLASS_DIRECTIVE_REGEXP.exec(className)) {nName = directiveNormalize(match[2]);if(addDirective(directives,nName,'C',maxPriority,ignoreDirective)){attrs[nName] = trim(match[3]);}className = className.substr(match.index + match[0].length);}}break;case NODE_TYPE_TEXT:addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);if(match){nName = directiveNormalize(match[1]);if(addDirective(directives,nName,'M',maxPriority,ignoreDirective)){attrs[nName] = trim(match[2]);}}}catch(e) {}break;}directives.sort(byPriority);return directives;}function groupScan(node,attrStart,attrEnd){var nodes=[];var depth=0;if(attrStart && node.hasAttribute && node.hasAttribute(attrStart)){do {if(!node){throw $compileMinErr('uterdir','Unterminated attribute, found \'{0}\' but no matching \'{1}\' found.',attrStart,attrEnd);}if(node.nodeType == NODE_TYPE_ELEMENT){if(node.hasAttribute(attrStart))depth++;if(node.hasAttribute(attrEnd))depth--;}nodes.push(node);node = node.nextSibling;}while(depth > 0);}else {nodes.push(node);}return jqLite(nodes);}function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){element = groupScan(element[0],attrStart,attrEnd);return linkFn(scope,element,attrs,controllers,transcludeFn);};}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){previousCompileContext = previousCompileContext || {};var terminalPriority=-Number.MAX_VALUE,newScopeDirective,controllerDirectives=previousCompileContext.controllerDirectives,controllers,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=false,hasTemplate=false,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element = jqLite(compileNode),directive,directiveName,$template,replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,linkFn,directiveValue;for(var i=0,ii=directives.length;i < ii;i++) {directive = directives[i];var attrStart=directive.$$start;var attrEnd=directive.$$end;if(attrStart){$compileNode = groupScan(compileNode,attrStart,attrEnd);}$template = undefined;if(terminalPriority > directive.priority){break;}if(directiveValue = directive.scope){if(!directive.templateUrl){if(isObject(directiveValue)){assertNoDuplicate('new/isolated scope',newIsolateScopeDirective || newScopeDirective,directive,$compileNode);newIsolateScopeDirective = directive;}else {assertNoDuplicate('new/isolated scope',newIsolateScopeDirective,directive,$compileNode);}}newScopeDirective = newScopeDirective || directive;}directiveName = directive.name;if(!directive.templateUrl && directive.controller){directiveValue = directive.controller;controllerDirectives = controllerDirectives || {};assertNoDuplicate('\'' + directiveName + '\' controller',controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName] = directive;}if(directiveValue = directive.transclude){hasTranscludeDirective = true;if(!directive.$$tlb){assertNoDuplicate('transclusion',nonTlbTranscludeDirective,directive,$compileNode);nonTlbTranscludeDirective = directive;}if(directiveValue == 'element'){hasElementTranscludeDirective = true;terminalPriority = directive.priority;$template = $compileNode;$compileNode = templateAttrs.$$element = jqLite(document.createComment(' ' + directiveName + ': ' + templateAttrs[directiveName] + ' '));compileNode = $compileNode[0];replaceWith(jqCollection,sliceArgs($template),compileNode);childTranscludeFn = compile($template,transcludeFn,terminalPriority,replaceDirective && replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective});}else {$template = jqLite(jqLiteClone(compileNode)).contents();$compileNode.empty();childTranscludeFn = compile($template,transcludeFn);}}if(directive.template){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;directiveValue = isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template;directiveValue = denormalizeTemplate(directiveValue);if(directive.replace){replaceDirective = directive;if(jqLiteIsTextNode(directiveValue)){$template = [];}else {$template = removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',directiveName,'');}replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};var templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs);var unprocessedDirectives=directives.splice(i + 1,directives.length - (i + 1));if(newIsolateScopeDirective){markDirectivesAsIsolate(templateDirectives);}directives = directives.concat(templateDirectives).concat(unprocessedDirectives);mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii = directives.length;}else {$compileNode.html(directiveValue);}}if(directive.templateUrl){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;if(directive.replace){replaceDirective = directive;}nodeLinkFn = compileTemplateUrl(directives.splice(i,directives.length - i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective && childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective});ii = directives.length;}else if(directive.compile){try{linkFn = directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn,attrStart,attrEnd);}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd);}}catch(e) {$exceptionHandler(e,startingTag($compileNode));}}if(directive.terminal){nodeLinkFn.terminal = true;terminalPriority = Math.max(terminalPriority,directive.priority);}}nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;nodeLinkFn.templateOnThisElement = hasTemplate;nodeLinkFn.transclude = childTranscludeFn;previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;return nodeLinkFn;function addLinkFns(pre,post,attrStart,attrEnd){if(pre){if(attrStart)pre = groupElementsLinkFnWrapper(pre,attrStart,attrEnd);pre.require = directive.require;pre.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){pre = cloneAndAnnotateFn(pre,{isolateScope:true});}preLinkFns.push(pre);}if(post){if(attrStart)post = groupElementsLinkFnWrapper(post,attrStart,attrEnd);post.require = directive.require;post.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){post = cloneAndAnnotateFn(post,{isolateScope:true});}postLinkFns.push(post);}}function getControllers(directiveName,require,$element,elementControllers){var value,retrievalMethod='data',optional=false;var $searchElement=$element;var match;if(isString(require)){match = require.match(REQUIRE_PREFIX_REGEXP);require = require.substring(match[0].length);if(match[3]){if(match[1])match[3] = null;else match[1] = match[3];}if(match[1] === '^'){retrievalMethod = 'inheritedData';}else if(match[1] === '^^'){retrievalMethod = 'inheritedData';$searchElement = $element.parent();}if(match[2] === '?'){optional = true;}value = null;if(elementControllers && retrievalMethod === 'data'){if(value = elementControllers[require]){value = value.instance;}}value = value || $searchElement[retrievalMethod]('$' + require + 'Controller');if(!value && !optional){throw $compileMinErr('ctreq','Controller \'{0}\', required by directive \'{1}\', can\'t be found!',require,directiveName);}return value || null;}else if(isArray(require)){value = [];forEach(require,function(require){value.push(getControllers(directiveName,require,$element,elementControllers));});}return value;}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode === linkNode){attrs = templateAttrs;$element = templateAttrs.$$element;}else {$element = jqLite(linkNode);attrs = new Attributes($element,templateAttrs);}if(newIsolateScopeDirective){isolateScope = scope.$new(true);}if(boundTranscludeFn){transcludeFn = controllersBoundTransclude;transcludeFn.$$boundTransclude = boundTranscludeFn;}if(controllerDirectives){controllers = {};elementControllers = {};forEach(controllerDirectives,function(directive){var locals={$scope:directive === newIsolateScopeDirective || directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn},controllerInstance;controller = directive.controller;if(controller == '@'){controller = attrs[directive.name];}controllerInstance = $controller(controller,locals,true,directive.controllerAs);elementControllers[directive.name] = controllerInstance;if(!hasElementTranscludeDirective){$element.data('$' + directive.name + 'Controller',controllerInstance.instance);}controllers[directive.name] = controllerInstance;});}if(newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,true,!(templateDirective && (templateDirective === newIsolateScopeDirective || templateDirective === newIsolateScopeDirective.$$originalDirective)));compile.$$addScopeClass($element,true);var isolateScopeController=controllers && controllers[newIsolateScopeDirective.name];var isolateBindingContext=isolateScope;if(isolateScopeController && isolateScopeController.identifier && newIsolateScopeDirective.bindToController === true){isolateBindingContext = isolateScopeController.instance;}forEach(isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings,function(definition,scopeName){var attrName=definition.attrName,optional=definition.optional,mode=definition.mode,lastValue,parentGet,parentSet,compare;switch(mode){case '@':attrs.$observe(attrName,function(value){isolateBindingContext[scopeName] = value;});attrs.$$observers[attrName].$$scope = scope;if(attrs[attrName]){isolateBindingContext[scopeName] = $interpolate(attrs[attrName])(scope);}break;case '=':if(optional && !attrs[attrName]){return;}parentGet = $parse(attrs[attrName]);if(parentGet.literal){compare = equals;}else {compare = function(a,b){return a === b || a !== a && b !== b;};}parentSet = parentGet.assign || function(){lastValue = isolateBindingContext[scopeName] = parentGet(scope);throw $compileMinErr('nonassign','Expression \'{0}\' used with directive \'{1}\' is non-assignable!',attrs[attrName],newIsolateScopeDirective.name);};lastValue = isolateBindingContext[scopeName] = parentGet(scope);var parentValueWatch=function parentValueWatch(parentValue){if(!compare(parentValue,isolateBindingContext[scopeName])){if(!compare(parentValue,lastValue)){isolateBindingContext[scopeName] = parentValue;}else {parentSet(scope,parentValue = isolateBindingContext[scopeName]);}}return lastValue = parentValue;};parentValueWatch.$stateful = true;var unwatch;if(definition.collection){unwatch = scope.$watchCollection(attrs[attrName],parentValueWatch);}else {unwatch = scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal);}isolateScope.$on('$destroy',unwatch);break;case '&':parentGet = $parse(attrs[attrName]);isolateBindingContext[scopeName] = function(locals){return parentGet(scope,locals);};break;}});}if(controllers){forEach(controllers,function(controller){controller();});controllers = null;}for(i = 0,ii = preLinkFns.length;i < ii;i++) {linkFn = preLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}var scopeToChild=scope;if(newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)){scopeToChild = isolateScope;}childLinkFn && childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn);for(i = postLinkFns.length - 1;i >= 0;i--) {linkFn = postLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;if(!isScope(scope)){futureParentElement = cloneAttachFn;cloneAttachFn = scope;scope = undefined;}if(hasElementTranscludeDirective){transcludeControllers = elementControllers;}if(!futureParentElement){futureParentElement = hasElementTranscludeDirective?$element.parent():$element;}return boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild);}}}function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;j < jj;j++) {directives[j] = inherit(directives[j],{$$isolateScope:true});}}function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name === ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {try{directive = directives[i];if((maxPriority === undefined || maxPriority > directive.priority) && directive.restrict.indexOf(location) != -1){if(startAttrName){directive = inherit(directive,{$$start:startAttrName,$$end:endAttrName});}tDirectives.push(directive);match = directive;}}catch(e) {$exceptionHandler(e);}}}return match;}function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {directive = directives[i];if(directive.multiElement){return true;}}}return false;}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0) != '$'){if(src[key] && src[key] !== value){value += (key === 'style'?';':' ') + src[key];}dst.$set(key,value,true,srcAttr[key]);}});forEach(src,function(value,key){if(key == 'class'){safeAddClass($element,value);dst['class'] = (dst['class']?dst['class'] + ' ':'') + value;}else if(key == 'style'){$element.attr('style',$element.attr('style') + ';' + value);dst['style'] = (dst['style']?dst['style'] + ';':'') + value;}else if(key.charAt(0) != '$' && !dst.hasOwnProperty(key)){dst[key] = value;dstAttr[key] = srcAttr[key];}});}function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var linkQueue=[],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;$compileNode.empty();$templateRequest($sce.getTrustedResourceUrl(templateUrl)).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;content = denormalizeTemplate(content);if(origAsyncDirective.replace){if(jqLiteIsTextNode(content)){$template = [];}else {$template = removeComments(wrapTemplate(templateNamespace,trim(content)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',origAsyncDirective.name,templateUrl);}tempTemplateAttrs = {$attr:{}};replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);if(isObject(origAsyncDirective.scope)){markDirectivesAsIsolate(templateDirectives);}directives = templateDirectives.concat(directives);mergeTemplateAttributes(tAttrs,tempTemplateAttrs);}else {compileNode = beforeTemplateCompileNode;$compileNode.html(content);}directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn = applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext);forEach($rootElement,function(node,i){if(node == compileNode){$rootElement[i] = $compileNode[0];}});afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length) {var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];if(scope.$$destroyed)continue;if(beforeTemplateLinkNode !== beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;if(!(previousCompileContext.hasElementTranscludeDirective && origAsyncDirective.replace)){linkNode = jqLiteClone(compileNode);}replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode);safeAddClass(jqLite(linkNode),oldClasses);}if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}else {childBoundTranscludeFn = boundTranscludeFn;}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn);}linkQueue = null;});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;if(scope.$$destroyed)return;if(linkQueue){linkQueue.push(scope,node,rootElement,childBoundTranscludeFn);}else {if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn);}};}function byPriority(a,b){var diff=b.priority - a.priority;if(diff !== 0)return diff;if(a.name !== b.name)return a.name < b.name?-1:1;return a.index - b.index;}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective){throw $compileMinErr('multidir','Multiple directives [{0}, {1}] asking for {2} on: {3}',previousDirective.name,directive.name,what,startingTag(element));}}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:function textInterpolateCompileFn(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;if(hasCompileParent)compile.$$addBindingClass(templateNodeParent);return function textInterpolateLinkFn(scope,node){var parent=node.parent();if(!hasCompileParent)compile.$$addBindingClass(parent);compile.$$addBindingInfo(parent,interpolateFn.expressions);scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue = value;});};}});}}function wrapTemplate(type,template){type = lowercase(type || 'html');switch(type){case 'svg':case 'math':var wrapper=document.createElement('div');wrapper.innerHTML = '<' + type + '>' + template + '</' + type + '>';return wrapper.childNodes[0].childNodes;default:return template;}}function getTrustedContext(node,attrNormalizedName){if(attrNormalizedName == 'srcdoc'){return $sce.HTML;}var tag=nodeName_(node);if(attrNormalizedName == 'xlinkHref' || tag == 'form' && attrNormalizedName == 'action' || tag != 'img' && (attrNormalizedName == 'src' || attrNormalizedName == 'ngSrc')){return $sce.RESOURCE_URL;}}function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing;var interpolateFn=$interpolate(value,true,trustedContext,allOrNothing);if(!interpolateFn)return;if(name === 'multiple' && nodeName_(node) === 'select'){throw $compileMinErr('selmulti','Binding to the \'multiple\' attribute is not supported. Element: {0}',startingTag(node));}directives.push({priority:100,compile:function compile(){return {pre:function attrInterpolatePreLinkFn(scope,element,attr){var $$observers=attr.$$observers || (attr.$$observers = {});if(EVENT_HANDLER_ATTR_REGEXP.test(name)){throw $compileMinErr('nodomevents','Interpolations for HTML DOM event attributes are disallowed. Please use the ' + 'ng- versions (such as ng-click instead of onclick) instead.');}var newValue=attr[name];if(newValue !== value){interpolateFn = newValue && $interpolate(newValue,true,trustedContext,allOrNothing);value = newValue;}if(!interpolateFn)return;attr[name] = interpolateFn(scope);($$observers[name] || ($$observers[name] = [])).$$inter = true;(attr.$$observers && attr.$$observers[name].$$scope || scope).$watch(interpolateFn,function interpolateFnWatchAction(newValue,oldValue){if(name === 'class' && newValue != oldValue){attr.$updateClass(newValue,oldValue);}else {attr.$set(name,newValue);}});}};}});}function replaceWith($rootElement,elementsToRemove,newNode){var firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode,i,ii;if($rootElement){for(i = 0,ii = $rootElement.length;i < ii;i++) {if($rootElement[i] == firstElementToRemove){$rootElement[i++] = newNode;for(var j=i,j2=j + removeCount - 1,jj=$rootElement.length;j < jj;j++,j2++) {if(j2 < jj){$rootElement[j] = $rootElement[j2];}else {delete $rootElement[j];}}$rootElement.length -= removeCount - 1;if($rootElement.context === firstElementToRemove){$rootElement.context = newNode;}break;}}}if(parent){parent.replaceChild(newNode,firstElementToRemove);}var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove);jqLite(newNode).data(jqLite(firstElementToRemove).data());if(!jQuery){delete jqLite.cache[firstElementToRemove[jqLite.expando]];}else {skipDestroyOnNextJQueryCleanData = true;jQuery.cleanData([firstElementToRemove]);}for(var k=1,kk=elementsToRemove.length;k < kk;k++) {var element=elementsToRemove[k];jqLite(element).remove();fragment.appendChild(element);delete elementsToRemove[k];}elementsToRemove[0] = newNode;elementsToRemove.length = 1;}function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments);},fn,annotation);}function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn);}catch(e) {$exceptionHandler(e,startingTag($element));}}}];}var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,''));}function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}function tokenDifference(str1,str2){var values='',tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values += (values.length > 0?' ':'') + token;}return values;}function removeComments(jqNodes){jqNodes = jqLite(jqNodes);var i=jqNodes.length;if(i <= 1){return jqNodes;}while(i--) {var node=jqNodes[i];if(node.nodeType === NODE_TYPE_COMMENT){splice.call(jqNodes,i,1);}}return jqNodes;}var $controllerMinErr=minErr('$controller');function $ControllerProvider(){var controllers={},globals=false,CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;this.register = function(name,constructor){assertNotHasOwnProperty(name,'controller');if(isObject(name)){extend(controllers,name);}else {controllers[name] = constructor;}};this.allowGlobals = function(){globals = true;};this.$get = ['$injector','$window',function($injector,$window){return function(expression,locals,later,ident){var instance,match,constructor,identifier;later = later === true;if(ident && isString(ident)){identifier = ident;}if(isString(expression)){match = expression.match(CNTRL_REG);if(!match){throw $controllerMinErr('ctrlfmt','Badly formed controller string \'{0}\'. ' + 'Must match `__name__ as __id__` or `__name__`.',expression);}constructor = match[1],identifier = identifier || match[3];expression = controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true) || (globals?getter($window,constructor,true):undefined);assertArgFn(expression,constructor,true);}if(later){var controllerPrototype=(isArray(expression)?expression[expression.length - 1]:expression).prototype;instance = Object.create(controllerPrototype || null);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return extend(function(){$injector.invoke(expression,instance,locals,constructor);return instance;},{instance:instance,identifier:identifier});}instance = $injector.instantiate(expression,locals,constructor);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return instance;};function addIdentifier(locals,identifier,instance,name){if(!(locals && isObject(locals.$scope))){throw minErr('$controller')('noscp','Cannot export controller \'{0}\' as \'{1}\'! No $scope object provided via `locals`.',name,identifier);}locals.$scope[identifier] = instance;}}];}function $DocumentProvider(){this.$get = ['$window',function(window){return jqLite(window.document);}];}function $ExceptionHandlerProvider(){this.$get = ['$log',function($log){return function(exception,cause){$log.error.apply($log,arguments);};}];}var APPLICATION_JSON='application/json';var CONTENT_TYPE_APPLICATION_JSON={'Content-Type':APPLICATION_JSON + ';charset=utf-8'};var JSON_START=/^\[|^\{(?!\{)/;var JSON_ENDS={'[':/]$/,'{':/}$/};var JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/;function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,'').trim();if(tempData){var contentType=headers('Content-Type');if(contentType && contentType.indexOf(APPLICATION_JSON) === 0 || isJsonLike(tempData)){data = fromJson(tempData);}}}return data;}function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart && JSON_ENDS[jsonStart[0]].test(str);}function parseHeaders(headers){var parsed=createMap(),key,val,i;if(!headers)return parsed;forEach(headers.split('\n'),function(line){i = line.indexOf(':');key = lowercase(trim(line.substr(0,i)));val = trim(line.substr(i + 1));if(key){parsed[key] = parsed[key]?parsed[key] + ', ' + val:val;}});return parsed;}function headersGetter(headers){var headersObj=isObject(headers)?headers:undefined;return function(name){if(!headersObj)headersObj = parseHeaders(headers);if(name){var value=headersObj[lowercase(name)];if(value === void 0){value = null;}return value;}return headersObj;};}function transformData(data,headers,status,fns){if(isFunction(fns))return fns(data,headers,status);forEach(fns,function(fn){data = fn(data,headers,status);});return data;}function isSuccess(status){return 200 <= status && status < 300;}function $HttpProvider(){var defaults=this.defaults = {transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d)?toJson(d):d;}],headers:{common:{'Accept':'application/json, text/plain, */*'},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:'XSRF-TOKEN',xsrfHeaderName:'X-XSRF-TOKEN'};var useApplyAsync=false;this.useApplyAsync = function(value){if(isDefined(value)){useApplyAsync = !!value;return this;}return useApplyAsync;};var interceptorFactories=this.interceptors = [];this.$get = ['$httpBackend','$browser','$cacheFactory','$rootScope','$q','$injector',function($httpBackend,$browser,$cacheFactory,$rootScope,$q,$injector){var defaultCache=$cacheFactory('$http');var reversedInterceptors=[];forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory));});function $http(requestConfig){if(!angular.isObject(requestConfig)){throw minErr('$http')('badreq','Http request configuration must be an object. Received: {0}',requestConfig);}var config=extend({method:'get',transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse},requestConfig);config.headers = mergeHeaders(requestConfig);config.method = uppercase(config.method);var serverRequest=function serverRequest(config){var headers=config.headers;var reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);if(isUndefined(reqData)){forEach(headers,function(value,header){if(lowercase(header) === 'content-type'){delete headers[header];}});}if(isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)){config.withCredentials = defaults.withCredentials;}return sendReq(config,reqData).then(transformResponse,transformResponse);};var chain=[serverRequest,undefined];var promise=$q.when(config);forEach(reversedInterceptors,function(interceptor){if(interceptor.request || interceptor.requestError){chain.unshift(interceptor.request,interceptor.requestError);}if(interceptor.response || interceptor.responseError){chain.push(interceptor.response,interceptor.responseError);}});while(chain.length) {var thenFn=chain.shift();var rejectFn=chain.shift();promise = promise.then(thenFn,rejectFn);}promise.success = function(fn){promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error = function(fn){promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};return promise;function transformResponse(response){var resp=extend({},response);if(!response.data){resp.data = response.data;}else {resp.data = transformData(response.data,response.headers,response.status,config.transformResponse);}return isSuccess(response.status)?resp:$q.reject(resp);}function executeHeaderFns(headers){var headerContent,processedHeaders={};forEach(headers,function(headerFn,header){if(isFunction(headerFn)){headerContent = headerFn();if(headerContent != null){processedHeaders[header] = headerContent;}}else {processedHeaders[header] = headerFn;}});return processedHeaders;}function mergeHeaders(config){var defHeaders=defaults.headers,reqHeaders=extend({},config.headers),defHeaderName,lowercaseDefHeaderName,reqHeaderName;defHeaders = extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration: for(defHeaderName in defHeaders) {lowercaseDefHeaderName = lowercase(defHeaderName);for(reqHeaderName in reqHeaders) {if(lowercase(reqHeaderName) === lowercaseDefHeaderName){continue defaultHeadersIteration;}}reqHeaders[defHeaderName] = defHeaders[defHeaderName];}return executeHeaderFns(reqHeaders);}}$http.pendingRequests = [];createShortMethods('get','delete','head','jsonp');createShortMethodsWithData('post','put','patch');$http.defaults = defaults;return $http;function createShortMethods(names){forEach(arguments,function(name){$http[name] = function(url,config){return $http(extend(config || {},{method:name,url:url}));};});}function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name] = function(url,data,config){return $http(extend(config || {},{method:name,url:url,data:data}));};});}function sendReq(config,reqData){var deferred=$q.defer(),promise=deferred.promise,cache,cachedResp,reqHeaders=config.headers,url=buildUrl(config.url,config.params);$http.pendingRequests.push(config);promise.then(removePendingReq,removePendingReq);if((config.cache || defaults.cache) && config.cache !== false && (config.method === 'GET' || config.method === 'JSONP')){cache = isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache;}if(cache){cachedResp = cache.get(url);if(isDefined(cachedResp)){if(isPromiseLike(cachedResp)){cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult);}else {if(isArray(cachedResp)){resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]);}else {resolvePromise(cachedResp,200,{},'OK');}}}else {cache.put(url,promise);}}if(isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$browser.cookies()[config.xsrfCookieName || defaults.xsrfCookieName]:undefined;if(xsrfValue){reqHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;}$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType);}return promise;function done(status,response,headersString,statusText){if(cache){if(isSuccess(status)){cache.put(url,[status,response,parseHeaders(headersString),statusText]);}else {cache.remove(url);}}function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText);}if(useApplyAsync){$rootScope.$applyAsync(resolveHttpPromise);}else {resolveHttpPromise();if(!$rootScope.$$phase)$rootScope.$apply();}}function resolvePromise(response,status,headers,statusText){status = Math.max(status,0);(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText});}function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText);}function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);if(idx !== -1)$http.pendingRequests.splice(idx,1);}}function buildUrl(url,params){if(!params)return url;var parts=[];forEachSorted(params,function(value,key){if(value === null || isUndefined(value))return;if(!isArray(value))value = [value];forEach(value,function(v){if(isObject(v)){if(isDate(v)){v = v.toISOString();}else {v = toJson(v);}}parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(v));});});if(parts.length > 0){url += (url.indexOf('?') == -1?'?':'&') + parts.join('&');}return url;}}];}function createXhr(){return new window.XMLHttpRequest();}function $HttpBackendProvider(){this.$get = ['$browser','$window','$document',function($browser,$window,$document){return createHttpBackend($browser,createXhr,$browser.defer,$window.angular.callbacks,$document[0]);}];}function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){return function(method,url,post,callback,headers,timeout,withCredentials,responseType){$browser.$$incOutstandingRequestCount();url = url || $browser.url();if(lowercase(method) == 'jsonp'){var callbackId='_' + (callbacks.counter++).toString(36);callbacks[callbackId] = function(data){callbacks[callbackId].data = data;callbacks[callbackId].called = true;};var jsonpDone=jsonpReq(url.replace('JSON_CALLBACK','angular.callbacks.' + callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,'',text);callbacks[callbackId] = noop;});}else {var xhr=createXhr();xhr.open(method,url,true);forEach(headers,function(value,key){if(isDefined(value)){xhr.setRequestHeader(key,value);}});xhr.onload = function requestLoaded(){var statusText=xhr.statusText || '';var response='response' in xhr?xhr.response:xhr.responseText;var status=xhr.status === 1223?204:xhr.status;if(status === 0){status = response?200:urlResolve(url).protocol == 'file'?404:0;}completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText);};var requestError=function requestError(){completeRequest(callback,-1,null,null,'');};xhr.onerror = requestError;xhr.onabort = requestError;if(withCredentials){xhr.withCredentials = true;}if(responseType){try{xhr.responseType = responseType;}catch(e) {if(responseType !== 'json'){throw e;}}}xhr.send(post || null);}if(timeout > 0){var timeoutId=$browserDefer(timeoutRequest,timeout);}else if(isPromiseLike(timeout)){timeout.then(timeoutRequest);}function timeoutRequest(){jsonpDone && jsonpDone();xhr && xhr.abort();}function completeRequest(callback,status,response,headersString,statusText){if(timeoutId !== undefined){$browserDefer.cancel(timeoutId);}jsonpDone = xhr = null;callback(status,response,headersString,statusText);$browser.$$completeOutstandingRequest(noop);}};function jsonpReq(url,callbackId,done){var script=rawDocument.createElement('script'),callback=null;script.type = 'text/javascript';script.src = url;script.async = true;callback = function(event){removeEventListenerFn(script,'load',callback);removeEventListenerFn(script,'error',callback);rawDocument.body.removeChild(script);script = null;var status=-1;var text='unknown';if(event){if(event.type === 'load' && !callbacks[callbackId].called){event = {type:'error'};}text = event.type;status = event.type === 'error'?404:200;}if(done){done(status,text);}};addEventListenerFn(script,'load',callback);addEventListenerFn(script,'error',callback);rawDocument.body.appendChild(script);return callback;}}var $interpolateMinErr=minErr('$interpolate');function $InterpolateProvider(){var startSymbol='{{';var endSymbol='}}';this.startSymbol = function(value){if(value){startSymbol = value;return this;}else {return startSymbol;}};this.endSymbol = function(value){if(value){endSymbol = value;return this;}else {return endSymbol;}};this.$get = ['$parse','$exceptionHandler','$sce',function($parse,$exceptionHandler,$sce){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),'g'),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),'g');function escape(ch){return '\\\\\\' + ch;}function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){allOrNothing = !!allOrNothing;var startIndex,endIndex,index=0,expressions=[],parseFns=[],textLength=text.length,exp,concat=[],expressionPositions=[];while(index < textLength) {if((startIndex = text.indexOf(startSymbol,index)) != -1 && (endIndex = text.indexOf(endSymbol,startIndex + startSymbolLength)) != -1){if(index !== startIndex){concat.push(unescapeText(text.substring(index,startIndex)));}exp = text.substring(startIndex + startSymbolLength,endIndex);expressions.push(exp);parseFns.push($parse(exp,parseStringifyInterceptor));index = endIndex + endSymbolLength;expressionPositions.push(concat.length);concat.push('');}else {if(index !== textLength){concat.push(unescapeText(text.substring(index)));}break;}}if(trustedContext && concat.length > 1){throw $interpolateMinErr('noconcat','Error while interpolating: {0}\nStrict Contextual Escaping disallows ' + 'interpolations that concatenate multiple expressions when a trusted value is ' + 'required. See http://docs.angularjs.org/api/ng.$sce',text);}if(!mustHaveExpression || expressions.length){var compute=function compute(values){for(var i=0,ii=expressions.length;i < ii;i++) {if(allOrNothing && isUndefined(values[i]))return;concat[expressionPositions[i]] = values[i];}return concat.join('');};var getValue=function getValue(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value);};var stringify=function stringify(value){if(value == null){return '';}switch(typeof value){case 'string':break;case 'number':value = '' + value;break;default:value = toJson(value);}return value;};return extend(function interpolationFn(context){var i=0;var ii=expressions.length;var values=new Array(ii);try{for(;i < ii;i++) {values[i] = parseFns[i](context);}return compute(values);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}},{exp:text,expressions:expressions,$$watchDelegate:function $$watchDelegate(scope,listener,objectEquality){var lastValue;return scope.$watchGroup(parseFns,function interpolateFnWatcher(values,oldValues){var currValue=compute(values);if(isFunction(listener)){listener.call(this,currValue,values !== oldValues?lastValue:currValue,scope);}lastValue = currValue;},objectEquality);}});}function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol);}function parseStringifyInterceptor(value){try{value = getValue(value);return allOrNothing && !isDefined(value)?value:stringify(value);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}}}$interpolate.startSymbol = function(){return startSymbol;};$interpolate.endSymbol = function(){return endSymbol;};return $interpolate;}];}function $IntervalProvider(){this.$get = ['$rootScope','$window','$q','$$q',function($rootScope,$window,$q,$$q){var intervals={};function interval(fn,delay,count,invokeApply){var setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;count = isDefined(count)?count:0;promise.then(null,null,fn);promise.$$intervalId = setInterval(function tick(){deferred.notify(iteration++);if(count > 0 && iteration >= count){deferred.resolve(iteration);clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];}if(!skipApply)$rootScope.$apply();},delay);intervals[promise.$$intervalId] = deferred;return promise;}interval.cancel = function(promise){if(promise && promise.$$intervalId in intervals){intervals[promise.$$intervalId].reject('canceled');$window.clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];return true;}return false;};return interval;}];}function $LocaleProvider(){this.$get = function(){return {id:'en-us',NUMBER_FORMATS:{DECIMAL_SEP:'.',GROUP_SEP:',',PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:'',posSuf:'',negPre:'-',negSuf:'',gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:'¤',posSuf:'',negPre:'(¤',negSuf:')',gSize:3,lgSize:3}],CURRENCY_SYM:'$'},DATETIME_FORMATS:{MONTH:'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),SHORTMONTH:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),DAY:'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),SHORTDAY:'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),AMPMS:['AM','PM'],medium:'MMM d, y h:mm:ss a','short':'M/d/yy h:mm a',fullDate:'EEEE, MMMM d, y',longDate:'MMMM d, y',mediumDate:'MMM d, y',shortDate:'M/d/yy',mediumTime:'h:mm:ss a',shortTime:'h:mm a',ERANAMES:['Before Christ','Anno Domini'],ERAS:['BC','AD']},pluralCat:function pluralCat(num){if(num === 1){return 'one';}return 'other';}};};}var PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={'http':80,'https':443,'ftp':21};var $locationMinErr=minErr('$location');function encodePath(path){var segments=path.split('/'),i=segments.length;while(i--) {segments[i] = encodeUriSegment(segments[i]);}return segments.join('/');}function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol = parsedUrl.protocol;locationObj.$$host = parsedUrl.hostname;locationObj.$$port = int(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;}function parseAppUrl(relativeUrl,locationObj){var prefixed=relativeUrl.charAt(0) !== '/';if(prefixed){relativeUrl = '/' + relativeUrl;}var match=urlResolve(relativeUrl);locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/'?match.pathname.substring(1):match.pathname);locationObj.$$search = parseKeyValue(match.search);locationObj.$$hash = decodeURIComponent(match.hash);if(locationObj.$$path && locationObj.$$path.charAt(0) != '/'){locationObj.$$path = '/' + locationObj.$$path;}}function beginsWith(begin,whole){if(whole.indexOf(begin) === 0){return whole.substr(begin.length);}}function stripHash(url){var index=url.indexOf('#');return index == -1?url:url.substr(0,index);}function trimEmptyHash(url){return url.replace(/(#.+)|#$/,'$1');}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf('/') + 1);}function serverBase(url){return url.substring(0,url.indexOf('/',url.indexOf('//') + 2));}function LocationHtml5Url(appBase,basePrefix){this.$$html5 = true;basePrefix = basePrefix || '';var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw $locationMinErr('ipthprfx','Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);}parseAppUrl(pathUrl,this);if(!this.$$path){this.$$path = '/';}this.$$compose();};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBaseNoFile + this.$$url.substr(1);};this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var appUrl,prevAppUrl;var rewrittenUrl;if((appUrl = beginsWith(appBase,url)) !== undefined){prevAppUrl = appUrl;if((appUrl = beginsWith(basePrefix,appUrl)) !== undefined){rewrittenUrl = appBaseNoFile + (beginsWith('/',appUrl) || appUrl);}else {rewrittenUrl = appBase + prevAppUrl;}}else if((appUrl = beginsWith(appBaseNoFile,url)) !== undefined){rewrittenUrl = appBaseNoFile + appUrl;}else if(appBaseNoFile == url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};}function LocationHashbangUrl(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var withoutBaseUrl=beginsWith(appBase,url) || beginsWith(appBaseNoFile,url);var withoutHashUrl;if(withoutBaseUrl.charAt(0) === '#'){withoutHashUrl = beginsWith(hashPrefix,withoutBaseUrl);if(isUndefined(withoutHashUrl)){withoutHashUrl = withoutBaseUrl;}}else {withoutHashUrl = this.$$html5?withoutBaseUrl:'';}parseAppUrl(withoutHashUrl,this);this.$$path = removeWindowsDriveName(this.$$path,withoutHashUrl,appBase);this.$$compose();function removeWindowsDriveName(path,url,base){var windowsFilePathExp=/^\/[A-Z]:(\/.*)/;var firstPathSegmentMatch;if(url.indexOf(base) === 0){url = url.replace(base,'');}if(windowsFilePathExp.exec(url)){return path;}firstPathSegmentMatch = windowsFilePathExp.exec(path);return firstPathSegmentMatch?firstPathSegmentMatch[1]:path;}};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + (this.$$url?hashPrefix + this.$$url:'');};this.$$parseLinkUrl = function(url,relHref){if(stripHash(appBase) == stripHash(url)){this.$$parse(url);return true;}return false;};}function LocationHashbangInHtml5Url(appBase,hashPrefix){this.$$html5 = true;LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(appBase);this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var rewrittenUrl;var appUrl;if(appBase == stripHash(url)){rewrittenUrl = url;}else if(appUrl = beginsWith(appBaseNoFile,url)){rewrittenUrl = appBase + hashPrefix + appUrl;}else if(appBaseNoFile === url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + hashPrefix + this.$$url;};}var locationPrototype={$$html5:false,$$replace:false,absUrl:locationGetter('$$absUrl'),url:function url(_url){if(isUndefined(_url))return this.$$url;var match=PATH_MATCH.exec(_url);if(match[1] || _url === '')this.path(decodeURIComponent(match[1]));if(match[2] || match[1] || _url === '')this.search(match[3] || '');this.hash(match[5] || '');return this;},protocol:locationGetter('$$protocol'),host:locationGetter('$$host'),port:locationGetter('$$port'),path:locationGetterSetter('$$path',function(path){path = path !== null?path.toString():'';return path.charAt(0) == '/'?path:'/' + path;}),search:function search(_search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(_search) || isNumber(_search)){_search = _search.toString();this.$$search = parseKeyValue(_search);}else if(isObject(_search)){_search = copy(_search,{});forEach(_search,function(value,key){if(value == null)delete _search[key];});this.$$search = _search;}else {throw $locationMinErr('isrcharg','The first argument of the `$location#search()` call must be a string or an object.');}break;default:if(isUndefined(paramValue) || paramValue === null){delete this.$$search[_search];}else {this.$$search[_search] = paramValue;}}this.$$compose();return this;},hash:locationGetterSetter('$$hash',function(hash){return hash !== null?hash.toString():'';}),replace:function replace(){this.$$replace = true;return this;}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype = Object.create(locationPrototype);Location.prototype.state = function(state){if(!arguments.length)return this.$$state;if(Location !== LocationHtml5Url || !this.$$html5){throw $locationMinErr('nostate','History API state support is available only ' + 'in HTML5 mode and only in browsers supporting HTML5 History API');}this.$$state = isUndefined(state)?null:state;return this;};});function locationGetter(property){return function(){return this[property];};}function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value))return this[property];this[property] = preprocess(value);this.$$compose();return this;};}function $LocationProvider(){var hashPrefix='',html5Mode={enabled:false,requireBase:true,rewriteLinks:true};this.hashPrefix = function(prefix){if(isDefined(prefix)){hashPrefix = prefix;return this;}else {return hashPrefix;}};this.html5Mode = function(mode){if(isBoolean(mode)){html5Mode.enabled = mode;return this;}else if(isObject(mode)){if(isBoolean(mode.enabled)){html5Mode.enabled = mode.enabled;}if(isBoolean(mode.requireBase)){html5Mode.requireBase = mode.requireBase;}if(isBoolean(mode.rewriteLinks)){html5Mode.rewriteLinks = mode.rewriteLinks;}return this;}else {return html5Mode;}};this.$get = ['$rootScope','$browser','$sniffer','$rootElement','$window',function($rootScope,$browser,$sniffer,$rootElement,$window){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode.enabled){if(!baseHref && html5Mode.requireBase){throw $locationMinErr('nobase','$location in HTML5 mode requires a <base> tag to be present!');}appBase = serverBase(initialUrl) + (baseHref || '/');LocationMode = $sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url;}else {appBase = stripHash(initialUrl);LocationMode = LocationHashbangUrl;}$location = new LocationMode(appBase,'#' + hashPrefix);$location.$$parseLinkUrl(initialUrl,initialUrl);$location.$$state = $browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url();var oldState=$location.$$state;try{$browser.url(url,replace,state);$location.$$state = $browser.state();}catch(e) {$location.url(oldUrl);$location.$$state = oldState;throw e;}}$rootElement.on('click',function(event){if(!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2)return;var elm=jqLite(event.target);while(nodeName_(elm[0]) !== 'a') {if(elm[0] === $rootElement[0] || !(elm = elm.parent())[0])return;}var absHref=elm.prop('href');var relHref=elm.attr('href') || elm.attr('xlink:href');if(isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]'){absHref = urlResolve(absHref.animVal).href;}if(IGNORE_URI_REGEXP.test(absHref))return;if(absHref && !elm.attr('target') && !event.isDefaultPrevented()){if($location.$$parseLinkUrl(absHref,relHref)){event.preventDefault();if($location.absUrl() != $browser.url()){$rootScope.$apply();$window.angular['ff-684208-preventDefault'] = true;}}}});if(trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)){$browser.url($location.absUrl(),true);}var initializing=true;$browser.onUrlChange(function(newUrl,newState){$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();var oldState=$location.$$state;var defaultPrevented;$location.$$parse(newUrl);$location.$$state = newState;defaultPrevented = $rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,newState,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;setBrowserUrlWithFallback(oldUrl,false,oldState);}else {initializing = false;afterLocationChange(oldUrl,oldState);}});if(!$rootScope.$$phase)$rootScope.$digest();});$rootScope.$watch(function $locationWatch(){var oldUrl=trimEmptyHash($browser.url());var newUrl=trimEmptyHash($location.absUrl());var oldState=$browser.state();var currentReplace=$location.$$replace;var urlOrStateChanged=oldUrl !== newUrl || $location.$$html5 && $sniffer.history && oldState !== $location.$$state;if(initializing || urlOrStateChanged){initializing = false;$rootScope.$evalAsync(function(){var newUrl=$location.absUrl();var defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;}else {if(urlOrStateChanged){setBrowserUrlWithFallback(newUrl,currentReplace,oldState === $location.$$state?null:$location.$$state);}afterLocationChange(oldUrl,oldState);}});}$location.$$replace = false;});return $location;function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast('$locationChangeSuccess',$location.absUrl(),oldUrl,$location.$$state,oldState);}}];}function $LogProvider(){var debug=true,self=this;this.debugEnabled = function(flag){if(isDefined(flag)){debug = flag;return this;}else {return debug;}};this.$get = ['$window',function($window){return {log:consoleLog('log'),info:consoleLog('info'),warn:consoleLog('warn'),error:consoleLog('error'),debug:(function(){var fn=consoleLog('debug');return function(){if(debug){fn.apply(self,arguments);}};})()};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg = arg.message && arg.stack.indexOf(arg.message) === -1?'Error: ' + arg.message + '\n' + arg.stack:arg.stack;}else if(arg.sourceURL){arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line;}}return arg;}function consoleLog(type){var console=$window.console || {},logFn=console[type] || console.log || noop,hasApply=false;try{hasApply = !!logFn.apply;}catch(e) {}if(hasApply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg));});return logFn.apply(console,args);};}return function(arg1,arg2){logFn(arg1,arg2 == null?'':arg2);};}}];}var $parseMinErr=minErr('$parse');function ensureSafeMemberName(name,fullExpression){if(name === '__defineGetter__' || name === '__defineSetter__' || name === '__lookupGetter__' || name === '__lookupSetter__' || name === '__proto__'){throw $parseMinErr('isecfld','Attempting to access a disallowed field in Angular expressions! ' + 'Expression: {0}',fullExpression);}return name;}function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.window === obj){throw $parseMinErr('isecwindow','Referencing the Window in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.children && (obj.nodeName || obj.prop && obj.attr && obj.find)){throw $parseMinErr('isecdom','Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === Object){throw $parseMinErr('isecobj','Referencing Object in Angular expressions is disallowed! Expression: {0}',fullExpression);}}return obj;}var CALL=Function.prototype.call;var APPLY=Function.prototype.apply;var BIND=Function.prototype.bind;function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === CALL || obj === APPLY || obj === BIND){throw $parseMinErr('isecff','Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',fullExpression);}}}var CONSTANTS=createMap();forEach({'null':function _null(){return null;},'true':function _true(){return true;},'false':function _false(){return false;},'undefined':function undefined(){}},function(constantGetter,name){constantGetter.constant = constantGetter.literal = constantGetter.sharedGetter = true;CONSTANTS[name] = constantGetter;});CONSTANTS['this'] = function(self){return self;};CONSTANTS['this'].sharedGetter = true;var OPERATORS=extend(createMap(),{'+':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);if(isDefined(a)){if(isDefined(b)){return a + b;}return a;}return isDefined(b)?b:undefined;},'-':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);return (isDefined(a)?a:0) - (isDefined(b)?b:0);},'*':function _(self,locals,a,b){return a(self,locals) * b(self,locals);},'/':function _(self,locals,a,b){return a(self,locals) / b(self,locals);},'%':function _(self,locals,a,b){return a(self,locals) % b(self,locals);},'===':function _(self,locals,a,b){return a(self,locals) === b(self,locals);},'!==':function _(self,locals,a,b){return a(self,locals) !== b(self,locals);},'==':function _(self,locals,a,b){return a(self,locals) == b(self,locals);},'!=':function _(self,locals,a,b){return a(self,locals) != b(self,locals);},'<':function _(self,locals,a,b){return a(self,locals) < b(self,locals);},'>':function _(self,locals,a,b){return a(self,locals) > b(self,locals);},'<=':function _(self,locals,a,b){return a(self,locals) <= b(self,locals);},'>=':function _(self,locals,a,b){return a(self,locals) >= b(self,locals);},'&&':function _(self,locals,a,b){return a(self,locals) && b(self,locals);},'||':function _(self,locals,a,b){return a(self,locals) || b(self,locals);},'!':function _(self,locals,a){return !a(self,locals);},'=':true,'|':true});var ESCAPE={'n':'\n','f':'\f','r':'\r','t':'\t','v':'\u000b','\'':'\'','"':'"'};var Lexer=function Lexer(options){this.options = options;};Lexer.prototype = {constructor:Lexer,lex:function lex(text){this.text = text;this.index = 0;this.tokens = [];while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(ch === '"' || ch === '\''){this.readString(ch);}else if(this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())){this.readNumber();}else if(this.isIdent(ch)){this.readIdent();}else if(this.is(ch,'(){}[].,;:?')){this.tokens.push({index:this.index,text:ch});this.index++;}else if(this.isWhitespace(ch)){this.index++;}else {var ch2=ch + this.peek();var ch3=ch2 + this.peek(2);var op1=OPERATORS[ch];var op2=OPERATORS[ch2];var op3=OPERATORS[ch3];if(op1 || op2 || op3){var token=op3?ch3:op2?ch2:ch;this.tokens.push({index:this.index,text:token,operator:true});this.index += token.length;}else {this.throwError('Unexpected next character ',this.index,this.index + 1);}}}return this.tokens;},is:function is(ch,chars){return chars.indexOf(ch) !== -1;},peek:function peek(i){var num=i || 1;return this.index + num < this.text.length?this.text.charAt(this.index + num):false;},isNumber:function isNumber(ch){return '0' <= ch && ch <= '9' && typeof ch === 'string';},isWhitespace:function isWhitespace(ch){return ch === ' ' || ch === '\r' || ch === '\t' || ch === '\n' || ch === '\u000b' || ch === ' ';},isIdent:function isIdent(ch){return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || '_' === ch || ch === '$';},isExpOperator:function isExpOperator(ch){return ch === '-' || ch === '+' || this.isNumber(ch);},throwError:function throwError(error,start,end){end = end || this.index;var colStr=isDefined(start)?'s ' + start + '-' + this.index + ' [' + this.text.substring(start,end) + ']':' ' + end;throw $parseMinErr('lexerr','Lexer Error: {0} at column{1} in expression [{2}].',error,colStr,this.text);},readNumber:function readNumber(){var number='';var start=this.index;while(this.index < this.text.length) {var ch=lowercase(this.text.charAt(this.index));if(ch == '.' || this.isNumber(ch)){number += ch;}else {var peekCh=this.peek();if(ch == 'e' && this.isExpOperator(peekCh)){number += ch;}else if(this.isExpOperator(ch) && peekCh && this.isNumber(peekCh) && number.charAt(number.length - 1) == 'e'){number += ch;}else if(this.isExpOperator(ch) && (!peekCh || !this.isNumber(peekCh)) && number.charAt(number.length - 1) == 'e'){this.throwError('Invalid exponent');}else {break;}}this.index++;}this.tokens.push({index:start,text:number,constant:true,value:Number(number)});},readIdent:function readIdent(){var start=this.index;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(!(this.isIdent(ch) || this.isNumber(ch))){break;}this.index++;}this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:true});},readString:function readString(quote){var start=this.index;this.index++;var string='';var rawString=quote;var escape=false;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);rawString += ch;if(escape){if(ch === 'u'){var hex=this.text.substring(this.index + 1,this.index + 5);if(!hex.match(/[\da-f]{4}/i))this.throwError('Invalid unicode escape [\\u' + hex + ']');this.index += 4;string += String.fromCharCode(parseInt(hex,16));}else {var rep=ESCAPE[ch];string = string + (rep || ch);}escape = false;}else if(ch === '\\'){escape = true;}else if(ch === quote){this.index++;this.tokens.push({index:start,text:rawString,constant:true,value:string});return;}else {string += ch;}this.index++;}this.throwError('Unterminated quote',start);}};function isConstant(exp){return exp.constant;}var Parser=function Parser(lexer,$filter,options){this.lexer = lexer;this.$filter = $filter;this.options = options;};Parser.ZERO = extend(function(){return 0;},{sharedGetter:true,constant:true});Parser.prototype = {constructor:Parser,parse:function parse(text){this.text = text;this.tokens = this.lexer.lex(text);var value=this.statements();if(this.tokens.length !== 0){this.throwError('is an unexpected token',this.tokens[0]);}value.literal = !!value.literal;value.constant = !!value.constant;return value;},primary:function primary(){var primary;if(this.expect('(')){primary = this.filterChain();this.consume(')');}else if(this.expect('[')){primary = this.arrayDeclaration();}else if(this.expect('{')){primary = this.object();}else if(this.peek().identifier && this.peek().text in CONSTANTS){primary = CONSTANTS[this.consume().text];}else if(this.peek().identifier){primary = this.identifier();}else if(this.peek().constant){primary = this.constant();}else {this.throwError('not a primary expression',this.peek());}var next,context;while(next = this.expect('(','[','.')) {if(next.text === '('){primary = this.functionCall(primary,context);context = null;}else if(next.text === '['){context = primary;primary = this.objectIndex(primary);}else if(next.text === '.'){context = primary;primary = this.fieldAccess(primary);}else {this.throwError('IMPOSSIBLE');}}return primary;},throwError:function throwError(msg,token){throw $parseMinErr('syntax','Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].',token.text,msg,token.index + 1,this.text,this.text.substring(token.index));},peekToken:function peekToken(){if(this.tokens.length === 0)throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);return this.tokens[0];},peek:function peek(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4);},peekAhead:function peekAhead(i,e1,e2,e3,e4){if(this.tokens.length > i){var token=this.tokens[i];var t=token.text;if(t === e1 || t === e2 || t === e3 || t === e4 || !e1 && !e2 && !e3 && !e4){return token;}}return false;},expect:function expect(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);if(token){this.tokens.shift();return token;}return false;},consume:function consume(e1){if(this.tokens.length === 0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}var token=this.expect(e1);if(!token){this.throwError('is unexpected, expecting [' + e1 + ']',this.peek());}return token;},unaryFn:function unaryFn(op,right){var fn=OPERATORS[op];return extend(function $parseUnaryFn(self,locals){return fn(self,locals,right);},{constant:right.constant,inputs:[right]});},binaryFn:function binaryFn(left,op,right,isBranching){var fn=OPERATORS[op];return extend(function $parseBinaryFn(self,locals){return fn(self,locals,left,right);},{constant:left.constant && right.constant,inputs:!isBranching && [left,right]});},identifier:function identifier(){var id=this.consume().text;while(this.peek('.') && this.peekAhead(1).identifier && !this.peekAhead(2,'(')) {id += this.consume().text + this.consume().text;}return getterFn(id,this.options,this.text);},constant:function constant(){var value=this.consume().value;return extend(function $parseConstant(){return value;},{constant:true,literal:true});},statements:function statements(){var statements=[];while(true) {if(this.tokens.length > 0 && !this.peek('}',')',';',']'))statements.push(this.filterChain());if(!this.expect(';')){return statements.length === 1?statements[0]:function $parseStatements(self,locals){var value;for(var i=0,ii=statements.length;i < ii;i++) {value = statements[i](self,locals);}return value;};}}},filterChain:function filterChain(){var left=this.expression();var token;while(token = this.expect('|')) {left = this.filter(left);}return left;},filter:function filter(inputFn){var fn=this.$filter(this.consume().text);var argsFn;var args;if(this.peek(':')){argsFn = [];args = [];while(this.expect(':')) {argsFn.push(this.expression());}}var inputs=[inputFn].concat(argsFn || []);return extend(function $parseFilter(self,locals){var input=inputFn(self,locals);if(args){args[0] = input;var i=argsFn.length;while(i--) {args[i + 1] = argsFn[i](self,locals);}return fn.apply(undefined,args);}return fn(input);},{constant:!fn.$stateful && inputs.every(isConstant),inputs:!fn.$stateful && inputs});},expression:function expression(){return this.assignment();},assignment:function assignment(){var left=this.ternary();var right;var token;if(token = this.expect('=')){if(!left.assign){this.throwError('implies assignment but [' + this.text.substring(0,token.index) + '] can not be assigned to',token);}right = this.ternary();return extend(function $parseAssignment(scope,locals){return left.assign(scope,right(scope,locals),locals);},{inputs:[left,right]});}return left;},ternary:function ternary(){var left=this.logicalOR();var middle;var token;if(token = this.expect('?')){middle = this.assignment();if(this.consume(':')){var right=this.assignment();return extend(function $parseTernary(self,locals){return left(self,locals)?middle(self,locals):right(self,locals);},{constant:left.constant && middle.constant && right.constant});}}return left;},logicalOR:function logicalOR(){var left=this.logicalAND();var token;while(token = this.expect('||')) {left = this.binaryFn(left,token.text,this.logicalAND(),true);}return left;},logicalAND:function logicalAND(){var left=this.equality();var token;while(token = this.expect('&&')) {left = this.binaryFn(left,token.text,this.equality(),true);}return left;},equality:function equality(){var left=this.relational();var token;while(token = this.expect('==','!=','===','!==')) {left = this.binaryFn(left,token.text,this.relational());}return left;},relational:function relational(){var left=this.additive();var token;while(token = this.expect('<','>','<=','>=')) {left = this.binaryFn(left,token.text,this.additive());}return left;},additive:function additive(){var left=this.multiplicative();var token;while(token = this.expect('+','-')) {left = this.binaryFn(left,token.text,this.multiplicative());}return left;},multiplicative:function multiplicative(){var left=this.unary();var token;while(token = this.expect('*','/','%')) {left = this.binaryFn(left,token.text,this.unary());}return left;},unary:function unary(){var token;if(this.expect('+')){return this.primary();}else if(token = this.expect('-')){return this.binaryFn(Parser.ZERO,token.text,this.unary());}else if(token = this.expect('!')){return this.unaryFn(token.text,this.unary());}else {return this.primary();}},fieldAccess:function fieldAccess(object){var getter=this.identifier();return extend(function $parseFieldAccess(scope,locals,self){var o=self || object(scope,locals);return o == null?undefined:getter(o);},{assign:function assign(scope,value,locals){var o=object(scope,locals);if(!o)object.assign(scope,o = {},locals);return getter.assign(o,value);}});},objectIndex:function objectIndex(obj){var expression=this.text;var indexFn=this.expression();this.consume(']');return extend(function $parseObjectIndex(self,locals){var o=obj(self,locals),i=indexFn(self,locals),v;ensureSafeMemberName(i,expression);if(!o)return undefined;v = ensureSafeObject(o[i],expression);return v;},{assign:function assign(self,value,locals){var key=ensureSafeMemberName(indexFn(self,locals),expression);var o=ensureSafeObject(obj(self,locals),expression);if(!o)obj.assign(self,o = {},locals);return o[key] = value;}});},functionCall:function functionCall(fnGetter,contextGetter){var argsFn=[];if(this.peekToken().text !== ')'){do {argsFn.push(this.expression());}while(this.expect(','));}this.consume(')');var expressionText=this.text;var args=argsFn.length?[]:null;return function $parseFunctionCall(scope,locals){var context=contextGetter?contextGetter(scope,locals):isDefined(contextGetter)?undefined:scope;var fn=fnGetter(scope,locals,context) || noop;if(args){var i=argsFn.length;while(i--) {args[i] = ensureSafeObject(argsFn[i](scope,locals),expressionText);}}ensureSafeObject(context,expressionText);ensureSafeFunction(fn,expressionText);var v=fn.apply?fn.apply(context,args):fn(args[0],args[1],args[2],args[3],args[4]);if(args){args.length = 0;}return ensureSafeObject(v,expressionText);};},arrayDeclaration:function arrayDeclaration(){var elementFns=[];if(this.peekToken().text !== ']'){do {if(this.peek(']')){break;}elementFns.push(this.expression());}while(this.expect(','));}this.consume(']');return extend(function $parseArrayLiteral(self,locals){var array=[];for(var i=0,ii=elementFns.length;i < ii;i++) {array.push(elementFns[i](self,locals));}return array;},{literal:true,constant:elementFns.every(isConstant),inputs:elementFns});},object:function object(){var keys=[],valueFns=[];if(this.peekToken().text !== '}'){do {if(this.peek('}')){break;}var token=this.consume();if(token.constant){keys.push(token.value);}else if(token.identifier){keys.push(token.text);}else {this.throwError('invalid key',token);}this.consume(':');valueFns.push(this.expression());}while(this.expect(','));}this.consume('}');return extend(function $parseObjectLiteral(self,locals){var object={};for(var i=0,ii=valueFns.length;i < ii;i++) {object[keys[i]] = valueFns[i](self,locals);}return object;},{literal:true,constant:valueFns.every(isConstant),inputs:valueFns});}};function setter(obj,locals,path,setValue,fullExp){ensureSafeObject(obj,fullExp);ensureSafeObject(locals,fullExp);var element=path.split('.'),key;for(var i=0;element.length > 1;i++) {key = ensureSafeMemberName(element.shift(),fullExp);var propertyObj=i === 0 && locals && locals[key] || obj[key];if(!propertyObj){propertyObj = {};obj[key] = propertyObj;}obj = ensureSafeObject(propertyObj,fullExp);}key = ensureSafeMemberName(element.shift(),fullExp);ensureSafeObject(obj[key],fullExp);obj[key] = setValue;return setValue;}var getterFnCacheDefault=createMap();var getterFnCacheExpensive=createMap();function isPossiblyDangerousMemberName(name){return name == 'constructor';}function cspSafeGetterFn(key0,key1,key2,key3,key4,fullExp,expensiveChecks){ensureSafeMemberName(key0,fullExp);ensureSafeMemberName(key1,fullExp);ensureSafeMemberName(key2,fullExp);ensureSafeMemberName(key3,fullExp);ensureSafeMemberName(key4,fullExp);var eso=function eso(o){return ensureSafeObject(o,fullExp);};var eso0=expensiveChecks || isPossiblyDangerousMemberName(key0)?eso:identity;var eso1=expensiveChecks || isPossiblyDangerousMemberName(key1)?eso:identity;var eso2=expensiveChecks || isPossiblyDangerousMemberName(key2)?eso:identity;var eso3=expensiveChecks || isPossiblyDangerousMemberName(key3)?eso:identity;var eso4=expensiveChecks || isPossiblyDangerousMemberName(key4)?eso:identity;return function cspSafeGetter(scope,locals){var pathVal=locals && locals.hasOwnProperty(key0)?locals:scope;if(pathVal == null)return pathVal;pathVal = eso0(pathVal[key0]);if(!key1)return pathVal;if(pathVal == null)return undefined;pathVal = eso1(pathVal[key1]);if(!key2)return pathVal;if(pathVal == null)return undefined;pathVal = eso2(pathVal[key2]);if(!key3)return pathVal;if(pathVal == null)return undefined;pathVal = eso3(pathVal[key3]);if(!key4)return pathVal;if(pathVal == null)return undefined;pathVal = eso4(pathVal[key4]);return pathVal;};}function getterFnWithEnsureSafeObject(fn,fullExpression){return function(s,l){return fn(s,l,ensureSafeObject,fullExpression);};}function getterFn(path,options,fullExp){var expensiveChecks=options.expensiveChecks;var getterFnCache=expensiveChecks?getterFnCacheExpensive:getterFnCacheDefault;var fn=getterFnCache[path];if(fn)return fn;var pathKeys=path.split('.'),pathKeysLength=pathKeys.length;if(options.csp){if(pathKeysLength < 6){fn = cspSafeGetterFn(pathKeys[0],pathKeys[1],pathKeys[2],pathKeys[3],pathKeys[4],fullExp,expensiveChecks);}else {fn = function cspSafeGetter(scope,locals){var i=0,val;do {val = cspSafeGetterFn(pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],fullExp,expensiveChecks)(scope,locals);locals = undefined;scope = val;}while(i < pathKeysLength);return val;};}}else {var code='';if(expensiveChecks){code += 's = eso(s, fe);\nl = eso(l, fe);\n';}var needsEnsureSafeObject=expensiveChecks;forEach(pathKeys,function(key,index){ensureSafeMemberName(key,fullExp);var lookupJs=(index?'s':'((l&&l.hasOwnProperty("' + key + '"))?l:s)') + '.' + key;if(expensiveChecks || isPossiblyDangerousMemberName(key)){lookupJs = 'eso(' + lookupJs + ', fe)';needsEnsureSafeObject = true;}code += 'if(s == null) return undefined;\n' + 's=' + lookupJs + ';\n';});code += 'return s;';var evaledFnGetter=new Function('s','l','eso','fe',code);evaledFnGetter.toString = valueFn(code);if(needsEnsureSafeObject){evaledFnGetter = getterFnWithEnsureSafeObject(evaledFnGetter,fullExp);}fn = evaledFnGetter;}fn.sharedGetter = true;fn.assign = function(self,value,locals){return setter(self,locals,path,value,path);};getterFnCache[path] = fn;return fn;}var objectValueOf=Object.prototype.valueOf;function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value);}function $ParseProvider(){var cacheDefault=createMap();var cacheExpensive=createMap();this.$get = ['$filter','$sniffer',function($filter,$sniffer){var $parseOptions={csp:$sniffer.csp,expensiveChecks:false},$parseOptionsExpensive={csp:$sniffer.csp,expensiveChecks:true};function wrapSharedExpression(exp){var wrapped=exp;if(exp.sharedGetter){wrapped = function $parseWrapper(self,locals){return exp(self,locals);};wrapped.literal = exp.literal;wrapped.constant = exp.constant;wrapped.assign = exp.assign;}return wrapped;}return function $parse(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case 'string':cacheKey = exp = exp.trim();var cache=expensiveChecks?cacheExpensive:cacheDefault;parsedExpression = cache[cacheKey];if(!parsedExpression){if(exp.charAt(0) === ':' && exp.charAt(1) === ':'){oneTime = true;exp = exp.substring(2);}var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions;var lexer=new Lexer(parseOptions);var parser=new Parser(lexer,$filter,parseOptions);parsedExpression = parser.parse(exp);if(parsedExpression.constant){parsedExpression.$$watchDelegate = constantWatchDelegate;}else if(oneTime){parsedExpression = wrapSharedExpression(parsedExpression);parsedExpression.$$watchDelegate = parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate;}else if(parsedExpression.inputs){parsedExpression.$$watchDelegate = inputsWatchDelegate;}cache[cacheKey] = parsedExpression;}return addInterceptor(parsedExpression,interceptorFn);case 'function':return addInterceptor(exp,interceptorFn);default:return addInterceptor(noop,interceptorFn);}};function collectExpressionInputs(inputs,list){for(var i=0,ii=inputs.length;i < ii;i++) {var input=inputs[i];if(!input.constant){if(input.inputs){collectExpressionInputs(input.inputs,list);}else if(list.indexOf(input) === -1){list.push(input);}}}return list;}function expressionInputDirtyCheck(newValue,oldValueOfValue){if(newValue == null || oldValueOfValue == null){return newValue === oldValueOfValue;}if(typeof newValue === 'object'){newValue = getValueOf(newValue);if(typeof newValue === 'object'){return false;}}return newValue === oldValueOfValue || newValue !== newValue && oldValueOfValue !== oldValueOfValue;}function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression){var inputExpressions=parsedExpression.$$inputs || (parsedExpression.$$inputs = collectExpressionInputs(parsedExpression.inputs,[]));var lastResult;if(inputExpressions.length === 1){var oldInputValue=expressionInputDirtyCheck;inputExpressions = inputExpressions[0];return scope.$watch(function expressionInputWatch(scope){var newInputValue=inputExpressions(scope);if(!expressionInputDirtyCheck(newInputValue,oldInputValue)){lastResult = parsedExpression(scope);oldInputValue = newInputValue && getValueOf(newInputValue);}return lastResult;},listener,objectEquality);}var oldInputValueOfValues=[];for(var i=0,ii=inputExpressions.length;i < ii;i++) {oldInputValueOfValues[i] = expressionInputDirtyCheck;}return scope.$watch(function expressionInputsWatch(scope){var changed=false;for(var i=0,ii=inputExpressions.length;i < ii;i++) {var newInputValue=inputExpressions[i](scope);if(changed || (changed = !expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i]))){oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue);}}if(changed){lastResult = parsedExpression(scope);}return lastResult;},listener,objectEquality);}function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.apply(this,arguments);}if(isDefined(value)){scope.$$postDigest(function(){if(isDefined(lastValue)){unwatch();}});}},objectEquality);}function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.call(this,value,old,scope);}if(isAllDefined(value)){scope.$$postDigest(function(){if(isAllDefined(lastValue))unwatch();});}},objectEquality);function isAllDefined(value){var allDefined=true;forEach(value,function(val){if(!isDefined(val))allDefined = false;});return allDefined;}}function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch = scope.$watch(function constantWatch(scope){return parsedExpression(scope);},function constantListener(value,old,scope){if(isFunction(listener)){listener.apply(this,arguments);}unwatch();},objectEquality);}function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate;var regularWatch=watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate;var fn=regularWatch?function regularInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);return interceptorFn(value,scope,locals);}:function oneTimeInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);var result=interceptorFn(value,scope,locals);return isDefined(value)?result:value;};if(parsedExpression.$$watchDelegate && parsedExpression.$$watchDelegate !== inputsWatchDelegate){fn.$$watchDelegate = parsedExpression.$$watchDelegate;}else if(!interceptorFn.$stateful){fn.$$watchDelegate = inputsWatchDelegate;fn.inputs = [parsedExpression];}return fn;}}];}function $QProvider(){this.$get = ['$rootScope','$exceptionHandler',function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback);},$exceptionHandler);}];}function $$QProvider(){this.$get = ['$browser','$exceptionHandler',function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback);},$exceptionHandler);}];}function qFactory(nextTick,exceptionHandler){var $qMinErr=minErr('$q',TypeError);function callOnce(self,resolveFn,rejectFn){var called=false;function wrap(fn){return function(value){if(called)return;called = true;fn.call(self,value);};}return [wrap(resolveFn),wrap(rejectFn)];}var defer=function defer(){return new Deferred();};function Promise(){this.$$state = {status:0};}Promise.prototype = {then:function then(onFulfilled,onRejected,progressBack){var result=new Deferred();this.$$state.pending = this.$$state.pending || [];this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]);if(this.$$state.status > 0)scheduleProcessQueue(this.$$state);return result.promise;},'catch':function _catch(callback){return this.then(null,callback);},'finally':function _finally(callback,progressBack){return this.then(function(value){return handleCallback(value,true,callback);},function(error){return handleCallback(error,false,callback);},progressBack);}};function simpleBind(context,fn){return function(value){fn.call(context,value);};}function processQueue(state){var fn,promise,pending;pending = state.pending;state.processScheduled = false;state.pending = undefined;for(var i=0,ii=pending.length;i < ii;++i) {promise = pending[i][0];fn = pending[i][state.status];try{if(isFunction(fn)){promise.resolve(fn(state.value));}else if(state.status === 1){promise.resolve(state.value);}else {promise.reject(state.value);}}catch(e) {promise.reject(e);exceptionHandler(e);}}}function scheduleProcessQueue(state){if(state.processScheduled || !state.pending)return;state.processScheduled = true;nextTick(function(){processQueue(state);});}function Deferred(){this.promise = new Promise();this.resolve = simpleBind(this,this.resolve);this.reject = simpleBind(this,this.reject);this.notify = simpleBind(this,this.notify);}Deferred.prototype = {resolve:function resolve(val){if(this.promise.$$state.status)return;if(val === this.promise){this.$$reject($qMinErr('qcycle','Expected promise to be resolved with value other than itself \'{0}\'',val));}else {this.$$resolve(val);}},$$resolve:function $$resolve(val){var then,fns;fns = callOnce(this,this.$$resolve,this.$$reject);try{if(isObject(val) || isFunction(val))then = val && val.then;if(isFunction(then)){this.promise.$$state.status = -1;then.call(val,fns[0],fns[1],this.notify);}else {this.promise.$$state.value = val;this.promise.$$state.status = 1;scheduleProcessQueue(this.promise.$$state);}}catch(e) {fns[1](e);exceptionHandler(e);}},reject:function reject(reason){if(this.promise.$$state.status)return;this.$$reject(reason);},$$reject:function $$reject(reason){this.promise.$$state.value = reason;this.promise.$$state.status = 2;scheduleProcessQueue(this.promise.$$state);},notify:function notify(progress){var callbacks=this.promise.$$state.pending;if(this.promise.$$state.status <= 0 && callbacks && callbacks.length){nextTick(function(){var callback,result;for(var i=0,ii=callbacks.length;i < ii;i++) {result = callbacks[i][0];callback = callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress);}catch(e) {exceptionHandler(e);}}});}}};var reject=function reject(reason){var result=new Deferred();result.reject(reason);return result.promise;};var makePromise=function makePromise(value,resolved){var result=new Deferred();if(resolved){result.resolve(value);}else {result.reject(value);}return result.promise;};var handleCallback=function handleCallback(value,isResolved,callback){var callbackOutput=null;try{if(isFunction(callback))callbackOutput = callback();}catch(e) {return makePromise(e,false);}if(isPromiseLike(callbackOutput)){return callbackOutput.then(function(){return makePromise(value,isResolved);},function(error){return makePromise(error,false);});}else {return makePromise(value,isResolved);}};var when=function when(value,callback,errback,progressBack){var result=new Deferred();result.resolve(value);return result.promise.then(callback,errback,progressBack);};function all(promises){var deferred=new Deferred(),counter=0,results=isArray(promises)?[]:{};forEach(promises,function(promise,key){counter++;when(promise).then(function(value){if(results.hasOwnProperty(key))return;results[key] = value;if(! --counter)deferred.resolve(results);},function(reason){if(results.hasOwnProperty(key))return;deferred.reject(reason);});});if(counter === 0){deferred.resolve(results);}return deferred.promise;}var $Q=function Q(resolver){if(!isFunction(resolver)){throw $qMinErr('norslvr','Expected resolverFn, got \'{0}\'',resolver);}if(!(this instanceof Q)){return new Q(resolver);}var deferred=new Deferred();function resolveFn(value){deferred.resolve(value);}function rejectFn(reason){deferred.reject(reason);}resolver(resolveFn,rejectFn);return deferred.promise;};$Q.defer = defer;$Q.reject = reject;$Q.when = when;$Q.all = all;return $Q;}function $$RAFProvider(){this.$get = ['$window','$timeout',function($window,$timeout){var requestAnimationFrame=$window.requestAnimationFrame || $window.webkitRequestAnimationFrame;var cancelAnimationFrame=$window.cancelAnimationFrame || $window.webkitCancelAnimationFrame || $window.webkitCancelRequestAnimationFrame;var rafSupported=!!requestAnimationFrame;var raf=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id);};}:function(fn){var timer=$timeout(fn,16.66,false);return function(){$timeout.cancel(timer);};};raf.supported = rafSupported;return raf;}];}function $RootScopeProvider(){var TTL=10;var $rootScopeMinErr=minErr('$rootScope');var lastDirtyWatch=null;var applyAsyncId=null;this.digestTtl = function(value){if(arguments.length){TTL = value;}return TTL;};function createChildScopeClass(parent){function ChildScope(){this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null;this.$$listeners = {};this.$$listenerCount = {};this.$$watchersCount = 0;this.$id = nextUid();this.$$ChildScope = null;}ChildScope.prototype = parent;return ChildScope;}this.$get = ['$injector','$exceptionHandler','$parse','$browser',function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed = true;}function Scope(){this.$id = nextUid();this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;this.$root = this;this.$$destroyed = false;this.$$listeners = {};this.$$listenerCount = {};this.$$isolateBindings = null;}Scope.prototype = {constructor:Scope,$new:function $new(isolate,parent){var child;parent = parent || this;if(isolate){child = new Scope();child.$root = this.$root;}else {if(!this.$$ChildScope){this.$$ChildScope = createChildScopeClass(this);}child = new this.$$ChildScope();}child.$parent = parent;child.$$prevSibling = parent.$$childTail;if(parent.$$childHead){parent.$$childTail.$$nextSibling = child;parent.$$childTail = child;}else {parent.$$childHead = parent.$$childTail = child;}if(isolate || parent != this)child.$on('$destroy',destroyChildScope);return child;},$watch:function $watch(watchExp,listener,objectEquality){var get=$parse(watchExp);if(get.$$watchDelegate){return get.$$watchDelegate(this,listener,objectEquality,get);}var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:watchExp,eq:!!objectEquality};lastDirtyWatch = null;if(!isFunction(listener)){watcher.fn = noop;}if(!array){array = scope.$$watchers = [];}array.unshift(watcher);return function deregisterWatch(){arrayRemove(array,watcher);lastDirtyWatch = null;};},$watchGroup:function $watchGroup(watchExpressions,listener){var oldValues=new Array(watchExpressions.length);var newValues=new Array(watchExpressions.length);var deregisterFns=[];var self=this;var changeReactionScheduled=false;var firstRun=true;if(!watchExpressions.length){var shouldCall=true;self.$evalAsync(function(){if(shouldCall)listener(newValues,newValues,self);});return function deregisterWatchGroup(){shouldCall = false;};}if(watchExpressions.length === 1){return this.$watch(watchExpressions[0],function watchGroupAction(value,oldValue,scope){newValues[0] = value;oldValues[0] = oldValue;listener(newValues,value === oldValue?newValues:oldValues,scope);});}forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function watchGroupSubAction(value,oldValue){newValues[i] = value;oldValues[i] = oldValue;if(!changeReactionScheduled){changeReactionScheduled = true;self.$evalAsync(watchGroupAction);}});deregisterFns.push(unwatchFn);});function watchGroupAction(){changeReactionScheduled = false;if(firstRun){firstRun = false;listener(newValues,newValues,self);}else {listener(newValues,oldValues,self);}}return function deregisterWatchGroup(){while(deregisterFns.length) {deregisterFns.shift()();}};},$watchCollection:function $watchCollection(obj,listener){$watchCollectionInterceptor.$stateful = true;var self=this;var newValue;var oldValue;var veryOldValue;var trackVeryOldValue=listener.length > 1;var changeDetected=0;var changeDetector=$parse(obj,$watchCollectionInterceptor);var internalArray=[];var internalObject={};var initRun=true;var oldLength=0;function $watchCollectionInterceptor(_value){newValue = _value;var newLength,key,bothNaN,newItem,oldItem;if(isUndefined(newValue))return;if(!isObject(newValue)){if(oldValue !== newValue){oldValue = newValue;changeDetected++;}}else if(isArrayLike(newValue)){if(oldValue !== internalArray){oldValue = internalArray;oldLength = oldValue.length = 0;changeDetected++;}newLength = newValue.length;if(oldLength !== newLength){changeDetected++;oldValue.length = oldLength = newLength;}for(var i=0;i < newLength;i++) {oldItem = oldValue[i];newItem = newValue[i];bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[i] = newItem;}}}else {if(oldValue !== internalObject){oldValue = internalObject = {};oldLength = 0;changeDetected++;}newLength = 0;for(key in newValue) {if(newValue.hasOwnProperty(key)){newLength++;newItem = newValue[key];oldItem = oldValue[key];if(key in oldValue){bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[key] = newItem;}}else {oldLength++;oldValue[key] = newItem;changeDetected++;}}}if(oldLength > newLength){changeDetected++;for(key in oldValue) {if(!newValue.hasOwnProperty(key)){oldLength--;delete oldValue[key];}}}}return changeDetected;}function $watchCollectionAction(){if(initRun){initRun = false;listener(newValue,newValue,self);}else {listener(newValue,veryOldValue,self);}if(trackVeryOldValue){if(!isObject(newValue)){veryOldValue = newValue;}else if(isArrayLike(newValue)){veryOldValue = new Array(newValue.length);for(var i=0;i < newValue.length;i++) {veryOldValue[i] = newValue[i];}}else {veryOldValue = {};for(var key in newValue) {if(hasOwnProperty.call(newValue,key)){veryOldValue[key] = newValue[key];}}}}}return this.$watch(changeDetector,$watchCollectionAction);},$digest:function $digest(){var watch,value,last,watchers,length,dirty,ttl=TTL,next,current,target=this,watchLog=[],logIdx,logMsg,asyncTask;beginPhase('$digest');$browser.$$checkUrlChange();if(this === $rootScope && applyAsyncId !== null){$browser.defer.cancel(applyAsyncId);flushApplyAsync();}lastDirtyWatch = null;do {dirty = false;current = target;while(asyncQueue.length) {try{asyncTask = asyncQueue.shift();asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals);}catch(e) {$exceptionHandler(e);}lastDirtyWatch = null;}traverseScopesLoop: do {if(watchers = current.$$watchers){length = watchers.length;while(length--) {try{watch = watchers[length];if(watch){if((value = watch.get(current)) !== (last = watch.last) && !(watch.eq?equals(value,last):typeof value === 'number' && typeof last === 'number' && isNaN(value) && isNaN(last))){dirty = true;lastDirtyWatch = watch;watch.last = watch.eq?copy(value,null):value;watch.fn(value,last === initWatchVal?value:last,current);if(ttl < 5){logIdx = 4 - ttl;if(!watchLog[logIdx])watchLog[logIdx] = [];watchLog[logIdx].push({msg:isFunction(watch.exp)?'fn: ' + (watch.exp.name || watch.exp.toString()):watch.exp,newVal:value,oldVal:last});}}else if(watch === lastDirtyWatch){dirty = false;break traverseScopesLoop;}}}catch(e) {$exceptionHandler(e);}}}if(!(next = current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}while(current = next);if((dirty || asyncQueue.length) && ! ttl--){clearPhase();throw $rootScopeMinErr('infdig','{0} $digest() iterations reached. Aborting!\n' + 'Watchers fired in the last 5 iterations: {1}',TTL,watchLog);}}while(dirty || asyncQueue.length);clearPhase();while(postDigestQueue.length) {try{postDigestQueue.shift()();}catch(e) {$exceptionHandler(e);}}},$destroy:function $destroy(){if(this.$$destroyed)return;var parent=this.$parent;this.$broadcast('$destroy');this.$$destroyed = true;if(this === $rootScope)return;for(var eventName in this.$$listenerCount) {decrementListenerCount(this,this.$$listenerCount[eventName],eventName);}if(parent.$$childHead == this)parent.$$childHead = this.$$nextSibling;if(parent.$$childTail == this)parent.$$childTail = this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling = this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling = this.$$prevSibling;this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop;this.$on = this.$watch = this.$watchGroup = function(){return noop;};this.$$listeners = {};this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = this.$root = this.$$watchers = null;},$eval:function $eval(expr,locals){return $parse(expr)(this,locals);},$evalAsync:function $evalAsync(expr,locals){if(!$rootScope.$$phase && !asyncQueue.length){$browser.defer(function(){if(asyncQueue.length){$rootScope.$digest();}});}asyncQueue.push({scope:this,expression:expr,locals:locals});},$$postDigest:function $$postDigest(fn){postDigestQueue.push(fn);},$apply:function $apply(expr){try{beginPhase('$apply');return this.$eval(expr);}catch(e) {$exceptionHandler(e);}finally {clearPhase();try{$rootScope.$digest();}catch(e) {$exceptionHandler(e);throw e;}}},$applyAsync:function $applyAsync(expr){var scope=this;expr && applyAsyncQueue.push($applyAsyncExpression);scheduleApplyAsync();function $applyAsyncExpression(){scope.$eval(expr);}},$on:function $on(name,listener){var namedListeners=this.$$listeners[name];if(!namedListeners){this.$$listeners[name] = namedListeners = [];}namedListeners.push(listener);var current=this;do {if(!current.$$listenerCount[name]){current.$$listenerCount[name] = 0;}current.$$listenerCount[name]++;}while(current = current.$parent);var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);if(indexOfListener !== -1){namedListeners[indexOfListener] = null;decrementListenerCount(self,1,name);}};},$emit:function $emit(name,args){var empty=[],namedListeners,scope=this,_stopPropagation=false,event={name:name,targetScope:scope,stopPropagation:function stopPropagation(){_stopPropagation = true;},preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false},listenerArgs=concat([event],arguments,1),i,length;do {namedListeners = scope.$$listeners[name] || empty;event.currentScope = scope;for(i = 0,length = namedListeners.length;i < length;i++) {if(!namedListeners[i]){namedListeners.splice(i,1);i--;length--;continue;}try{namedListeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(_stopPropagation){event.currentScope = null;return event;}scope = scope.$parent;}while(scope);event.currentScope = null;return event;},$broadcast:function $broadcast(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false};if(!target.$$listenerCount[name])return event;var listenerArgs=concat([event],arguments,1),listeners,i,length;while(current = next) {event.currentScope = current;listeners = current.$$listeners[name] || [];for(i = 0,length = listeners.length;i < length;i++) {if(!listeners[i]){listeners.splice(i,1);i--;length--;continue;}try{listeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(!(next = current.$$listenerCount[name] && current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}event.currentScope = null;return event;}};var $rootScope=new Scope();var asyncQueue=$rootScope.$$asyncQueue = [];var postDigestQueue=$rootScope.$$postDigestQueue = [];var applyAsyncQueue=$rootScope.$$applyAsyncQueue = [];return $rootScope;function beginPhase(phase){if($rootScope.$$phase){throw $rootScopeMinErr('inprog','{0} already in progress',$rootScope.$$phase);}$rootScope.$$phase = phase;}function clearPhase(){$rootScope.$$phase = null;}function decrementListenerCount(current,count,name){do {current.$$listenerCount[name] -= count;if(current.$$listenerCount[name] === 0){delete current.$$listenerCount[name];}}while(current = current.$parent);}function initWatchVal(){}function flushApplyAsync(){while(applyAsyncQueue.length) {try{applyAsyncQueue.shift()();}catch(e) {$exceptionHandler(e);}}applyAsyncId = null;}function scheduleApplyAsync(){if(applyAsyncId === null){applyAsyncId = $browser.defer(function(){$rootScope.$apply(flushApplyAsync);});}}}];}function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){aHrefSanitizationWhitelist = regexp;return this;}return aHrefSanitizationWhitelist;};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){imgSrcSanitizationWhitelist = regexp;return this;}return imgSrcSanitizationWhitelist;};this.$get = function(){return function sanitizeUri(uri,isImage){var regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;var normalizedVal;normalizedVal = urlResolve(uri).href;if(normalizedVal !== '' && !normalizedVal.match(regex)){return 'unsafe:' + normalizedVal;}return uri;};};}var $sceMinErr=minErr('$sce');var SCE_CONTEXTS={HTML:'html',CSS:'css',URL:'url',RESOURCE_URL:'resourceUrl',JS:'js'};function adjustMatcher(matcher){if(matcher === 'self'){return matcher;}else if(isString(matcher)){if(matcher.indexOf('***') > -1){throw $sceMinErr('iwcard','Illegal sequence *** in string matcher. String: {0}',matcher);}matcher = escapeForRegexp(matcher).replace('\\*\\*','.*').replace('\\*','[^:/.?&;]*');return new RegExp('^' + matcher + '$');}else if(isRegExp(matcher)){return new RegExp('^' + matcher.source + '$');}else {throw $sceMinErr('imatcher','Matchers may only be "self", string patterns or RegExp objects');}}function adjustMatchers(matchers){var adjustedMatchers=[];if(isDefined(matchers)){forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher));});}return adjustedMatchers;}function $SceDelegateProvider(){this.SCE_CONTEXTS = SCE_CONTEXTS;var resourceUrlWhitelist=['self'],resourceUrlBlacklist=[];this.resourceUrlWhitelist = function(value){if(arguments.length){resourceUrlWhitelist = adjustMatchers(value);}return resourceUrlWhitelist;};this.resourceUrlBlacklist = function(value){if(arguments.length){resourceUrlBlacklist = adjustMatchers(value);}return resourceUrlBlacklist;};this.$get = ['$injector',function($injector){var htmlSanitizer=function htmlSanitizer(html){throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');};if($injector.has('$sanitize')){htmlSanitizer = $injector.get('$sanitize');}function matchUrl(matcher,parsedUrl){if(matcher === 'self'){return urlIsSameOrigin(parsedUrl);}else {return !!matcher.exec(parsedUrl.href);}}function isResourceUrlAllowedByPolicy(url){var parsedUrl=urlResolve(url.toString());var i,n,allowed=false;for(i = 0,n = resourceUrlWhitelist.length;i < n;i++) {if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed = true;break;}}if(allowed){for(i = 0,n = resourceUrlBlacklist.length;i < n;i++) {if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed = false;break;}}}return allowed;}function generateHolderType(Base){var holderType=function TrustedValueHolderType(trustedValue){this.$$unwrapTrustedValue = function(){return trustedValue;};};if(Base){holderType.prototype = new Base();}holderType.prototype.valueOf = function sceValueOf(){return this.$$unwrapTrustedValue();};holderType.prototype.toString = function sceToString(){return this.$$unwrapTrustedValue().toString();};return holderType;}var trustedValueHolderBase=generateHolderType(),byType={};byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]);function trustAs(type,trustedValue){var Constructor=byType.hasOwnProperty(type)?byType[type]:null;if(!Constructor){throw $sceMinErr('icontext','Attempted to trust a value in invalid context. Context: {0}; Value: {1}',type,trustedValue);}if(trustedValue === null || trustedValue === undefined || trustedValue === ''){return trustedValue;}if(typeof trustedValue !== 'string'){throw $sceMinErr('itype','Attempted to trust a non-string value in a content requiring a string: Context: {0}',type);}return new Constructor(trustedValue);}function valueOf(maybeTrusted){if(maybeTrusted instanceof trustedValueHolderBase){return maybeTrusted.$$unwrapTrustedValue();}else {return maybeTrusted;}}function getTrusted(type,maybeTrusted){if(maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === ''){return maybeTrusted;}var constructor=byType.hasOwnProperty(type)?byType[type]:null;if(constructor && maybeTrusted instanceof constructor){return maybeTrusted.$$unwrapTrustedValue();}if(type === SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted)){return maybeTrusted;}else {throw $sceMinErr('insecurl','Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}',maybeTrusted.toString());}}else if(type === SCE_CONTEXTS.HTML){return htmlSanitizer(maybeTrusted);}throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');}return {trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf};}];}function $SceProvider(){var enabled=true;this.enabled = function(value){if(arguments.length){enabled = !!value;}return enabled;};this.$get = ['$parse','$sceDelegate',function($parse,$sceDelegate){if(enabled && msie < 8){throw $sceMinErr('iequirks','Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + 'mode. You can fix this by adding the text <!doctype html> to the top of your HTML ' + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.');}var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled = function(){return enabled;};sce.trustAs = $sceDelegate.trustAs;sce.getTrusted = $sceDelegate.getTrusted;sce.valueOf = $sceDelegate.valueOf;if(!enabled){sce.trustAs = sce.getTrusted = function(type,value){return value;};sce.valueOf = identity;}sce.parseAs = function sceParseAs(type,expr){var parsed=$parse(expr);if(parsed.literal && parsed.constant){return parsed;}else {return $parse(expr,function(value){return sce.getTrusted(type,value);});}};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase('parse_as_' + lName)] = function(expr){return parse(enumValue,expr);};sce[camelCase('get_trusted_' + lName)] = function(value){return getTrusted(enumValue,value);};sce[camelCase('trust_as_' + lName)] = function(value){return trustAs(enumValue,value);};});return sce;}];}function $SnifferProvider(){this.$get = ['$window','$document',function($window,$document){var eventSupport={},android=int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]),boxee=/Boxee/i.test(($window.navigator || {}).userAgent),document=$document[0] || {},vendorPrefix,vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body && document.body.style,transitions=false,animations=false,match;if(bodyStyle){for(var prop in bodyStyle) {if(match = vendorRegex.exec(prop)){vendorPrefix = match[0];vendorPrefix = vendorPrefix.substr(0,1).toUpperCase() + vendorPrefix.substr(1);break;}}if(!vendorPrefix){vendorPrefix = 'WebkitOpacity' in bodyStyle && 'webkit';}transitions = !!('transition' in bodyStyle || vendorPrefix + 'Transition' in bodyStyle);animations = !!('animation' in bodyStyle || vendorPrefix + 'Animation' in bodyStyle);if(android && (!transitions || !animations)){transitions = isString(document.body.style.webkitTransition);animations = isString(document.body.style.webkitAnimation);}}return {history:!!($window.history && $window.history.pushState && !(android < 4) && !boxee),hasEvent:function hasEvent(event){if(event === 'input' && msie <= 11)return false;if(isUndefined(eventSupport[event])){var divElm=document.createElement('div');eventSupport[event] = 'on' + event in divElm;}return eventSupport[event];},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android};}];}var $compileMinErr=minErr('$compile');function $TemplateRequestProvider(){this.$get = ['$templateCache','$http','$q',function($templateCache,$http,$q){function handleRequestFn(tpl,ignoreRequestError){handleRequestFn.totalPendingRequests++;var transformResponse=$http.defaults && $http.defaults.transformResponse;if(isArray(transformResponse)){transformResponse = transformResponse.filter(function(transformer){return transformer !== defaultHttpResponseTransform;});}else if(transformResponse === defaultHttpResponseTransform){transformResponse = null;}var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)['finally'](function(){handleRequestFn.totalPendingRequests--;}).then(function(response){return response.data;},handleError);function handleError(resp){if(!ignoreRequestError){throw $compileMinErr('tpload','Failed to load template: {0}',tpl);}return $q.reject(resp);}}handleRequestFn.totalPendingRequests = 0;return handleRequestFn;}];}function $$TestabilityProvider(){this.$get = ['$rootScope','$browser','$location',function($rootScope,$browser,$location){var testability={};testability.findBindings = function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName('ng-binding');var matches=[];forEach(bindings,function(binding){var dataBinding=angular.element(binding).data('$binding');if(dataBinding){forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)');if(matcher.test(bindingName)){matches.push(binding);}}else {if(bindingName.indexOf(expression) != -1){matches.push(binding);}}});}});return matches;};testability.findModels = function(element,expression,opt_exactMatch){var prefixes=['ng-','data-ng-','ng\\:'];for(var p=0;p < prefixes.length;++p) {var attributeEquals=opt_exactMatch?'=':'*=';var selector='[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]';var elements=element.querySelectorAll(selector);if(elements.length){return elements;}}};testability.getLocation = function(){return $location.url();};testability.setLocation = function(url){if(url !== $location.url()){$location.url(url);$rootScope.$digest();}};testability.whenStable = function(callback){$browser.notifyWhenNoOutstandingRequests(callback);};return testability;}];}function $TimeoutProvider(){this.$get = ['$rootScope','$browser','$q','$$q','$exceptionHandler',function($rootScope,$browser,$q,$$q,$exceptionHandler){var deferreds={};function timeout(fn,delay,invokeApply){var skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise,timeoutId;timeoutId = $browser.defer(function(){try{deferred.resolve(fn());}catch(e) {deferred.reject(e);$exceptionHandler(e);}finally {delete deferreds[promise.$$timeoutId];}if(!skipApply)$rootScope.$apply();},delay);promise.$$timeoutId = timeoutId;deferreds[timeoutId] = deferred;return promise;}timeout.cancel = function(promise){if(promise && promise.$$timeoutId in deferreds){deferreds[promise.$$timeoutId].reject('canceled');delete deferreds[promise.$$timeoutId];return $browser.defer.cancel(promise.$$timeoutId);}return false;};return timeout;}];}var urlParsingNode=document.createElement('a');var originUrl=urlResolve(window.location.href);function urlResolve(url){var href=url;if(msie){urlParsingNode.setAttribute('href',href);href = urlParsingNode.href;}urlParsingNode.setAttribute('href',href);return {href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,''):'',host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,''):'',hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,''):'',hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:urlParsingNode.pathname.charAt(0) === '/'?urlParsingNode.pathname:'/' + urlParsingNode.pathname};}function urlIsSameOrigin(requestUrl){var parsed=isString(requestUrl)?urlResolve(requestUrl):requestUrl;return parsed.protocol === originUrl.protocol && parsed.host === originUrl.host;}function $WindowProvider(){this.$get = valueFn(window);}$FilterProvider.$inject = ['$provide'];function $FilterProvider($provide){var suffix='Filter';function register(name,factory){if(isObject(name)){var filters={};forEach(name,function(filter,key){filters[key] = register(key,filter);});return filters;}else {return $provide.factory(name + suffix,factory);}}this.register = register;this.$get = ['$injector',function($injector){return function(name){return $injector.get(name + suffix);};}];register('currency',currencyFilter);register('date',dateFilter);register('filter',filterFilter);register('json',jsonFilter);register('limitTo',limitToFilter);register('lowercase',lowercaseFilter);register('number',numberFilter);register('orderBy',orderByFilter);register('uppercase',uppercaseFilter);}function filterFilter(){return function(array,expression,comparator){if(!isArray(array))return array;var predicateFn;var matchAgainstAnyProp;switch(typeof expression){case 'function':predicateFn = expression;break;case 'boolean':case 'number':case 'string':matchAgainstAnyProp = true;case 'object':predicateFn = createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array;}return array.filter(predicateFn);};}function createPredicateFn(expression,comparator,matchAgainstAnyProp){var shouldMatchPrimitives=isObject(expression) && '$' in expression;var predicateFn;if(comparator === true){comparator = equals;}else if(!isFunction(comparator)){comparator = function(actual,expected){if(isObject(actual) || isObject(expected)){return false;}actual = lowercase('' + actual);expected = lowercase('' + expected);return actual.indexOf(expected) !== -1;};}predicateFn = function(item){if(shouldMatchPrimitives && !isObject(item)){return deepCompare(item,expression.$,comparator,false);}return deepCompare(item,expression,comparator,matchAgainstAnyProp);};return predicateFn;}function deepCompare(_x3,_x4,_x5,_x6,_x7){var _again2=true;_function2: while(_again2) {var actual=_x3,expected=_x4,comparator=_x5,matchAgainstAnyProp=_x6,dontMatchWholeObject=_x7;actualType = expectedType = key = expectedVal = matchAnyProperty = actualVal = undefined;_again2 = false;var actualType=actual !== null?typeof actual:'null';var expectedType=expected !== null?typeof expected:'null';if(expectedType === 'string' && expected.charAt(0) === '!'){return !deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);}else if(isArray(actual)){return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp);});}switch(actualType){case 'object':var key;if(matchAgainstAnyProp){for(key in actual) {if(key.charAt(0) !== '$' && deepCompare(actual[key],expected,comparator,true)){return true;}}if(dontMatchWholeObject){return false;}else {_x3 = actual;_x4 = expected;_x5 = comparator;_x6 = false;_again2 = true;continue _function2;}}else if(expectedType === 'object'){for(key in expected) {var expectedVal=expected[key];if(isFunction(expectedVal) || isUndefined(expectedVal)){continue;}var matchAnyProperty=key === '$';var actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty)){return false;}}return true;}else {return comparator(actual,expected);}break;case 'function':return false;default:return comparator(actual,expected);}}}currencyFilter.$inject = ['$locale'];function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){if(isUndefined(currencySymbol)){currencySymbol = formats.CURRENCY_SYM;}if(isUndefined(fractionSize)){fractionSize = formats.PATTERNS[1].maxFrac;}return amount == null?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol);};}numberFilter.$inject = ['$locale'];function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return number == null?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize);};}var DECIMAL_SEP='.';function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(!isFinite(number) || isObject(number))return '';var isNegative=number < 0;number = Math.abs(number);var numStr=number + '',formatedText='',parts=[];var hasExponent=false;if(numStr.indexOf('e') !== -1){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);if(match && match[2] == '-' && match[3] > fractionSize + 1){number = 0;}else {formatedText = numStr;hasExponent = true;}}if(!hasExponent){var fractionLen=(numStr.split(DECIMAL_SEP)[1] || '').length;if(isUndefined(fractionSize)){fractionSize = Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac);}number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);var fraction=('' + number).split(DECIMAL_SEP);var whole=fraction[0];fraction = fraction[1] || '';var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length >= lgroup + group){pos = whole.length - lgroup;for(i = 0;i < pos;i++) {if((pos - i) % group === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}}for(i = pos;i < whole.length;i++) {if((whole.length - i) % lgroup === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}while(fraction.length < fractionSize) {fraction += '0';}if(fractionSize && fractionSize !== '0')formatedText += decimalSep + fraction.substr(0,fractionSize);}else {if(fractionSize > 0 && number < 1){formatedText = number.toFixed(fractionSize);number = parseFloat(formatedText);}}if(number === 0){isNegative = false;}parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf);return parts.join('');}function padNumber(num,digits,trim){var neg='';if(num < 0){neg = '-';num = -num;}num = '' + num;while(num.length < digits) num = '0' + num;if(trim)num = num.substr(num.length - digits);return neg + num;}function dateGetter(name,size,offset,trim){offset = offset || 0;return function(date){var value=date['get' + name]();if(offset > 0 || value > -offset)value += offset;if(value === 0 && offset == -12)value = 12;return padNumber(value,size,trim);};}function dateStrGetter(name,shortForm){return function(date,formats){var value=date['get' + name]();var get=uppercase(shortForm?'SHORT' + name:name);return formats[get][value];};}function timeZoneGetter(date){var zone=-1 * date.getTimezoneOffset();var paddedZone=zone >= 0?'+':'';paddedZone += padNumber(Math[zone > 0?'floor':'ceil'](zone / 60),2) + padNumber(Math.abs(zone % 60),2);return paddedZone;}function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=new Date(year,0,1).getDay();return new Date(year,0,(dayOfWeekOnFirst <= 4?5:12) - dayOfWeekOnFirst);}function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate() + (4 - datetime.getDay()));}function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date);var diff=+thisThurs - +firstThurs,result=1 + Math.round(diff / 6.048e8);return padNumber(result,size);};}function ampmGetter(date,formats){return date.getHours() < 12?formats.AMPMS[0]:formats.AMPMS[1];}function eraGetter(date,formats){return date.getFullYear() <= 0?formats.ERAS[0]:formats.ERAS[1];}function longEraGetter(date,formats){return date.getFullYear() <= 0?formats.ERANAMES[0]:formats.ERANAMES[1];}var DATE_FORMATS={yyyy:dateGetter('FullYear',4),yy:dateGetter('FullYear',2,0,true),y:dateGetter('FullYear',1),MMMM:dateStrGetter('Month'),MMM:dateStrGetter('Month',true),MM:dateGetter('Month',2,1),M:dateGetter('Month',1,1),dd:dateGetter('Date',2),d:dateGetter('Date',1),HH:dateGetter('Hours',2),H:dateGetter('Hours',1),hh:dateGetter('Hours',2,-12),h:dateGetter('Hours',1,-12),mm:dateGetter('Minutes',2),m:dateGetter('Minutes',1),ss:dateGetter('Seconds',2),s:dateGetter('Seconds',1),sss:dateGetter('Milliseconds',3),EEEE:dateStrGetter('Day'),EEE:dateStrGetter('Day',true),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter};var DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject = ['$locale'];function dateFilter($locale){var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function jsonStringToDate(string){var match;if(match = string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;if(match[9]){tzHour = int(match[9] + match[10]);tzMin = int(match[9] + match[11]);}dateSetter.call(date,int(match[1]),int(match[2]) - 1,int(match[3]));var h=int(match[4] || 0) - tzHour;var m=int(match[5] || 0) - tzMin;var s=int(match[6] || 0);var ms=Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);timeSetter.call(date,h,m,s,ms);return date;}return string;}return function(date,format,timezone){var text='',parts=[],fn,match;format = format || 'mediumDate';format = $locale.DATETIME_FORMATS[format] || format;if(isString(date)){date = NUMBER_STRING.test(date)?int(date):jsonStringToDate(date);}if(isNumber(date)){date = new Date(date);}if(!isDate(date)){return date;}while(format) {match = DATE_FORMATS_SPLIT.exec(format);if(match){parts = concat(parts,match,1);format = parts.pop();}else {parts.push(format);format = null;}}if(timezone && timezone === 'UTC'){date = new Date(date.getTime());date.setMinutes(date.getMinutes() + date.getTimezoneOffset());}forEach(parts,function(value){fn = DATE_FORMATS[value];text += fn?fn(date,$locale.DATETIME_FORMATS):value.replace(/(^'|'$)/g,'').replace(/''/g,'\'');});return text;};}function jsonFilter(){return function(object,spacing){if(isUndefined(spacing)){spacing = 2;}return toJson(object,spacing);};}var lowercaseFilter=valueFn(lowercase);var uppercaseFilter=valueFn(uppercase);function limitToFilter(){return function(input,limit){if(isNumber(input))input = input.toString();if(!isArray(input) && !isString(input))return input;if(Math.abs(Number(limit)) === Infinity){limit = Number(limit);}else {limit = int(limit);}if(limit){return limit > 0?input.slice(0,limit):input.slice(limit);}else {return isString(input)?'':[];}};}orderByFilter.$inject = ['$parse'];function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){if(!isArrayLike(array))return array;sortPredicate = isArray(sortPredicate)?sortPredicate:[sortPredicate];if(sortPredicate.length === 0){sortPredicate = ['+'];}sortPredicate = sortPredicate.map(function(predicate){var descending=false,get=predicate || identity;if(isString(predicate)){if(predicate.charAt(0) == '+' || predicate.charAt(0) == '-'){descending = predicate.charAt(0) == '-';predicate = predicate.substring(1);}if(predicate === ''){return reverseComparator(compare,descending);}get = $parse(predicate);if(get.constant){var key=get();return reverseComparator(function(a,b){return compare(a[key],b[key]);},descending);}}return reverseComparator(function(a,b){return compare(get(a),get(b));},descending);});return slice.call(array).sort(reverseComparator(comparator,reverseOrder));function comparator(o1,o2){for(var i=0;i < sortPredicate.length;i++) {var comp=sortPredicate[i](o1,o2);if(comp !== 0)return comp;}return 0;}function reverseComparator(comp,descending){return descending?function(a,b){return comp(b,a);}:comp;}function isPrimitive(value){switch(typeof value){case 'number':case 'boolean':case 'string':return true;default:return false;}}function objectToString(value){if(value === null)return 'null';if(typeof value.valueOf === 'function'){value = value.valueOf();if(isPrimitive(value))return value;}if(typeof value.toString === 'function'){value = value.toString();if(isPrimitive(value))return value;}return '';}function compare(v1,v2){var t1=typeof v1;var t2=typeof v2;if(t1 === t2 && t1 === 'object'){v1 = objectToString(v1);v2 = objectToString(v2);}if(t1 === t2){if(t1 === 'string'){v1 = v1.toLowerCase();v2 = v2.toLowerCase();}if(v1 === v2)return 0;return v1 < v2?-1:1;}else {return t1 < t2?-1:1;}}};}function ngDirective(directive){if(isFunction(directive)){directive = {link:directive};}directive.restrict = directive.restrict || 'AC';return valueFn(directive);}var htmlAnchorDirective=valueFn({restrict:'E',compile:function compile(element,attr){if(!attr.href && !attr.xlinkHref && !attr.name){return function(scope,element){if(element[0].nodeName.toLowerCase() !== 'a')return;var href=toString.call(element.prop('href')) === '[object SVGAnimatedString]'?'xlink:href':'href';element.on('click',function(event){if(!element.attr(href)){event.preventDefault();}});};}}});var ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if(propName == 'multiple')return;var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {restrict:'A',priority:100,link:function link(scope,element,attr){scope.$watch(attr[normalized],function ngBooleanAttrWatchAction(value){attr.$set(attrName,!!value);});}};};});forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr] = function(){return {priority:100,link:function link(scope,element,attr){if(ngAttr === 'ngPattern' && attr.ngPattern.charAt(0) == '/'){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match){attr.$set('ngPattern',new RegExp(match[1],match[2]));return;}}scope.$watch(attr[ngAttr],function ngAttrAliasWatchAction(value){attr.$set(ngAttr,value);});}};};});forEach(['src','srcset','href'],function(attrName){var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {priority:99,link:function link(scope,element,attr){var propName=attrName,name=attrName;if(attrName === 'href' && toString.call(element.prop('href')) === '[object SVGAnimatedString]'){name = 'xlinkHref';attr.$attr[name] = 'xlink:href';propName = null;}attr.$observe(normalized,function(value){if(!value){if(attrName === 'href'){attr.$set(name,null);}return;}attr.$set(name,value);if(msie && propName)element.prop(propName,attr[name]);});}};};});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS='ng-submitted';function nullFormRenameControl(control,name){control.$name = name;}FormController.$inject = ['$element','$attrs','$scope','$animate','$interpolate'];function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[];var parentForm=form.$$parentForm = element.parent().controller('form') || nullFormCtrl;form.$error = {};form.$$success = {};form.$pending = undefined;form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope);form.$dirty = false;form.$pristine = true;form.$valid = true;form.$invalid = false;form.$submitted = false;parentForm.$addControl(form);form.$rollbackViewValue = function(){forEach(controls,function(control){control.$rollbackViewValue();});};form.$commitViewValue = function(){forEach(controls,function(control){control.$commitViewValue();});};form.$addControl = function(control){assertNotHasOwnProperty(control.$name,'input');controls.push(control);if(control.$name){form[control.$name] = control;}};form.$$renameControl = function(control,newName){var oldName=control.$name;if(form[oldName] === control){delete form[oldName];}form[newName] = control;control.$name = newName;};form.$removeControl = function(control){if(control.$name && form[control.$name] === control){delete form[control.$name];}forEach(form.$pending,function(value,name){form.$setValidity(name,null,control);});forEach(form.$error,function(value,name){form.$setValidity(name,null,control);});forEach(form.$$success,function(value,name){form.$setValidity(name,null,control);});arrayRemove(controls,control);};addSetValidityMethod({ctrl:this,$element:element,set:function set(object,property,controller){var list=object[property];if(!list){object[property] = [controller];}else {var index=list.indexOf(controller);if(index === -1){list.push(controller);}}},unset:function unset(object,property,controller){var list=object[property];if(!list){return;}arrayRemove(list,controller);if(list.length === 0){delete object[property];}},parentForm:parentForm,$animate:$animate});form.$setDirty = function(){$animate.removeClass(element,PRISTINE_CLASS);$animate.addClass(element,DIRTY_CLASS);form.$dirty = true;form.$pristine = false;parentForm.$setDirty();};form.$setPristine = function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS + ' ' + SUBMITTED_CLASS);form.$dirty = false;form.$pristine = true;form.$submitted = false;forEach(controls,function(control){control.$setPristine();});};form.$setUntouched = function(){forEach(controls,function(control){control.$setUntouched();});};form.$setSubmitted = function(){$animate.addClass(element,SUBMITTED_CLASS);form.$submitted = true;parentForm.$setSubmitted();};}var formDirectiveFactory=function formDirectiveFactory(isNgForm){return ['$timeout',function($timeout){var formDirective={name:'form',restrict:isNgForm?'EAC':'E',controller:FormController,compile:function ngFormCompile(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?'name':isNgForm && attr.ngForm?'ngForm':false;return {pre:function ngFormPreLink(scope,formElement,attr,controller){if(!('action' in attr)){var handleFormSubmission=function handleFormSubmission(event){scope.$apply(function(){controller.$commitViewValue();controller.$setSubmitted();});event.preventDefault();};addEventListenerFn(formElement[0],'submit',handleFormSubmission);formElement.on('$destroy',function(){$timeout(function(){removeEventListenerFn(formElement[0],'submit',handleFormSubmission);},0,false);});}var parentFormCtrl=controller.$$parentForm;if(nameAttr){setter(scope,null,controller.$name,controller,controller.$name);attr.$observe(nameAttr,function(newValue){if(controller.$name === newValue)return;setter(scope,null,controller.$name,undefined,controller.$name);parentFormCtrl.$$renameControl(controller,newValue);setter(scope,null,controller.$name,controller,controller.$name);});}formElement.on('$destroy',function(){parentFormCtrl.$removeControl(controller);if(nameAttr){setter(scope,null,attr[nameAttr],undefined,controller.$name);}extend(controller,nullFormCtrl);});}};}};return formDirective;}];};var formDirective=formDirectiveFactory();var ngFormDirective=formDirectiveFactory(true);var ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;var URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;var EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;var NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;var DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var WEEK_REGEXP=/^(\d{4})-W(\d\d)$/;var MONTH_REGEXP=/^(\d{4})-(\d\d)$/;var TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var inputType={'text':textInputType,'date':createDateInputType('date',DATE_REGEXP,createDateParser(DATE_REGEXP,['yyyy','MM','dd']),'yyyy-MM-dd'),'datetime-local':createDateInputType('datetimelocal',DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,['yyyy','MM','dd','HH','mm','ss','sss']),'yyyy-MM-ddTHH:mm:ss.sss'),'time':createDateInputType('time',TIME_REGEXP,createDateParser(TIME_REGEXP,['HH','mm','ss','sss']),'HH:mm:ss.sss'),'week':createDateInputType('week',WEEK_REGEXP,weekParser,'yyyy-Www'),'month':createDateInputType('month',MONTH_REGEXP,createDateParser(MONTH_REGEXP,['yyyy','MM']),'yyyy-MM'),'number':numberInputType,'url':urlInputType,'email':emailInputType,'radio':radioInputType,'checkbox':checkboxInputType,'hidden':noop,'button':noop,'submit':noop,'reset':noop,'file':noop};function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString();});}function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);}function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=false;element.on('compositionstart',function(data){composing = true;});element.on('compositionend',function(){composing = false;listener();});}var listener=function listener(ev){if(timeout){$browser.defer.cancel(timeout);timeout = null;}if(composing)return;var value=element.val(),event=ev && ev.type;if(type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')){value = trim(value);}if(ctrl.$viewValue !== value || value === '' && ctrl.$$hasNativeValidators){ctrl.$setViewValue(value,event);}};if($sniffer.hasEvent('input')){element.on('input',listener);}else {var timeout;var deferListener=function deferListener(ev,input,origValue){if(!timeout){timeout = $browser.defer(function(){timeout = null;if(!input || input.value !== origValue){listener(ev);}});}};element.on('keydown',function(event){var key=event.keyCode;if(key === 91 || 15 < key && key < 19 || 37 <= key && key <= 40)return;deferListener(event,this,this.value);});if($sniffer.hasEvent('paste')){element.on('paste cut',deferListener);}}element.on('change',listener);ctrl.$render = function(){element.val(ctrl.$isEmpty(ctrl.$viewValue)?'':ctrl.$viewValue);};}function weekParser(isoWeek,existingDate){if(isDate(isoWeek)){return isoWeek;}if(isString(isoWeek)){WEEK_REGEXP.lastIndex = 0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=(week - 1) * 7;if(existingDate){hours = existingDate.getHours();minutes = existingDate.getMinutes();seconds = existingDate.getSeconds();milliseconds = existingDate.getMilliseconds();}return new Date(year,0,firstThurs.getDate() + addDays,hours,minutes,seconds,milliseconds);}}return NaN;}function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso)){return iso;}if(isString(iso)){if(iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"'){iso = iso.substring(1,iso.length - 1);}if(ISO_DATE_REGEXP.test(iso)){return new Date(iso);}regexp.lastIndex = 0;parts = regexp.exec(iso);if(parts){parts.shift();if(date){map = {yyyy:date.getFullYear(),MM:date.getMonth() + 1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds() / 1000};}else {map = {yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0};}forEach(parts,function(part,index){if(index < mapping.length){map[mapping[index]] = +part;}});return new Date(map.yyyy,map.MM - 1,map.dd,map.HH,map.mm,map.ss || 0,map.sss * 1000 || 0);}}return NaN;};}function createDateInputType(type,regexp,parseDate,format){return function dynamicDateInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var timezone=ctrl && ctrl.$options && ctrl.$options.timezone;var previousDate;ctrl.$$parserName = type;ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);if(timezone === 'UTC'){parsedDate.setMinutes(parsedDate.getMinutes() - parsedDate.getTimezoneOffset());}return parsedDate;}return undefined;});ctrl.$formatters.push(function(value){if(value && !isDate(value)){throw $ngModelMinErr('datefmt','Expected `{0}` to be a date',value);}if(isValidDate(value)){previousDate = value;if(previousDate && timezone === 'UTC'){var timezoneOffset=60000 * previousDate.getTimezoneOffset();previousDate = new Date(previousDate.getTime() + timezoneOffset);}return $filter('date')(value,format,timezone);}else {previousDate = null;return '';}});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal;};attr.$observe('min',function(val){minVal = parseObservedDateValue(val);ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;};attr.$observe('max',function(val){maxVal = parseObservedDateValue(val);ctrl.$validate();});}function isValidDate(value){return value && !(value.getTime && value.getTime() !== value.getTime());}function parseObservedDateValue(val){return isDefined(val)?isDate(val)?val:parseDate(val):undefined;}};}function badInputChecker(scope,element,attr,ctrl){var node=element[0];var nativeValidation=ctrl.$$hasNativeValidators = isObject(node.validity);if(nativeValidation){ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY) || {};return validity.badInput && !validity.typeMismatch?undefined:value;});}}function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);ctrl.$$parserName = 'number';ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(NUMBER_REGEXP.test(value))return parseFloat(value);return undefined;});ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value)){throw $ngModelMinErr('numfmt','Expected `{0}` to be a number',value);}value = value.toString();}return value;});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal;};attr.$observe('min',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}minVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal;};attr.$observe('max',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}maxVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}}function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'url';ctrl.$validators.url = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || URL_REGEXP.test(value);};}function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'email';ctrl.$validators.email = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value);};}function radioInputType(scope,element,attr,ctrl){if(isUndefined(attr.name)){element.attr('name',nextUid());}var listener=function listener(ev){if(element[0].checked){ctrl.$setViewValue(attr.value,ev && ev.type);}};element.on('click',listener);ctrl.$render = function(){var value=attr.value;element[0].checked = value == ctrl.$viewValue;};attr.$observe('value',ctrl.$render);}function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){parseFn = $parse(expression);if(!parseFn.constant){throw minErr('ngModel')('constexpr','Expected constant expression for `{0}`, but saw ' + '`{1}`.',name,expression);}return parseFn(context);}return fallback;}function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,'ngTrueValue',attr.ngTrueValue,true);var falseValue=parseConstantExpr($parse,scope,'ngFalseValue',attr.ngFalseValue,false);var listener=function listener(ev){ctrl.$setViewValue(element[0].checked,ev && ev.type);};element.on('click',listener);ctrl.$render = function(){element[0].checked = ctrl.$viewValue;};ctrl.$isEmpty = function(value){return value === false;};ctrl.$formatters.push(function(value){return equals(value,trueValue);});ctrl.$parsers.push(function(value){return value?trueValue:falseValue;});}var inputDirective=['$browser','$sniffer','$filter','$parse',function($browser,$sniffer,$filter,$parse){return {restrict:'E',require:['?ngModel'],link:{pre:function pre(scope,element,attr,ctrls){if(ctrls[0]){(inputType[lowercase(attr.type)] || inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse);}}}};}];var CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/;var ngValueDirective=function ngValueDirective(){return {restrict:'A',priority:100,compile:function compile(tpl,tplAttr){if(CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)){return function ngValueConstantLink(scope,elm,attr){attr.$set('value',scope.$eval(attr.ngValue));};}else {return function ngValueLink(scope,elm,attr){scope.$watch(attr.ngValue,function valueWatchAction(value){attr.$set('value',value);});};}}};};var ngBindDirective=['$compile',function($compile){return {restrict:'AC',compile:function ngBindCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind);element = element[0];scope.$watch(attr.ngBind,function ngBindWatchAction(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindTemplateDirective=['$interpolate','$compile',function($interpolate,$compile){return {compile:function ngBindTemplateCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindTemplateLink(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions);element = element[0];attr.$observe('ngBindTemplate',function(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindHtmlDirective=['$sce','$parse','$compile',function($sce,$parse,$compile){return {restrict:'A',compile:function ngBindHtmlCompile(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml);var ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function getStringValue(value){return (value || '').toString();});$compile.$$addBindingClass(tElement);return function ngBindHtmlLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml);scope.$watch(ngBindHtmlWatch,function ngBindHtmlWatchAction(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope)) || '');});};}};}];var ngChangeDirective=valueFn({restrict:'A',require:'ngModel',link:function link(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange);});}});function classDirective(name,selector){name = 'ngClass' + name;return ['$animate',function($animate){return {restrict:'AC',link:function link(scope,element,attr){var oldVal;scope.$watch(attr[name],ngClassWatchAction,true);attr.$observe('class',function(value){ngClassWatchAction(scope.$eval(attr[name]));});if(name !== 'ngClass'){scope.$watch('$index',function($index,old$index){var mod=$index & 1;if(mod !== (old$index & 1)){var classes=arrayClasses(scope.$eval(attr[name]));mod === selector?addClasses(classes):removeClasses(classes);}});}function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses);}function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses);}function digestClassCounts(classes,count){var classCounts=element.data('$classCounts') || {};var classesToUpdate=[];forEach(classes,function(className){if(count > 0 || classCounts[className]){classCounts[className] = (classCounts[className] || 0) + count;if(classCounts[className] === +(count > 0)){classesToUpdate.push(className);}}});element.data('$classCounts',classCounts);return classesToUpdate.join(' ');}function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses);var toRemove=arrayDifference(oldClasses,newClasses);toAdd = digestClassCounts(toAdd,1);toRemove = digestClassCounts(toRemove,-1);if(toAdd && toAdd.length){$animate.addClass(element,toAdd);}if(toRemove && toRemove.length){$animate.removeClass(element,toRemove);}}function ngClassWatchAction(newVal){if(selector === true || scope.$index % 2 === selector){var newClasses=arrayClasses(newVal || []);if(!oldVal){addClasses(newClasses);}else if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses);}}oldVal = shallowCopy(newVal);}}};function arrayDifference(tokens1,tokens2){var values=[];outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values.push(token);}return values;}function arrayClasses(classVal){if(isArray(classVal)){return classVal;}else if(isString(classVal)){return classVal.split(' ');}else if(isObject(classVal)){var classes=[];forEach(classVal,function(v,k){if(v){classes = classes.concat(k.split(' '));}});return classes;}return classVal;}}];}var ngClassDirective=classDirective('',true);var ngClassOddDirective=classDirective('Odd',0);var ngClassEvenDirective=classDirective('Even',1);var ngCloakDirective=ngDirective({compile:function compile(element,attr){attr.$set('ngCloak',undefined);element.removeClass('ng-cloak');}});var ngControllerDirective=[function(){return {restrict:'A',scope:true,controller:'@',priority:500};}];var ngEventDirectives={};var forceAsyncEvents={'blur':true,'focus':true};forEach('click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(eventName){var directiveName=directiveNormalize('ng-' + eventName);ngEventDirectives[directiveName] = ['$parse','$rootScope',function($parse,$rootScope){return {restrict:'A',compile:function compile($element,attr){var fn=$parse(attr[directiveName],null,true);return function ngEventHandler(scope,element){element.on(eventName,function(event){var callback=function callback(){fn(scope,{$event:event});};if(forceAsyncEvents[eventName] && $rootScope.$$phase){scope.$evalAsync(callback);}else {scope.$apply(callback);}});};}};}];});var ngIfDirective=['$animate',function($animate){return {multiElement:true,transclude:'element',priority:600,terminal:true,restrict:'A',$$tlb:true,link:function link($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function ngIfWatchAction(value){if(value){if(!childScope){$transclude(function(clone,newScope){childScope = newScope;clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' ');block = {clone:clone};$animate.enter(clone,$element.parent(),$element);});}}else {if(previousElements){previousElements.remove();previousElements = null;}if(childScope){childScope.$destroy();childScope = null;}if(block){previousElements = getBlockNodes(block.clone);$animate.leave(previousElements).then(function(){previousElements = null;});block = null;}}});}};}];var ngIncludeDirective=['$templateRequest','$anchorScroll','$animate','$sce',function($templateRequest,$anchorScroll,$animate,$sce){return {restrict:'ECA',priority:400,terminal:true,transclude:'element',controller:angular.noop,compile:function compile(element,attr){var srcExp=attr.ngInclude || attr.src,onloadExp=attr.onload || '',autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function cleanupLastIncludeContent(){if(previousElement){previousElement.remove();previousElement = null;}if(currentScope){currentScope.$destroy();currentScope = null;}if(currentElement){$animate.leave(currentElement).then(function(){previousElement = null;});previousElement = currentElement;currentElement = null;}};scope.$watch($sce.parseAsResourceUrl(srcExp),function ngIncludeWatchAction(src){var afterAnimation=function afterAnimation(){if(isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))){$anchorScroll();}};var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId !== changeCounter)return;var newScope=scope.$new();ctrl.template = response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,null,$element).then(afterAnimation);});currentScope = newScope;currentElement = clone;currentScope.$emit('$includeContentLoaded',src);scope.$eval(onloadExp);},function(){if(thisChangeId === changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else {cleanupLastIncludeContent();ctrl.template = null;}});};}};}];var ngIncludeFillContentDirective=['$compile',function($compile){return {restrict:'ECA',priority:-400,require:'ngInclude',link:function link(scope,$element,$attr,ctrl){if(/SVG/.test($element[0].toString())){$element.empty();$compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function namespaceAdaptedClone(clone){$element.append(clone);},{futureParentElement:$element});return;}$element.html(ctrl.template);$compile($element.contents())(scope);}};}];var ngInitDirective=ngDirective({priority:450,compile:function compile(){return {pre:function pre(scope,element,attrs){scope.$eval(attrs.ngInit);}};}});var ngListDirective=function ngListDirective(){return {restrict:'A',priority:100,require:'ngModel',link:function link(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList) || ', ';var trimValues=attr.ngTrim !== 'false';var separator=trimValues?trim(ngList):ngList;var parse=function parse(viewValue){if(isUndefined(viewValue))return;var list=[];if(viewValue){forEach(viewValue.split(separator),function(value){if(value)list.push(trimValues?trim(value):value);});}return list;};ctrl.$parsers.push(parse);ctrl.$formatters.push(function(value){if(isArray(value)){return value.join(ngList);}return undefined;});ctrl.$isEmpty = function(value){return !value || !value.length;};}};};var VALID_CLASS='ng-valid',INVALID_CLASS='ng-invalid',PRISTINE_CLASS='ng-pristine',DIRTY_CLASS='ng-dirty',UNTOUCHED_CLASS='ng-untouched',TOUCHED_CLASS='ng-touched',PENDING_CLASS='ng-pending';var $ngModelMinErr=new minErr('ngModel');var NgModelController=['$scope','$exceptionHandler','$attrs','$element','$parse','$animate','$timeout','$rootScope','$q','$interpolate',function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue = Number.NaN;this.$modelValue = Number.NaN;this.$$rawModelValue = undefined;this.$validators = {};this.$asyncValidators = {};this.$parsers = [];this.$formatters = [];this.$viewChangeListeners = [];this.$untouched = true;this.$touched = false;this.$pristine = true;this.$dirty = false;this.$valid = true;this.$invalid = false;this.$error = {};this.$$success = {};this.$pending = undefined;this.$name = $interpolate($attr.name || '',false)($scope);var parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,parserValid,ctrl=this;this.$$setOptions = function(options){ctrl.$options = options;if(options && options.getterSetter){var invokeModelGetter=$parse($attr.ngModel + '()'),invokeModelSetter=$parse($attr.ngModel + '($$$p)');ngModelGet = function($scope){var modelValue=parsedNgModel($scope);if(isFunction(modelValue)){modelValue = invokeModelGetter($scope);}return modelValue;};ngModelSet = function($scope,newValue){if(isFunction(parsedNgModel($scope))){invokeModelSetter($scope,{$$$p:ctrl.$modelValue});}else {parsedNgModelAssign($scope,ctrl.$modelValue);}};}else if(!parsedNgModel.assign){throw $ngModelMinErr('nonassign','Expression \'{0}\' is non-assignable. Element: {1}',$attr.ngModel,startingTag($element));}};this.$render = noop;this.$isEmpty = function(value){return isUndefined(value) || value === '' || value === null || value !== value;};var parentForm=$element.inheritedData('$formController') || nullFormCtrl,currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function set(object,property){object[property] = true;},unset:function unset(object,property){delete object[property];},parentForm:parentForm,$animate:$animate});this.$setPristine = function(){ctrl.$dirty = false;ctrl.$pristine = true;$animate.removeClass($element,DIRTY_CLASS);$animate.addClass($element,PRISTINE_CLASS);};this.$setDirty = function(){ctrl.$dirty = true;ctrl.$pristine = false;$animate.removeClass($element,PRISTINE_CLASS);$animate.addClass($element,DIRTY_CLASS);parentForm.$setDirty();};this.$setUntouched = function(){ctrl.$touched = false;ctrl.$untouched = true;$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS);};this.$setTouched = function(){ctrl.$touched = true;ctrl.$untouched = false;$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS);};this.$rollbackViewValue = function(){$timeout.cancel(pendingDebounce);ctrl.$viewValue = ctrl.$$lastCommittedViewValue;ctrl.$render();};this.$validate = function(){if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){return;}var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=ctrl.$$rawModelValue;var prevValid=ctrl.$valid;var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){if(!allowInvalid && prevValid !== allValid){ctrl.$modelValue = allValid?modelValue:undefined;if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}});};this.$$runValidators = function(modelValue,viewValue,doneCallback){currentValidationRunId++;var localValidationRunId=currentValidationRunId;if(!processParseErrors()){validationDone(false);return;}if(!processSyncValidators()){validationDone(false);return;}processAsyncValidators();function processParseErrors(){var errorKey=ctrl.$$parserName || 'parse';if(parserValid === undefined){setValidity(errorKey,null);}else {if(!parserValid){forEach(ctrl.$validators,function(v,name){setValidity(name,null);});forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});}setValidity(errorKey,parserValid);return parserValid;}return true;}function processSyncValidators(){var syncValidatorsValid=true;forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid = syncValidatorsValid && result;setValidity(name,result);});if(!syncValidatorsValid){forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});return false;}return true;}function processAsyncValidators(){var validatorPromises=[];var allValid=true;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise)){throw $ngModelMinErr('$asyncValidators','Expected asynchronous validator to return a promise but got \'{0}\' instead.',promise);}setValidity(name,undefined);validatorPromises.push(promise.then(function(){setValidity(name,true);},function(error){allValid = false;setValidity(name,false);}));});if(!validatorPromises.length){validationDone(true);}else {$q.all(validatorPromises).then(function(){validationDone(allValid);},noop);}}function setValidity(name,isValid){if(localValidationRunId === currentValidationRunId){ctrl.$setValidity(name,isValid);}}function validationDone(allValid){if(localValidationRunId === currentValidationRunId){doneCallback(allValid);}}};this.$commitViewValue = function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce);if(ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)){return;}ctrl.$$lastCommittedViewValue = viewValue;if(ctrl.$pristine){this.$setDirty();}this.$$parseAndValidate();};this.$$parseAndValidate = function(){var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=viewValue;parserValid = isUndefined(modelValue)?undefined:true;if(parserValid){for(var i=0;i < ctrl.$parsers.length;i++) {modelValue = ctrl.$parsers[i](modelValue);if(isUndefined(modelValue)){parserValid = false;break;}}}if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){ctrl.$modelValue = ngModelGet($scope);}var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$rawModelValue = modelValue;if(allowInvalid){ctrl.$modelValue = modelValue;writeToModelIfNeeded();}ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){if(!allowInvalid){ctrl.$modelValue = allValid?modelValue:undefined;writeToModelIfNeeded();}});function writeToModelIfNeeded(){if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}};this.$$writeModelToScope = function(){ngModelSet($scope,ctrl.$modelValue);forEach(ctrl.$viewChangeListeners,function(listener){try{listener();}catch(e) {$exceptionHandler(e);}});};this.$setViewValue = function(value,trigger){ctrl.$viewValue = value;if(!ctrl.$options || ctrl.$options.updateOnDefault){ctrl.$$debounceViewValueCommit(trigger);}};this.$$debounceViewValueCommit = function(trigger){var debounceDelay=0,options=ctrl.$options,debounce;if(options && isDefined(options.debounce)){debounce = options.debounce;if(isNumber(debounce)){debounceDelay = debounce;}else if(isNumber(debounce[trigger])){debounceDelay = debounce[trigger];}else if(isNumber(debounce['default'])){debounceDelay = debounce['default'];}}$timeout.cancel(pendingDebounce);if(debounceDelay){pendingDebounce = $timeout(function(){ctrl.$commitViewValue();},debounceDelay);}else if($rootScope.$$phase){ctrl.$commitViewValue();}else {$scope.$apply(function(){ctrl.$commitViewValue();});}};$scope.$watch(function ngModelWatch(){var modelValue=ngModelGet($scope);if(modelValue !== ctrl.$modelValue){ctrl.$modelValue = ctrl.$$rawModelValue = modelValue;parserValid = undefined;var formatters=ctrl.$formatters,idx=formatters.length;var viewValue=modelValue;while(idx--) {viewValue = formatters[idx](viewValue);}if(ctrl.$viewValue !== viewValue){ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue;ctrl.$render();ctrl.$$runValidators(modelValue,viewValue,noop);}}return modelValue;});}];var ngModelDirective=['$rootScope',function($rootScope){return {restrict:'A',require:['ngModel','^?form','^?ngModelOptions'],controller:NgModelController,priority:1,compile:function ngModelCompile(element){element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);return {pre:function ngModelPreLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1] || nullFormCtrl;modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options);formCtrl.$addControl(modelCtrl);attr.$observe('name',function(newValue){if(modelCtrl.$name !== newValue){formCtrl.$$renameControl(modelCtrl,newValue);}});scope.$on('$destroy',function(){formCtrl.$removeControl(modelCtrl);});},post:function ngModelPostLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0];if(modelCtrl.$options && modelCtrl.$options.updateOn){element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev && ev.type);});}element.on('blur',function(ev){if(modelCtrl.$touched)return;if($rootScope.$$phase){scope.$evalAsync(modelCtrl.$setTouched);}else {scope.$apply(modelCtrl.$setTouched);}});}};}};}];var DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/;var ngModelOptionsDirective=function ngModelOptionsDirective(){return {restrict:'A',controller:['$scope','$attrs',function($scope,$attrs){var that=this;this.$options = $scope.$eval($attrs.ngModelOptions);if(this.$options.updateOn !== undefined){this.$options.updateOnDefault = false;this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){that.$options.updateOnDefault = true;return ' ';}));}else {this.$options.updateOnDefault = true;}}]};};function addSetValidityMethod(context){var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,parentForm=context.parentForm,$animate=context.$animate;classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS));ctrl.$setValidity = setValidity;function setValidity(validationErrorKey,state,controller){if(state === undefined){createAndSet('$pending',validationErrorKey,controller);}else {unsetAndCleanup('$pending',validationErrorKey,controller);}if(!isBoolean(state)){unset(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}else {if(state){unset(ctrl.$error,validationErrorKey,controller);set(ctrl.$$success,validationErrorKey,controller);}else {set(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}}if(ctrl.$pending){cachedToggleClass(PENDING_CLASS,true);ctrl.$valid = ctrl.$invalid = undefined;toggleValidationCss('',null);}else {cachedToggleClass(PENDING_CLASS,false);ctrl.$valid = isObjectEmpty(ctrl.$error);ctrl.$invalid = !ctrl.$valid;toggleValidationCss('',ctrl.$valid);}var combinedState;if(ctrl.$pending && ctrl.$pending[validationErrorKey]){combinedState = undefined;}else if(ctrl.$error[validationErrorKey]){combinedState = false;}else if(ctrl.$$success[validationErrorKey]){combinedState = true;}else {combinedState = null;}toggleValidationCss(validationErrorKey,combinedState);parentForm.$setValidity(validationErrorKey,combinedState,ctrl);}function createAndSet(name,value,controller){if(!ctrl[name]){ctrl[name] = {};}set(ctrl[name],value,controller);}function unsetAndCleanup(name,value,controller){if(ctrl[name]){unset(ctrl[name],value,controller);}if(isObjectEmpty(ctrl[name])){ctrl[name] = undefined;}}function cachedToggleClass(className,switchValue){if(switchValue && !classCache[className]){$animate.addClass($element,className);classCache[className] = true;}else if(!switchValue && classCache[className]){$animate.removeClass($element,className);classCache[className] = false;}}function toggleValidationCss(validationErrorKey,isValid){validationErrorKey = validationErrorKey?'-' + snake_case(validationErrorKey,'-'):'';cachedToggleClass(VALID_CLASS + validationErrorKey,isValid === true);cachedToggleClass(INVALID_CLASS + validationErrorKey,isValid === false);}}function isObjectEmpty(obj){if(obj){for(var prop in obj) {return false;}}return true;}var ngNonBindableDirective=ngDirective({terminal:true,priority:1000});var ngPluralizeDirective=['$locale','$interpolate',function($locale,$interpolate){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return {restrict:'EA',link:function link(scope,element,attr){var numberExp=attr.count,whenExp=attr.$attr.when && element.attr(attr.$attr.when),offset=attr.offset || 0,whens=scope.$eval(whenExp) || {},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol + numberExp + '-' + offset + endSymbol,watchRemover=angular.noop,lastCount;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?'-':'') + lowercase(tmpMatch[2]);whens[whenKey] = element.attr(attr.$attr[attributeName]);}});forEach(whens,function(expression,key){whensExpFns[key] = $interpolate(expression.replace(BRACE,braceReplacement));});scope.$watch(numberExp,function ngPluralizeWatchAction(newVal){var count=parseFloat(newVal);var countIsNaN=isNaN(count);if(!countIsNaN && !(count in whens)){count = $locale.pluralCat(count - offset);}if(count !== lastCount && !(countIsNaN && isNaN(lastCount))){watchRemover();watchRemover = scope.$watch(whensExpFns[count],updateElementText);lastCount = count;}});function updateElementText(newText){element.text(newText || '');}}};}];var ngRepeatDirective=['$parse','$animate',function($parse,$animate){var NG_REMOVED='$$NG_REMOVED';var ngRepeatMinErr=minErr('ngRepeat');var updateScope=function updateScope(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier] = value;if(keyIdentifier)scope[keyIdentifier] = key;scope.$index = index;scope.$first = index === 0;scope.$last = index === arrayLength - 1;scope.$middle = !(scope.$first || scope.$last);scope.$odd = !(scope.$even = (index & 1) === 0);};var getBlockStart=function getBlockStart(block){return block.clone[0];};var getBlockEnd=function getBlockEnd(block){return block.clone[block.clone.length - 1];};return {restrict:'A',multiElement:true,transclude:'element',priority:1000,terminal:true,$$tlb:true,compile:function ngRepeatCompile($element,$attr){var expression=$attr.ngRepeat;var ngRepeatEndComment=document.createComment(' end ngRepeat: ' + expression + ' ');var match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match){throw ngRepeatMinErr('iexp','Expected expression in form of \'_item_ in _collection_[ track by _id_]\' but got \'{0}\'.',expression);}var lhs=match[1];var rhs=match[2];var aliasAs=match[3];var trackByExp=match[4];match = lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!match){throw ngRepeatMinErr('iidexp','\'_item_\' in \'_item_ in _collection_\' should be an identifier or \'(_key_, _value_)\' expression, but got \'{0}\'.',lhs);}var valueIdentifier=match[3] || match[1];var keyIdentifier=match[2];if(aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))){throw ngRepeatMinErr('badident','alias \'{0}\' is invalid --- must be a valid JS identifier which is not a reserved name.',aliasAs);}var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn;var hashFnLocals={$id:hashKey};if(trackByExp){trackByExpGetter = $parse(trackByExp);}else {trackByIdArrayFn = function(key,value){return hashKey(value);};trackByIdObjFn = function(key){return key;};}return function ngRepeatLink($scope,$element,$attr,ctrl,$transclude){if(trackByExpGetter){trackByIdExpFn = function(key,value,index){if(keyIdentifier)hashFnLocals[keyIdentifier] = key;hashFnLocals[valueIdentifier] = value;hashFnLocals.$index = index;return trackByExpGetter($scope,hashFnLocals);};}var lastBlockMap=createMap();$scope.$watchCollection(rhs,function ngRepeatAction(collection){var index,length,previousNode=$element[0],nextNode,nextBlockMap=createMap(),collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove;if(aliasAs){$scope[aliasAs] = collection;}if(isArrayLike(collection)){collectionKeys = collection;trackByIdFn = trackByIdExpFn || trackByIdArrayFn;}else {trackByIdFn = trackByIdExpFn || trackByIdObjFn;collectionKeys = [];for(var itemKey in collection) {if(collection.hasOwnProperty(itemKey) && itemKey.charAt(0) != '$'){collectionKeys.push(itemKey);}}collectionKeys.sort();}collectionLength = collectionKeys.length;nextBlockOrder = new Array(collectionLength);for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];trackById = trackByIdFn(key,value,index);if(lastBlockMap[trackById]){block = lastBlockMap[trackById];delete lastBlockMap[trackById];nextBlockMap[trackById] = block;nextBlockOrder[index] = block;}else if(nextBlockMap[trackById]){forEach(nextBlockOrder,function(block){if(block && block.scope)lastBlockMap[block.id] = block;});throw ngRepeatMinErr('dupes','Duplicates in a repeater are not allowed. Use \'track by\' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}',expression,trackById,value);}else {nextBlockOrder[index] = {id:trackById,scope:undefined,clone:undefined};nextBlockMap[trackById] = true;}}for(var blockKey in lastBlockMap) {block = lastBlockMap[blockKey];elementsToRemove = getBlockNodes(block.clone);$animate.leave(elementsToRemove);if(elementsToRemove[0].parentNode){for(index = 0,length = elementsToRemove.length;index < length;index++) {elementsToRemove[index][NG_REMOVED] = true;}}block.scope.$destroy();}for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];block = nextBlockOrder[index];if(block.scope){nextNode = previousNode;do {nextNode = nextNode.nextSibling;}while(nextNode && nextNode[NG_REMOVED]);if(getBlockStart(block) != nextNode){$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode));}previousNode = getBlockEnd(block);updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);}else {$transclude(function ngRepeatTransclude(clone,scope){block.scope = scope;var endNode=ngRepeatEndComment.cloneNode(false);clone[clone.length++] = endNode;$animate.enter(clone,null,jqLite(previousNode));previousNode = endNode;block.clone = clone;nextBlockMap[block.id] = block;updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);});}}lastBlockMap = nextBlockMap;});};}};}];var NG_HIDE_CLASS='ng-hide';var NG_HIDE_IN_PROGRESS_CLASS='ng-hide-animate';var ngShowDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngShow,function ngShowWatchAction(value){$animate[value?'removeClass':'addClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngHideDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngHide,function ngHideWatchAction(value){$animate[value?'addClass':'removeClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watchCollection(attr.ngStyle,function ngStyleWatchAction(newStyles,oldStyles){if(oldStyles && newStyles !== oldStyles){forEach(oldStyles,function(val,style){element.css(style,'');});}if(newStyles)element.css(newStyles);});});var ngSwitchDirective=['$animate',function($animate){return {restrict:'EA',require:'ngSwitch',controller:['$scope',function ngSwitchController(){this.cases = {};}],link:function link(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch || attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[];var spliceFactory=function spliceFactory(array,index){return function(){array.splice(index,1);};};scope.$watch(watchExpr,function ngSwitchWatchAction(value){var i,ii;for(i = 0,ii = previousLeaveAnimations.length;i < ii;++i) {$animate.cancel(previousLeaveAnimations[i]);}previousLeaveAnimations.length = 0;for(i = 0,ii = selectedScopes.length;i < ii;++i) {var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i] = $animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i));}selectedElements.length = 0;selectedScopes.length = 0;if(selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?']){forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: ');var block={clone:caseElement};selectedElements.push(block);$animate.enter(caseElement,anchor.parent(),anchor);});});}});}};}];var ngSwitchWhenDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attrs,ctrl,$transclude){ctrl.cases['!' + attrs.ngSwitchWhen] = ctrl.cases['!' + attrs.ngSwitchWhen] || [];ctrl.cases['!' + attrs.ngSwitchWhen].push({transclude:$transclude,element:element});}});var ngSwitchDefaultDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attr,ctrl,$transclude){ctrl.cases['?'] = ctrl.cases['?'] || [];ctrl.cases['?'].push({transclude:$transclude,element:element});}});var ngTranscludeDirective=ngDirective({restrict:'EAC',link:function link($scope,$element,$attrs,controller,$transclude){if(!$transclude){throw minErr('ngTransclude')('orphan','Illegal use of ngTransclude directive in the template! ' + 'No parent directive that requires a transclusion found. ' + 'Element: {0}',startingTag($element));}$transclude(function(clone){$element.empty();$element.append(clone);});}});var scriptDirective=['$templateCache',function($templateCache){return {restrict:'E',terminal:true,compile:function compile(element,attr){if(attr.type == 'text/ng-template'){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text);}}};}];var ngOptionsMinErr=minErr('ngOptions');var ngOptionsDirective=valueFn({restrict:'A',terminal:true});var selectDirective=['$compile','$parse',function($compile,$parse){var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nullModelCtrl={$setViewValue:noop};return {restrict:'E',require:['select','?ngModel'],controller:['$element','$scope','$attrs',function($element,$scope,$attrs){var self=this,optionsMap={},ngModelCtrl=nullModelCtrl,nullOption,unknownOption;self.databound = $attrs.ngModel;self.init = function(ngModelCtrl_,nullOption_,unknownOption_){ngModelCtrl = ngModelCtrl_;nullOption = nullOption_;unknownOption = unknownOption_;};self.addOption = function(value,element){assertNotHasOwnProperty(value,'"option value"');optionsMap[value] = true;if(ngModelCtrl.$viewValue == value){$element.val(value);if(unknownOption.parent())unknownOption.remove();}if(element && element[0].hasAttribute('selected')){element[0].selected = true;}};self.removeOption = function(value){if(this.hasOption(value)){delete optionsMap[value];if(ngModelCtrl.$viewValue === value){this.renderUnknownOption(value);}}};self.renderUnknownOption = function(val){var unknownVal='? ' + hashKey(val) + ' ?';unknownOption.val(unknownVal);$element.prepend(unknownOption);$element.val(unknownVal);unknownOption.prop('selected',true);};self.hasOption = function(value){return optionsMap.hasOwnProperty(value);};$scope.$on('$destroy',function(){self.renderUnknownOption = noop;});}],link:function link(scope,element,attr,ctrls){if(!ctrls[1])return;var selectCtrl=ctrls[0],ngModelCtrl=ctrls[1],multiple=attr.multiple,optionsExp=attr.ngOptions,nullOption=false,emptyOption,renderScheduled=false,optionTemplate=jqLite(document.createElement('option')),optGroupTemplate=jqLite(document.createElement('optgroup')),unknownOption=optionTemplate.clone();for(var i=0,children=element.children(),ii=children.length;i < ii;i++) {if(children[i].value === ''){emptyOption = nullOption = children.eq(i);break;}}selectCtrl.init(ngModelCtrl,nullOption,unknownOption);if(multiple){ngModelCtrl.$isEmpty = function(value){return !value || value.length === 0;};}if(optionsExp)setupAsOptions(scope,element,ngModelCtrl);else if(multiple)setupAsMultiple(scope,element,ngModelCtrl);else setupAsSingle(scope,element,ngModelCtrl,selectCtrl);function setupAsSingle(scope,selectElement,ngModelCtrl,selectCtrl){ngModelCtrl.$render = function(){var viewValue=ngModelCtrl.$viewValue;if(selectCtrl.hasOption(viewValue)){if(unknownOption.parent())unknownOption.remove();selectElement.val(viewValue);if(viewValue === '')emptyOption.prop('selected',true);}else {if(isUndefined(viewValue) && emptyOption){selectElement.val('');}else {selectCtrl.renderUnknownOption(viewValue);}}};selectElement.on('change',function(){scope.$apply(function(){if(unknownOption.parent())unknownOption.remove();ngModelCtrl.$setViewValue(selectElement.val());});});}function setupAsMultiple(scope,selectElement,ctrl){var lastView;ctrl.$render = function(){var items=new HashMap(ctrl.$viewValue);forEach(selectElement.find('option'),function(option){option.selected = isDefined(items.get(option.value));});};scope.$watch(function selectMultipleWatch(){if(!equals(lastView,ctrl.$viewValue)){lastView = shallowCopy(ctrl.$viewValue);ctrl.$render();}});selectElement.on('change',function(){scope.$apply(function(){var array=[];forEach(selectElement.find('option'),function(option){if(option.selected){array.push(option.value);}});ctrl.$setViewValue(array);});});}function setupAsOptions(scope,selectElement,ctrl){var match;if(!(match = optionsExp.match(NG_OPTIONS_REGEXP))){throw ngOptionsMinErr('iexp','Expected expression in form of ' + '\'_select_ (as _label_)? for (_key_,)?_value_ in _collection_\'' + ' but got \'{0}\'. Element: {1}',optionsExp,startingTag(selectElement));}var displayFn=$parse(match[2] || match[1]),valueName=match[4] || match[6],selectAs=/ as /.test(match[0]) && match[1],selectAsFn=selectAs?$parse(selectAs):null,keyName=match[5],groupByFn=$parse(match[3] || ''),valueFn=$parse(match[2]?match[1]:valueName),valuesFn=$parse(match[7]),track=match[8],trackFn=track?$parse(match[8]):null,trackKeysCache={},optionGroupsCache=[[{element:selectElement,label:''}]],locals={};if(nullOption){$compile(nullOption)(scope);nullOption.removeClass('ng-scope');nullOption.remove();}selectElement.empty();selectElement.on('change',selectionChanged);ctrl.$render = render;scope.$watchCollection(valuesFn,scheduleRendering);scope.$watchCollection(getLabels,scheduleRendering);if(multiple){scope.$watchCollection(function(){return ctrl.$modelValue;},scheduleRendering);}function callExpression(exprFn,key,value){locals[valueName] = value;if(keyName)locals[keyName] = key;return exprFn(scope,locals);}function selectionChanged(){scope.$apply(function(){var collection=valuesFn(scope) || [];var viewValue;if(multiple){viewValue = [];forEach(selectElement.val(),function(selectedKey){selectedKey = trackFn?trackKeysCache[selectedKey]:selectedKey;viewValue.push(getViewValue(selectedKey,collection[selectedKey]));});}else {var selectedKey=trackFn?trackKeysCache[selectElement.val()]:selectElement.val();viewValue = getViewValue(selectedKey,collection[selectedKey]);}ctrl.$setViewValue(viewValue);render();});}function getViewValue(key,value){if(key === '?'){return undefined;}else if(key === ''){return null;}else {var viewValueFn=selectAsFn?selectAsFn:valueFn;return callExpression(viewValueFn,key,value);}}function getLabels(){var values=valuesFn(scope);var toDisplay;if(values && isArray(values)){toDisplay = new Array(values.length);for(var i=0,ii=values.length;i < ii;i++) {toDisplay[i] = callExpression(displayFn,i,values[i]);}return toDisplay;}else if(values){toDisplay = {};for(var prop in values) {if(values.hasOwnProperty(prop)){toDisplay[prop] = callExpression(displayFn,prop,values[prop]);}}}return toDisplay;}function createIsSelectedFn(viewValue){var selectedSet;if(multiple){if(trackFn && isArray(viewValue)){selectedSet = new HashMap([]);for(var trackIndex=0;trackIndex < viewValue.length;trackIndex++) {selectedSet.put(callExpression(trackFn,null,viewValue[trackIndex]),true);}}else {selectedSet = new HashMap(viewValue);}}else if(trackFn){viewValue = callExpression(trackFn,null,viewValue);}return function isSelected(key,value){var compareValueFn;if(trackFn){compareValueFn = trackFn;}else if(selectAsFn){compareValueFn = selectAsFn;}else {compareValueFn = valueFn;}if(multiple){return isDefined(selectedSet.remove(callExpression(compareValueFn,key,value)));}else {return viewValue === callExpression(compareValueFn,key,value);}};}function scheduleRendering(){if(!renderScheduled){scope.$$postDigest(render);renderScheduled = true;}}function updateLabelMap(labelMap,label,added){labelMap[label] = labelMap[label] || 0;labelMap[label] += added?1:-1;}function render(){renderScheduled = false;var optionGroups={'':[]},optionGroupNames=[''],optionGroupName,optionGroup,option,existingParent,existingOptions,existingOption,viewValue=ctrl.$viewValue,values=valuesFn(scope) || [],keys=keyName?sortedKeys(values):values,key,value,groupLength,length,groupIndex,index,labelMap={},selected,isSelected=createIsSelectedFn(viewValue),anySelected=false,lastElement,element,label,optionId;trackKeysCache = {};for(index = 0;length = keys.length,index < length;index++) {key = index;if(keyName){key = keys[index];if(key.charAt(0) === '$')continue;}value = values[key];optionGroupName = callExpression(groupByFn,key,value) || '';if(!(optionGroup = optionGroups[optionGroupName])){optionGroup = optionGroups[optionGroupName] = [];optionGroupNames.push(optionGroupName);}selected = isSelected(key,value);anySelected = anySelected || selected;label = callExpression(displayFn,key,value);label = isDefined(label)?label:'';optionId = trackFn?trackFn(scope,locals):keyName?keys[index]:index;if(trackFn){trackKeysCache[optionId] = key;}optionGroup.push({id:optionId,label:label,selected:selected});}if(!multiple){if(nullOption || viewValue === null){optionGroups[''].unshift({id:'',label:'',selected:!anySelected});}else if(!anySelected){optionGroups[''].unshift({id:'?',label:'',selected:true});}}for(groupIndex = 0,groupLength = optionGroupNames.length;groupIndex < groupLength;groupIndex++) {optionGroupName = optionGroupNames[groupIndex];optionGroup = optionGroups[optionGroupName];if(optionGroupsCache.length <= groupIndex){existingParent = {element:optGroupTemplate.clone().attr('label',optionGroupName),label:optionGroup.label};existingOptions = [existingParent];optionGroupsCache.push(existingOptions);selectElement.append(existingParent.element);}else {existingOptions = optionGroupsCache[groupIndex];existingParent = existingOptions[0];if(existingParent.label != optionGroupName){existingParent.element.attr('label',existingParent.label = optionGroupName);}}lastElement = null;for(index = 0,length = optionGroup.length;index < length;index++) {option = optionGroup[index];if(existingOption = existingOptions[index + 1]){lastElement = existingOption.element;if(existingOption.label !== option.label){updateLabelMap(labelMap,existingOption.label,false);updateLabelMap(labelMap,option.label,true);lastElement.text(existingOption.label = option.label);lastElement.prop('label',existingOption.label);}if(existingOption.id !== option.id){lastElement.val(existingOption.id = option.id);}if(lastElement[0].selected !== option.selected){lastElement.prop('selected',existingOption.selected = option.selected);if(msie){lastElement.prop('selected',existingOption.selected);}}}else {if(option.id === '' && nullOption){element = nullOption;}else {(element = optionTemplate.clone()).val(option.id).prop('selected',option.selected).attr('selected',option.selected).prop('label',option.label).text(option.label);}existingOptions.push(existingOption = {element:element,label:option.label,id:option.id,selected:option.selected});updateLabelMap(labelMap,option.label,true);if(lastElement){lastElement.after(element);}else {existingParent.element.append(element);}lastElement = element;}}index++;while(existingOptions.length > index) {option = existingOptions.pop();updateLabelMap(labelMap,option.label,false);option.element.remove();}}while(optionGroupsCache.length > groupIndex) {optionGroup = optionGroupsCache.pop();for(index = 1;index < optionGroup.length;++index) {updateLabelMap(labelMap,optionGroup[index].label,false);}optionGroup[0].element.remove();}forEach(labelMap,function(count,label){if(count > 0){selectCtrl.addOption(label);}else if(count < 0){selectCtrl.removeOption(label);}});}}}};}];var optionDirective=['$interpolate',function($interpolate){var nullSelectCtrl={addOption:noop,removeOption:noop};return {restrict:'E',priority:100,compile:function compile(element,attr){if(isUndefined(attr.value)){var interpolateFn=$interpolate(element.text(),true);if(!interpolateFn){attr.$set('value',element.text());}}return function(scope,element,attr){var selectCtrlName='$selectController',parent=element.parent(),selectCtrl=parent.data(selectCtrlName) || parent.parent().data(selectCtrlName);if(!selectCtrl || !selectCtrl.databound){selectCtrl = nullSelectCtrl;}if(interpolateFn){scope.$watch(interpolateFn,function interpolateWatchAction(newVal,oldVal){attr.$set('value',newVal);if(oldVal !== newVal){selectCtrl.removeOption(oldVal);}selectCtrl.addOption(newVal,element);});}else {selectCtrl.addOption(attr.value,element);}element.on('$destroy',function(){selectCtrl.removeOption(attr.value);});};}};}];var styleDirective=valueFn({restrict:'E',terminal:false});var requiredDirective=function requiredDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;attr.required = true;ctrl.$validators.required = function(modelValue,viewValue){return !attr.required || !ctrl.$isEmpty(viewValue);};attr.$observe('required',function(){ctrl.$validate();});}};};var patternDirective=function patternDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var regexp,patternExp=attr.ngPattern || attr.pattern;attr.$observe('pattern',function(regex){if(isString(regex) && regex.length > 0){regex = new RegExp('^' + regex + '$');}if(regex && !regex.test){throw minErr('ngPattern')('noregexp','Expected {0} to be a RegExp but was {1}. Element: {2}',patternExp,regex,startingTag(elm));}regexp = regex || undefined;ctrl.$validate();});ctrl.$validators.pattern = function(value){return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value);};}};};var maxlengthDirective=function maxlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var maxlength=-1;attr.$observe('maxlength',function(value){var intVal=int(value);maxlength = isNaN(intVal)?-1:intVal;ctrl.$validate();});ctrl.$validators.maxlength = function(modelValue,viewValue){return maxlength < 0 || ctrl.$isEmpty(viewValue) || viewValue.length <= maxlength;};}};};var minlengthDirective=function minlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var minlength=0;attr.$observe('minlength',function(value){minlength = int(value) || 0;ctrl.$validate();});ctrl.$validators.minlength = function(modelValue,viewValue){return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength;};}};};if(window.angular.bootstrap){console.log('WARNING: Tried to load angular more than once.');return;}bindJQuery();publishExternalAPI(angular);jqLite(document).ready(function(){angularInit(document,bootstrap);});})(window,document);!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'); + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + (function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define(factory);else if(typeof exports === 'object')exports['JSData'] = factory();else root['JSData'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _datastoreIndex=__webpack_require__(1);var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);module.exports = {DS:_datastoreIndex['default'],DSUtils:_utils['default'],DSErrors:_errors['default'],createStore:function createStore(options){return new _datastoreIndex['default'](options);},version:{full:'2.0.0-rc.1',major:parseInt('2',10),minor:parseInt('0',10),patch:parseInt('0',10),alpha:true?'false':false,beta:true?'false':false}};},function(module,exports,__webpack_require__){var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _sync_methodsIndex=__webpack_require__(4);var _async_methodsIndex=__webpack_require__(5);function lifecycleNoopCb(resource,attrs,cb){cb(null,attrs);}function lifecycleNoop(resource,attrs){return attrs;}function compare(_x,_x2,_x3,_x4){var _again=true;_function: while(_again) {var orderBy=_x,index=_x2,a=_x3,b=_x4;def = cA = cB = undefined;_again = false;var def=orderBy[index];var cA=_utils['default'].get(a,def[0]),cB=_utils['default'].get(b,def[0]);if(_utils['default']._s(cA)){cA = _utils['default'].upperCase(cA);}if(_utils['default']._s(cB)){cB = _utils['default'].upperCase(cB);}if(def[1] === 'DESC'){if(cB < cA){return -1;}else if(cB > cA){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}else {if(cA < cB){return -1;}else if(cA > cB){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}}}var Defaults=(function(){function Defaults(){_classCallCheck(this,Defaults);}_createClass(Defaults,[{key:'errorFn',value:function errorFn(a,b){if(this.error && typeof this.error === 'function'){try{if(typeof a === 'string'){throw new Error(a);}else {throw a;}}catch(err) {a = err;}this.error(this.name || null,a || null,b || null);}}}]);return Defaults;})();var defaultsPrototype=Defaults.prototype;defaultsPrototype.actions = {};defaultsPrototype.afterCreate = lifecycleNoopCb;defaultsPrototype.afterCreateCollection = lifecycleNoop;defaultsPrototype.afterCreateInstance = lifecycleNoop;defaultsPrototype.afterDestroy = lifecycleNoopCb;defaultsPrototype.afterEject = lifecycleNoop;defaultsPrototype.afterInject = lifecycleNoop;defaultsPrototype.afterReap = lifecycleNoop;defaultsPrototype.afterUpdate = lifecycleNoopCb;defaultsPrototype.afterValidate = lifecycleNoopCb;defaultsPrototype.allowSimpleWhere = true;defaultsPrototype.basePath = '';defaultsPrototype.beforeCreate = lifecycleNoopCb;defaultsPrototype.beforeCreateCollection = lifecycleNoop;defaultsPrototype.beforeCreateInstance = lifecycleNoop;defaultsPrototype.beforeDestroy = lifecycleNoopCb;defaultsPrototype.beforeEject = lifecycleNoop;defaultsPrototype.beforeInject = lifecycleNoop;defaultsPrototype.beforeReap = lifecycleNoop;defaultsPrototype.beforeUpdate = lifecycleNoopCb;defaultsPrototype.beforeValidate = lifecycleNoopCb;defaultsPrototype.bypassCache = false;defaultsPrototype.cacheResponse = !!_utils['default'].w;defaultsPrototype.clearEmptyQueries = true;defaultsPrototype.computed = {};defaultsPrototype.defaultAdapter = 'http';defaultsPrototype.debug = false;defaultsPrototype.defaultValues = {};defaultsPrototype.eagerEject = false;defaultsPrototype.eagerInject = false;defaultsPrototype.endpoint = '';defaultsPrototype.error = console?function(a,b,c){return console[typeof console.error === 'function'?'error':'log'](a,b,c);}:false;defaultsPrototype.instanceEvents = !!_utils['default'].w;defaultsPrototype.fallbackAdapters = ['http'];defaultsPrototype.findStrictCache = false;defaultsPrototype.idAttribute = 'id';defaultsPrototype.ignoredChanges = [/\$/];defaultsPrototype.ignoreMissing = false;defaultsPrototype.keepChangeHistory = false;defaultsPrototype.linkRelations = true;defaultsPrototype.log = console?function(a,b,c,d,e){return console[typeof console.info === 'function'?'info':'log'](a,b,c,d,e);}:false;defaultsPrototype.logFn = function(a,b,c,d){var _this=this;if(_this.debug && _this.log && typeof _this.log === 'function'){_this.log(_this.name || null,a || null,b || null,c || null,d || null);}};defaultsPrototype.maxAge = false;defaultsPrototype.methods = {};defaultsPrototype.notify = !!_utils['default'].w;defaultsPrototype.omit = [];defaultsPrototype.onConflict = 'merge';defaultsPrototype.reapAction = !!_utils['default'].w?'inject':'none';defaultsPrototype.reapInterval = !!_utils['default'].w?30000:false;defaultsPrototype.relationsEnumerable = false;defaultsPrototype.returnMeta = false;defaultsPrototype.resetHistoryOnInject = true;defaultsPrototype.strategy = 'single';defaultsPrototype.upsert = !!_utils['default'].w;defaultsPrototype.useClass = true;defaultsPrototype.useFilter = false;defaultsPrototype.validate = lifecycleNoopCb;defaultsPrototype.defaultFilter = function(collection,resourceName,params,options){var filtered=collection;var where=null;var reserved={skip:'',offset:'',where:'',limit:'',orderBy:'',sort:''};params = params || {};options = options || {};if(_utils['default']._o(params.where)){where = params.where;}else {where = {};}if(options.allowSimpleWhere){_utils['default'].forOwn(params,function(value,key){if(!(key in reserved) && !(key in where)){where[key] = {'==':value};}});}if(_utils['default'].isEmpty(where)){where = null;}if(where){filtered = _utils['default'].filter(filtered,function(attrs){var first=true;var keep=true;_utils['default'].forOwn(where,function(clause,field){if(!_utils['default']._o(clause)){clause = {'==':clause};}_utils['default'].forOwn(clause,function(term,op){var expr=undefined;var isOr=op[0] === '|';var val=_utils['default'].get(attrs,field);op = isOr?op.substr(1):op;if(op === '=='){expr = val == term;}else if(op === '==='){expr = val === term;}else if(op === '!='){expr = val != term;}else if(op === '!=='){expr = val !== term;}else if(op === '>'){expr = val > term;}else if(op === '>='){expr = val >= term;}else if(op === '<'){expr = val < term;}else if(op === '<='){expr = val <= term;}else if(op === 'isectEmpty'){expr = !_utils['default'].intersection(val || [],term || []).length;}else if(op === 'isectNotEmpty'){expr = _utils['default'].intersection(val || [],term || []).length;}else if(op === 'in'){if(_utils['default']._s(term)){expr = term.indexOf(val) !== -1;}else {expr = _utils['default'].contains(term,val);}}else if(op === 'notIn'){if(_utils['default']._s(term)){expr = term.indexOf(val) === -1;}else {expr = !_utils['default'].contains(term,val);}}else if(op === 'contains'){if(_utils['default']._s(val)){expr = val.indexOf(term) !== -1;}else {expr = _utils['default'].contains(val,term);}}else if(op === 'notContains'){if(_utils['default']._s(val)){expr = val.indexOf(term) === -1;}else {expr = !_utils['default'].contains(val,term);}}if(expr !== undefined){keep = first?expr:isOr?keep || expr:keep && expr;}first = false;});});return keep;});}var orderBy=null;if(_utils['default']._s(params.orderBy)){orderBy = [[params.orderBy,'ASC']];}else if(_utils['default']._a(params.orderBy)){orderBy = params.orderBy;}if(!orderBy && _utils['default']._s(params.sort)){orderBy = [[params.sort,'ASC']];}else if(!orderBy && _utils['default']._a(params.sort)){orderBy = params.sort;}if(orderBy){(function(){var index=0;_utils['default'].forEach(orderBy,function(def,i){if(_utils['default']._s(def)){orderBy[i] = [def,'ASC'];}else if(!_utils['default']._a(def)){throw new _errors['default'].IA('DS.filter("' + resourceName + '"[, params][, options]): ' + _utils['default'].toJson(def) + ': Must be a string or an array!',{params:{'orderBy[i]':{actual:typeof def,expected:'string|array'}}});}});filtered = _utils['default'].sort(filtered,function(a,b){return compare(orderBy,index,a,b);});})();}var limit=_utils['default']._n(params.limit)?params.limit:null;var skip=null;if(_utils['default']._n(params.skip)){skip = params.skip;}else if(_utils['default']._n(params.offset)){skip = params.offset;}if(limit && skip){filtered = _utils['default'].slice(filtered,skip,Math.min(filtered.length,skip + limit));}else if(_utils['default']._n(limit)){filtered = _utils['default'].slice(filtered,0,Math.min(filtered.length,limit));}else if(_utils['default']._n(skip)){if(skip < filtered.length){filtered = _utils['default'].slice(filtered,skip);}else {filtered = [];}}return filtered;};var DS=(function(){function DS(options){_classCallCheck(this,DS);var _this=this;options = options || {};_this.store = {};_this.s = _this.store;_this.definitions = {};_this.defs = _this.definitions;_this.adapters = {};_this.defaults = new Defaults();_this.observe = _utils['default'].observe;_utils['default'].forOwn(options,function(v,k){if(k === 'omit'){_this.defaults.omit = v.concat(Defaults.prototype.omit);}else {_this.defaults[k] = v;}});_this.defaults.logFn('new data store created',_this.defaults);var P=_utils['default'].Promise;if(P && !P.prototype.spread){P.prototype.spread = function(cb){return this.then(function(arr){return cb.apply(this,arr);});};}}_createClass(DS,[{key:'getAdapterName',value:function getAdapterName(options){var errorIfNotExist=false;options = options || {};this.defaults.logFn('getAdapterName',options);if(_utils['default']._s(options)){errorIfNotExist = true;options = {adapter:options};}if(this.adapters[options.adapter]){return options.adapter;}else if(errorIfNotExist){throw new Error(options.adapter + ' is not a registered adapter!');}else {return options.defaultAdapter;}}},{key:'getAdapter',value:function getAdapter(options){options = options || {};this.defaults.logFn('getAdapter',options);return this.adapters[this.getAdapterName(options)];}},{key:'registerAdapter',value:function registerAdapter(name,Adapter,options){var _this=this;options = options || {};_this.defaults.logFn('registerAdapter',name,Adapter,options);if(_utils['default'].isFunction(Adapter)){_this.adapters[name] = new Adapter(options);}else {_this.adapters[name] = Adapter;}if(options['default']){_this.defaults.defaultAdapter = name;}_this.defaults.logFn('default adapter is ' + _this.defaults.defaultAdapter);}},{key:'is',value:function is(resourceName,instance){var definition=this.defs[resourceName];if(!definition){throw new _errors['default'].NER(resourceName);}return instance instanceof definition[definition['class']];}}]);return DS;})();var dsPrototype=DS.prototype;dsPrototype.getAdapterName.shorthand = false;dsPrototype.getAdapter.shorthand = false;dsPrototype.registerAdapter.shorthand = false;dsPrototype.errors = _errors['default'];dsPrototype.utils = _utils['default'];function addMethods(target,obj){_utils['default'].forOwn(obj,function(v,k){target[k] = v;target[k].before = function(fn){var orig=target[k];target[k] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}return orig.apply(this,fn.apply(this,args) || args);};};});}addMethods(dsPrototype,_sync_methodsIndex['default']);addMethods(dsPrototype,_async_methodsIndex['default']);exports['default'] = DS;},function(module,exports,__webpack_require__){function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}var _errors=__webpack_require__(3);var BinaryHeap=__webpack_require__(7);var forEach=__webpack_require__(8);var slice=__webpack_require__(9);var forOwn=__webpack_require__(13);var contains=__webpack_require__(10);var deepMixIn=__webpack_require__(14);var pascalCase=__webpack_require__(18);var remove=__webpack_require__(11);var pick=__webpack_require__(15);var sort=__webpack_require__(12);var upperCase=__webpack_require__(19);var get=__webpack_require__(16);var set=__webpack_require__(17);var observe=__webpack_require__(6);var w=undefined;var objectProto=Object.prototype;var toString=objectProto.toString;var P=undefined;try{P = Promise;}catch(err) {console.error('js-data requires a global Promise constructor!');}var isArray=Array.isArray || function isArray(value){return toString.call(value) == '[object Array]' || false;};var isRegExp=function isRegExp(value){return toString.call(value) == '[object RegExp]' || false;};var isString=function isString(value){return typeof value == 'string' || value && typeof value == 'object' && toString.call(value) == '[object String]' || false;};var isObject=function isObject(value){return toString.call(value) == '[object Object]' || false;};var isDate=function isDate(value){return value && typeof value == 'object' && toString.call(value) == '[object Date]' || false;};var isNumber=function isNumber(value){var type=typeof value;return type == 'number' || value && type == 'object' && toString.call(value) == '[object Number]' || false;};var isFunction=function isFunction(value){return typeof value == 'function' || value && toString.call(value) === '[object Function]' || false;};var isStringOrNumber=function isStringOrNumber(value){return isString(value) || isNumber(value);};var isStringOrNumberErr=function isStringOrNumberErr(field){return new _errors['default'].IA('"' + field + '" must be a string or a number!');};var isObjectErr=function isObjectErr(field){return new _errors['default'].IA('"' + field + '" must be an object!');};var isArrayErr=function isArrayErr(field){return new _errors['default'].IA('"' + field + '" must be an array!');};var isEmpty=function isEmpty(val){if(val == null){return true;}else if(typeof val === 'string' || isArray(val)){return !val.length;}else if(typeof val === 'object'){var result=true;forOwn(val,function(){result = false;return false;});return result;}else {return true;}};var intersection=function intersection(array1,array2){if(!array1 || !array2){return [];}var result=[];var item=undefined;for(var i=0,_length=array1.length;i < _length;i++) {item = array1[i];if(contains(result,item)){continue;}if(contains(array2,item)){result.push(item);}}return result;};var filter=function filter(array,cb,thisObj){var results=[];forEach(array,function(value,key,arr){if(cb(value,key,arr)){results.push(value);}},thisObj);return results;};try{w = window;w = {};}catch(e) {w = null;}function Events(target){var events={};target = target || this;target.on = function(type,func,ctx){events[type] = events[type] || [];events[type].push({f:func,c:ctx});};target.off = function(type,func){var listeners=events[type];if(!listeners){events = {};}else if(func){for(var i=0;i < listeners.length;i++) {if(listeners[i] === func){listeners.splice(i,1);break;}}}else {listeners.splice(0,listeners.length);}};target.emit = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}var listeners=events[args.shift()] || [];if(listeners){for(var i=0;i < listeners.length;i++) {listeners[i].f.apply(listeners[i].c,args);}}};}var toPromisify=['beforeValidate','validate','afterValidate','beforeCreate','afterCreate','beforeUpdate','afterUpdate','beforeDestroy','afterDestroy'];var isBlacklisted=observe.isBlacklisted;var copy=function copy(source,destination,stackSource,stackDest,blacklist){if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest,blacklist);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){destination = copy(source,Object.create(Object.getPrototypeOf(source)),stackSource,stackDest,blacklist);}}}else {if(source === destination){throw new Error('Cannot copy! Source and destination are identical.');}stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1){return stackDest[index];}stackSource.push(source);stackDest.push(destination);}var result=undefined;if(isArray(source)){var i=undefined;destination.length = 0;for(i = 0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest,blacklist);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){if(isBlacklisted(key,blacklist)){continue;}result = copy(source[key],null,stackSource,stackDest,blacklist);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}}}return destination;};var equals=function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2){return true;}if(o1 === null || o2 === null){return false;}if(o1 !== o1 && o2 !== o2){return true;}var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2)){return false;}if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key])){return false;}}return true;}}else if(isDate(o1)){if(!isDate(o2)){return false;}_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1) && isRegExp(o2)){return o1.toString() == o2.toString();}else {if(isArray(o2)){return false;}keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key])){continue;}if(!equals(o1[key],o2[key])){return false;}keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key])){return false;}}return true;}}}return false;}};var resolveId=function resolveId(definition,idOrInstance){if(isString(idOrInstance) || isNumber(idOrInstance)){return idOrInstance;}else if(idOrInstance && definition){return idOrInstance[definition.idAttribute] || idOrInstance;}else {return idOrInstance;}};var resolveItem=function resolveItem(resource,idOrInstance){if(resource && (isString(idOrInstance) || isNumber(idOrInstance))){return resource.index[idOrInstance] || idOrInstance;}else {return idOrInstance;}};var isValidString=function isValidString(val){return val != null && val !== '';};var join=function join(items,separator){separator = separator || '';return filter(items,isValidString).join(separator);};var makePath=function makePath(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}var result=join(args,'/');return result.replace(/([^:\/]|^)\/{2,}/g,'$1/');};exports['default'] = {Promise:P,_:function _(parent,options){var _this=this;options = options || {};if(options && options.constructor === parent.constructor){return options;}else if(!isObject(options)){throw new _errors['default'].IA('"options" must be an object!');}forEach(toPromisify,function(name){if(typeof options[name] === 'function' && options[name].toString().indexOf('for (var _len = arg') === -1){options[name] = _this.promisify(options[name]);}});var O=function Options(attrs){var self=this;forOwn(attrs,function(value,key){self[key] = value;});};O.prototype = parent;O.prototype.orig = function(){var orig={};forOwn(this,function(value,key){orig[key] = value;});return orig;};return new O(options);},_n:isNumber,_s:isString,_sn:isStringOrNumber,_snErr:isStringOrNumberErr,_o:isObject,_oErr:isObjectErr,_a:isArray,_aErr:isArrayErr,compute:function compute(fn,field){var _this=this;var args=[];forEach(fn.deps,function(dep){args.push(get(_this,dep));});set(_this,field,fn[fn.length - 1].apply(_this,args));},contains:contains,copy:copy,deepMixIn:deepMixIn,diffObjectFromOldObject:observe.diffObjectFromOldObject,BinaryHeap:BinaryHeap,equals:equals,Events:Events,filter:filter,fillIn:function fillIn(target,obj){forOwn(obj,function(v,k){if(!(k in target)){target[k] = v;}});return target;},forEach:forEach,forOwn:forOwn,fromJson:function fromJson(json){return isString(json)?JSON.parse(json):json;},get:get,intersection:intersection,isArray:isArray,isBlacklisted:isBlacklisted,isEmpty:isEmpty,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isString:isString,makePath:makePath,observe:observe,omit:function omit(obj,bl){var toRemove=[];forOwn(obj,function(v,k){if(isBlacklisted(k,bl)){toRemove.push(k);}});forEach(toRemove,function(k){delete obj[k];});return obj;},pascalCase:pascalCase,pick:pick,promisify:function promisify(fn,target){var _this=this;if(!fn){return;}else if(typeof fn !== 'function'){throw new Error('Can only promisify functions!');}return function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}return new _this.Promise(function(resolve,reject){args.push(function(err,result){if(err){reject(err);}else {resolve(result);}});try{var promise=fn.apply(target || this,args);if(promise && promise.then){promise.then(resolve,reject);}}catch(err) {reject(err);}});};},remove:remove,set:set,slice:slice,sort:sort,toJson:JSON.stringify,updateTimestamp:function updateTimestamp(timestamp){var newTimestamp=typeof Date.now === 'function'?Date.now():new Date().getTime();if(timestamp && newTimestamp <= timestamp){return timestamp + 1;}else {return newTimestamp;}},upperCase:upperCase,removeCircular:function removeCircular(object){return (function rmCirc(value,ctx){var i=undefined;var nu=undefined;if(typeof value === 'object' && value !== null && !(value instanceof Boolean) && !(value instanceof Date) && !(value instanceof Number) && !(value instanceof RegExp) && !(value instanceof String)){var cur=ctx.cur;var parent=ctx.ctx;while(parent) {if(parent.cur === cur){return undefined;}parent = parent.ctx;}if(isArray(value)){nu = [];for(i = 0;i < value.length;i += 1) {nu[i] = rmCirc(value[i],{ctx:ctx,cur:value[i]});}}else {nu = {};forOwn(value,function(v,k){nu[k] = rmCirc(value[k],{ctx:ctx,cur:value[k]});});}return nu;}return value;})(object,{ctx:null,cur:object});},resolveItem:resolveItem,resolveId:resolveId,respond:function respond(response,meta,options){if(options.returnMeta === 'array'){return [response,meta];}else if(options.returnMeta === 'object'){return {response:response,meta:meta};}else {return response;}},w:w,applyRelationGettersToTarget:function applyRelationGettersToTarget(store,definition,target){this.forEach(definition.relationList,function(def){var relationName=def.relation;var enumerable=typeof def.enumerable === 'boolean'?def.enumerable:!!definition.relationsEnumerable;if(typeof def.link === 'boolean'?def.link:!!definition.linkRelations){delete target[def.localField];if(def.type === 'belongsTo'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else if(def.type === 'hasMany'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};if(def.foreignKey){params[def.foreignKey] = this[definition.idAttribute];return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true});}else if(def.localKeys){params.where = _defineProperty({},definition.getResource(relationName).idAttribute,{'in':this[def.localKeys]});return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params);}return undefined;},set:function set(){}});}else if(def.type === 'hasOne'){if(def.localKey){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else {Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};params[def.foreignKey] = this[definition.idAttribute];var items=params[def.foreignKey]?definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true}):[];if(items.length){return items[0];}return undefined;},set:function set(){}});}}}});}};},function(module,exports,__webpack_require__){var _get=function get(_x,_x2,_x3){var _again=true;_function: while(_again) {var object=_x,property=_x2,receiver=_x3;desc = parent = getter = undefined;_again = false;if(object === null)object = Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc === undefined){var parent=Object.getPrototypeOf(object);if(parent === null){return undefined;}else {_x = parent;_x2 = property;_x3 = receiver;_again = true;continue _function;}}else if('value' in desc){return desc.value;}else {var getter=desc.get;if(getter === undefined){return undefined;}return getter.call(receiver);}}};function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}function _inherits(subClass,superClass){if(typeof superClass !== 'function' && superClass !== null){throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__ = superClass;}var IllegalArgumentError=(function(_Error){function IllegalArgumentError(message){_classCallCheck(this,IllegalArgumentError);_get(Object.getPrototypeOf(IllegalArgumentError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(IllegalArgumentError,_Error);return IllegalArgumentError;})(Error);var RuntimeError=(function(_Error2){function RuntimeError(message){_classCallCheck(this,RuntimeError);_get(Object.getPrototypeOf(RuntimeError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(RuntimeError,_Error2);return RuntimeError;})(Error);var NonexistentResourceError=(function(_Error3){function NonexistentResourceError(resourceName){_classCallCheck(this,NonexistentResourceError);_get(Object.getPrototypeOf(NonexistentResourceError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = resourceName + ' is not a registered resource!';}_inherits(NonexistentResourceError,_Error3);return NonexistentResourceError;})(Error);exports['default'] = {IllegalArgumentError:IllegalArgumentError,IA:IllegalArgumentError,RuntimeError:RuntimeError,R:RuntimeError,NonexistentResourceError:NonexistentResourceError,NER:NonexistentResourceError};},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _defineResource=__webpack_require__(28);var _eject=__webpack_require__(29);var _ejectAll=__webpack_require__(30);var _filter=__webpack_require__(31);var _inject=__webpack_require__(32);var NER=_errors['default'].NER;var IA=_errors['default'].IA;var R=_errors['default'].R;function diffIsEmpty(diff){return !(_utils['default'].isEmpty(diff.added) && _utils['default'].isEmpty(diff.removed) && _utils['default'].isEmpty(diff.changed));}exports['default'] = {changes:function changes(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];options = options || {};id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('changes',id,options);var item=definition.get(id);if(item){var _ret=(function(){if(_utils['default'].w){_this.s[resourceName].observers[id].deliver();}var ignoredChanges=options.ignoredChanges || [];_utils['default'].forEach(definition.relationFields,function(field){if(!_utils['default'].contains(ignoredChanges,field)){ignoredChanges.push(field);}});var diff=_utils['default'].diffObjectFromOldObject(item,_this.s[resourceName].previousAttributes[id],_utils['default'].equals,ignoredChanges);_utils['default'].forOwn(diff,function(changeset,name){var toKeep=[];_utils['default'].forOwn(changeset,function(value,field){if(!_utils['default'].isFunction(value)){toKeep.push(field);}});diff[name] = _utils['default'].pick(diff[name],toKeep);});_utils['default'].forEach(definition.relationFields,function(field){delete diff.added[field];delete diff.removed[field];delete diff.changed[field];});return {v:diff};})();if(typeof _ret === 'object')return _ret.v;}},changeHistory:function changeHistory(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(resourceName && !_this.defs[resourceName]){throw new NER(resourceName);}else if(id && !_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('changeHistory',id);if(!definition.keepChangeHistory){definition.errorFn('changeHistory is disabled for this resource!');}else {if(resourceName){var item=definition.get(id);if(item){return resource.changeHistories[id];}}else {return resource.changeHistory;}}},compute:function compute(resourceName,instance){var _this=this;var definition=_this.defs[resourceName];instance = _utils['default'].resolveItem(_this.s[resourceName],instance);if(!definition){throw new NER(resourceName);}else if(!instance){throw new R('Item not in the store!');}else if(!_utils['default']._o(instance) && !_utils['default']._sn(instance)){throw new IA('"instance" must be an object, string or number!');}definition.logFn('compute',instance);_utils['default'].forOwn(definition.computed,function(fn,field){_utils['default'].compute.call(instance,fn,field);});return instance;},createInstance:function createInstance(resourceName,attrs,options){var definition=this.defs[resourceName];var item=undefined;attrs = attrs || {};if(!definition){throw new NER(resourceName);}else if(attrs && !_utils['default'].isObject(attrs)){throw new IA('"attrs" must be an object!');}options = _utils['default']._(definition,options);options.logFn('createInstance',attrs,options);options.beforeCreateInstance(options,attrs);var Constructor=definition[definition['class']];item = new Constructor();if(options.defaultValues){_utils['default'].deepMixIn(item,options.defaultValues);}_utils['default'].deepMixIn(item,attrs);if(definition.computed){definition.compute(item);}options.afterCreateInstance(options,item);return item;},createCollection:function createCollection(resourceName,arr,params,options){var _this=this;var definition=_this.defs[resourceName];arr = arr || [];params = params || {};if(!definition){throw new NER(resourceName);}else if(arr && !_utils['default'].isArray(arr)){throw new IA('"arr" must be an array!');}options = _utils['default']._(definition,options);options.logFn('createCollection',arr,options);options.beforeCreateCollection(options,arr);Object.defineProperties(arr,{fetch:{value:function value(params,options){var __this=this;__this.params = params || __this.params;return definition.findAll(__this.params,options).then(function(data){if(data === __this){return __this;}data.unshift(__this.length);data.unshift(0);__this.splice.apply(__this,data);data.shift();data.shift();if(data.$$injected){_this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this;__this.$$injected = true;}return __this;});}},params:{value:params,writable:true},resourceName:{value:resourceName}});options.afterCreateCollection(options,arr);return arr;},defineResource:_defineResource['default'],digest:function digest(){this.observe.Platform.performMicrotaskCheckpoint();},eject:_eject['default'],ejectAll:_ejectAll['default'],filter:_filter['default'],get:function get(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('get',id,options);return _this.s[resourceName].index[id];},getAll:function getAll(resourceName,ids){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var collection=[];if(!definition){throw new NER(resourceName);}else if(ids && !_utils['default']._a(ids)){throw _utils['default']._aErr('ids');}definition.logFn('getAll',ids);if(_utils['default']._a(ids)){var _length=ids.length;for(var i=0;i < _length;i++) {if(resource.index[ids[i]]){collection.push(resource.index[ids[i]]);}}}else {collection = resource.collection.slice();}return collection;},hasChanges:function hasChanges(resourceName,id){var _this=this;var definition=_this.defs[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('hasChanges',id);return definition.get(id)?diffIsEmpty(definition.changes(id)):false;},inject:_inject['default'],lastModified:function lastModified(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastModified',id);if(id){if(!(id in resource.modified)){resource.modified[id] = 0;}return resource.modified[id];}return resource.collectionModified;},lastSaved:function lastSaved(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastSaved',id);if(!(id in resource.saved)){resource.saved[id] = 0;}return resource.saved[id];},previous:function previous(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('previous',id);return resource.previousAttributes[id]?_utils['default'].copy(resource.previousAttributes[id]):undefined;}};},function(module,exports,__webpack_require__){var _create=__webpack_require__(33);var _destroy=__webpack_require__(34);var _destroyAll=__webpack_require__(35);var _find=__webpack_require__(36);var _findAll=__webpack_require__(37);var _loadRelations=__webpack_require__(38);var _reap=__webpack_require__(39);var _save=__webpack_require__(40);var _update=__webpack_require__(41);var _updateAll=__webpack_require__(42);exports['default'] = {create:_create['default'],destroy:_destroy['default'],destroyAll:_destroyAll['default'],find:_find['default'],findAll:_findAll['default'],loadRelations:_loadRelations['default'],reap:_reap['default'],refresh:function refresh(resourceName,id,options){var _this=this;var DSUtils=_this.utils;return new DSUtils.Promise(function(resolve,reject){var definition=_this.defs[resourceName];id = DSUtils.resolveId(_this.defs[resourceName],id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refresh',id,options);resolve(_this.get(resourceName,id));}}).then(function(item){return item?_this.find(resourceName,id,options):item;});},refreshAll:function refreshAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refreshAll',params,options);resolve(_this.filter(resourceName,params,options));}}).then(function(existing){options.bypassCache = true;return _this.findAll(resourceName,params,options).then(function(found){DSUtils.forEach(existing,function(item){if(found.indexOf(item) === -1){definition.eject(item);}});return found;});});},save:_save['default'],update:_update['default'],updateAll:_updateAll['default']};},function(module,exports,__webpack_require__){(function(global){var testingExposeCycleCount=global.testingExposeCycleCount;function detectObjectObserve(){if(typeof Object.observe !== 'function' || typeof Array.observe !== 'function'){return false;}var records=[];function callback(recs){records = recs;}var test={};var arr=[];Object.observe(test,callback);Array.observe(arr,callback);test.id = 1;test.id = 2;delete test.id;arr.push(1,2);arr.length = 0;Object.deliverChangeRecords(callback);if(records.length !== 5)return false;if(records[0].type != 'add' || records[1].type != 'update' || records[2].type != 'delete' || records[3].type != 'splice' || records[4].type != 'splice'){return false;}Object.unobserve(test,callback);Array.unobserve(arr,callback);return true;}var hasObserve=detectObjectObserve();var createObject='__proto__' in {}?function(obj){return obj;}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name));});return newObject;};var MAX_DIRTY_CHECK_CYCLES=1000;function dirtyCheck(observer){var cycles=0;while(cycles < MAX_DIRTY_CHECK_CYCLES && observer.check_()) {cycles++;}if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;return cycles > 0;}function objectIsEmpty(object){for(var prop in object) return false;return true;}function diffIsEmpty(diff){return objectIsEmpty(diff.added) && objectIsEmpty(diff.removed) && objectIsEmpty(diff.changed);}function isBlacklisted(prop,bl){if(!bl || !bl.length){return false;}var matches;for(var i=0;i < bl.length;i++) {if(Object.prototype.toString.call(bl[i]) === '[object RegExp]' && bl[i].test(prop) || bl[i] === prop){return matches = prop;}}return !!matches;}function diffObjectFromOldObject(object,oldObject,equals,bl){var added={};var removed={};var changed={};for(var prop in oldObject) {var newValue=object[prop];if(isBlacklisted(prop,bl))continue;if(newValue !== undefined && (equals?equals(newValue,oldObject[prop]):newValue === oldObject[prop]))continue;if(!(prop in object)){removed[prop] = undefined;continue;}if(equals?!equals(newValue,oldObject[prop]):newValue !== oldObject[prop])changed[prop] = newValue;}for(var prop in object) {if(prop in oldObject)continue;if(isBlacklisted(prop,bl))continue;added[prop] = object[prop];}if(Array.isArray(object) && object.length !== oldObject.length)changed.length = object.length;return {added:added,removed:removed,changed:changed};}var eomTasks=[];function runEOMTasks(){if(!eomTasks.length)return false;for(var i=0;i < eomTasks.length;i++) {eomTasks[i]();}eomTasks.length = 0;return true;}var runEOM=hasObserve?(function(){return function(fn){return Promise.resolve().then(fn);};})():(function(){return function(fn){eomTasks.push(fn);};})();var observedObjectCache=[];function newObservedObject(){var observer;var object;var discardRecords=false;var first=true;function callback(records){if(observer && observer.state_ === OPENED && !discardRecords)observer.check_(records);}return {open:function open(obs){if(observer)throw Error('ObservedObject in use');if(!first)Object.deliverChangeRecords(callback);observer = obs;first = false;},observe:function observe(obj,arrayObserve){object = obj;if(arrayObserve)Array.observe(object,callback);else Object.observe(object,callback);},deliver:function deliver(discard){discardRecords = discard;Object.deliverChangeRecords(callback);discardRecords = false;},close:function close(){observer = undefined;Object.unobserve(object,callback);observedObjectCache.push(this);}};}function getObservedObject(observer,object,arrayObserve){var dir=observedObjectCache.pop() || newObservedObject();dir.open(observer);dir.observe(object,arrayObserve);return dir;}var UNOPENED=0;var OPENED=1;var CLOSED=2;var nextObserverId=1;function Observer(){this.state_ = UNOPENED;this.callback_ = undefined;this.target_ = undefined;this.directObserver_ = undefined;this.value_ = undefined;this.id_ = nextObserverId++;}Observer.prototype = {open:function open(callback,target){if(this.state_ != UNOPENED)throw Error('Observer has already been opened.');addToAll(this);this.callback_ = callback;this.target_ = target;this.connect_();this.state_ = OPENED;return this.value_;},close:function close(){if(this.state_ != OPENED)return;removeFromAll(this);this.disconnect_();this.value_ = undefined;this.callback_ = undefined;this.target_ = undefined;this.state_ = CLOSED;},deliver:function deliver(){if(this.state_ != OPENED)return;dirtyCheck(this);},report_:function report_(changes){try{this.callback_.apply(this.target_,changes);}catch(ex) {Observer._errorThrownDuringCallback = true;console.error('Exception caught during observer callback: ' + (ex.stack || ex));}},discardChanges:function discardChanges(){this.check_(undefined,true);return this.value_;}};var collectObservers=!hasObserve;var allObservers;Observer._allObserversCount = 0;if(collectObservers){allObservers = [];}function addToAll(observer){Observer._allObserversCount++;if(!collectObservers)return;allObservers.push(observer);}function removeFromAll(observer){Observer._allObserversCount--;}var runningMicrotaskCheckpoint=false;global.Platform = global.Platform || {};global.Platform.performMicrotaskCheckpoint = function(){if(runningMicrotaskCheckpoint)return;if(!collectObservers)return;runningMicrotaskCheckpoint = true;var cycles=0;var anyChanged,toCheck;do {cycles++;toCheck = allObservers;allObservers = [];anyChanged = false;for(var i=0;i < toCheck.length;i++) {var observer=toCheck[i];if(observer.state_ != OPENED)continue;if(observer.check_())anyChanged = true;allObservers.push(observer);}if(runEOMTasks())anyChanged = true;}while(cycles < MAX_DIRTY_CHECK_CYCLES && anyChanged);if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;runningMicrotaskCheckpoint = false;};if(collectObservers){global.Platform.clearObservers = function(){allObservers = [];};}function ObjectObserver(object){Observer.call(this);this.value_ = object;this.oldObject_ = undefined;}ObjectObserver.prototype = createObject({__proto__:Observer.prototype,arrayObserve:false,connect_:function connect_(callback,target){if(hasObserve){this.directObserver_ = getObservedObject(this,this.value_,this.arrayObserve);}else {this.oldObject_ = this.copyObject(this.value_);}},copyObject:function copyObject(object){var copy=Array.isArray(object)?[]:{};for(var prop in object) {copy[prop] = object[prop];};if(Array.isArray(object))copy.length = object.length;return copy;},check_:function check_(changeRecords,skipChanges){var diff;var oldValues;if(hasObserve){if(!changeRecords)return false;oldValues = {};diff = diffObjectFromChangeRecords(this.value_,changeRecords,oldValues);}else {oldValues = this.oldObject_;diff = diffObjectFromOldObject(this.value_,this.oldObject_);}if(diffIsEmpty(diff))return false;if(!hasObserve)this.oldObject_ = this.copyObject(this.value_);this.report_([diff.added || {},diff.removed || {},diff.changed || {},function(property){return oldValues[property];}]);return true;},disconnect_:function disconnect_(){if(hasObserve){this.directObserver_.close();this.directObserver_ = undefined;}else {this.oldObject_ = undefined;}},deliver:function deliver(){if(this.state_ != OPENED)return;if(hasObserve)this.directObserver_.deliver(false);else dirtyCheck(this);},discardChanges:function discardChanges(){if(this.directObserver_)this.directObserver_.deliver(true);else this.oldObject_ = this.copyObject(this.value_);return this.value_;}});var observerSentinel={};var expectedRecordTypes={add:true,update:true,'delete':true};function diffObjectFromChangeRecords(object,changeRecords,oldValues){var added={};var removed={};for(var i=0;i < changeRecords.length;i++) {var record=changeRecords[i];if(!expectedRecordTypes[record.type]){console.error('Unknown changeRecord type: ' + record.type);console.error(record);continue;}if(!(record.name in oldValues))oldValues[record.name] = record.oldValue;if(record.type == 'update')continue;if(record.type == 'add'){if(record.name in removed)delete removed[record.name];else added[record.name] = true;continue;}if(record.name in added){delete added[record.name];delete oldValues[record.name];}else {removed[record.name] = true;}}for(var prop in added) added[prop] = object[prop];for(var prop in removed) removed[prop] = undefined;var changed={};for(var prop in oldValues) {if(prop in added || prop in removed)continue;var newValue=object[prop];if(oldValues[prop] !== newValue)changed[prop] = newValue;}return {added:added,removed:removed,changed:changed};}global.Observer = Observer;global.isBlacklisted = isBlacklisted;global.Observer.runEOM_ = runEOM;global.Observer.observerSentinel_ = observerSentinel;global.Observer.hasObjectObserve = hasObserve;global.diffObjectFromOldObject = diffObjectFromOldObject;global.ObjectObserver = ObjectObserver;})(exports);},function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define('yabh',factory);else if(typeof exports === 'object')exports['BinaryHeap'] = factory();else root['BinaryHeap'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _classCallCheck=function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}};var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();Object.defineProperty(exports,'__esModule',{value:true});function bubbleUp(heap,weightFunc,n){var element=heap[n];var weight=weightFunc(element);while(n > 0) {var parentN=Math.floor((n + 1) / 2) - 1;var _parent=heap[parentN];if(weight >= weightFunc(_parent)){break;}else {heap[parentN] = element;heap[n] = _parent;n = parentN;}}}var bubbleDown=function bubbleDown(heap,weightFunc,n){var length=heap.length;var node=heap[n];var nodeWeight=weightFunc(node);while(true) {var child2N=(n + 1) * 2,child1N=child2N - 1;var swap=null;if(child1N < length){var child1=heap[child1N],child1Weight=weightFunc(child1);if(child1Weight < nodeWeight){swap = child1N;}}if(child2N < length){var child2=heap[child2N],child2Weight=weightFunc(child2);if(child2Weight < (swap === null?nodeWeight:weightFunc(heap[child1N]))){swap = child2N;}}if(swap === null){break;}else {heap[n] = heap[swap];heap[swap] = node;n = swap;}}};var BinaryHeap=(function(){function BinaryHeap(weightFunc,compareFunc){_classCallCheck(this,BinaryHeap);if(!weightFunc){weightFunc = function(x){return x;};}if(!compareFunc){compareFunc = function(x,y){return x === y;};}if(typeof weightFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');}if(typeof compareFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');}this.weightFunc = weightFunc;this.compareFunc = compareFunc;this.heap = [];}_createClass(BinaryHeap,[{key:'push',value:function push(node){this.heap.push(node);bubbleUp(this.heap,this.weightFunc,this.heap.length - 1);}},{key:'peek',value:function peek(){return this.heap[0];}},{key:'pop',value:function pop(){var front=this.heap[0];var end=this.heap.pop();if(this.heap.length > 0){this.heap[0] = end;bubbleDown(this.heap,this.weightFunc,0);}return front;}},{key:'remove',value:function remove(node){var length=this.heap.length;for(var i=0;i < length;i++) {if(this.compareFunc(this.heap[i],node)){var removed=this.heap[i];var end=this.heap.pop();if(i !== length - 1){this.heap[i] = end;bubbleUp(this.heap,this.weightFunc,i);bubbleDown(this.heap,this.weightFunc,i);}return removed;}}return null;}},{key:'removeAll',value:function removeAll(){this.heap = [];}},{key:'size',value:function size(){return this.heap.length;}}]);return BinaryHeap;})();exports['default'] = BinaryHeap;module.exports = exports['default'];}]));});;},function(module,exports,__webpack_require__){function forEach(arr,callback,thisObj){if(arr == null){return;}var i=-1,len=arr.length;while(++i < len) {if(callback.call(thisObj,arr[i],i,arr) === false){break;}}}module.exports = forEach;},function(module,exports,__webpack_require__){function slice(arr,start,end){var len=arr.length;if(start == null){start = 0;}else if(start < 0){start = Math.max(len + start,0);}else {start = Math.min(start,len);}if(end == null){end = len;}else if(end < 0){end = Math.max(len + end,0);}else {end = Math.min(end,len);}var result=[];while(start < end) {result.push(arr[start++]);}return result;}module.exports = slice;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function contains(arr,val){return indexOf(arr,val) !== -1;}module.exports = contains;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function remove(arr,item){var idx=indexOf(arr,item);if(idx !== -1)arr.splice(idx,1);}module.exports = remove;},function(module,exports,__webpack_require__){function mergeSort(arr,compareFn){if(arr == null){return [];}else if(arr.length < 2){return arr;}if(compareFn == null){compareFn = defaultCompare;}var mid,left,right;mid = ~ ~(arr.length / 2);left = mergeSort(arr.slice(0,mid),compareFn);right = mergeSort(arr.slice(mid,arr.length),compareFn);return merge(left,right,compareFn);}function defaultCompare(a,b){return a < b?-1:a > b?1:0;}function merge(left,right,compareFn){var result=[];while(left.length && right.length) {if(compareFn(left[0],right[0]) <= 0){result.push(left.shift());}else {result.push(right.shift());}}if(left.length){result.push.apply(result,left);}if(right.length){result.push.apply(result,right);}return result;}module.exports = mergeSort;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var forIn=__webpack_require__(22);function forOwn(obj,fn,thisObj){forIn(obj,function(val,key){if(hasOwn(obj,key)){return fn.call(thisObj,obj[key],key,obj);}});}module.exports = forOwn;},function(module,exports,__webpack_require__){var forOwn=__webpack_require__(13);var isPlainObject=__webpack_require__(23);function deepMixIn(target,objects){var i=0,n=arguments.length,obj;while(++i < n) {obj = arguments[i];if(obj){forOwn(obj,copyProp,target);}}return target;}function copyProp(val,key){var existing=this[key];if(isPlainObject(val) && isPlainObject(existing)){deepMixIn(existing,val);}else {this[key] = val;}}module.exports = deepMixIn;},function(module,exports,__webpack_require__){var slice=__webpack_require__(9);function pick(obj,var_keys){var keys=typeof arguments[1] !== 'string'?arguments[1]:slice(arguments,1),out={},i=0,key;while(key = keys[i++]) {out[key] = obj[key];}return out;}module.exports = pick;},function(module,exports,__webpack_require__){var isPrimitive=__webpack_require__(24);function get(obj,prop){var parts=prop.split('.'),last=parts.pop();while(prop = parts.shift()) {obj = obj[prop];if(obj == null)return;}return obj[last];}module.exports = get;},function(module,exports,__webpack_require__){var namespace=__webpack_require__(25);function set(obj,prop,val){var parts=/^(.+)\.(.+)$/.exec(prop);if(parts){namespace(obj,parts[1])[parts[2]] = val;}else {obj[prop] = val;}}module.exports = set;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var camelCase=__webpack_require__(27);var upperCase=__webpack_require__(19);function pascalCase(str){str = toString(str);return camelCase(str).replace(/^[a-z]/,upperCase);}module.exports = pascalCase;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function upperCase(str){str = toString(str);return str.toUpperCase();}module.exports = upperCase;},function(module,exports,__webpack_require__){function indexOf(arr,item,fromIndex){fromIndex = fromIndex || 0;if(arr == null){return -1;}var len=arr.length,i=fromIndex < 0?len + fromIndex:fromIndex;while(i < len) {if(arr[i] === item){return i;}i++;}return -1;}module.exports = indexOf;},function(module,exports,__webpack_require__){function hasOwn(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports = hasOwn;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var _hasDontEnumBug,_dontEnums;function checkDontEnum(){_dontEnums = ['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'];_hasDontEnumBug = true;for(var key in {'toString':null}) {_hasDontEnumBug = false;}}function forIn(obj,fn,thisObj){var key,i=0;if(_hasDontEnumBug == null)checkDontEnum();for(key in obj) {if(exec(fn,obj,key,thisObj) === false){break;}}if(_hasDontEnumBug){var ctor=obj.constructor,isProto=!!ctor && obj === ctor.prototype;while(key = _dontEnums[i++]) {if((key !== 'constructor' || !isProto && hasOwn(obj,key)) && obj[key] !== Object.prototype[key]){if(exec(fn,obj,key,thisObj) === false){break;}}}}}function exec(fn,obj,key,thisObj){return fn.call(thisObj,obj[key],key,obj);}module.exports = forIn;},function(module,exports,__webpack_require__){function isPlainObject(value){return !!value && typeof value === 'object' && value.constructor === Object;}module.exports = isPlainObject;},function(module,exports,__webpack_require__){function isPrimitive(value){switch(typeof value){case 'string':case 'number':case 'boolean':return true;}return value == null;}module.exports = isPrimitive;},function(module,exports,__webpack_require__){var forEach=__webpack_require__(8);function namespace(obj,path){if(!path)return obj;forEach(path.split('.'),function(key){if(!obj[key]){obj[key] = {};}obj = obj[key];});return obj;}module.exports = namespace;},function(module,exports,__webpack_require__){function toString(val){return val == null?'':val.toString();}module.exports = toString;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var replaceAccents=__webpack_require__(43);var removeNonWord=__webpack_require__(44);var upperCase=__webpack_require__(19);var lowerCase=__webpack_require__(45);function camelCase(str){str = toString(str);str = replaceAccents(str);str = removeNonWord(str).replace(/[\-_]/g,' ').replace(/\s[a-z]/g,upperCase).replace(/\s+/g,'').replace(/^[A-Z]/g,lowerCase);return str;}module.exports = camelCase;},function(module,exports,__webpack_require__){exports['default'] = defineResource;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var instanceMethods=['compute','eject','refresh','save','update','destroy','loadRelations','changeHistory','changes','hasChanges','lastModified','lastSaved','previous'];function defineResource(definition){var _this=this;var definitions=_this.defs;if(_utils['default']._s(definition)){definition = {name:definition.replace(/\s/gi,'')};}if(!_utils['default']._o(definition)){throw _utils['default']._oErr('definition');}else if(!_utils['default']._s(definition.name)){throw new _errors['default'].IA('"name" must be a string!');}else if(definitions[definition.name]){throw new _errors['default'].R(definition.name + ' is already registered!');}function Resource(options){this.defaultValues = {};this.methods = {};this.computed = {};_utils['default'].deepMixIn(this,options);var parent=_this.defaults;if(definition['extends'] && definitions[definition['extends']]){parent = definitions[definition['extends']];}_utils['default'].fillIn(this.defaultValues,parent.defaultValues);_utils['default'].fillIn(this.methods,parent.methods);_utils['default'].fillIn(this.computed,parent.computed);this.endpoint = 'endpoint' in options?options.endpoint:this.name;}try{var def;var _class;var _ret=(function(){if(definition['extends'] && definitions[definition['extends']]){Resource.prototype = definitions[definition['extends']];}else {Resource.prototype = _this.defaults;}definitions[definition.name] = new Resource(definition);def = definitions[definition.name];def.getResource = function(resourceName){return _this.defs[resourceName];};def.logFn('Preparing resource.');if(!_utils['default']._s(def.idAttribute)){throw new _errors['default'].IA('"idAttribute" must be a string!');}if(def.relations){def.relationList = [];def.relationFields = [];_utils['default'].forOwn(def.relations,function(relatedModels,type){_utils['default'].forOwn(relatedModels,function(defs,relationName){if(!_utils['default']._a(defs)){relatedModels[relationName] = [defs];}_utils['default'].forEach(relatedModels[relationName],function(d){d.type = type;d.relation = relationName;d.name = def.name;def.relationList.push(d);if(d.localField){def.relationFields.push(d.localField);}});});});if(def.relations.belongsTo){_utils['default'].forOwn(def.relations.belongsTo,function(relatedModel,modelName){_utils['default'].forEach(relatedModel,function(relation){if(relation.parent){def.parent = modelName;def.parentKey = relation.localKey;def.parentField = relation.localField;}});});}if(typeof Object.freeze === 'function'){Object.freeze(def.relations);Object.freeze(def.relationList);}}_class = def['class'] = _utils['default'].pascalCase(def.name);try{if(typeof def.useClass === 'function'){eval('function ' + _class + '() { def.useClass.call(this); }');def[_class] = eval(_class);def[_class].prototype = (function(proto){function Ctor(){}Ctor.prototype = proto;return new Ctor();})(def.useClass.prototype);}else {eval('function ' + _class + '() {}');def[_class] = eval(_class);}}catch(e) {def[_class] = function(){};}_utils['default'].forOwn(def.methods,function(fn,m){def[_class].prototype[m] = fn;});def[_class].prototype.set = function(key,value){var _this2=this;_utils['default'].set(this,key,value);def.compute(this);if(def.instanceEvents){setTimeout(function(){_this2.emit('DS.change',def,_this2);},0);}def.handleChange(this);return this;};def[_class].prototype.get = function(key){return _utils['default'].get(this,key);};if(def.instanceEvents){_utils['default'].Events(def[_class].prototype);}_utils['default'].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;if(!def.hasOwnProperty('omit')){parentOmit = def.omit;def.omit = [];}else {parentOmit = _this.defaults.omit;}def.omit = def.omit.concat(parentOmit || []);_utils['default'].forOwn(def.computed,function(fn,field){if(_utils['default'].isFunction(fn)){def.computed[field] = [fn];fn = def.computed[field];}if(def.methods && field in def.methods){def.errorFn('Computed property "' + field + '" conflicts with previously defined prototype method!');}def.omit.push(field);var deps;if(fn.length === 1){var match=fn[0].toString().match(/function.*?\(([\s\S]*?)\)/);deps = match[1].split(',');def.computed[field] = deps.concat(fn);fn = def.computed[field];if(deps.length){def.errorFn('Use the computed property array syntax for compatibility with minified code!');}}deps = fn.slice(0,fn.length - 1);_utils['default'].forEach(deps,function(val,index){deps[index] = val.trim();});fn.deps = _utils['default'].filter(deps,function(dep){return !!dep;});});_utils['default'].forEach(instanceMethods,function(name){def[_class].prototype['DS' + _utils['default'].pascalCase(name)] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}args.unshift(this[def.idAttribute] || this);args.unshift(def.name);return _this[name].apply(_this,args);};});def[_class].prototype.DSCreate = function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}args.unshift(this);args.unshift(def.name);return _this.create.apply(_this,args);};_this.s[def.name] = {collection:[],expiresHeap:new _utils['default'].BinaryHeap(function(x){return x.expires;},function(x,y){return x.item === y;}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var resource=_this.s[def.name];if(def.reapInterval){setInterval(function(){return def.reap();},def.reapInterval);}var fns=['registerAdapter','getAdapterName','getAdapter','is'];for(var key in _this) {if(typeof _this[key] === 'function'){fns.push(key);}}_utils['default'].forEach(fns,function(key){var k=key;if(_this[k].shorthand !== false){def[k] = function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}args.unshift(def.name);return _this[k].apply(_this,args);};def[k].before = function(fn){var orig=def[k];def[k] = function(){for(var _len4=arguments.length,args=Array(_len4),_key4=0;_key4 < _len4;_key4++) {args[_key4] = arguments[_key4];}return orig.apply(def,fn.apply(def,args) || args);};};}else {def[k] = function(){for(var _len5=arguments.length,args=Array(_len5),_key5=0;_key5 < _len5;_key5++) {args[_key5] = arguments[_key5];}return _this[k].apply(_this,args);};}});def.beforeValidate = _utils['default'].promisify(def.beforeValidate);def.validate = _utils['default'].promisify(def.validate);def.afterValidate = _utils['default'].promisify(def.afterValidate);def.beforeCreate = _utils['default'].promisify(def.beforeCreate);def.afterCreate = _utils['default'].promisify(def.afterCreate);def.beforeUpdate = _utils['default'].promisify(def.beforeUpdate);def.afterUpdate = _utils['default'].promisify(def.afterUpdate);def.beforeDestroy = _utils['default'].promisify(def.beforeDestroy);def.afterDestroy = _utils['default'].promisify(def.afterDestroy);var defaultAdapter=undefined;if(def.hasOwnProperty('defaultAdapter')){defaultAdapter = def.defaultAdapter;}_utils['default'].forOwn(def.actions,function(action,name){if(def[name] && !def.actions[name]){throw new Error('Cannot override existing method "' + name + '"!');}action.request = action.request || function(config){return config;};action.response = action.response || function(response){return response;};action.responseError = action.responseError || function(err){return _utils['default'].Promise.reject(err);};def[name] = function(id,options){if(_utils['default']._o(id)){options = id;}options = options || {};var adapter=def.getAdapter(action.adapter || defaultAdapter || 'http');var config=_utils['default'].deepMixIn({},action);if(!options.hasOwnProperty('endpoint') && config.endpoint){options.endpoint = config.endpoint;}if(typeof options.getEndpoint === 'function'){config.url = options.getEndpoint(def,options);}else {var args=[options.basePath || adapter.defaults.basePath || def.basePath,adapter.getEndpoint(def,_utils['default']._sn(id)?id:null,options)];if(_utils['default']._sn(id)){args.push(id);}args.push(action.pathname || name);config.url = _utils['default'].makePath.apply(null,args);}config.method = config.method || 'GET';_utils['default'].deepMixIn(config,options);return new _utils['default'].Promise(function(r){return r(config);}).then(options.request || action.request).then(function(config){return adapter.HTTP(config);}).then(options.response || action.response,options.responseError || action.responseError);};});_utils['default'].Events(def);def.handleChange = function(data){resource.collectionModified = _utils['default'].updateTimestamp(resource.collectionModified);if(def.notify){setTimeout(function(){def.emit('DS.change',def,data);},0);}};def.logFn('Done preparing resource.');return {v:def};})();if(typeof _ret === 'object')return _ret.v;}catch(err) {_this.defaults.errorFn(err);delete definitions[definition.name];delete _this.s[definition.name];throw err;}}},function(module,exports,__webpack_require__){exports['default'] = eject;function eject(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined;var found=false;id = DSUtils.resolveId(definition,id);if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._sn(id)){throw DSUtils._snErr('id');}options = DSUtils._(definition,options);options.logFn('eject',id,options);for(var i=0;i < resource.collection.length;i++) {if(resource.collection[i][definition.idAttribute] == id){item = resource.collection[i];resource.expiresHeap.remove(item);found = true;break;}}if(found){var _ret=(function(){definition.beforeEject(options,item);if(options.notify){definition.emit('DS.beforeEject',definition,item);}var toRemove=[];DSUtils.forOwn(resource.queryData,function(items,queryHash){if(items.$$injected){DSUtils.remove(items,item);}if(!items.length && options.clearEmptyQueries){toRemove.push(queryHash);}});DSUtils.forEach(resource.changeHistories[id],function(changeRecord){DSUtils.remove(resource.changeHistory,changeRecord);});DSUtils.forEach(toRemove,function(queryHash){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];});if(DSUtils.w){resource.observers[id].close();}delete resource.observers[id];delete resource.index[id];delete resource.previousAttributes[id];delete resource.completedQueries[id];delete resource.pendingQueries[id];delete resource.changeHistories[id];delete resource.modified[id];delete resource.saved[id];resource.collection.splice(i,1);definition.handleChange(item);definition.afterEject(options,item);if(options.notify){definition.emit('DS.afterEject',definition,item);}return {v:item};})();if(typeof _ret === 'object')return _ret.v;}}},function(module,exports,__webpack_require__){exports['default'] = ejectAll;function ejectAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._o(params)){throw DSUtils._oErr('params');}definition.logFn('ejectAll',params,options);var resource=_this.s[resourceName];var queryHash=DSUtils.toJson(params);var items=definition.filter(params);var ids=[];if(DSUtils.isEmpty(params)){resource.completedQueries = {};}else {delete resource.completedQueries[queryHash];}DSUtils.forEach(items,function(item){if(item && item[definition.idAttribute]){ids.push(item[definition.idAttribute]);}});DSUtils.forEach(ids,function(id){definition.eject(id,options);});definition.handleChange(items);return items;}},function(module,exports,__webpack_require__){exports['default'] = filter;function filter(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];if(!definition){throw new _this.errors.NER(resourceName);}else if(params && !DSUtils._o(params)){throw DSUtils._oErr('params');}params = params || {};options = DSUtils._(definition,options);options.logFn('filter',params,options);return definition.defaultFilter.call(_this,_this.s[resourceName].collection,resourceName,params,options);}},function(module,exports,__webpack_require__){exports['default'] = inject;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);function makeObserverHandler(definition,resource){var DS=this;var name=definition.name;return function _react(added,removed,changed,oldValueFn,firstTime){var target=this;var item=undefined;var innerId=oldValueFn && oldValueFn(definition.idAttribute)?oldValueFn(definition.idAttribute):target[definition.idAttribute];_utils['default'].forEach(definition.relationFields,function(field){delete added[field];delete removed[field];delete changed[field];});if(!_utils['default'].isEmpty(added) || !_utils['default'].isEmpty(removed) || !_utils['default'].isEmpty(changed) || firstTime){item = DS.get(name,innerId);resource.modified[innerId] = _utils['default'].updateTimestamp(resource.modified[innerId]);if(item && definition.instanceEvents){setTimeout(function(){item.emit('DS.change',definition,item);},0);}definition.handleChange(item);if(definition.keepChangeHistory){var changeRecord={resourceName:name,target:item,added:added,removed:removed,changed:changed,timestamp:resource.modified[innerId]};resource.changeHistories[innerId].push(changeRecord);resource.changeHistory.push(changeRecord);}}if(definition.computed){item = item || DS.get(name,innerId);_utils['default'].forOwn(definition.computed,function(fn,field){var compute=false;_utils['default'].forEach(fn.deps,function(dep){if(dep in added || dep in removed || dep in changed || !(field in item)){compute = true;}});compute = compute || !fn.deps.length;if(compute){_utils['default'].compute.call(item,fn,field);}});}if(definition.idAttribute in changed){definition.errorFn('Doh! You just changed the primary key of an object! Your data for the "' + name + '" resource is now in an undefined (probably broken) state.');}};}function _inject(definition,resource,attrs,options){var _this=this;var injected=undefined;if(_utils['default']._a(attrs)){injected = [];for(var i=0;i < attrs.length;i++) {injected.push(_inject.call(_this,definition,resource,attrs[i],options));}}else {var _react=makeObserverHandler.call(_this,definition,resource);var c=definition.computed;var idA=definition.idAttribute;if(c && c[idA]){(function(){var args=[];_utils['default'].forEach(c[idA].deps,function(dep){args.push(attrs[dep]);});attrs[idA] = c[idA][c[idA].length - 1].apply(attrs,args);})();}if(!(idA in attrs)){var error=new _errors['default'].R(definition.name + '.inject: "attrs" must contain the property specified by "idAttribute"!');options.errorFn(error);throw error;}else {try{(function(){_utils['default'].forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=_this.defs[relationName];var toInject=attrs[def.localField];if(toInject){if(!relationDef){throw new _errors['default'].R(definition.name + ' relation is defined but the resource is not!');}if(_utils['default']._a(toInject)){(function(){var items=[];_utils['default'].forEach(toInject,function(toInjectItem){if(toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]){try{var injectedItem=relationDef.inject(toInjectItem,options.orig());if(def.foreignKey){injectedItem[def.foreignKey] = attrs[definition.idAttribute];}items.push(injectedItem);}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}});})();}else {if(toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]){try{var _injected=relationDef.inject(attrs[def.localField],options.orig());if(def.foreignKey){_injected[def.foreignKey] = attrs[definition.idAttribute];}}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}}}});var id=attrs[idA];var item=definition.get(id);var initialLastModified=item?resource.modified[id]:0;if(!item){if(attrs instanceof definition[definition['class']]){item = attrs;}else {item = new definition[definition['class']]();}_utils['default'].forEach(definition.relationList,function(def){delete attrs[def.localField];});_utils['default'].deepMixIn(item,attrs);resource.collection.push(item);resource.changeHistories[id] = [];if(_utils['default'].w){resource.observers[id] = new _this.observe.ObjectObserver(item);resource.observers[id].open(_react,item);}resource.index[id] = item;_react.call(item,{},{},{},null,true);resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);}else {if(options.onConflict === 'merge'){_utils['default'].deepMixIn(item,attrs);}else if(options.onConflict === 'replace'){_utils['default'].forOwn(item,function(v,k){if(k !== definition.idAttribute){if(!attrs.hasOwnProperty(k)){delete item[k];}}});_utils['default'].forOwn(attrs,function(v,k){if(k !== definition.idAttribute){item[k] = v;}});}if(definition.resetHistoryOnInject){resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);if(resource.changeHistories[id].length){_utils['default'].forEach(resource.changeHistories[id],function(changeRecord){_utils['default'].remove(resource.changeHistory,changeRecord);});resource.changeHistories[id].splice(0,resource.changeHistories[id].length);}}if(_utils['default'].w){resource.observers[id].deliver();}}resource.modified[id] = initialLastModified && resource.modified[id] === initialLastModified?_utils['default'].updateTimestamp(resource.modified[id]):resource.modified[id];resource.expiresHeap.remove(item);var timestamp=new Date().getTime();resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});injected = item;})();}catch(err) {options.errorFn(err,attrs);}}}return injected;}function inject(resourceName,attrs,options){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var injected=undefined;if(!definition){throw new _errors['default'].NER(resourceName);}else if(!_utils['default']._o(attrs) && !_utils['default']._a(attrs)){throw new _errors['default'].IA(resourceName + '.inject: "attrs" must be an object or an array!');}options = _utils['default']._(definition,options);options.logFn('inject',attrs,options);options.beforeInject(options,attrs);if(options.notify){definition.emit('DS.beforeInject',definition,attrs);}injected = _inject.call(_this,definition,resource,attrs,options);definition.handleChange(injected);options.afterInject(options,injected);if(options.notify){definition.emit('DS.afterInject',definition,injected);}return injected;}},function(module,exports,__webpack_require__){exports['default'] = create;function create(resourceName,attrs,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var adapter=undefined;options = options || {};attrs = attrs || {};var rejectionError=undefined;if(!definition){rejectionError = new _this.errors.NER(resourceName);}else if(!DSUtils._o(attrs)){rejectionError = DSUtils._oErr('attrs');}else {options = DSUtils._(definition,options);if(options.upsert && DSUtils._sn(attrs[definition.idAttribute])){return _this.update(resourceName,attrs[definition.idAttribute],attrs,options);}options.logFn('create',attrs,options);}return new DSUtils.Promise(function(resolve,reject){if(rejectionError){reject(rejectionError);}else {resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeCreate',definition,attrs);}adapter = _this.getAdapterName(options);return _this.adapters[adapter].create(definition,DSUtils.omit(attrs,options.omit),options);}).then(function(attrs){return options.afterCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.afterCreate',definition,attrs);}if(options.cacheResponse){var created=_this.inject(definition.name,attrs,options.orig());var id=created[definition.idAttribute];var resource=_this.s[resourceName];resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return created;}else {return _this.createInstance(resourceName,attrs,options);}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = destroy;function destroy(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var item=undefined;var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {item = definition.get(id) || {id:id};options = DSUtils._(definition,options);options.logFn('destroy',id,options);resolve(item);}}).then(function(attrs){return options.beforeDestroy.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeDestroy',definition,attrs);}if(options.eagerEject){definition.eject(id);}adapter = definition.getAdapter(options);return adapter.destroy(definition,id,options);}).then(function(){return options.afterDestroy.call(item,options,item);}).then(function(item){if(options.notify){definition.emit('DS.afterDestroy',definition,item);}definition.eject(id);return DSUtils.respond(id,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && item){definition.inject(item,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = destroyAll;function destroyAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var ejected=undefined,toEject=undefined,adapter=undefined;params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('attrs'));}else {options = DSUtils._(definition,options);options.logFn('destroyAll',params,options);resolve();}}).then(function(){toEject = definition.defaultFilter.call(_this,resourceName,params);return options.beforeDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.beforeDestroy',definition,toEject);}if(options.eagerEject){ejected = definition.ejectAll(params);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].destroyAll(definition,params,options);}).then(function(){return options.afterDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.afterDestroy',definition,toEject);}return ejected || definition.ejectAll(params);}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && ejected){definition.inject(ejected,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = find;function find(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('find',id,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[id];}if((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache){resolve(definition.get(id));}else {delete resource.completedQueries[id];resolve();}}}).then(function(item){if(!item){if(!(id in resource.pendingQueries)){var promise=undefined;var strategy=options.findStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].find(definition,id,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].find(definition,id,options);}resource.pendingQueries[id] = promise.then(function(data){delete resource.pendingQueries[id];if(options.cacheResponse){var injected=definition.inject(data,options.orig());resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return injected;}else {return definition.createInstance(data,options.orig());}});}return resource.pendingQueries[id];}else {return item;}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[id];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = findAll;function processResults(data,resourceName,queryHash,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var idAttribute=_this.defs[resourceName].idAttribute;var date=new Date().getTime();data = data || [];delete resource.pendingQueries[queryHash];resource.completedQueries[queryHash] = date;var injected=definition.inject(data,options.orig());if(DSUtils._a(injected)){DSUtils.forEach(injected,function(item){if(item){var id=item[idAttribute];if(id){resource.completedQueries[id] = date;resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);}}});}else {options.errorFn('response is expected to be an array!');resource.completedQueries[injected[idAttribute]] = date;}return injected;}function findAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var queryHash=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){params = params || {};if(!_this.defs[resourceName]){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);queryHash = DSUtils.toJson(params);options.logFn('findAll',params,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];}if(queryHash in resource.completedQueries){if(options.useFilter){resolve(definition.filter(params,options.orig()));}else {resolve(resource.queryData[queryHash]);}}else {resolve();}}}).then(function(items){if(!(queryHash in resource.completedQueries)){if(!(queryHash in resource.pendingQueries)){var promise=undefined;var strategy=options.findAllStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findAllFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].findAll(definition,params,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].findAll(definition,params,options);}resource.pendingQueries[queryHash] = promise.then(function(data){delete resource.pendingQueries[queryHash];if(options.cacheResponse){resource.queryData[queryHash] = processResults.call(_this,data,resourceName,queryHash,options);resource.queryData[queryHash].$$injected = true;return resource.queryData[queryHash];}else {DSUtils.forEach(data,function(item,i){data[i] = definition.createInstance(item,options.orig());});return data;}});}return resource.pendingQueries[queryHash];}else {return items;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[queryHash];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = loadRelations;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}function loadRelations(resourceName,instance,relations,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];return new DSUtils.Promise(function(resolve,reject){if(DSUtils._sn(instance)){instance = definition.get(instance);}if(DSUtils._s(relations)){relations = [relations];}relations = relations || [];if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._o(instance)){reject(new DSErrors.IA('"instance(id)" must be a string, number or object!'));}else if(!DSUtils._a(relations)){reject(new DSErrors.IA('"relations" must be a string or an array!'));}else {(function(){var _options=DSUtils._(definition,options);_options.logFn('loadRelations',instance,relations,_options);var tasks=[];DSUtils.forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=definition.getResource(relationName);var __options=DSUtils._(relationDef,options);if(!relations.length || DSUtils.contains(relations,relationName) || DSUtils.contains(relations,def.localField)){var task=undefined;var params={};if(__options.allowSimpleWhere){params[def.foreignKey] = instance[definition.idAttribute];}else {params.where = {};params.where[def.foreignKey] = {'==':instance[definition.idAttribute]};}if(def.type === 'hasMany'){if(def.localKeys){delete params[def.foreignKey];params.where = _defineProperty({},relationDef.idAttribute,{'in':instance[def.localKeys]});}task = relationDef.findAll(params,__options.orig());}else if(def.type === 'hasOne'){if(def.localKey && instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}else if(def.foreignKey){task = relationDef.findAll(params,__options.orig()).then(function(hasOnes){return hasOnes.length?hasOnes[0]:null;});}}else if(instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}if(task){tasks.push(task);}}});resolve(tasks);})();}}).then(function(tasks){return DSUtils.Promise.all(tasks);}).then(function(){return instance;});}},function(module,exports,__webpack_require__){exports['default'] = reap;function reap(resourceName,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else {options = DSUtils._(definition,options);if(!options.hasOwnProperty('notify')){options.notify = false;}options.logFn('reap',options);var items=[];var now=new Date().getTime();var expiredItem=undefined;while((expiredItem = resource.expiresHeap.peek()) && expiredItem.expires < now) {items.push(expiredItem.item);delete expiredItem.item;resource.expiresHeap.pop();}resolve(items);}}).then(function(items){if(items.length){definition.beforeReap(options,items);if(options.notify){definition.emit('DS.beforeReap',definition,items);}}if(options.reapAction === 'inject'){(function(){var timestamp=new Date().getTime();DSUtils.forEach(items,function(item){resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});});})();}else if(options.reapAction === 'eject'){DSUtils.forEach(items,function(item){definition.eject(item[definition.idAttribute]);});}else if(options.reapAction === 'refresh'){var _ret2=(function(){var tasks=[];DSUtils.forEach(items,function(item){tasks.push(definition.refresh(item[definition.idAttribute]));});return {v:DSUtils.Promise.all(tasks)};})();if(typeof _ret2 === 'object')return _ret2.v;}return items;}).then(function(items){if(items.length){definition.afterReap(options,items);if(options.notify){definition.emit('DS.afterReap',definition,items);}}return items;});}},function(module,exports,__webpack_require__){exports['default'] = save;function save(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined,noChanges=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else if(!definition.get(id)){reject(new DSErrors.R('id "' + id + '" not found in cache!'));}else {item = definition.get(id);options = DSUtils._(definition,options);options.logFn('save',id,options);resolve(item);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}if(options.changesOnly){if(DSUtils.w){resource.observers[id].deliver();}var toKeep=[];var changes=definition.changes(id);for(var key in changes.added) {toKeep.push(key);}for(key in changes.changed) {toKeep.push(key);}changes = DSUtils.pick(attrs,toKeep);if(DSUtils.isEmpty(changes)){options.logFn('save - no changes',id,options);noChanges = true;return attrs;}else {attrs = changes;}}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(noChanges){return attrs;}else if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = update;function update(resourceName,id,attrs,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('update',id,attrs,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var resource=_this.s[resourceName];var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = updateAll;function updateAll(resourceName,attrs,params,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new DSErrors.NER(resourceName));}else {options = DSUtils._(definition,options);options.logFn('updateAll',attrs,params,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].updateAll(definition,DSUtils.omit(attrs,options.omit),params,options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(data){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}var origOptions=options.orig();if(options.cacheResponse){var _ret=(function(){var injected=definition.inject(data,origOptions);var resource=_this.s[resourceName];DSUtils.forEach(injected,function(i){var id=i[definition.idAttribute];resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[id] = DSUtils.copy(i,null,null,null,definition.relationFields);}});return {v:injected};})();if(typeof _ret === 'object')return _ret.v;}else {var _ret2=(function(){var instances=[];DSUtils.forEach(data,function(item){instances.push(definition.createInstance(item,origOptions));});return {v:instances};})();if(typeof _ret2 === 'object')return _ret2.v;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function replaceAccents(str){str = toString(str);if(str.search(/[\xC0-\xFF]/g) > -1){str = str.replace(/[\xC0-\xC5]/g,'A').replace(/[\xC6]/g,'AE').replace(/[\xC7]/g,'C').replace(/[\xC8-\xCB]/g,'E').replace(/[\xCC-\xCF]/g,'I').replace(/[\xD0]/g,'D').replace(/[\xD1]/g,'N').replace(/[\xD2-\xD6\xD8]/g,'O').replace(/[\xD9-\xDC]/g,'U').replace(/[\xDD]/g,'Y').replace(/[\xDE]/g,'P').replace(/[\xE0-\xE5]/g,'a').replace(/[\xE6]/g,'ae').replace(/[\xE7]/g,'c').replace(/[\xE8-\xEB]/g,'e').replace(/[\xEC-\xEF]/g,'i').replace(/[\xF1]/g,'n').replace(/[\xF2-\xF6\xF8]/g,'o').replace(/[\xF9-\xFC]/g,'u').replace(/[\xFE]/g,'p').replace(/[\xFD\xFF]/g,'y');}return str;}module.exports = replaceAccents;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var PATTERN=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;function removeNonWord(str){str = toString(str);return str.replace(PATTERN,'');}module.exports = removeNonWord;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function lowerCase(str){str = toString(str);return str.toLowerCase();}module.exports = lowerCase;}]));}); + +/***/ } +/******/ ]); \ No newline at end of file diff --git a/build_examples/webpack_es6/index.html b/build_examples/webpack_es6/index.html new file mode 100644 index 0000000..9769ccd --- /dev/null +++ b/build_examples/webpack_es6/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html ng-app="app"> +<head> + <title>My App</title> + <!-- load bundled scripts --> + <script src="bundle.js"></script> +</head> +<body> +<h1>{{ test }}</h1> +</body> +</html> diff --git a/build_examples/webpack_es6/webpack.config.js b/build_examples/webpack_es6/webpack.config.js new file mode 100644 index 0000000..a645ef2 --- /dev/null +++ b/build_examples/webpack_es6/webpack.config.js @@ -0,0 +1,17 @@ +module.exports = { + entry: './app.js', + output: { + filename: 'bundle.js' + }, + externals: ['axios'], + resolve: { + alias: { + 'js-data-angular': '../../dist/js-data-angular.js' + } + }, + module: { + loaders: [ + { test: /(.+)\.js$/, loader: 'babel-loader?blacklist=useStrict' } + ] + } +}; From 329869cf31faf7ba9070ca0d3f8dcf82aaabc937 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 1 Jul 2015 10:15:53 -0400 Subject: [PATCH 14/32] Added another Webpack ES6 build example. --- build_examples/webpack_es6_2/README.md | 3 + build_examples/webpack_es6_2/app.js | 8 + build_examples/webpack_es6_2/bundle.js | 804 ++++++++++++++++++ build_examples/webpack_es6_2/index.html | 11 + .../webpack_es6_2/webpack.config.js | 17 + 5 files changed, 843 insertions(+) create mode 100644 build_examples/webpack_es6_2/README.md create mode 100644 build_examples/webpack_es6_2/app.js create mode 100644 build_examples/webpack_es6_2/bundle.js create mode 100644 build_examples/webpack_es6_2/index.html create mode 100644 build_examples/webpack_es6_2/webpack.config.js diff --git a/build_examples/webpack_es6_2/README.md b/build_examples/webpack_es6_2/README.md new file mode 100644 index 0000000..14fa7b9 --- /dev/null +++ b/build_examples/webpack_es6_2/README.md @@ -0,0 +1,3 @@ +Running `webpack` in this directory will produce `bundle.js` + +Note the external dependency "axios" that is excluded from the build (it's not needed when using js-data-angular). diff --git a/build_examples/webpack_es6_2/app.js b/build_examples/webpack_es6_2/app.js new file mode 100644 index 0000000..ec74833 --- /dev/null +++ b/build_examples/webpack_es6_2/app.js @@ -0,0 +1,8 @@ +import 'angular'; +import 'js-data-angular'; + +angular.module('app', [ + 'js-data' +]).run((DS, DSVersion, $rootScope) => { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; +}); diff --git a/build_examples/webpack_es6_2/bundle.js b/build_examples/webpack_es6_2/bundle.js new file mode 100644 index 0000000..4198430 --- /dev/null +++ b/build_examples/webpack_es6_2/bundle.js @@ -0,0 +1,804 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(2); + + __webpack_require__(1); + + angular.module('app', ['js-data']).run(function (DS, DSVersion, $rootScope) { + $rootScope.test = 'It works! Using js-data ' + DSVersion.full; + }); + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + /*! + * js-data-angular + * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @author Jason Dobry <jason.dobry@gmail.com> + * @copyright (c) 2014-2015 Jason Dobry + * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> + * + * @overview Angular wrapper for js-data. + */ + (function webpackUniversalModuleDefinition(root, factory) { + if (true) module.exports = factory(__webpack_require__(5), __webpack_require__(2), (function webpackLoadOptionalExternalModule() { + try { + return __webpack_require__(3); + } catch (e) {} + })());else if (typeof define === 'function' && define.amd) define(['js-data', 'angular'], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { + return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root['axios']); + });else if (typeof exports === 'object') exports['jsDataAngularModuleName'] = factory(require('js-data'), require('angular'), (function webpackLoadOptionalExternalModule() { + try { + return require('axios'); + } catch (e) {} + })());else root['jsDataAngularModuleName'] = factory(root['JSData'], root['angular'], root['axios']); + })(this, function (__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { + return ( /******/(function (modules) { + // webpackBootstrap + /******/ // The module cache + /******/var installedModules = {}; + + /******/ // The require function + /******/function __webpack_require__(moduleId) { + + /******/ // Check if module is in cache + /******/if (installedModules[moduleId]) + /******/return installedModules[moduleId].exports; + + /******/ // Create a new module (and put it into the cache) + /******/var module = installedModules[moduleId] = { + /******/exports: {}, + /******/id: moduleId, + /******/loaded: false + /******/ }; + + /******/ // Execute the module function + /******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + + /******/ // Flag the module as loaded + /******/module.loaded = true; + + /******/ // Return the exports of the module + /******/return module.exports; + /******/ + } + + /******/ // expose the modules object (__webpack_modules__) + /******/__webpack_require__.m = modules; + + /******/ // expose the module cache + /******/__webpack_require__.c = installedModules; + + /******/ // __webpack_public_path__ + /******/__webpack_require__.p = ''; + + /******/ // Load entry module and return exports + /******/return __webpack_require__(0); + /******/ + })([ + /* 0 */ + /***/function (module, exports, __webpack_require__) { + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function'); + } + } + + /*jshint loopfunc:true*/ + var JSData = __webpack_require__(1); + var DSHttpAdapter = __webpack_require__(4); + var angular = __webpack_require__(2); + + var DSUtils = JSData.DSUtils; + var DSErrors = JSData.DSErrors; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + var isObject = DSUtils.isObject; + var set = DSUtils.set; + var resolveId = DSUtils.resolveId; + + var adapters = [{ + project: 'js-data-localstorage', + name: 'localstorage', + 'class': 'DSLocalStorageAdapter' + }, { + project: 'js-data-localforage', + name: 'localforage', + 'class': 'DSLocalForageAdapter' + }, { + project: 'js-data-firebase', + name: 'firebase', + 'class': 'DSFirebaseAdapter' + }, { + project: 'js-data-sql', + name: 'sql', + 'class': 'DSSqlAdapter' + }]; + + var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; + + function registerAdapter(adapter) { + var Adapter = undefined; + + try { + Adapter = __webpack_require__(3)(adapter.project); + } catch (e) {} + + if (!Adapter) { + Adapter = window[adapter['class']]; + } + + if (Adapter) { + adapter.loaded = true; + angular.module('js-data').provider(adapter['class'], function () { + var _this = this; + _this.defaults = {}; + _this.$get = [function () { + return new Adapter(_this.defaults); + }]; + }); + } + } + + var DSHttpAdapterProvider = function DSHttpAdapterProvider() { + _classCallCheck(this, DSHttpAdapterProvider); + + var defaults = {}; + this.defaults = defaults; + + this.$get = ['$http', 'DS', function ($http, DS) { + defaults.http = defaults.http || $http; + var adapter = new DSHttpAdapter(defaults); + DS.registerAdapter('http', adapter, { 'default': true }); + return adapter; + }]; + }; + + var DSProvider = function DSProvider() { + _classCallCheck(this, DSProvider); + + var _this = this; + var deps = []; + + for (var i = 0; i < adapters.length; i++) { + if (adapters[i].loaded) { + deps.push(adapters[i]['class']); + } + } + + _this.defaults = {}; + + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { + var _this = this; + + params = params || {}; + + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!isObject(params)) { + throw new DSErrors.IA('"params" must be an object!'); + } else if (!isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName); + }, function () { + var items = _this.filter(resourceName, params); + set(scope, expr, items); + if (cb) { + cb(null, items); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { + var _this = this; + + id = resolveId(_this.definitions[resourceName], id); + if (!_this.definitions[resourceName]) { + throw new DSErrors.NER(resourceName); + } else if (!isString(id) && !isNumber(id)) { + throw new DSErrors.IA('"id" must be a string or a number!'); + } else if (!isObject(scope)) { + throw new DSErrors.IA('"scope" must be an object!'); + } else if (!isString(expr)) { + throw new DSErrors.IA('"expr" must be a string!'); + } + + try { + return scope.$watch(function () { + return _this.lastModified(resourceName, id); + }, function () { + var item = _this.get(resourceName, id); + if (item) { + _this.compute(resourceName, id); + } + set(scope, expr, item); + if (cb) { + cb(null, item); + } + }); + } catch (err) { + if (cb) { + cb(err); + } else { + throw err; + } + } + }; + + function load() { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var $rootScope = args[args.length - 2]; + var $q = args[args.length - 1]; + var store = new JSData.DS(_this.defaults); + var originals = {}; + + function QPromise(executor) { + var deferred = $q.defer(); + + try { + executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); + } catch (err) { + deferred.reject(err); + } + + return deferred.promise; + } + + QPromise.all = $q.all; + QPromise.when = $q.when; + QPromise.reject = $q.reject; + + DSUtils.Promise = QPromise; + + // Register any adapters that have been loaded + if (args.length) { + for (var i = 0; i < args.length; i++) { + for (var j = 0; j < adapters.length; j++) { + if (adapters[j].loaded && !adapters[j].registered) { + adapters[j].registered = true; + store.registerAdapter(adapters[j].name, args[i]); + break; + } + } + } + } + + var _loop = function _loop() { + var name = functionsToWrap[k]; + originals[name] = store[name]; + store[name] = function () { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + if (!$rootScope.$$phase) { + return $rootScope.$apply(function () { + return originals[name].apply(store, args); + }); + } + return originals[name].apply(store, args); + }; + }; + + // Wrap certain sync functions with $apply + for (var k = 0; k < functionsToWrap.length; k++) { + _loop(); + } + + // Hook into the digest loop + if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { + $rootScope.$watch(function () { + return store.observe.Platform.performMicrotaskCheckpoint(); + }); + } + + return store; + } + + deps.push('$rootScope'); + deps.push('$q'); + deps.push(load); + + _this.$get = deps; + }; + + angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { + DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); + }]); + + for (var i = 0; i < adapters.length; i++) { + registerAdapter(adapters[i]); + } + + // return the module name + module.exports = 'js-data'; + module.exports.name = 'js-data'; + + /***/ + }, + /* 1 */ + /***/function (module, exports, __webpack_require__) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_1__; + + /***/ + }, + /* 2 */ + /***/function (module, exports, __webpack_require__) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_2__; + + /***/ + }, + /* 3 */ + /***/function (module, exports, __webpack_require__) { + + var map = {}; + function webpackContext(req) { + return __webpack_require__(webpackContextResolve(req)); + }; + function webpackContextResolve(req) { + return map[req] || (function () { + throw new Error('Cannot find module \'' + req + '\'.'); + })(); + }; + webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); + }; + webpackContext.resolve = webpackContextResolve; + module.exports = webpackContext; + webpackContext.id = 3; + + /***/ + }, + /* 4 */ + /***/function (module, exports, __webpack_require__) { + + var _createClass = (function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); + } + }return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; + }; + })(); + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError('Cannot call a class as a function'); + } + } + + var JSData = __webpack_require__(1); + var axios = null; + + try { + axios = __webpack_require__(5); + } catch (e) {} + + var DSUtils = JSData.DSUtils; + var deepMixIn = DSUtils.deepMixIn; + var removeCircular = DSUtils.removeCircular; + var copy = DSUtils.copy; + var makePath = DSUtils.makePath; + var isString = DSUtils.isString; + var isNumber = DSUtils.isNumber; + + var Defaults = (function () { + function Defaults() { + _classCallCheck(this, Defaults); + } + + _createClass(Defaults, [{ + key: 'queryTransform', + value: function queryTransform(resourceConfig, params) { + return params; + } + }, { + key: 'deserialize', + value: function deserialize(resourceConfig, data) { + return data ? 'data' in data ? data.data : data : data; + } + }, { + key: 'serialize', + value: function serialize(resourceConfig, data) { + return data; + } + }, { + key: 'log', + value: function log() {} + }, { + key: 'error', + value: function error() {} + }]); + + return Defaults; + })(); + + var defaultsPrototype = Defaults.prototype; + + defaultsPrototype.basePath = ''; + + defaultsPrototype.forceTrailingSlash = ''; + + defaultsPrototype.httpConfig = {}; + + var DSHttpAdapter = (function () { + function DSHttpAdapter(options) { + _classCallCheck(this, DSHttpAdapter); + + this.defaults = new Defaults(); + if (console) { + this.defaults.log = function (a, b) { + return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); + }; + } + if (console) { + this.defaults.error = function (a, b) { + return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); + }; + } + deepMixIn(this.defaults, options); + this.http = options.http || axios; + } + + _createClass(DSHttpAdapter, [{ + key: 'getEndpoint', + value: function getEndpoint(resourceConfig, id, options) { + var _this2 = this; + + options = options || {}; + options.params = options.params || {}; + + var item = undefined; + var parentKey = resourceConfig.parentKey; + var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; + var parentField = resourceConfig.parentField; + var parentDef = resourceConfig.getResource(resourceConfig.parent); + var parentId = options.params[parentKey]; + + if (parentId === false || !parentKey || !parentDef) { + if (parentId === false) { + delete options.params[parentKey]; + } + return endpoint; + } else { + delete options.params[parentKey]; + + if (DSUtils._sn(id)) { + item = resourceConfig.get(id); + } else if (DSUtils._o(id)) { + item = id; + } + + if (item) { + parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); + } + + if (parentId) { + var _ret = (function () { + delete options.endpoint; + var _options = {}; + DSUtils.forOwn(options, function (value, key) { + _options[key] = value; + }); + return { + v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) + }; + })(); + + if (typeof _ret === 'object') return _ret.v; + } else { + return endpoint; + } + } + } + }, { + key: 'getPath', + value: function getPath(method, resourceConfig, id, options) { + var _this = this; + options = options || {}; + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + if (method === 'find' || method === 'update' || method === 'destroy') { + args.push(id); + } + return makePath.apply(DSUtils, args); + } + }, { + key: 'HTTP', + value: function HTTP(config) { + var _this = this; + var start = new Date(); + config = copy(config); + config = deepMixIn(config, _this.defaults.httpConfig); + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { + config.url += '/'; + } + if (typeof config.data === 'object') { + config.data = removeCircular(config.data); + } + config.method = config.method.toUpperCase(); + var suffix = config.suffix || _this.defaults.suffix; + if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { + config.url += suffix; + } + + function logResponse(data) { + var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + if (data.status >= 200 && data.status < 300) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error('\'FAILED: ' + str, data); + } + return DSUtils.Promise.reject(data); + } + } + + if (!this.http) { + throw new Error('You have not configured this adapter with an http library!'); + } + + return this.http(config).then(logResponse, logResponse); + } + }, { + key: 'GET', + value: function GET(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'get'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'POST', + value: function POST(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'post'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs + })); + } + }, { + key: 'PUT', + value: function PUT(url, attrs, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'put'; + } + return this.HTTP(deepMixIn(config, { + url: url, + data: attrs || {} + })); + } + }, { + key: 'DEL', + value: function DEL(url, config) { + config = config || {}; + if (!('method' in config)) { + config.method = 'delete'; + } + return this.HTTP(deepMixIn(config, { + url: url + })); + } + }, { + key: 'find', + value: function find(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { + var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item; + }); + } + }, { + key: 'findAll', + value: function findAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'create', + value: function create(resourceConfig, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'update', + value: function update(resourceConfig, id, attrs, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'updateAll', + value: function updateAll(resourceConfig, attrs, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroy', + value: function destroy(resourceConfig, id, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + options.params = _this.defaults.queryTransform(resourceConfig, options.params); + return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }, { + key: 'destroyAll', + value: function destroyAll(resourceConfig, params, options) { + var _this = this; + options = options ? copy(options) : {}; + options.suffix = options.suffix || resourceConfig.suffix; + options.params = options.params || {}; + if (params) { + params = _this.defaults.queryTransform(resourceConfig, params); + deepMixIn(options.params, params); + } + return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { + return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); + }); + } + }]); + + return DSHttpAdapter; + })(); + + module.exports = DSHttpAdapter; + + /***/ + }, + /* 5 */ + /***/function (module, exports, __webpack_require__) { + + if (typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') { + var e = new Error('Cannot find module "axios"');e.code = 'MODULE_NOT_FOUND';throw e; + } + module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + + /***/ + } + /******/]) + ); + }); + ; + + /************************************************************************/ + /******/ + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + __webpack_require__(4); + module.exports = angular; + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + if(typeof axios === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = axios; + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + var require;(function(window,document,undefined){'use strict';function minErr(module,ErrorConstructor){ErrorConstructor = ErrorConstructor || Error;return function(){var code=arguments[0],prefix='[' + (module?module + ':':'') + code + '] ',template=arguments[1],templateArgs=arguments,message,i;message = prefix + template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1),arg;if(index + 2 < templateArgs.length){return toDebugString(templateArgs[index + 2]);}return match;});message = message + '\nhttp://errors.angularjs.org/1.3.15/' + (module?module + '/':'') + code;for(i = 2;i < arguments.length;i++) {message = message + (i == 2?'?':'&') + 'p' + (i - 2) + '=' + encodeURIComponent(toDebugString(arguments[i]));}return new ErrorConstructor(message);};}var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/;var VALIDITY_STATE_PROPERTY='validity';var lowercase=function lowercase(string){return isString(string)?string.toLowerCase():string;};var hasOwnProperty=Object.prototype.hasOwnProperty;var uppercase=function uppercase(string){return isString(string)?string.toUpperCase():string;};var manualLowercase=function manualLowercase(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) | 32);}):s;};var manualUppercase=function manualUppercase(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) & ~32);}):s;};if('i' !== 'I'.toLowerCase()){lowercase = manualLowercase;uppercase = manualUppercase;}var msie,jqLite,jQuery,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,ngMinErr=minErr('ng'),angular=window.angular || (window.angular = {}),angularModule,uid=0;msie = document.documentMode;function isArrayLike(obj){if(obj == null || isWindow(obj)){return false;}var length=obj.length;if(obj.nodeType === NODE_TYPE_ELEMENT && length){return true;}return isString(obj) || isArray(obj) || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;}function forEach(obj,iterator,context){var key,length;if(obj){if(isFunction(obj)){for(key in obj) {if(key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))){iterator.call(context,obj[key],key,obj);}}}else if(isArray(obj) || isArrayLike(obj)){var isPrimitive=typeof obj !== 'object';for(key = 0,length = obj.length;key < length;key++) {if(isPrimitive || key in obj){iterator.call(context,obj[key],key,obj);}}}else if(obj.forEach && obj.forEach !== forEach){obj.forEach(iterator,context,obj);}else {for(key in obj) {if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key,obj);}}}}return obj;}function sortedKeys(obj){return Object.keys(obj).sort();}function forEachSorted(obj,iterator,context){var keys=sortedKeys(obj);for(var i=0;i < keys.length;i++) {iterator.call(context,obj[keys[i]],keys[i]);}return keys;}function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value);};}function nextUid(){return ++uid;}function setHashKey(obj,h){if(h){obj.$$hashKey = h;}else {delete obj.$$hashKey;}}function extend(dst){var h=dst.$$hashKey;for(var i=1,ii=arguments.length;i < ii;i++) {var obj=arguments[i];if(obj){var keys=Object.keys(obj);for(var j=0,jj=keys.length;j < jj;j++) {var key=keys[j];dst[key] = obj[key];}}}setHashKey(dst,h);return dst;}function int(str){return parseInt(str,10);}function inherit(parent,extra){return extend(Object.create(parent),extra);}function noop(){}noop.$inject = [];function identity($){return $;}identity.$inject = [];function valueFn(value){return function(){return value;};}function isUndefined(value){return typeof value === 'undefined';}function isDefined(value){return typeof value !== 'undefined';}function isObject(value){return value !== null && typeof value === 'object';}function isString(value){return typeof value === 'string';}function isNumber(value){return typeof value === 'number';}function isDate(value){return toString.call(value) === '[object Date]';}var isArray=Array.isArray;function isFunction(value){return typeof value === 'function';}function isRegExp(value){return toString.call(value) === '[object RegExp]';}function isWindow(obj){return obj && obj.window === obj;}function isScope(obj){return obj && obj.$evalAsync && obj.$watch;}function isFile(obj){return toString.call(obj) === '[object File]';}function isFormData(obj){return toString.call(obj) === '[object FormData]';}function isBlob(obj){return toString.call(obj) === '[object Blob]';}function isBoolean(value){return typeof value === 'boolean';}function isPromiseLike(obj){return obj && isFunction(obj.then);}var trim=function trim(value){return isString(value)?value.trim():value;};var escapeForRegexp=function escapeForRegexp(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,'\\$1').replace(/\x08/g,'\\x08');};function isElement(node){return !!(node && (node.nodeName || node.prop && node.attr && node.find));}function makeMap(str){var obj={},items=str.split(','),i;for(i = 0;i < items.length;i++) obj[items[i]] = true;return obj;}function nodeName_(element){return lowercase(element.nodeName || element[0] && element[0].nodeName);}function includes(array,obj){return Array.prototype.indexOf.call(array,obj) != -1;}function arrayRemove(array,value){var index=array.indexOf(value);if(index >= 0)array.splice(index,1);return value;}function copy(source,destination,stackSource,stackDest){if(isWindow(source) || isScope(source)){throw ngMinErr('cpws','Can\'t copy! Making copies of Window or Scope instances is not supported.');}if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){var emptyObject=Object.create(Object.getPrototypeOf(source));destination = copy(source,emptyObject,stackSource,stackDest);}}}else {if(source === destination)throw ngMinErr('cpi','Can\'t copy! Source and destination are identical.');stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1)return stackDest[index];stackSource.push(source);stackDest.push(destination);}var result;if(isArray(source)){destination.length = 0;for(var i=0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {var h=destination.$$hashKey;if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){result = copy(source[key],null,stackSource,stackDest);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}setHashKey(destination,h);}}return destination;}function shallowCopy(src,dst){if(isArray(src)){dst = dst || [];for(var i=0,ii=src.length;i < ii;i++) {dst[i] = src[i];}}else if(isObject(src)){dst = dst || {};for(var key in src) {if(!(key.charAt(0) === '$' && key.charAt(1) === '$')){dst[key] = src[key];}}}return dst || src;}function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2)return true;if(o1 === null || o2 === null)return false;if(o1 !== o1 && o2 !== o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2))return false;if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key]))return false;}return true;}}else if(isDate(o1)){if(!isDate(o2))return false;_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1)){return isRegExp(o2)?o1.toString() == o2.toString():false;}else {if(isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || isArray(o2) || isDate(o2) || isRegExp(o2))return false;keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key]))return false;}return true;}}}return false;}}var csp=function csp(){if(isDefined(csp.isActive_))return csp.isActive_;var active=!!(document.querySelector('[ng-csp]') || document.querySelector('[data-ng-csp]'));if(!active){try{new Function('');}catch(e) {active = true;}}return csp.isActive_ = active;};function concat(array1,array2,index){return array1.concat(slice.call(array2,index));}function sliceArgs(args,startIndex){return slice.call(args,startIndex || 0);}function bind(self,fn){var curryArgs=arguments.length > 2?sliceArgs(arguments,2):[];if(isFunction(fn) && !(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs);}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self);};}else {return fn;}}function toJsonReplacer(key,value){var val=value;if(typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$'){val = undefined;}else if(isWindow(value)){val = '$WINDOW';}else if(value && document === value){val = '$DOCUMENT';}else if(isScope(value)){val = '$SCOPE';}return val;}function toJson(obj,pretty){if(typeof obj === 'undefined')return undefined;if(!isNumber(pretty)){pretty = pretty?2:null;}return JSON.stringify(obj,toJsonReplacer,pretty);}function fromJson(json){return isString(json)?JSON.parse(json):json;}function startingTag(element){element = jqLite(element).clone();try{element.empty();}catch(e) {}var elemHtml=jqLite('<div>').append(element).html();try{return element[0].nodeType === NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return '<' + lowercase(nodeName);});}catch(e) {return lowercase(elemHtml);}}function tryDecodeURIComponent(value){try{return decodeURIComponent(value);}catch(e) {}}function parseKeyValue(keyValue){var obj={},key_value,key;forEach((keyValue || '').split('&'),function(keyValue){if(keyValue){key_value = keyValue.replace(/\+/g,'%20').split('=');key = tryDecodeURIComponent(key_value[0]);if(isDefined(key)){var val=isDefined(key_value[1])?tryDecodeURIComponent(key_value[1]):true;if(!hasOwnProperty.call(obj,key)){obj[key] = val;}else if(isArray(obj[key])){obj[key].push(val);}else {obj[key] = [obj[key],val];}}}});return obj;}function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){if(isArray(value)){forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,true) + (arrayValue === true?'':'=' + encodeUriQuery(arrayValue,true)));});}else {parts.push(encodeUriQuery(key,true) + (value === true?'':'=' + encodeUriQuery(value,true)));}});return parts.length?parts.join('&'):'';}function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,'&').replace(/%3D/gi,'=').replace(/%2B/gi,'+');}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,'@').replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%3B/gi,';').replace(/%20/g,pctEncodeSpaces?'%20':'+');}var ngAttrPrefixes=['ng-','data-ng-','ng:','x-ng-'];function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;element = jqLite(element);for(i = 0;i < ii;++i) {attr = ngAttrPrefixes[i] + ngAttr;if(isString(attr = element.attr(attr))){return attr;}}return null;}function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';if(!appElement && element.hasAttribute && element.hasAttribute(name)){appElement = element;module = element.getAttribute(name);}});forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';var candidate;if(!appElement && (candidate = element.querySelector('[' + name.replace(':','\\:') + ']'))){appElement = candidate;module = candidate.getAttribute(name);}});if(appElement){config.strictDi = getNgAttribute(appElement,'strict-di') !== null;bootstrap(appElement,module?[module]:[],config);}}function bootstrap(element,modules,config){if(!isObject(config))config = {};var defaultConfig={strictDi:false};config = extend(defaultConfig,config);var doBootstrap=function doBootstrap(){element = jqLite(element);if(element.injector()){var tag=element[0] === document?'document':startingTag(element);throw ngMinErr('btstrpd','App Already Bootstrapped with this Element \'{0}\'',tag.replace(/</,'<').replace(/>/,'>'));}modules = modules || [];modules.unshift(['$provide',function($provide){$provide.value('$rootElement',element);}]);if(config.debugInfoEnabled){modules.push(['$compileProvider',function($compileProvider){$compileProvider.debugInfoEnabled(true);}]);}modules.unshift('ng');var injector=createInjector(modules,config.strictDi);injector.invoke(['$rootScope','$rootElement','$compile','$injector',function bootstrapApply(scope,element,compile,injector){scope.$apply(function(){element.data('$injector',injector);compile(element)(scope);});}]);return injector;};var NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/;var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window && NG_ENABLE_DEBUG_INFO.test(window.name)){config.debugInfoEnabled = true;window.name = window.name.replace(NG_ENABLE_DEBUG_INFO,'');}if(window && !NG_DEFER_BOOTSTRAP.test(window.name)){return doBootstrap();}window.name = window.name.replace(NG_DEFER_BOOTSTRAP,'');angular.resumeBootstrap = function(extraModules){forEach(extraModules,function(module){modules.push(module);});return doBootstrap();};if(isFunction(angular.resumeDeferredBootstrap)){angular.resumeDeferredBootstrap();}}function reloadWithDebugInfo(){window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;window.location.reload();}function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector){throw ngMinErr('test','no injector found for element argument to getTestability');}return injector.get('$$testability');}var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator = separator || '_';return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return (pos?separator:'') + letter.toLowerCase();});}var bindJQueryFired=false;var skipDestroyOnNextJQueryCleanData;function bindJQuery(){var originalCleanData;if(bindJQueryFired){return;}jQuery = window.jQuery;if(jQuery && jQuery.fn.on){jqLite = jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});originalCleanData = jQuery.cleanData;jQuery.cleanData = function(elems){var events;if(!skipDestroyOnNextJQueryCleanData){for(var i=0,elem;(elem = elems[i]) != null;i++) {events = jQuery._data(elem,'events');if(events && events.$destroy){jQuery(elem).triggerHandler('$destroy');}}}else {skipDestroyOnNextJQueryCleanData = false;}originalCleanData(elems);};}else {jqLite = JQLite;}angular.element = jqLite;bindJQueryFired = true;}function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq','Argument \'{0}\' is {1}',name || '?',reason || 'required');}return arg;}function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation && isArray(arg)){arg = arg[arg.length - 1];}assertArg(isFunction(arg),name,'not a function, got ' + (arg && typeof arg === 'object'?arg.constructor.name || 'Object':typeof arg));return arg;}function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}}function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split('.');var key;var lastInstance=obj;var len=keys.length;for(var i=0;i < len;i++) {key = keys[i];if(obj){obj = (lastInstance = obj)[key];}}if(!bindFnToScope && isFunction(obj)){return bind(lastInstance,obj);}return obj;}function getBlockNodes(nodes){var node=nodes[0];var endNode=nodes[nodes.length - 1];var blockNodes=[node];do {node = node.nextSibling;if(!node)break;blockNodes.push(node);}while(node !== endNode);return jqLite(blockNodes);}function createMap(){return Object.create(null);}var NODE_TYPE_ELEMENT=1;var NODE_TYPE_TEXT=3;var NODE_TYPE_COMMENT=8;var NODE_TYPE_DOCUMENT=9;var NODE_TYPE_DOCUMENT_FRAGMENT=11;function setupModuleLoader(window){var $injectorMinErr=minErr('$injector');var ngMinErr=minErr('ng');function ensure(obj,name,factory){return obj[name] || (obj[name] = factory());}var angular=ensure(window,'angular',Object);angular.$$minErr = angular.$$minErr || minErr;return ensure(angular,'module',function(){var modules={};return function module(name,requires,configFn){var assertNotHasOwnProperty=function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}};assertNotHasOwnProperty(name,'module');if(requires && modules.hasOwnProperty(name)){modules[name] = null;}return ensure(modules,name,function(){if(!requires){throw $injectorMinErr('nomod','Module \'{0}\' is not available! You either misspelled ' + 'the module name or forgot to load it. If registering a module ensure that you ' + 'specify the dependencies as the second argument.',name);}var invokeQueue=[];var configBlocks=[];var runBlocks=[];var config=invokeLater('$injector','invoke','push',configBlocks);var moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater('$provide','provider'),factory:invokeLater('$provide','factory'),service:invokeLater('$provide','service'),value:invokeLater('$provide','value'),constant:invokeLater('$provide','constant','unshift'),animation:invokeLater('$animateProvider','register'),filter:invokeLater('$filterProvider','register'),controller:invokeLater('$controllerProvider','register'),directive:invokeLater('$compileProvider','directive'),config:config,run:function run(block){runBlocks.push(block);return this;}};if(configFn){config(configFn);}return moduleInstance;function invokeLater(provider,method,insertMethod,queue){if(!queue)queue = invokeQueue;return function(){queue[insertMethod || 'push']([provider,method,arguments]);return moduleInstance;};}});};});}function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){val = toJsonReplacer(key,val);if(isObject(val)){if(seen.indexOf(val) >= 0)return '<<already seen>>';seen.push(val);}return val;});}function toDebugString(obj){if(typeof obj === 'function'){return obj.toString().replace(/ \{[\s\S]*$/,'');}else if(typeof obj === 'undefined'){return 'undefined';}else if(typeof obj !== 'string'){return serializeObject(obj);}return obj;}var version={full:'1.3.15',major:1,minor:3,dot:15,codeName:'locality-filtration'};function publishExternalAPI(angular){extend(angular,{'bootstrap':bootstrap,'copy':copy,'extend':extend,'equals':equals,'element':jqLite,'forEach':forEach,'injector':createInjector,'noop':noop,'bind':bind,'toJson':toJson,'fromJson':fromJson,'identity':identity,'isUndefined':isUndefined,'isDefined':isDefined,'isString':isString,'isFunction':isFunction,'isObject':isObject,'isNumber':isNumber,'isElement':isElement,'isArray':isArray,'version':version,'isDate':isDate,'lowercase':lowercase,'uppercase':uppercase,'callbacks':{counter:0},'getTestability':getTestability,'$$minErr':minErr,'$$csp':csp,'reloadWithDebugInfo':reloadWithDebugInfo});angularModule = setupModuleLoader(window);try{angularModule('ngLocale');}catch(e) {angularModule('ngLocale',[]).provider('$locale',$LocaleProvider);}angularModule('ng',['ngLocale'],['$provide',function ngModule($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider});$provide.provider('$compile',$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$asyncCallback:$$AsyncCallbackProvider,$$jqLite:$$jqLiteProvider});}]);}JQLite.expando = 'ng339';var jqCache=JQLite.cache = {},jqId=1,addEventListenerFn=function addEventListenerFn(element,type,fn){element.addEventListener(type,fn,false);},removeEventListenerFn=function removeEventListenerFn(element,type,fn){element.removeEventListener(type,fn,false);};JQLite._data = function(node){return this.cache[node[this.expando]] || {};};function jqNextId(){return ++jqId;}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;var MOUSE_EVENT_MAP={mouseleave:'mouseout',mouseenter:'mouseover'};var jqLiteMinErr=minErr('jqLite');function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter;}).replace(MOZ_HACK_REGEXP,'Moz$1');}var SINGLE_TAG_REGEXP=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var HTML_REGEXP=/<|&#?\w+;/;var TAG_NAME_REGEXP=/<([\w:]+)/;var XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;var wrapMap={'option':[1,'<select multiple="multiple">','</select>'],'thead':[1,'<table>','</table>'],'col':[2,'<table><colgroup>','</colgroup></table>'],'tr':[2,'<table><tbody>','</tbody></table>'],'td':[3,'<table><tbody><tr>','</tr></tbody></table>'],'_default':[0,'','']};wrapMap.optgroup = wrapMap.option;wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;wrapMap.th = wrapMap.td;function jqLiteIsTextNode(html){return !HTML_REGEXP.test(html);}function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;}function jqLiteBuildFragment(html,context){var tmp,tag,wrap,fragment=context.createDocumentFragment(),nodes=[],i;if(jqLiteIsTextNode(html)){nodes.push(context.createTextNode(html));}else {tmp = tmp || fragment.appendChild(context.createElement('div'));tag = (TAG_NAME_REGEXP.exec(html) || ['',''])[1].toLowerCase();wrap = wrapMap[tag] || wrapMap._default;tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP,'<$1></$2>') + wrap[2];i = wrap[0];while(i--) {tmp = tmp.lastChild;}nodes = concat(nodes,tmp.childNodes);tmp = fragment.firstChild;tmp.textContent = '';}fragment.textContent = '';fragment.innerHTML = '';forEach(nodes,function(node){fragment.appendChild(node);});return fragment;}function jqLiteParseHTML(html,context){context = context || document;var parsed;if(parsed = SINGLE_TAG_REGEXP.exec(html)){return [context.createElement(parsed[1])];}if(parsed = jqLiteBuildFragment(html,context)){return parsed.childNodes;}return [];}function JQLite(element){if(element instanceof JQLite){return element;}var argIsString;if(isString(element)){element = trim(element);argIsString = true;}if(!(this instanceof JQLite)){if(argIsString && element.charAt(0) != '<'){throw jqLiteMinErr('nosel','Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');}return new JQLite(element);}if(argIsString){jqLiteAddNodes(this,jqLiteParseHTML(element));}else {jqLiteAddNodes(this,element);}}function jqLiteClone(element){return element.cloneNode(true);}function jqLiteDealoc(element,onlyDescendants){if(!onlyDescendants)jqLiteRemoveData(element);if(element.querySelectorAll){var descendants=element.querySelectorAll('*');for(var i=0,l=descendants.length;i < l;i++) {jqLiteRemoveData(descendants[i]);}}}function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('offargs','jqLite#off() does not support the `selector` argument');var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var handle=expandoStore && expandoStore.handle;if(!handle)return;if(!type){for(type in events) {if(type !== '$destroy'){removeEventListenerFn(element,type,handle);}delete events[type];}}else {forEach(type.split(' '),function(type){if(isDefined(fn)){var listenerFns=events[type];arrayRemove(listenerFns || [],fn);if(listenerFns && listenerFns.length > 0){return;}}removeEventListenerFn(element,type,handle);delete events[type];});}}function jqLiteRemoveData(element,name){var expandoId=element.ng339;var expandoStore=expandoId && jqCache[expandoId];if(expandoStore){if(name){delete expandoStore.data[name];return;}if(expandoStore.handle){if(expandoStore.events.$destroy){expandoStore.handle({},'$destroy');}jqLiteOff(element);}delete jqCache[expandoId];element.ng339 = undefined;}}function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId && jqCache[expandoId];if(createIfNecessary && !expandoStore){element.ng339 = expandoId = jqNextId();expandoStore = jqCache[expandoId] = {events:{},data:{},handle:undefined};}return expandoStore;}function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value);var isSimpleGetter=!isSimpleSetter && key && !isObject(key);var massGetter=!key;var expandoStore=jqLiteExpandoStore(element,!isSimpleGetter);var data=expandoStore && expandoStore.data;if(isSimpleSetter){data[key] = value;}else {if(massGetter){return data;}else {if(isSimpleGetter){return data && data[key];}else {extend(data,key);}}}}}function jqLiteHasClass(element,selector){if(!element.getAttribute)return false;return (' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').indexOf(' ' + selector + ' ') > -1;}function jqLiteRemoveClass(element,cssClasses){if(cssClasses && element.setAttribute){forEach(cssClasses.split(' '),function(cssClass){element.setAttribute('class',trim((' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').replace(' ' + trim(cssClass) + ' ',' ')));});}}function jqLiteAddClass(element,cssClasses){if(cssClasses && element.setAttribute){var existingClasses=(' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ');forEach(cssClasses.split(' '),function(cssClass){cssClass = trim(cssClass);if(existingClasses.indexOf(' ' + cssClass + ' ') === -1){existingClasses += cssClass + ' ';}});element.setAttribute('class',trim(existingClasses));}}function jqLiteAddNodes(root,elements){if(elements){if(elements.nodeType){root[root.length++] = elements;}else {var length=elements.length;if(typeof length === 'number' && elements.window !== elements){if(length){for(var i=0;i < length;i++) {root[root.length++] = elements[i];}}}else {root[root.length++] = elements;}}}}function jqLiteController(element,name){return jqLiteInheritedData(element,'$' + (name || 'ngController') + 'Controller');}function jqLiteInheritedData(element,name,value){if(element.nodeType == NODE_TYPE_DOCUMENT){element = element.documentElement;}var names=isArray(name)?name:[name];while(element) {for(var i=0,ii=names.length;i < ii;i++) {if((value = jqLite.data(element,names[i])) !== undefined)return value;}element = element.parentNode || element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host;}}function jqLiteEmpty(element){jqLiteDealoc(element,true);while(element.firstChild) {element.removeChild(element.firstChild);}}function jqLiteRemove(element,keepData){if(!keepData)jqLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element);}function jqLiteDocumentLoaded(action,win){win = win || window;if(win.document.readyState === 'complete'){win.setTimeout(action);}else {jqLite(win).on('load',action);}}var JQLitePrototype=JQLite.prototype = {ready:function ready(fn){var fired=false;function trigger(){if(fired)return;fired = true;fn();}if(document.readyState === 'complete'){setTimeout(trigger);}else {this.on('DOMContentLoaded',trigger);JQLite(window).on('load',trigger);}},toString:function toString(){var value=[];forEach(this,function(e){value.push('' + e);});return '[' + value.join(', ') + ']';},eq:function eq(index){return index >= 0?jqLite(this[index]):jqLite(this[this.length + index]);},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','),function(value){BOOLEAN_ATTR[lowercase(value)] = value;});var BOOLEAN_ELEMENTS={};forEach('input,select,option,textarea,button,form,details'.split(','),function(value){BOOLEAN_ELEMENTS[value] = true;});var ALIASED_ATTR={'ngMinlength':'minlength','ngMaxlength':'maxlength','ngMin':'min','ngMax':'max','ngPattern':'pattern'};function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;}function getAliasedAttrName(element,name){var nodeName=element.nodeName;return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name];}forEach({data:jqLiteData,removeData:jqLiteRemoveData},function(fn,name){JQLite[name] = fn;});forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function scope(element){return jqLite.data(element,'$scope') || jqLiteInheritedData(element.parentNode || element,['$isolateScope','$scope']);},isolateScope:function isolateScope(element){return jqLite.data(element,'$isolateScope') || jqLite.data(element,'$isolateScopeNoTemplate');},controller:jqLiteController,injector:function injector(element){return jqLiteInheritedData(element,'$injector');},removeAttr:function removeAttr(element,name){element.removeAttribute(name);},hasClass:jqLiteHasClass,css:function css(element,name,value){name = camelCase(name);if(isDefined(value)){element.style[name] = value;}else {return element.style[name];}},attr:function attr(element,name,value){var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name] = true;element.setAttribute(name,lowercasedName);}else {element[name] = false;element.removeAttribute(lowercasedName);}}else {return element[name] || (element.attributes.getNamedItem(name) || noop).specified?lowercasedName:undefined;}}else if(isDefined(value)){element.setAttribute(name,value);}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret === null?undefined:ret;}},prop:function prop(element,name,value){if(isDefined(value)){element[name] = value;}else {return element[name];}},text:(function(){getText.$dv = '';return getText;function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT?element.textContent:'';}element.textContent = value;}})(),val:function val(element,value){if(isUndefined(value)){if(element.multiple && nodeName_(element) === 'select'){var result=[];forEach(element.options,function(option){if(option.selected){result.push(option.value || option.text);}});return result.length === 0?null:result;}return element.value;}element.value = value;},html:function html(element,value){if(isUndefined(value)){return element.innerHTML;}jqLiteDealoc(element,true);element.innerHTML = value;},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name] = function(arg1,arg2){var i,key;var nodeCount=this.length;if(fn !== jqLiteEmpty && (fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)?arg1:arg2) === undefined){if(isObject(arg1)){for(i = 0;i < nodeCount;i++) {if(fn === jqLiteData){fn(this[i],arg1);}else {for(key in arg1) {fn(this[i],key,arg1[key]);}}}return this;}else {var value=fn.$dv;var jj=value === undefined?Math.min(nodeCount,1):nodeCount;for(var j=0;j < jj;j++) {var nodeValue=fn(this[j],arg1,arg2);value = value?value + nodeValue:nodeValue;}return value;}}else {for(i = 0;i < nodeCount;i++) {fn(this[i],arg1,arg2);}return this;}};});function createEventHandler(element,events){var eventHandler=function eventHandler(event,type){event.isDefaultPrevented = function(){return event.defaultPrevented;};var eventFns=events[type || event.type];var eventFnsLength=eventFns?eventFns.length:0;if(!eventFnsLength)return;if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation = function(){event.immediatePropagationStopped = true;if(event.stopPropagation){event.stopPropagation();}if(originalStopImmediatePropagation){originalStopImmediatePropagation.call(event);}};}event.isImmediatePropagationStopped = function(){return event.immediatePropagationStopped === true;};if(eventFnsLength > 1){eventFns = shallowCopy(eventFns);}for(var i=0;i < eventFnsLength;i++) {if(!event.isImmediatePropagationStopped()){eventFns[i].call(element,event);}}};eventHandler.elem = element;return eventHandler;}forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('onargs','jqLite#on() does not support the `selector` or `eventData` parameters');if(!jqLiteAcceptsData(element)){return;}var expandoStore=jqLiteExpandoStore(element,true);var events=expandoStore.events;var handle=expandoStore.handle;if(!handle){handle = expandoStore.handle = createEventHandler(element,events);}var types=type.indexOf(' ') >= 0?type.split(' '):[type];var i=types.length;while(i--) {type = types[i];var eventFns=events[type];if(!eventFns){events[type] = [];if(type === 'mouseenter' || type === 'mouseleave'){jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;if(!related || related !== target && !target.contains(related)){handle(event,type);}});}else {if(type !== '$destroy'){addEventListenerFn(element,type,handle);}}eventFns = events[type];}eventFns.push(fn);}},off:jqLiteOff,one:function one(element,type,fn){element = jqLite(element);element.on(type,function onFn(){element.off(type,fn);element.off(type,onFn);});element.on(type,fn);},replaceWith:function replaceWith(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling);}else {parent.replaceChild(node,element);}index = node;});},children:function children(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType === NODE_TYPE_ELEMENT)children.push(element);});return children;},contents:function contents(element){return element.contentDocument || element.childNodes || [];},append:function append(element,node){var nodeType=element.nodeType;if(nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT)return;node = new JQLite(node);for(var i=0,ii=node.length;i < ii;i++) {var child=node[i];element.appendChild(child);}},prepend:function prepend(element,node){if(element.nodeType === NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index);});}},wrap:function wrap(element,wrapNode){wrapNode = jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element);}wrapNode.appendChild(element);},remove:jqLiteRemove,detach:function detach(element){jqLiteRemove(element,true);},after:function after(element,newElement){var index=element,parent=element.parentNode;newElement = new JQLite(newElement);for(var i=0,ii=newElement.length;i < ii;i++) {var node=newElement[i];parent.insertBefore(node,index.nextSibling);index = node;}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function toggleClass(element,selector,condition){if(selector){forEach(selector.split(' '),function(className){var classCondition=condition;if(isUndefined(classCondition)){classCondition = !jqLiteHasClass(element,className);}(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className);});}},parent:function parent(element){var parent=element.parentNode;return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT?parent:null;},next:function next(element){return element.nextElementSibling;},find:function find(element,selector){if(element.getElementsByTagName){return element.getElementsByTagName(selector);}else {return [];}},clone:jqLiteClone,triggerHandler:function triggerHandler(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs;var eventName=event.type || event;var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var eventFns=events && events[eventName];if(eventFns){dummyEvent = {preventDefault:function preventDefault(){this.defaultPrevented = true;},isDefaultPrevented:function isDefaultPrevented(){return this.defaultPrevented === true;},stopImmediatePropagation:function stopImmediatePropagation(){this.immediatePropagationStopped = true;},isImmediatePropagationStopped:function isImmediatePropagationStopped(){return this.immediatePropagationStopped === true;},stopPropagation:noop,type:eventName,target:element};if(event.type){dummyEvent = extend(dummyEvent,event);}eventFnsCopy = shallowCopy(eventFns);handlerArgs = extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent];forEach(eventFnsCopy,function(fn){if(!dummyEvent.isImmediatePropagationStopped()){fn.apply(element,handlerArgs);}});}}},function(fn,name){JQLite.prototype[name] = function(arg1,arg2,arg3){var value;for(var i=0,ii=this.length;i < ii;i++) {if(isUndefined(value)){value = fn(this[i],arg1,arg2,arg3);if(isDefined(value)){value = jqLite(value);}}else {jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));}}return isDefined(value)?value:this;};JQLite.prototype.bind = JQLite.prototype.on;JQLite.prototype.unbind = JQLite.prototype.off;});function $$jqLiteProvider(){this.$get = function $$jqLite(){return extend(JQLite,{hasClass:function hasClass(node,classes){if(node.attr)node = node[0];return jqLiteHasClass(node,classes);},addClass:function addClass(node,classes){if(node.attr)node = node[0];return jqLiteAddClass(node,classes);},removeClass:function removeClass(node,classes){if(node.attr)node = node[0];return jqLiteRemoveClass(node,classes);}});};}function hashKey(obj,nextUidFn){var key=obj && obj.$$hashKey;if(key){if(typeof key === 'function'){key = obj.$$hashKey();}return key;}var objType=typeof obj;if(objType == 'function' || objType == 'object' && obj !== null){key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();}else {key = objType + ':' + obj;}return key;}function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid = function(){return ++uid;};}forEach(array,this.put,this);}HashMap.prototype = {put:function put(key,value){this[hashKey(key,this.nextUid)] = value;},get:function get(key){return this[hashKey(key,this.nextUid)];},remove:function remove(key){var value=this[key = hashKey(key,this.nextUid)];delete this[key];return value;}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;var $injectorMinErr=minErr('$injector');function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,''),args=fnText.match(FN_ARGS);if(args){return 'function(' + (args[1] || '').replace(/[\s\r\n]+/,' ') + ')';}return 'fn';}function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if(typeof fn === 'function'){if(!($inject = fn.$inject)){$inject = [];if(fn.length){if(strictDi){if(!isString(name) || !name){name = fn.name || anonFn(fn);}throw $injectorMinErr('strictdi','{0} is not using explicit annotation and cannot be invoked in strict mode',name);}fnText = fn.toString().replace(STRIP_COMMENTS,'');argDecl = fnText.match(FN_ARGS);forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name);});});}fn.$inject = $inject;}}else if(isArray(fn)){last = fn.length - 1;assertArgFn(fn[last],'fn');$inject = fn.slice(0,last);}else {assertArgFn(fn,'fn',true);}return $inject;}function createInjector(modulesToLoad,strictDi){strictDi = strictDi === true;var INSTANTIATING={},providerSuffix='Provider',path=[],loadedModules=new HashMap([],true),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector = createInternalInjector(providerCache,function(serviceName,caller){if(angular.isString(caller)){path.push(caller);}throw $injectorMinErr('unpr','Unknown provider: {0}',path.join(' <- '));}),instanceCache={},instanceInjector=instanceCache.$injector = createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName + providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName);});forEach(loadModules(modulesToLoad),function(fn){instanceInjector.invoke(fn || noop);});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate));}else {return delegate(key,value);}};}function provider(name,provider_){assertNotHasOwnProperty(name,'service');if(isFunction(provider_) || isArray(provider_)){provider_ = providerInjector.instantiate(provider_);}if(!provider_.$get){throw $injectorMinErr('pget','Provider \'{0}\' must define $get factory method.',name);}return providerCache[name + providerSuffix] = provider_;}function enforceReturnValue(name,factory){return function enforcedReturnValue(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result)){throw $injectorMinErr('undef','Provider \'{0}\' must return a value from $get factory method.',name);}return result;};}function factory(name,factoryFn,enforce){return provider(name,{$get:enforce !== false?enforceReturnValue(name,factoryFn):factoryFn});}function service(name,constructor){return factory(name,['$injector',function($injector){return $injector.instantiate(constructor);}]);}function value(name,val){return factory(name,valueFn(val),false);}function constant(name,value){assertNotHasOwnProperty(name,'constant');providerCache[name] = value;instanceCache[name] = value;}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName + providerSuffix),orig$get=origProvider.$get;origProvider.$get = function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance});};}function loadModules(modulesToLoad){var runBlocks=[],moduleFn;forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);function runInvokeQueue(queue){var i,ii;for(i = 0,ii = queue.length;i < ii;i++) {var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2]);}}try{if(isString(module)){moduleFn = angularModule(module);runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);runInvokeQueue(moduleFn._invokeQueue);runInvokeQueue(moduleFn._configBlocks);}else if(isFunction(module)){runBlocks.push(providerInjector.invoke(module));}else if(isArray(module)){runBlocks.push(providerInjector.invoke(module));}else {assertArgFn(module,'module');}}catch(e) {if(isArray(module)){module = module[module.length - 1];}if(e.message && e.stack && e.stack.indexOf(e.message) == -1){e = e.message + '\n' + e.stack;}throw $injectorMinErr('modulerr','Failed to instantiate module {0} due to:\n{1}',module,e.stack || e.message || e);}});return runBlocks;}function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName] === INSTANTIATING){throw $injectorMinErr('cdep','Circular dependency found: {0}',serviceName + ' <- ' + path.join(' <- '));}return cache[serviceName];}else {try{path.unshift(serviceName);cache[serviceName] = INSTANTIATING;return cache[serviceName] = factory(serviceName,caller);}catch(err) {if(cache[serviceName] === INSTANTIATING){delete cache[serviceName];}throw err;}finally {path.shift();}}}function invoke(fn,self,locals,serviceName){if(typeof locals === 'string'){serviceName = locals;locals = null;}var args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName),length,i,key;for(i = 0,length = $inject.length;i < length;i++) {key = $inject[i];if(typeof key !== 'string'){throw $injectorMinErr('itkn','Incorrect injection token! Expected service name as string, got {0}',key);}args.push(locals && locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName));}if(isArray(fn)){fn = fn[length];}return fn.apply(self,args);}function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length - 1]:Type).prototype || null);var returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue) || isFunction(returnedValue)?returnedValue:instance;}return {invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function has(name){return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);}};}}createInjector.$$annotate = annotate;function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling = function(){autoScrollingEnabled = false;};this.$get = ['$window','$location','$rootScope',function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=null;Array.prototype.some.call(list,function(element){if(nodeName_(element) === 'a'){result = element;return true;}});return result;}function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset)){offset = offset();}else if(isElement(offset)){var elem=offset[0];var style=$window.getComputedStyle(elem);if(style.position !== 'fixed'){offset = 0;}else {offset = elem.getBoundingClientRect().bottom;}}else if(!isNumber(offset)){offset = 0;}return offset;}function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop - offset);}}else {$window.scrollTo(0,0);}}function scroll(){var hash=$location.hash(),elm;if(!hash)scrollTo(null);else if(elm = document.getElementById(hash))scrollTo(elm);else if(elm = getFirstAnchor(document.getElementsByName(hash)))scrollTo(elm);else if(hash === 'top')scrollTo(null);}if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash();},function autoScrollWatchAction(newVal,oldVal){if(newVal === oldVal && newVal === '')return;jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll);});});}return scroll;}];}var $animateMinErr=minErr('$animate');var $AnimateProvider=['$provide',function($provide){this.$$selectors = {};this.register = function(name,factory){var key=name + '-animation';if(name && name.charAt(0) != '.')throw $animateMinErr('notcsel','Expecting class selector starting with \'.\' got \'{0}\'.',name);this.$$selectors[name.substr(1)] = key;$provide.factory(key,factory);};this.classNameFilter = function(expression){if(arguments.length === 1){this.$$classNameFilter = expression instanceof RegExp?expression:null;}return this.$$classNameFilter;};this.$get = ['$$q','$$asyncCallback','$rootScope',function($$q,$$asyncCallback,$rootScope){var currentDefer;function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();defer.promise.$$cancelFn = function ngAnimateMaybeCancel(){cancelFn && cancelFn();};$rootScope.$$postDigest(function ngAnimatePostDigest(){cancelFn = fn(function ngAnimateNotifyComplete(){defer.resolve();});});return defer.promise;}function resolveElementClasses(element,classes){var toAdd=[],toRemove=[];var hasClasses=createMap();forEach((element.attr('class') || '').split(/\s+/),function(className){hasClasses[className] = true;});forEach(classes,function(status,className){var hasClass=hasClasses[className];if(status === false && hasClass){toRemove.push(className);}else if(status === true && !hasClass){toAdd.push(className);}});return toAdd.length + toRemove.length > 0 && [toAdd.length?toAdd:null,toRemove.length?toRemove:null];}function cachedClassManipulation(cache,classes,op){for(var i=0,ii=classes.length;i < ii;++i) {var className=classes[i];cache[className] = op;}}function asyncPromise(){if(!currentDefer){currentDefer = $$q.defer();$$asyncCallback(function(){currentDefer.resolve();currentDefer = null;});}return currentDefer.promise;}function applyStyles(element,options){if(angular.isObject(options)){var styles=extend(options.from || {},options.to || {});element.css(styles);}}return {animate:function animate(element,from,to){applyStyles(element,{from:from,to:to});return asyncPromise();},enter:function enter(element,parent,after,options){applyStyles(element,options);after?after.after(element):parent.prepend(element);return asyncPromise();},leave:function leave(element,options){applyStyles(element,options);element.remove();return asyncPromise();},move:function move(element,parent,after,options){return this.enter(element,parent,after,options);},addClass:function addClass(element,className,options){return this.setClass(element,className,[],options);},$$addClassImmediately:function $$addClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteAddClass(element,className);});applyStyles(element,options);return asyncPromise();},removeClass:function removeClass(element,className,options){return this.setClass(element,[],className,options);},$$removeClassImmediately:function $$removeClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteRemoveClass(element,className);});applyStyles(element,options);return asyncPromise();},setClass:function setClass(element,add,remove,options){var self=this;var STORAGE_KEY='$$animateClasses';var createdCache=false;element = jqLite(element);var cache=element.data(STORAGE_KEY);if(!cache){cache = {classes:{},options:options};createdCache = true;}else if(options && cache.options){cache.options = angular.extend(cache.options || {},options);}var classes=cache.classes;add = isArray(add)?add:add.split(' ');remove = isArray(remove)?remove:remove.split(' ');cachedClassManipulation(classes,add,true);cachedClassManipulation(classes,remove,false);if(createdCache){cache.promise = runAnimationPostDigest(function(done){var cache=element.data(STORAGE_KEY);element.removeData(STORAGE_KEY);if(cache){var classes=resolveElementClasses(element,cache.classes);if(classes){self.$$setClassImmediately(element,classes[0],classes[1],cache.options);}}done();});element.data(STORAGE_KEY,cache);}return cache.promise;},$$setClassImmediately:function $$setClassImmediately(element,add,remove,options){add && this.$$addClassImmediately(element,add);remove && this.$$removeClassImmediately(element,remove);applyStyles(element,options);return asyncPromise();},enabled:noop,cancel:noop};}];}];function $$AsyncCallbackProvider(){this.$get = ['$$rAF','$timeout',function($$rAF,$timeout){return $$rAF.supported?function(fn){return $$rAF(fn);}:function(fn){return $timeout(fn,0,false);};}];}function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock = false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest = completeOutstandingRequest;self.$$incOutstandingRequestCount = function(){outstandingRequestCount++;};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1));}finally {outstandingRequestCount--;if(outstandingRequestCount === 0){while(outstandingRequestCallbacks.length) {try{outstandingRequestCallbacks.pop()();}catch(e) {$log.error(e);}}}}}function getHash(url){var index=url.indexOf('#');return index === -1?'':url.substr(index + 1);}self.notifyWhenNoOutstandingRequests = function(callback){forEach(pollFns,function(pollFn){pollFn();});if(outstandingRequestCount === 0){callback();}else {outstandingRequestCallbacks.push(callback);}};var pollFns=[],pollTimeout;self.addPollFn = function(fn){if(isUndefined(pollTimeout))startPoller(100,setTimeout);pollFns.push(fn);return fn;};function startPoller(interval,setTimeout){(function check(){forEach(pollFns,function(pollFn){pollFn();});pollTimeout = setTimeout(check,interval);})();}var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find('base'),reloadLocation=null;cacheState();lastHistoryState = cachedState;self.url = function(url,replace,state){if(isUndefined(state)){state = null;}if(location !== window.location)location = window.location;if(history !== window.history)history = window.history;if(url){var sameState=lastHistoryState === state;if(lastBrowserUrl === url && (!$sniffer.history || sameState)){return self;}var sameBase=lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);lastBrowserUrl = url;lastHistoryState = state;if($sniffer.history && (!sameBase || !sameState)){history[replace?'replaceState':'pushState'](state,'',url);cacheState();lastHistoryState = cachedState;}else {if(!sameBase){reloadLocation = url;}if(replace){location.replace(url);}else if(!sameBase){location.href = url;}else {location.hash = getHash(url);}}return self;}else {return reloadLocation || location.href.replace(/%27/g,'\'');}};self.state = function(){return cachedState;};var urlChangeListeners=[],urlChangeInit=false;function cacheStateAndFireUrlChange(){cacheState();fireUrlChange();}function getCurrentState(){try{return history.state;}catch(e) {}}var lastCachedState=null;function cacheState(){cachedState = getCurrentState();cachedState = isUndefined(cachedState)?null:cachedState;if(equals(cachedState,lastCachedState)){cachedState = lastCachedState;}lastCachedState = cachedState;}function fireUrlChange(){if(lastBrowserUrl === self.url() && lastHistoryState === cachedState){return;}lastBrowserUrl = self.url();lastHistoryState = cachedState;forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState);});}self.onUrlChange = function(callback){if(!urlChangeInit){if($sniffer.history)jqLite(window).on('popstate',cacheStateAndFireUrlChange);jqLite(window).on('hashchange',cacheStateAndFireUrlChange);urlChangeInit = true;}urlChangeListeners.push(callback);return callback;};self.$$checkUrlChange = fireUrlChange;self.baseHref = function(){var href=baseElement.attr('href');return href?href.replace(/^(https?\:)?\/\/[^\/]*/,''):'';};var lastCookies={};var lastCookieString='';var cookiePath=self.baseHref();function safeDecodeURIComponent(str){try{return decodeURIComponent(str);}catch(e) {return str;}}self.cookies = function(name,value){var cookieLength,cookieArray,cookie,i,index;if(name){if(value === undefined){rawDocument.cookie = encodeURIComponent(name) + '=;path=' + cookiePath + ';expires=Thu, 01 Jan 1970 00:00:00 GMT';}else {if(isString(value)){cookieLength = (rawDocument.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=' + cookiePath).length + 1;if(cookieLength > 4096){$log.warn('Cookie \'' + name + '\' possibly not set or overflowed because it was too large (' + cookieLength + ' > 4096 bytes)!');}}}}else {if(rawDocument.cookie !== lastCookieString){lastCookieString = rawDocument.cookie;cookieArray = lastCookieString.split('; ');lastCookies = {};for(i = 0;i < cookieArray.length;i++) {cookie = cookieArray[i];index = cookie.indexOf('=');if(index > 0){name = safeDecodeURIComponent(cookie.substring(0,index));if(lastCookies[name] === undefined){lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));}}}}return lastCookies;}};self.defer = function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId = setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn);},delay || 0);pendingDeferIds[timeoutId] = true;return timeoutId;};self.defer.cancel = function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true;}return false;};}function $BrowserProvider(){this.$get = ['$window','$log','$sniffer','$document',function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer);}];}function $CacheFactoryProvider(){this.$get = function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw minErr('$cacheFactory')('iid','CacheId \'{0}\' is already taken!',cacheId);}var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options && options.capacity || Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId] = {put:function put(key,value){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key] || (lruHash[key] = {key:key});refresh(lruEntry);}if(isUndefined(value))return;if(!(key in data))size++;data[key] = value;if(size > capacity){this.remove(staleEnd.key);}return value;},get:function get(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);}return data[key];},remove:function remove(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry == freshEnd)freshEnd = lruEntry.p;if(lruEntry == staleEnd)staleEnd = lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];}delete data[key];size--;},removeAll:function removeAll(){data = {};size = 0;lruHash = {};freshEnd = staleEnd = null;},destroy:function destroy(){data = null;stats = null;lruHash = null;delete caches[cacheId];},info:function info(){return extend({},stats,{size:size});}};function refresh(entry){if(entry != freshEnd){if(!staleEnd){staleEnd = entry;}else if(staleEnd == entry){staleEnd = entry.n;}link(entry.n,entry.p);link(entry,freshEnd);freshEnd = entry;freshEnd.n = null;}}function link(nextEntry,prevEntry){if(nextEntry != prevEntry){if(nextEntry)nextEntry.p = prevEntry;if(prevEntry)prevEntry.n = nextEntry;}}}cacheFactory.info = function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId] = cache.info();});return info;};cacheFactory.get = function(cacheId){return caches[cacheId];};return cacheFactory;};}function $TemplateCacheProvider(){this.$get = ['$cacheFactory',function($cacheFactory){return $cacheFactory('templates');}];}var $compileMinErr=minErr('$compile');$CompileProvider.$inject = ['$provide','$$sanitizeUriProvider'];function $CompileProvider($provide,$$sanitizeUriProvider){var hasDirectives={},Suffix='Directive',COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap('ngSrc,ngSrcset,src,srcset'),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/;var EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;function parseIsolateBindings(scope,directiveName){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;var bindings={};forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match){throw $compileMinErr('iscp','Invalid isolate scope definition for directive \'{0}\'.' + ' Definition: {... {1}: \'{2}\' ...}',directiveName,scopeName,definition);}bindings[scopeName] = {mode:match[1][0],collection:match[2] === '*',optional:match[3] === '?',attrName:match[4] || scopeName};});return bindings;}this.directive = function registerDirective(name,directiveFactory){assertNotHasOwnProperty(name,'directive');if(isString(name)){assertArg(directiveFactory,'directiveFactory');if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name] = [];$provide.factory(name + Suffix,['$injector','$exceptionHandler',function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive = {compile:valueFn(directive)};}else if(!directive.compile && directive.link){directive.compile = valueFn(directive.link);}directive.priority = directive.priority || 0;directive.index = index;directive.name = directive.name || name;directive.require = directive.require || directive.controller && directive.name;directive.restrict = directive.restrict || 'EA';if(isObject(directive.scope)){directive.$$isolateBindings = parseIsolateBindings(directive.scope,directive.name);}directives.push(directive);}catch(e) {$exceptionHandler(e);}});return directives;}]);}hasDirectives[name].push(directiveFactory);}else {forEach(name,reverseParams(registerDirective));}return this;};this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.aHrefSanitizationWhitelist();}};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();}};var debugInfoEnabled=true;this.debugInfoEnabled = function(enabled){if(isDefined(enabled)){debugInfoEnabled = enabled;return this;}return debugInfoEnabled;};this.$get = ['$injector','$interpolate','$exceptionHandler','$templateRequest','$parse','$controller','$rootScope','$document','$sce','$animate','$$sanitizeUri',function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){var Attributes=function Attributes(element,attributesToCopy){if(attributesToCopy){var keys=Object.keys(attributesToCopy);var i,l,key;for(i = 0,l = keys.length;i < l;i++) {key = keys[i];this[key] = attributesToCopy[key];}}else {this.$attr = {};}this.$$element = element;};Attributes.prototype = {$normalize:directiveNormalize,$addClass:function $addClass(classVal){if(classVal && classVal.length > 0){$animate.addClass(this.$$element,classVal);}},$removeClass:function $removeClass(classVal){if(classVal && classVal.length > 0){$animate.removeClass(this.$$element,classVal);}},$updateClass:function $updateClass(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);if(toAdd && toAdd.length){$animate.addClass(this.$$element,toAdd);}var toRemove=tokenDifference(oldClasses,newClasses);if(toRemove && toRemove.length){$animate.removeClass(this.$$element,toRemove);}},$set:function $set(key,value,writeAttr,attrName){var node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(node,key),observer=key,nodeName;if(booleanKey){this.$$element.prop(key,value);attrName = booleanKey;}else if(aliasedKey){this[aliasedKey] = value;observer = aliasedKey;}this[key] = value;if(attrName){this.$attr[key] = attrName;}else {attrName = this.$attr[key];if(!attrName){this.$attr[key] = attrName = snake_case(key,'-');}}nodeName = nodeName_(this.$$element);if(nodeName === 'a' && key === 'href' || nodeName === 'img' && key === 'src'){this[key] = value = $$sanitizeUri(value,key === 'src');}else if(nodeName === 'img' && key === 'srcset'){var result='';var trimmedSrcset=trim(value);var srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/;var pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/;var rawUris=trimmedSrcset.split(pattern);var nbrUrisWith2parts=Math.floor(rawUris.length / 2);for(var i=0;i < nbrUrisWith2parts;i++) {var innerIdx=i * 2;result += $$sanitizeUri(trim(rawUris[innerIdx]),true);result += ' ' + trim(rawUris[innerIdx + 1]);}var lastTuple=trim(rawUris[i * 2]).split(/\s/);result += $$sanitizeUri(trim(lastTuple[0]),true);if(lastTuple.length === 2){result += ' ' + trim(lastTuple[1]);}this[key] = value = result;}if(writeAttr !== false){if(value === null || value === undefined){this.$$element.removeAttr(attrName);}else {this.$$element.attr(attrName,value);}}var $$observers=this.$$observers;$$observers && forEach($$observers[observer],function(fn){try{fn(value);}catch(e) {$exceptionHandler(e);}});},$observe:function $observe(key,fn){var attrs=this,$$observers=attrs.$$observers || (attrs.$$observers = createMap()),listeners=$$observers[key] || ($$observers[key] = []);listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter && attrs.hasOwnProperty(key)){fn(attrs[key]);}});return function(){arrayRemove(listeners,fn);};}};function safeAddClass($element,className){try{$element.addClass(className);}catch(e) {}}var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=startSymbol == '{{' || endSymbol == '}}'?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol);},NG_ATTR_BINDING=/^ngAttr[A-Z]/;compile.$$addBindingInfo = debugInfoEnabled?function $$addBindingInfo($element,binding){var bindings=$element.data('$binding') || [];if(isArray(binding)){bindings = bindings.concat(binding);}else {bindings.push(binding);}$element.data('$binding',bindings);}:noop;compile.$$addBindingClass = debugInfoEnabled?function $$addBindingClass($element){safeAddClass($element,'ng-binding');}:noop;compile.$$addScopeInfo = debugInfoEnabled?function $$addScopeInfo($element,scope,isolated,noTemplate){var dataName=isolated?noTemplate?'$isolateScopeNoTemplate':'$isolateScope':'$scope';$element.data(dataName,scope);}:noop;compile.$$addScopeClass = debugInfoEnabled?function $$addScopeClass($element,isolated){safeAddClass($element,isolated?'ng-isolate-scope':'ng-scope');}:noop;return compile;function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){if(!($compileNodes instanceof jqLite)){$compileNodes = jqLite($compileNodes);}forEach($compileNodes,function(node,index){if(node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/)){$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function publicLinkFn(scope,cloneConnectFn,options){assertArg(scope,'scope');options = options || {};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;if(parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude){parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude;}if(!namespace){namespace = detectNamespaceForChildElements(futureParentElement);}var $linkNode;if(namespace !== 'html'){$linkNode = jqLite(wrapTemplate(namespace,jqLite('<div>').append($compileNodes).html()));}else if(cloneConnectFn){$linkNode = JQLitePrototype.clone.call($compileNodes);}else {$linkNode = $compileNodes;}if(transcludeControllers){for(var controllerName in transcludeControllers) {$linkNode.data('$' + controllerName + 'Controller',transcludeControllers[controllerName].instance);}}compile.$$addScopeInfo($linkNode,scope);if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn);return $linkNode;};}function detectNamespaceForChildElements(parentElement){var node=parentElement && parentElement[0];if(!node){return 'html';}else {return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/)?'svg':'html';}}function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){var linkFns=[],attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound;for(var i=0;i < nodeList.length;i++) {attrs = new Attributes();directives = collectDirectives(nodeList[i],[],attrs,i === 0?maxPriority:undefined,ignoreDirective);nodeLinkFn = directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null;if(nodeLinkFn && nodeLinkFn.scope){compile.$$addScopeClass(attrs.$$element);}childLinkFn = nodeLinkFn && nodeLinkFn.terminal || !(childNodes = nodeList[i].childNodes) || !childNodes.length?null:compileNodes(childNodes,nodeLinkFn?(nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) && nodeLinkFn.transclude:transcludeFn);if(nodeLinkFn || childLinkFn){linkFns.push(i,nodeLinkFn,childLinkFn);linkFnFound = true;nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn;}previousCompileContext = null;}return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn;var stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;stableNodeList = new Array(nodeListLength);for(i = 0;i < linkFns.length;i += 3) {idx = linkFns[i];stableNodeList[idx] = nodeList[idx];}}else {stableNodeList = nodeList;}for(i = 0,ii = linkFns.length;i < ii;) {node = stableNodeList[linkFns[i++]];nodeLinkFn = linkFns[i++];childLinkFn = linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope = scope.$new();compile.$$addScopeInfo(jqLite(node),childScope);}else {childScope = scope;}if(nodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn,nodeLinkFn.elementTranscludeOnThisElement);}else if(!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn){childBoundTranscludeFn = parentBoundTranscludeFn;}else if(!parentBoundTranscludeFn && transcludeFn){childBoundTranscludeFn = createBoundTranscludeFn(scope,transcludeFn);}else {childBoundTranscludeFn = null;}nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn);}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn);}}}}function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn,elementTransclusion){var boundTranscludeFn=function boundTranscludeFn(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){if(!transcludedScope){transcludedScope = scope.$new(false,containingScope);transcludedScope.$$transcluded = true;}return transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement});};return boundTranscludeFn;}function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),'E',maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs && nAttrs.length;j < jj;j++) {var attrStartName=false;var attrEndName=false;attr = nAttrs[j];name = attr.name;value = trim(attr.value);ngAttrName = directiveNormalize(name);if(isNgAttr = NG_ATTR_BINDING.test(ngAttrName)){name = name.replace(PREFIX_REGEXP,'').substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase();});}var directiveNName=ngAttrName.replace(/(Start|End)$/,'');if(directiveIsMultiElement(directiveNName)){if(ngAttrName === directiveNName + 'Start'){attrStartName = name;attrEndName = name.substr(0,name.length - 5) + 'end';name = name.substr(0,name.length - 6);}}nName = directiveNormalize(name.toLowerCase());attrsMap[nName] = name;if(isNgAttr || !attrs.hasOwnProperty(nName)){attrs[nName] = value;if(getBooleanAttrName(node,nName)){attrs[nName] = true;}}addAttrInterpolateDirective(node,directives,value,nName,isNgAttr);addDirective(directives,nName,'A',maxPriority,ignoreDirective,attrStartName,attrEndName);}className = node.className;if(isObject(className)){className = className.animVal;}if(isString(className) && className !== ''){while(match = CLASS_DIRECTIVE_REGEXP.exec(className)) {nName = directiveNormalize(match[2]);if(addDirective(directives,nName,'C',maxPriority,ignoreDirective)){attrs[nName] = trim(match[3]);}className = className.substr(match.index + match[0].length);}}break;case NODE_TYPE_TEXT:addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);if(match){nName = directiveNormalize(match[1]);if(addDirective(directives,nName,'M',maxPriority,ignoreDirective)){attrs[nName] = trim(match[2]);}}}catch(e) {}break;}directives.sort(byPriority);return directives;}function groupScan(node,attrStart,attrEnd){var nodes=[];var depth=0;if(attrStart && node.hasAttribute && node.hasAttribute(attrStart)){do {if(!node){throw $compileMinErr('uterdir','Unterminated attribute, found \'{0}\' but no matching \'{1}\' found.',attrStart,attrEnd);}if(node.nodeType == NODE_TYPE_ELEMENT){if(node.hasAttribute(attrStart))depth++;if(node.hasAttribute(attrEnd))depth--;}nodes.push(node);node = node.nextSibling;}while(depth > 0);}else {nodes.push(node);}return jqLite(nodes);}function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){element = groupScan(element[0],attrStart,attrEnd);return linkFn(scope,element,attrs,controllers,transcludeFn);};}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){previousCompileContext = previousCompileContext || {};var terminalPriority=-Number.MAX_VALUE,newScopeDirective,controllerDirectives=previousCompileContext.controllerDirectives,controllers,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=false,hasTemplate=false,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element = jqLite(compileNode),directive,directiveName,$template,replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,linkFn,directiveValue;for(var i=0,ii=directives.length;i < ii;i++) {directive = directives[i];var attrStart=directive.$$start;var attrEnd=directive.$$end;if(attrStart){$compileNode = groupScan(compileNode,attrStart,attrEnd);}$template = undefined;if(terminalPriority > directive.priority){break;}if(directiveValue = directive.scope){if(!directive.templateUrl){if(isObject(directiveValue)){assertNoDuplicate('new/isolated scope',newIsolateScopeDirective || newScopeDirective,directive,$compileNode);newIsolateScopeDirective = directive;}else {assertNoDuplicate('new/isolated scope',newIsolateScopeDirective,directive,$compileNode);}}newScopeDirective = newScopeDirective || directive;}directiveName = directive.name;if(!directive.templateUrl && directive.controller){directiveValue = directive.controller;controllerDirectives = controllerDirectives || {};assertNoDuplicate('\'' + directiveName + '\' controller',controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName] = directive;}if(directiveValue = directive.transclude){hasTranscludeDirective = true;if(!directive.$$tlb){assertNoDuplicate('transclusion',nonTlbTranscludeDirective,directive,$compileNode);nonTlbTranscludeDirective = directive;}if(directiveValue == 'element'){hasElementTranscludeDirective = true;terminalPriority = directive.priority;$template = $compileNode;$compileNode = templateAttrs.$$element = jqLite(document.createComment(' ' + directiveName + ': ' + templateAttrs[directiveName] + ' '));compileNode = $compileNode[0];replaceWith(jqCollection,sliceArgs($template),compileNode);childTranscludeFn = compile($template,transcludeFn,terminalPriority,replaceDirective && replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective});}else {$template = jqLite(jqLiteClone(compileNode)).contents();$compileNode.empty();childTranscludeFn = compile($template,transcludeFn);}}if(directive.template){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;directiveValue = isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template;directiveValue = denormalizeTemplate(directiveValue);if(directive.replace){replaceDirective = directive;if(jqLiteIsTextNode(directiveValue)){$template = [];}else {$template = removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',directiveName,'');}replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};var templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs);var unprocessedDirectives=directives.splice(i + 1,directives.length - (i + 1));if(newIsolateScopeDirective){markDirectivesAsIsolate(templateDirectives);}directives = directives.concat(templateDirectives).concat(unprocessedDirectives);mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii = directives.length;}else {$compileNode.html(directiveValue);}}if(directive.templateUrl){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;if(directive.replace){replaceDirective = directive;}nodeLinkFn = compileTemplateUrl(directives.splice(i,directives.length - i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective && childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective});ii = directives.length;}else if(directive.compile){try{linkFn = directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn,attrStart,attrEnd);}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd);}}catch(e) {$exceptionHandler(e,startingTag($compileNode));}}if(directive.terminal){nodeLinkFn.terminal = true;terminalPriority = Math.max(terminalPriority,directive.priority);}}nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;nodeLinkFn.templateOnThisElement = hasTemplate;nodeLinkFn.transclude = childTranscludeFn;previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;return nodeLinkFn;function addLinkFns(pre,post,attrStart,attrEnd){if(pre){if(attrStart)pre = groupElementsLinkFnWrapper(pre,attrStart,attrEnd);pre.require = directive.require;pre.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){pre = cloneAndAnnotateFn(pre,{isolateScope:true});}preLinkFns.push(pre);}if(post){if(attrStart)post = groupElementsLinkFnWrapper(post,attrStart,attrEnd);post.require = directive.require;post.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){post = cloneAndAnnotateFn(post,{isolateScope:true});}postLinkFns.push(post);}}function getControllers(directiveName,require,$element,elementControllers){var value,retrievalMethod='data',optional=false;var $searchElement=$element;var match;if(isString(require)){match = require.match(REQUIRE_PREFIX_REGEXP);require = require.substring(match[0].length);if(match[3]){if(match[1])match[3] = null;else match[1] = match[3];}if(match[1] === '^'){retrievalMethod = 'inheritedData';}else if(match[1] === '^^'){retrievalMethod = 'inheritedData';$searchElement = $element.parent();}if(match[2] === '?'){optional = true;}value = null;if(elementControllers && retrievalMethod === 'data'){if(value = elementControllers[require]){value = value.instance;}}value = value || $searchElement[retrievalMethod]('$' + require + 'Controller');if(!value && !optional){throw $compileMinErr('ctreq','Controller \'{0}\', required by directive \'{1}\', can\'t be found!',require,directiveName);}return value || null;}else if(isArray(require)){value = [];forEach(require,function(require){value.push(getControllers(directiveName,require,$element,elementControllers));});}return value;}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode === linkNode){attrs = templateAttrs;$element = templateAttrs.$$element;}else {$element = jqLite(linkNode);attrs = new Attributes($element,templateAttrs);}if(newIsolateScopeDirective){isolateScope = scope.$new(true);}if(boundTranscludeFn){transcludeFn = controllersBoundTransclude;transcludeFn.$$boundTransclude = boundTranscludeFn;}if(controllerDirectives){controllers = {};elementControllers = {};forEach(controllerDirectives,function(directive){var locals={$scope:directive === newIsolateScopeDirective || directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn},controllerInstance;controller = directive.controller;if(controller == '@'){controller = attrs[directive.name];}controllerInstance = $controller(controller,locals,true,directive.controllerAs);elementControllers[directive.name] = controllerInstance;if(!hasElementTranscludeDirective){$element.data('$' + directive.name + 'Controller',controllerInstance.instance);}controllers[directive.name] = controllerInstance;});}if(newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,true,!(templateDirective && (templateDirective === newIsolateScopeDirective || templateDirective === newIsolateScopeDirective.$$originalDirective)));compile.$$addScopeClass($element,true);var isolateScopeController=controllers && controllers[newIsolateScopeDirective.name];var isolateBindingContext=isolateScope;if(isolateScopeController && isolateScopeController.identifier && newIsolateScopeDirective.bindToController === true){isolateBindingContext = isolateScopeController.instance;}forEach(isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings,function(definition,scopeName){var attrName=definition.attrName,optional=definition.optional,mode=definition.mode,lastValue,parentGet,parentSet,compare;switch(mode){case '@':attrs.$observe(attrName,function(value){isolateBindingContext[scopeName] = value;});attrs.$$observers[attrName].$$scope = scope;if(attrs[attrName]){isolateBindingContext[scopeName] = $interpolate(attrs[attrName])(scope);}break;case '=':if(optional && !attrs[attrName]){return;}parentGet = $parse(attrs[attrName]);if(parentGet.literal){compare = equals;}else {compare = function(a,b){return a === b || a !== a && b !== b;};}parentSet = parentGet.assign || function(){lastValue = isolateBindingContext[scopeName] = parentGet(scope);throw $compileMinErr('nonassign','Expression \'{0}\' used with directive \'{1}\' is non-assignable!',attrs[attrName],newIsolateScopeDirective.name);};lastValue = isolateBindingContext[scopeName] = parentGet(scope);var parentValueWatch=function parentValueWatch(parentValue){if(!compare(parentValue,isolateBindingContext[scopeName])){if(!compare(parentValue,lastValue)){isolateBindingContext[scopeName] = parentValue;}else {parentSet(scope,parentValue = isolateBindingContext[scopeName]);}}return lastValue = parentValue;};parentValueWatch.$stateful = true;var unwatch;if(definition.collection){unwatch = scope.$watchCollection(attrs[attrName],parentValueWatch);}else {unwatch = scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal);}isolateScope.$on('$destroy',unwatch);break;case '&':parentGet = $parse(attrs[attrName]);isolateBindingContext[scopeName] = function(locals){return parentGet(scope,locals);};break;}});}if(controllers){forEach(controllers,function(controller){controller();});controllers = null;}for(i = 0,ii = preLinkFns.length;i < ii;i++) {linkFn = preLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}var scopeToChild=scope;if(newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)){scopeToChild = isolateScope;}childLinkFn && childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn);for(i = postLinkFns.length - 1;i >= 0;i--) {linkFn = postLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;if(!isScope(scope)){futureParentElement = cloneAttachFn;cloneAttachFn = scope;scope = undefined;}if(hasElementTranscludeDirective){transcludeControllers = elementControllers;}if(!futureParentElement){futureParentElement = hasElementTranscludeDirective?$element.parent():$element;}return boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild);}}}function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;j < jj;j++) {directives[j] = inherit(directives[j],{$$isolateScope:true});}}function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name === ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {try{directive = directives[i];if((maxPriority === undefined || maxPriority > directive.priority) && directive.restrict.indexOf(location) != -1){if(startAttrName){directive = inherit(directive,{$$start:startAttrName,$$end:endAttrName});}tDirectives.push(directive);match = directive;}}catch(e) {$exceptionHandler(e);}}}return match;}function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {directive = directives[i];if(directive.multiElement){return true;}}}return false;}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0) != '$'){if(src[key] && src[key] !== value){value += (key === 'style'?';':' ') + src[key];}dst.$set(key,value,true,srcAttr[key]);}});forEach(src,function(value,key){if(key == 'class'){safeAddClass($element,value);dst['class'] = (dst['class']?dst['class'] + ' ':'') + value;}else if(key == 'style'){$element.attr('style',$element.attr('style') + ';' + value);dst['style'] = (dst['style']?dst['style'] + ';':'') + value;}else if(key.charAt(0) != '$' && !dst.hasOwnProperty(key)){dst[key] = value;dstAttr[key] = srcAttr[key];}});}function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var linkQueue=[],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;$compileNode.empty();$templateRequest($sce.getTrustedResourceUrl(templateUrl)).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;content = denormalizeTemplate(content);if(origAsyncDirective.replace){if(jqLiteIsTextNode(content)){$template = [];}else {$template = removeComments(wrapTemplate(templateNamespace,trim(content)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',origAsyncDirective.name,templateUrl);}tempTemplateAttrs = {$attr:{}};replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);if(isObject(origAsyncDirective.scope)){markDirectivesAsIsolate(templateDirectives);}directives = templateDirectives.concat(directives);mergeTemplateAttributes(tAttrs,tempTemplateAttrs);}else {compileNode = beforeTemplateCompileNode;$compileNode.html(content);}directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn = applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext);forEach($rootElement,function(node,i){if(node == compileNode){$rootElement[i] = $compileNode[0];}});afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length) {var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];if(scope.$$destroyed)continue;if(beforeTemplateLinkNode !== beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;if(!(previousCompileContext.hasElementTranscludeDirective && origAsyncDirective.replace)){linkNode = jqLiteClone(compileNode);}replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode);safeAddClass(jqLite(linkNode),oldClasses);}if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}else {childBoundTranscludeFn = boundTranscludeFn;}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn);}linkQueue = null;});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;if(scope.$$destroyed)return;if(linkQueue){linkQueue.push(scope,node,rootElement,childBoundTranscludeFn);}else {if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn);}};}function byPriority(a,b){var diff=b.priority - a.priority;if(diff !== 0)return diff;if(a.name !== b.name)return a.name < b.name?-1:1;return a.index - b.index;}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective){throw $compileMinErr('multidir','Multiple directives [{0}, {1}] asking for {2} on: {3}',previousDirective.name,directive.name,what,startingTag(element));}}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:function textInterpolateCompileFn(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;if(hasCompileParent)compile.$$addBindingClass(templateNodeParent);return function textInterpolateLinkFn(scope,node){var parent=node.parent();if(!hasCompileParent)compile.$$addBindingClass(parent);compile.$$addBindingInfo(parent,interpolateFn.expressions);scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue = value;});};}});}}function wrapTemplate(type,template){type = lowercase(type || 'html');switch(type){case 'svg':case 'math':var wrapper=document.createElement('div');wrapper.innerHTML = '<' + type + '>' + template + '</' + type + '>';return wrapper.childNodes[0].childNodes;default:return template;}}function getTrustedContext(node,attrNormalizedName){if(attrNormalizedName == 'srcdoc'){return $sce.HTML;}var tag=nodeName_(node);if(attrNormalizedName == 'xlinkHref' || tag == 'form' && attrNormalizedName == 'action' || tag != 'img' && (attrNormalizedName == 'src' || attrNormalizedName == 'ngSrc')){return $sce.RESOURCE_URL;}}function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing;var interpolateFn=$interpolate(value,true,trustedContext,allOrNothing);if(!interpolateFn)return;if(name === 'multiple' && nodeName_(node) === 'select'){throw $compileMinErr('selmulti','Binding to the \'multiple\' attribute is not supported. Element: {0}',startingTag(node));}directives.push({priority:100,compile:function compile(){return {pre:function attrInterpolatePreLinkFn(scope,element,attr){var $$observers=attr.$$observers || (attr.$$observers = {});if(EVENT_HANDLER_ATTR_REGEXP.test(name)){throw $compileMinErr('nodomevents','Interpolations for HTML DOM event attributes are disallowed. Please use the ' + 'ng- versions (such as ng-click instead of onclick) instead.');}var newValue=attr[name];if(newValue !== value){interpolateFn = newValue && $interpolate(newValue,true,trustedContext,allOrNothing);value = newValue;}if(!interpolateFn)return;attr[name] = interpolateFn(scope);($$observers[name] || ($$observers[name] = [])).$$inter = true;(attr.$$observers && attr.$$observers[name].$$scope || scope).$watch(interpolateFn,function interpolateFnWatchAction(newValue,oldValue){if(name === 'class' && newValue != oldValue){attr.$updateClass(newValue,oldValue);}else {attr.$set(name,newValue);}});}};}});}function replaceWith($rootElement,elementsToRemove,newNode){var firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode,i,ii;if($rootElement){for(i = 0,ii = $rootElement.length;i < ii;i++) {if($rootElement[i] == firstElementToRemove){$rootElement[i++] = newNode;for(var j=i,j2=j + removeCount - 1,jj=$rootElement.length;j < jj;j++,j2++) {if(j2 < jj){$rootElement[j] = $rootElement[j2];}else {delete $rootElement[j];}}$rootElement.length -= removeCount - 1;if($rootElement.context === firstElementToRemove){$rootElement.context = newNode;}break;}}}if(parent){parent.replaceChild(newNode,firstElementToRemove);}var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove);jqLite(newNode).data(jqLite(firstElementToRemove).data());if(!jQuery){delete jqLite.cache[firstElementToRemove[jqLite.expando]];}else {skipDestroyOnNextJQueryCleanData = true;jQuery.cleanData([firstElementToRemove]);}for(var k=1,kk=elementsToRemove.length;k < kk;k++) {var element=elementsToRemove[k];jqLite(element).remove();fragment.appendChild(element);delete elementsToRemove[k];}elementsToRemove[0] = newNode;elementsToRemove.length = 1;}function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments);},fn,annotation);}function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn);}catch(e) {$exceptionHandler(e,startingTag($element));}}}];}var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,''));}function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}function tokenDifference(str1,str2){var values='',tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values += (values.length > 0?' ':'') + token;}return values;}function removeComments(jqNodes){jqNodes = jqLite(jqNodes);var i=jqNodes.length;if(i <= 1){return jqNodes;}while(i--) {var node=jqNodes[i];if(node.nodeType === NODE_TYPE_COMMENT){splice.call(jqNodes,i,1);}}return jqNodes;}var $controllerMinErr=minErr('$controller');function $ControllerProvider(){var controllers={},globals=false,CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;this.register = function(name,constructor){assertNotHasOwnProperty(name,'controller');if(isObject(name)){extend(controllers,name);}else {controllers[name] = constructor;}};this.allowGlobals = function(){globals = true;};this.$get = ['$injector','$window',function($injector,$window){return function(expression,locals,later,ident){var instance,match,constructor,identifier;later = later === true;if(ident && isString(ident)){identifier = ident;}if(isString(expression)){match = expression.match(CNTRL_REG);if(!match){throw $controllerMinErr('ctrlfmt','Badly formed controller string \'{0}\'. ' + 'Must match `__name__ as __id__` or `__name__`.',expression);}constructor = match[1],identifier = identifier || match[3];expression = controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true) || (globals?getter($window,constructor,true):undefined);assertArgFn(expression,constructor,true);}if(later){var controllerPrototype=(isArray(expression)?expression[expression.length - 1]:expression).prototype;instance = Object.create(controllerPrototype || null);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return extend(function(){$injector.invoke(expression,instance,locals,constructor);return instance;},{instance:instance,identifier:identifier});}instance = $injector.instantiate(expression,locals,constructor);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return instance;};function addIdentifier(locals,identifier,instance,name){if(!(locals && isObject(locals.$scope))){throw minErr('$controller')('noscp','Cannot export controller \'{0}\' as \'{1}\'! No $scope object provided via `locals`.',name,identifier);}locals.$scope[identifier] = instance;}}];}function $DocumentProvider(){this.$get = ['$window',function(window){return jqLite(window.document);}];}function $ExceptionHandlerProvider(){this.$get = ['$log',function($log){return function(exception,cause){$log.error.apply($log,arguments);};}];}var APPLICATION_JSON='application/json';var CONTENT_TYPE_APPLICATION_JSON={'Content-Type':APPLICATION_JSON + ';charset=utf-8'};var JSON_START=/^\[|^\{(?!\{)/;var JSON_ENDS={'[':/]$/,'{':/}$/};var JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/;function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,'').trim();if(tempData){var contentType=headers('Content-Type');if(contentType && contentType.indexOf(APPLICATION_JSON) === 0 || isJsonLike(tempData)){data = fromJson(tempData);}}}return data;}function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart && JSON_ENDS[jsonStart[0]].test(str);}function parseHeaders(headers){var parsed=createMap(),key,val,i;if(!headers)return parsed;forEach(headers.split('\n'),function(line){i = line.indexOf(':');key = lowercase(trim(line.substr(0,i)));val = trim(line.substr(i + 1));if(key){parsed[key] = parsed[key]?parsed[key] + ', ' + val:val;}});return parsed;}function headersGetter(headers){var headersObj=isObject(headers)?headers:undefined;return function(name){if(!headersObj)headersObj = parseHeaders(headers);if(name){var value=headersObj[lowercase(name)];if(value === void 0){value = null;}return value;}return headersObj;};}function transformData(data,headers,status,fns){if(isFunction(fns))return fns(data,headers,status);forEach(fns,function(fn){data = fn(data,headers,status);});return data;}function isSuccess(status){return 200 <= status && status < 300;}function $HttpProvider(){var defaults=this.defaults = {transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d)?toJson(d):d;}],headers:{common:{'Accept':'application/json, text/plain, */*'},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:'XSRF-TOKEN',xsrfHeaderName:'X-XSRF-TOKEN'};var useApplyAsync=false;this.useApplyAsync = function(value){if(isDefined(value)){useApplyAsync = !!value;return this;}return useApplyAsync;};var interceptorFactories=this.interceptors = [];this.$get = ['$httpBackend','$browser','$cacheFactory','$rootScope','$q','$injector',function($httpBackend,$browser,$cacheFactory,$rootScope,$q,$injector){var defaultCache=$cacheFactory('$http');var reversedInterceptors=[];forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory));});function $http(requestConfig){if(!angular.isObject(requestConfig)){throw minErr('$http')('badreq','Http request configuration must be an object. Received: {0}',requestConfig);}var config=extend({method:'get',transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse},requestConfig);config.headers = mergeHeaders(requestConfig);config.method = uppercase(config.method);var serverRequest=function serverRequest(config){var headers=config.headers;var reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);if(isUndefined(reqData)){forEach(headers,function(value,header){if(lowercase(header) === 'content-type'){delete headers[header];}});}if(isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)){config.withCredentials = defaults.withCredentials;}return sendReq(config,reqData).then(transformResponse,transformResponse);};var chain=[serverRequest,undefined];var promise=$q.when(config);forEach(reversedInterceptors,function(interceptor){if(interceptor.request || interceptor.requestError){chain.unshift(interceptor.request,interceptor.requestError);}if(interceptor.response || interceptor.responseError){chain.push(interceptor.response,interceptor.responseError);}});while(chain.length) {var thenFn=chain.shift();var rejectFn=chain.shift();promise = promise.then(thenFn,rejectFn);}promise.success = function(fn){promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error = function(fn){promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};return promise;function transformResponse(response){var resp=extend({},response);if(!response.data){resp.data = response.data;}else {resp.data = transformData(response.data,response.headers,response.status,config.transformResponse);}return isSuccess(response.status)?resp:$q.reject(resp);}function executeHeaderFns(headers){var headerContent,processedHeaders={};forEach(headers,function(headerFn,header){if(isFunction(headerFn)){headerContent = headerFn();if(headerContent != null){processedHeaders[header] = headerContent;}}else {processedHeaders[header] = headerFn;}});return processedHeaders;}function mergeHeaders(config){var defHeaders=defaults.headers,reqHeaders=extend({},config.headers),defHeaderName,lowercaseDefHeaderName,reqHeaderName;defHeaders = extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration: for(defHeaderName in defHeaders) {lowercaseDefHeaderName = lowercase(defHeaderName);for(reqHeaderName in reqHeaders) {if(lowercase(reqHeaderName) === lowercaseDefHeaderName){continue defaultHeadersIteration;}}reqHeaders[defHeaderName] = defHeaders[defHeaderName];}return executeHeaderFns(reqHeaders);}}$http.pendingRequests = [];createShortMethods('get','delete','head','jsonp');createShortMethodsWithData('post','put','patch');$http.defaults = defaults;return $http;function createShortMethods(names){forEach(arguments,function(name){$http[name] = function(url,config){return $http(extend(config || {},{method:name,url:url}));};});}function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name] = function(url,data,config){return $http(extend(config || {},{method:name,url:url,data:data}));};});}function sendReq(config,reqData){var deferred=$q.defer(),promise=deferred.promise,cache,cachedResp,reqHeaders=config.headers,url=buildUrl(config.url,config.params);$http.pendingRequests.push(config);promise.then(removePendingReq,removePendingReq);if((config.cache || defaults.cache) && config.cache !== false && (config.method === 'GET' || config.method === 'JSONP')){cache = isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache;}if(cache){cachedResp = cache.get(url);if(isDefined(cachedResp)){if(isPromiseLike(cachedResp)){cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult);}else {if(isArray(cachedResp)){resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]);}else {resolvePromise(cachedResp,200,{},'OK');}}}else {cache.put(url,promise);}}if(isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$browser.cookies()[config.xsrfCookieName || defaults.xsrfCookieName]:undefined;if(xsrfValue){reqHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;}$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType);}return promise;function done(status,response,headersString,statusText){if(cache){if(isSuccess(status)){cache.put(url,[status,response,parseHeaders(headersString),statusText]);}else {cache.remove(url);}}function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText);}if(useApplyAsync){$rootScope.$applyAsync(resolveHttpPromise);}else {resolveHttpPromise();if(!$rootScope.$$phase)$rootScope.$apply();}}function resolvePromise(response,status,headers,statusText){status = Math.max(status,0);(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText});}function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText);}function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);if(idx !== -1)$http.pendingRequests.splice(idx,1);}}function buildUrl(url,params){if(!params)return url;var parts=[];forEachSorted(params,function(value,key){if(value === null || isUndefined(value))return;if(!isArray(value))value = [value];forEach(value,function(v){if(isObject(v)){if(isDate(v)){v = v.toISOString();}else {v = toJson(v);}}parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(v));});});if(parts.length > 0){url += (url.indexOf('?') == -1?'?':'&') + parts.join('&');}return url;}}];}function createXhr(){return new window.XMLHttpRequest();}function $HttpBackendProvider(){this.$get = ['$browser','$window','$document',function($browser,$window,$document){return createHttpBackend($browser,createXhr,$browser.defer,$window.angular.callbacks,$document[0]);}];}function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){return function(method,url,post,callback,headers,timeout,withCredentials,responseType){$browser.$$incOutstandingRequestCount();url = url || $browser.url();if(lowercase(method) == 'jsonp'){var callbackId='_' + (callbacks.counter++).toString(36);callbacks[callbackId] = function(data){callbacks[callbackId].data = data;callbacks[callbackId].called = true;};var jsonpDone=jsonpReq(url.replace('JSON_CALLBACK','angular.callbacks.' + callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,'',text);callbacks[callbackId] = noop;});}else {var xhr=createXhr();xhr.open(method,url,true);forEach(headers,function(value,key){if(isDefined(value)){xhr.setRequestHeader(key,value);}});xhr.onload = function requestLoaded(){var statusText=xhr.statusText || '';var response='response' in xhr?xhr.response:xhr.responseText;var status=xhr.status === 1223?204:xhr.status;if(status === 0){status = response?200:urlResolve(url).protocol == 'file'?404:0;}completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText);};var requestError=function requestError(){completeRequest(callback,-1,null,null,'');};xhr.onerror = requestError;xhr.onabort = requestError;if(withCredentials){xhr.withCredentials = true;}if(responseType){try{xhr.responseType = responseType;}catch(e) {if(responseType !== 'json'){throw e;}}}xhr.send(post || null);}if(timeout > 0){var timeoutId=$browserDefer(timeoutRequest,timeout);}else if(isPromiseLike(timeout)){timeout.then(timeoutRequest);}function timeoutRequest(){jsonpDone && jsonpDone();xhr && xhr.abort();}function completeRequest(callback,status,response,headersString,statusText){if(timeoutId !== undefined){$browserDefer.cancel(timeoutId);}jsonpDone = xhr = null;callback(status,response,headersString,statusText);$browser.$$completeOutstandingRequest(noop);}};function jsonpReq(url,callbackId,done){var script=rawDocument.createElement('script'),callback=null;script.type = 'text/javascript';script.src = url;script.async = true;callback = function(event){removeEventListenerFn(script,'load',callback);removeEventListenerFn(script,'error',callback);rawDocument.body.removeChild(script);script = null;var status=-1;var text='unknown';if(event){if(event.type === 'load' && !callbacks[callbackId].called){event = {type:'error'};}text = event.type;status = event.type === 'error'?404:200;}if(done){done(status,text);}};addEventListenerFn(script,'load',callback);addEventListenerFn(script,'error',callback);rawDocument.body.appendChild(script);return callback;}}var $interpolateMinErr=minErr('$interpolate');function $InterpolateProvider(){var startSymbol='{{';var endSymbol='}}';this.startSymbol = function(value){if(value){startSymbol = value;return this;}else {return startSymbol;}};this.endSymbol = function(value){if(value){endSymbol = value;return this;}else {return endSymbol;}};this.$get = ['$parse','$exceptionHandler','$sce',function($parse,$exceptionHandler,$sce){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),'g'),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),'g');function escape(ch){return '\\\\\\' + ch;}function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){allOrNothing = !!allOrNothing;var startIndex,endIndex,index=0,expressions=[],parseFns=[],textLength=text.length,exp,concat=[],expressionPositions=[];while(index < textLength) {if((startIndex = text.indexOf(startSymbol,index)) != -1 && (endIndex = text.indexOf(endSymbol,startIndex + startSymbolLength)) != -1){if(index !== startIndex){concat.push(unescapeText(text.substring(index,startIndex)));}exp = text.substring(startIndex + startSymbolLength,endIndex);expressions.push(exp);parseFns.push($parse(exp,parseStringifyInterceptor));index = endIndex + endSymbolLength;expressionPositions.push(concat.length);concat.push('');}else {if(index !== textLength){concat.push(unescapeText(text.substring(index)));}break;}}if(trustedContext && concat.length > 1){throw $interpolateMinErr('noconcat','Error while interpolating: {0}\nStrict Contextual Escaping disallows ' + 'interpolations that concatenate multiple expressions when a trusted value is ' + 'required. See http://docs.angularjs.org/api/ng.$sce',text);}if(!mustHaveExpression || expressions.length){var compute=function compute(values){for(var i=0,ii=expressions.length;i < ii;i++) {if(allOrNothing && isUndefined(values[i]))return;concat[expressionPositions[i]] = values[i];}return concat.join('');};var getValue=function getValue(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value);};var stringify=function stringify(value){if(value == null){return '';}switch(typeof value){case 'string':break;case 'number':value = '' + value;break;default:value = toJson(value);}return value;};return extend(function interpolationFn(context){var i=0;var ii=expressions.length;var values=new Array(ii);try{for(;i < ii;i++) {values[i] = parseFns[i](context);}return compute(values);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}},{exp:text,expressions:expressions,$$watchDelegate:function $$watchDelegate(scope,listener,objectEquality){var lastValue;return scope.$watchGroup(parseFns,function interpolateFnWatcher(values,oldValues){var currValue=compute(values);if(isFunction(listener)){listener.call(this,currValue,values !== oldValues?lastValue:currValue,scope);}lastValue = currValue;},objectEquality);}});}function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol);}function parseStringifyInterceptor(value){try{value = getValue(value);return allOrNothing && !isDefined(value)?value:stringify(value);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}}}$interpolate.startSymbol = function(){return startSymbol;};$interpolate.endSymbol = function(){return endSymbol;};return $interpolate;}];}function $IntervalProvider(){this.$get = ['$rootScope','$window','$q','$$q',function($rootScope,$window,$q,$$q){var intervals={};function interval(fn,delay,count,invokeApply){var setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;count = isDefined(count)?count:0;promise.then(null,null,fn);promise.$$intervalId = setInterval(function tick(){deferred.notify(iteration++);if(count > 0 && iteration >= count){deferred.resolve(iteration);clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];}if(!skipApply)$rootScope.$apply();},delay);intervals[promise.$$intervalId] = deferred;return promise;}interval.cancel = function(promise){if(promise && promise.$$intervalId in intervals){intervals[promise.$$intervalId].reject('canceled');$window.clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];return true;}return false;};return interval;}];}function $LocaleProvider(){this.$get = function(){return {id:'en-us',NUMBER_FORMATS:{DECIMAL_SEP:'.',GROUP_SEP:',',PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:'',posSuf:'',negPre:'-',negSuf:'',gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:'¤',posSuf:'',negPre:'(¤',negSuf:')',gSize:3,lgSize:3}],CURRENCY_SYM:'$'},DATETIME_FORMATS:{MONTH:'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),SHORTMONTH:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),DAY:'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),SHORTDAY:'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),AMPMS:['AM','PM'],medium:'MMM d, y h:mm:ss a','short':'M/d/yy h:mm a',fullDate:'EEEE, MMMM d, y',longDate:'MMMM d, y',mediumDate:'MMM d, y',shortDate:'M/d/yy',mediumTime:'h:mm:ss a',shortTime:'h:mm a',ERANAMES:['Before Christ','Anno Domini'],ERAS:['BC','AD']},pluralCat:function pluralCat(num){if(num === 1){return 'one';}return 'other';}};};}var PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={'http':80,'https':443,'ftp':21};var $locationMinErr=minErr('$location');function encodePath(path){var segments=path.split('/'),i=segments.length;while(i--) {segments[i] = encodeUriSegment(segments[i]);}return segments.join('/');}function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol = parsedUrl.protocol;locationObj.$$host = parsedUrl.hostname;locationObj.$$port = int(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;}function parseAppUrl(relativeUrl,locationObj){var prefixed=relativeUrl.charAt(0) !== '/';if(prefixed){relativeUrl = '/' + relativeUrl;}var match=urlResolve(relativeUrl);locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/'?match.pathname.substring(1):match.pathname);locationObj.$$search = parseKeyValue(match.search);locationObj.$$hash = decodeURIComponent(match.hash);if(locationObj.$$path && locationObj.$$path.charAt(0) != '/'){locationObj.$$path = '/' + locationObj.$$path;}}function beginsWith(begin,whole){if(whole.indexOf(begin) === 0){return whole.substr(begin.length);}}function stripHash(url){var index=url.indexOf('#');return index == -1?url:url.substr(0,index);}function trimEmptyHash(url){return url.replace(/(#.+)|#$/,'$1');}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf('/') + 1);}function serverBase(url){return url.substring(0,url.indexOf('/',url.indexOf('//') + 2));}function LocationHtml5Url(appBase,basePrefix){this.$$html5 = true;basePrefix = basePrefix || '';var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw $locationMinErr('ipthprfx','Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);}parseAppUrl(pathUrl,this);if(!this.$$path){this.$$path = '/';}this.$$compose();};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBaseNoFile + this.$$url.substr(1);};this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var appUrl,prevAppUrl;var rewrittenUrl;if((appUrl = beginsWith(appBase,url)) !== undefined){prevAppUrl = appUrl;if((appUrl = beginsWith(basePrefix,appUrl)) !== undefined){rewrittenUrl = appBaseNoFile + (beginsWith('/',appUrl) || appUrl);}else {rewrittenUrl = appBase + prevAppUrl;}}else if((appUrl = beginsWith(appBaseNoFile,url)) !== undefined){rewrittenUrl = appBaseNoFile + appUrl;}else if(appBaseNoFile == url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};}function LocationHashbangUrl(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var withoutBaseUrl=beginsWith(appBase,url) || beginsWith(appBaseNoFile,url);var withoutHashUrl;if(withoutBaseUrl.charAt(0) === '#'){withoutHashUrl = beginsWith(hashPrefix,withoutBaseUrl);if(isUndefined(withoutHashUrl)){withoutHashUrl = withoutBaseUrl;}}else {withoutHashUrl = this.$$html5?withoutBaseUrl:'';}parseAppUrl(withoutHashUrl,this);this.$$path = removeWindowsDriveName(this.$$path,withoutHashUrl,appBase);this.$$compose();function removeWindowsDriveName(path,url,base){var windowsFilePathExp=/^\/[A-Z]:(\/.*)/;var firstPathSegmentMatch;if(url.indexOf(base) === 0){url = url.replace(base,'');}if(windowsFilePathExp.exec(url)){return path;}firstPathSegmentMatch = windowsFilePathExp.exec(path);return firstPathSegmentMatch?firstPathSegmentMatch[1]:path;}};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + (this.$$url?hashPrefix + this.$$url:'');};this.$$parseLinkUrl = function(url,relHref){if(stripHash(appBase) == stripHash(url)){this.$$parse(url);return true;}return false;};}function LocationHashbangInHtml5Url(appBase,hashPrefix){this.$$html5 = true;LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(appBase);this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var rewrittenUrl;var appUrl;if(appBase == stripHash(url)){rewrittenUrl = url;}else if(appUrl = beginsWith(appBaseNoFile,url)){rewrittenUrl = appBase + hashPrefix + appUrl;}else if(appBaseNoFile === url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + hashPrefix + this.$$url;};}var locationPrototype={$$html5:false,$$replace:false,absUrl:locationGetter('$$absUrl'),url:function url(_url){if(isUndefined(_url))return this.$$url;var match=PATH_MATCH.exec(_url);if(match[1] || _url === '')this.path(decodeURIComponent(match[1]));if(match[2] || match[1] || _url === '')this.search(match[3] || '');this.hash(match[5] || '');return this;},protocol:locationGetter('$$protocol'),host:locationGetter('$$host'),port:locationGetter('$$port'),path:locationGetterSetter('$$path',function(path){path = path !== null?path.toString():'';return path.charAt(0) == '/'?path:'/' + path;}),search:function search(_search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(_search) || isNumber(_search)){_search = _search.toString();this.$$search = parseKeyValue(_search);}else if(isObject(_search)){_search = copy(_search,{});forEach(_search,function(value,key){if(value == null)delete _search[key];});this.$$search = _search;}else {throw $locationMinErr('isrcharg','The first argument of the `$location#search()` call must be a string or an object.');}break;default:if(isUndefined(paramValue) || paramValue === null){delete this.$$search[_search];}else {this.$$search[_search] = paramValue;}}this.$$compose();return this;},hash:locationGetterSetter('$$hash',function(hash){return hash !== null?hash.toString():'';}),replace:function replace(){this.$$replace = true;return this;}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype = Object.create(locationPrototype);Location.prototype.state = function(state){if(!arguments.length)return this.$$state;if(Location !== LocationHtml5Url || !this.$$html5){throw $locationMinErr('nostate','History API state support is available only ' + 'in HTML5 mode and only in browsers supporting HTML5 History API');}this.$$state = isUndefined(state)?null:state;return this;};});function locationGetter(property){return function(){return this[property];};}function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value))return this[property];this[property] = preprocess(value);this.$$compose();return this;};}function $LocationProvider(){var hashPrefix='',html5Mode={enabled:false,requireBase:true,rewriteLinks:true};this.hashPrefix = function(prefix){if(isDefined(prefix)){hashPrefix = prefix;return this;}else {return hashPrefix;}};this.html5Mode = function(mode){if(isBoolean(mode)){html5Mode.enabled = mode;return this;}else if(isObject(mode)){if(isBoolean(mode.enabled)){html5Mode.enabled = mode.enabled;}if(isBoolean(mode.requireBase)){html5Mode.requireBase = mode.requireBase;}if(isBoolean(mode.rewriteLinks)){html5Mode.rewriteLinks = mode.rewriteLinks;}return this;}else {return html5Mode;}};this.$get = ['$rootScope','$browser','$sniffer','$rootElement','$window',function($rootScope,$browser,$sniffer,$rootElement,$window){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode.enabled){if(!baseHref && html5Mode.requireBase){throw $locationMinErr('nobase','$location in HTML5 mode requires a <base> tag to be present!');}appBase = serverBase(initialUrl) + (baseHref || '/');LocationMode = $sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url;}else {appBase = stripHash(initialUrl);LocationMode = LocationHashbangUrl;}$location = new LocationMode(appBase,'#' + hashPrefix);$location.$$parseLinkUrl(initialUrl,initialUrl);$location.$$state = $browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url();var oldState=$location.$$state;try{$browser.url(url,replace,state);$location.$$state = $browser.state();}catch(e) {$location.url(oldUrl);$location.$$state = oldState;throw e;}}$rootElement.on('click',function(event){if(!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2)return;var elm=jqLite(event.target);while(nodeName_(elm[0]) !== 'a') {if(elm[0] === $rootElement[0] || !(elm = elm.parent())[0])return;}var absHref=elm.prop('href');var relHref=elm.attr('href') || elm.attr('xlink:href');if(isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]'){absHref = urlResolve(absHref.animVal).href;}if(IGNORE_URI_REGEXP.test(absHref))return;if(absHref && !elm.attr('target') && !event.isDefaultPrevented()){if($location.$$parseLinkUrl(absHref,relHref)){event.preventDefault();if($location.absUrl() != $browser.url()){$rootScope.$apply();$window.angular['ff-684208-preventDefault'] = true;}}}});if(trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)){$browser.url($location.absUrl(),true);}var initializing=true;$browser.onUrlChange(function(newUrl,newState){$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();var oldState=$location.$$state;var defaultPrevented;$location.$$parse(newUrl);$location.$$state = newState;defaultPrevented = $rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,newState,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;setBrowserUrlWithFallback(oldUrl,false,oldState);}else {initializing = false;afterLocationChange(oldUrl,oldState);}});if(!$rootScope.$$phase)$rootScope.$digest();});$rootScope.$watch(function $locationWatch(){var oldUrl=trimEmptyHash($browser.url());var newUrl=trimEmptyHash($location.absUrl());var oldState=$browser.state();var currentReplace=$location.$$replace;var urlOrStateChanged=oldUrl !== newUrl || $location.$$html5 && $sniffer.history && oldState !== $location.$$state;if(initializing || urlOrStateChanged){initializing = false;$rootScope.$evalAsync(function(){var newUrl=$location.absUrl();var defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;}else {if(urlOrStateChanged){setBrowserUrlWithFallback(newUrl,currentReplace,oldState === $location.$$state?null:$location.$$state);}afterLocationChange(oldUrl,oldState);}});}$location.$$replace = false;});return $location;function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast('$locationChangeSuccess',$location.absUrl(),oldUrl,$location.$$state,oldState);}}];}function $LogProvider(){var debug=true,self=this;this.debugEnabled = function(flag){if(isDefined(flag)){debug = flag;return this;}else {return debug;}};this.$get = ['$window',function($window){return {log:consoleLog('log'),info:consoleLog('info'),warn:consoleLog('warn'),error:consoleLog('error'),debug:(function(){var fn=consoleLog('debug');return function(){if(debug){fn.apply(self,arguments);}};})()};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg = arg.message && arg.stack.indexOf(arg.message) === -1?'Error: ' + arg.message + '\n' + arg.stack:arg.stack;}else if(arg.sourceURL){arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line;}}return arg;}function consoleLog(type){var console=$window.console || {},logFn=console[type] || console.log || noop,hasApply=false;try{hasApply = !!logFn.apply;}catch(e) {}if(hasApply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg));});return logFn.apply(console,args);};}return function(arg1,arg2){logFn(arg1,arg2 == null?'':arg2);};}}];}var $parseMinErr=minErr('$parse');function ensureSafeMemberName(name,fullExpression){if(name === '__defineGetter__' || name === '__defineSetter__' || name === '__lookupGetter__' || name === '__lookupSetter__' || name === '__proto__'){throw $parseMinErr('isecfld','Attempting to access a disallowed field in Angular expressions! ' + 'Expression: {0}',fullExpression);}return name;}function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.window === obj){throw $parseMinErr('isecwindow','Referencing the Window in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.children && (obj.nodeName || obj.prop && obj.attr && obj.find)){throw $parseMinErr('isecdom','Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === Object){throw $parseMinErr('isecobj','Referencing Object in Angular expressions is disallowed! Expression: {0}',fullExpression);}}return obj;}var CALL=Function.prototype.call;var APPLY=Function.prototype.apply;var BIND=Function.prototype.bind;function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === CALL || obj === APPLY || obj === BIND){throw $parseMinErr('isecff','Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',fullExpression);}}}var CONSTANTS=createMap();forEach({'null':function _null(){return null;},'true':function _true(){return true;},'false':function _false(){return false;},'undefined':function undefined(){}},function(constantGetter,name){constantGetter.constant = constantGetter.literal = constantGetter.sharedGetter = true;CONSTANTS[name] = constantGetter;});CONSTANTS['this'] = function(self){return self;};CONSTANTS['this'].sharedGetter = true;var OPERATORS=extend(createMap(),{'+':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);if(isDefined(a)){if(isDefined(b)){return a + b;}return a;}return isDefined(b)?b:undefined;},'-':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);return (isDefined(a)?a:0) - (isDefined(b)?b:0);},'*':function _(self,locals,a,b){return a(self,locals) * b(self,locals);},'/':function _(self,locals,a,b){return a(self,locals) / b(self,locals);},'%':function _(self,locals,a,b){return a(self,locals) % b(self,locals);},'===':function _(self,locals,a,b){return a(self,locals) === b(self,locals);},'!==':function _(self,locals,a,b){return a(self,locals) !== b(self,locals);},'==':function _(self,locals,a,b){return a(self,locals) == b(self,locals);},'!=':function _(self,locals,a,b){return a(self,locals) != b(self,locals);},'<':function _(self,locals,a,b){return a(self,locals) < b(self,locals);},'>':function _(self,locals,a,b){return a(self,locals) > b(self,locals);},'<=':function _(self,locals,a,b){return a(self,locals) <= b(self,locals);},'>=':function _(self,locals,a,b){return a(self,locals) >= b(self,locals);},'&&':function _(self,locals,a,b){return a(self,locals) && b(self,locals);},'||':function _(self,locals,a,b){return a(self,locals) || b(self,locals);},'!':function _(self,locals,a){return !a(self,locals);},'=':true,'|':true});var ESCAPE={'n':'\n','f':'\f','r':'\r','t':'\t','v':'\u000b','\'':'\'','"':'"'};var Lexer=function Lexer(options){this.options = options;};Lexer.prototype = {constructor:Lexer,lex:function lex(text){this.text = text;this.index = 0;this.tokens = [];while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(ch === '"' || ch === '\''){this.readString(ch);}else if(this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())){this.readNumber();}else if(this.isIdent(ch)){this.readIdent();}else if(this.is(ch,'(){}[].,;:?')){this.tokens.push({index:this.index,text:ch});this.index++;}else if(this.isWhitespace(ch)){this.index++;}else {var ch2=ch + this.peek();var ch3=ch2 + this.peek(2);var op1=OPERATORS[ch];var op2=OPERATORS[ch2];var op3=OPERATORS[ch3];if(op1 || op2 || op3){var token=op3?ch3:op2?ch2:ch;this.tokens.push({index:this.index,text:token,operator:true});this.index += token.length;}else {this.throwError('Unexpected next character ',this.index,this.index + 1);}}}return this.tokens;},is:function is(ch,chars){return chars.indexOf(ch) !== -1;},peek:function peek(i){var num=i || 1;return this.index + num < this.text.length?this.text.charAt(this.index + num):false;},isNumber:function isNumber(ch){return '0' <= ch && ch <= '9' && typeof ch === 'string';},isWhitespace:function isWhitespace(ch){return ch === ' ' || ch === '\r' || ch === '\t' || ch === '\n' || ch === '\u000b' || ch === ' ';},isIdent:function isIdent(ch){return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || '_' === ch || ch === '$';},isExpOperator:function isExpOperator(ch){return ch === '-' || ch === '+' || this.isNumber(ch);},throwError:function throwError(error,start,end){end = end || this.index;var colStr=isDefined(start)?'s ' + start + '-' + this.index + ' [' + this.text.substring(start,end) + ']':' ' + end;throw $parseMinErr('lexerr','Lexer Error: {0} at column{1} in expression [{2}].',error,colStr,this.text);},readNumber:function readNumber(){var number='';var start=this.index;while(this.index < this.text.length) {var ch=lowercase(this.text.charAt(this.index));if(ch == '.' || this.isNumber(ch)){number += ch;}else {var peekCh=this.peek();if(ch == 'e' && this.isExpOperator(peekCh)){number += ch;}else if(this.isExpOperator(ch) && peekCh && this.isNumber(peekCh) && number.charAt(number.length - 1) == 'e'){number += ch;}else if(this.isExpOperator(ch) && (!peekCh || !this.isNumber(peekCh)) && number.charAt(number.length - 1) == 'e'){this.throwError('Invalid exponent');}else {break;}}this.index++;}this.tokens.push({index:start,text:number,constant:true,value:Number(number)});},readIdent:function readIdent(){var start=this.index;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(!(this.isIdent(ch) || this.isNumber(ch))){break;}this.index++;}this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:true});},readString:function readString(quote){var start=this.index;this.index++;var string='';var rawString=quote;var escape=false;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);rawString += ch;if(escape){if(ch === 'u'){var hex=this.text.substring(this.index + 1,this.index + 5);if(!hex.match(/[\da-f]{4}/i))this.throwError('Invalid unicode escape [\\u' + hex + ']');this.index += 4;string += String.fromCharCode(parseInt(hex,16));}else {var rep=ESCAPE[ch];string = string + (rep || ch);}escape = false;}else if(ch === '\\'){escape = true;}else if(ch === quote){this.index++;this.tokens.push({index:start,text:rawString,constant:true,value:string});return;}else {string += ch;}this.index++;}this.throwError('Unterminated quote',start);}};function isConstant(exp){return exp.constant;}var Parser=function Parser(lexer,$filter,options){this.lexer = lexer;this.$filter = $filter;this.options = options;};Parser.ZERO = extend(function(){return 0;},{sharedGetter:true,constant:true});Parser.prototype = {constructor:Parser,parse:function parse(text){this.text = text;this.tokens = this.lexer.lex(text);var value=this.statements();if(this.tokens.length !== 0){this.throwError('is an unexpected token',this.tokens[0]);}value.literal = !!value.literal;value.constant = !!value.constant;return value;},primary:function primary(){var primary;if(this.expect('(')){primary = this.filterChain();this.consume(')');}else if(this.expect('[')){primary = this.arrayDeclaration();}else if(this.expect('{')){primary = this.object();}else if(this.peek().identifier && this.peek().text in CONSTANTS){primary = CONSTANTS[this.consume().text];}else if(this.peek().identifier){primary = this.identifier();}else if(this.peek().constant){primary = this.constant();}else {this.throwError('not a primary expression',this.peek());}var next,context;while(next = this.expect('(','[','.')) {if(next.text === '('){primary = this.functionCall(primary,context);context = null;}else if(next.text === '['){context = primary;primary = this.objectIndex(primary);}else if(next.text === '.'){context = primary;primary = this.fieldAccess(primary);}else {this.throwError('IMPOSSIBLE');}}return primary;},throwError:function throwError(msg,token){throw $parseMinErr('syntax','Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].',token.text,msg,token.index + 1,this.text,this.text.substring(token.index));},peekToken:function peekToken(){if(this.tokens.length === 0)throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);return this.tokens[0];},peek:function peek(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4);},peekAhead:function peekAhead(i,e1,e2,e3,e4){if(this.tokens.length > i){var token=this.tokens[i];var t=token.text;if(t === e1 || t === e2 || t === e3 || t === e4 || !e1 && !e2 && !e3 && !e4){return token;}}return false;},expect:function expect(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);if(token){this.tokens.shift();return token;}return false;},consume:function consume(e1){if(this.tokens.length === 0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}var token=this.expect(e1);if(!token){this.throwError('is unexpected, expecting [' + e1 + ']',this.peek());}return token;},unaryFn:function unaryFn(op,right){var fn=OPERATORS[op];return extend(function $parseUnaryFn(self,locals){return fn(self,locals,right);},{constant:right.constant,inputs:[right]});},binaryFn:function binaryFn(left,op,right,isBranching){var fn=OPERATORS[op];return extend(function $parseBinaryFn(self,locals){return fn(self,locals,left,right);},{constant:left.constant && right.constant,inputs:!isBranching && [left,right]});},identifier:function identifier(){var id=this.consume().text;while(this.peek('.') && this.peekAhead(1).identifier && !this.peekAhead(2,'(')) {id += this.consume().text + this.consume().text;}return getterFn(id,this.options,this.text);},constant:function constant(){var value=this.consume().value;return extend(function $parseConstant(){return value;},{constant:true,literal:true});},statements:function statements(){var statements=[];while(true) {if(this.tokens.length > 0 && !this.peek('}',')',';',']'))statements.push(this.filterChain());if(!this.expect(';')){return statements.length === 1?statements[0]:function $parseStatements(self,locals){var value;for(var i=0,ii=statements.length;i < ii;i++) {value = statements[i](self,locals);}return value;};}}},filterChain:function filterChain(){var left=this.expression();var token;while(token = this.expect('|')) {left = this.filter(left);}return left;},filter:function filter(inputFn){var fn=this.$filter(this.consume().text);var argsFn;var args;if(this.peek(':')){argsFn = [];args = [];while(this.expect(':')) {argsFn.push(this.expression());}}var inputs=[inputFn].concat(argsFn || []);return extend(function $parseFilter(self,locals){var input=inputFn(self,locals);if(args){args[0] = input;var i=argsFn.length;while(i--) {args[i + 1] = argsFn[i](self,locals);}return fn.apply(undefined,args);}return fn(input);},{constant:!fn.$stateful && inputs.every(isConstant),inputs:!fn.$stateful && inputs});},expression:function expression(){return this.assignment();},assignment:function assignment(){var left=this.ternary();var right;var token;if(token = this.expect('=')){if(!left.assign){this.throwError('implies assignment but [' + this.text.substring(0,token.index) + '] can not be assigned to',token);}right = this.ternary();return extend(function $parseAssignment(scope,locals){return left.assign(scope,right(scope,locals),locals);},{inputs:[left,right]});}return left;},ternary:function ternary(){var left=this.logicalOR();var middle;var token;if(token = this.expect('?')){middle = this.assignment();if(this.consume(':')){var right=this.assignment();return extend(function $parseTernary(self,locals){return left(self,locals)?middle(self,locals):right(self,locals);},{constant:left.constant && middle.constant && right.constant});}}return left;},logicalOR:function logicalOR(){var left=this.logicalAND();var token;while(token = this.expect('||')) {left = this.binaryFn(left,token.text,this.logicalAND(),true);}return left;},logicalAND:function logicalAND(){var left=this.equality();var token;while(token = this.expect('&&')) {left = this.binaryFn(left,token.text,this.equality(),true);}return left;},equality:function equality(){var left=this.relational();var token;while(token = this.expect('==','!=','===','!==')) {left = this.binaryFn(left,token.text,this.relational());}return left;},relational:function relational(){var left=this.additive();var token;while(token = this.expect('<','>','<=','>=')) {left = this.binaryFn(left,token.text,this.additive());}return left;},additive:function additive(){var left=this.multiplicative();var token;while(token = this.expect('+','-')) {left = this.binaryFn(left,token.text,this.multiplicative());}return left;},multiplicative:function multiplicative(){var left=this.unary();var token;while(token = this.expect('*','/','%')) {left = this.binaryFn(left,token.text,this.unary());}return left;},unary:function unary(){var token;if(this.expect('+')){return this.primary();}else if(token = this.expect('-')){return this.binaryFn(Parser.ZERO,token.text,this.unary());}else if(token = this.expect('!')){return this.unaryFn(token.text,this.unary());}else {return this.primary();}},fieldAccess:function fieldAccess(object){var getter=this.identifier();return extend(function $parseFieldAccess(scope,locals,self){var o=self || object(scope,locals);return o == null?undefined:getter(o);},{assign:function assign(scope,value,locals){var o=object(scope,locals);if(!o)object.assign(scope,o = {},locals);return getter.assign(o,value);}});},objectIndex:function objectIndex(obj){var expression=this.text;var indexFn=this.expression();this.consume(']');return extend(function $parseObjectIndex(self,locals){var o=obj(self,locals),i=indexFn(self,locals),v;ensureSafeMemberName(i,expression);if(!o)return undefined;v = ensureSafeObject(o[i],expression);return v;},{assign:function assign(self,value,locals){var key=ensureSafeMemberName(indexFn(self,locals),expression);var o=ensureSafeObject(obj(self,locals),expression);if(!o)obj.assign(self,o = {},locals);return o[key] = value;}});},functionCall:function functionCall(fnGetter,contextGetter){var argsFn=[];if(this.peekToken().text !== ')'){do {argsFn.push(this.expression());}while(this.expect(','));}this.consume(')');var expressionText=this.text;var args=argsFn.length?[]:null;return function $parseFunctionCall(scope,locals){var context=contextGetter?contextGetter(scope,locals):isDefined(contextGetter)?undefined:scope;var fn=fnGetter(scope,locals,context) || noop;if(args){var i=argsFn.length;while(i--) {args[i] = ensureSafeObject(argsFn[i](scope,locals),expressionText);}}ensureSafeObject(context,expressionText);ensureSafeFunction(fn,expressionText);var v=fn.apply?fn.apply(context,args):fn(args[0],args[1],args[2],args[3],args[4]);if(args){args.length = 0;}return ensureSafeObject(v,expressionText);};},arrayDeclaration:function arrayDeclaration(){var elementFns=[];if(this.peekToken().text !== ']'){do {if(this.peek(']')){break;}elementFns.push(this.expression());}while(this.expect(','));}this.consume(']');return extend(function $parseArrayLiteral(self,locals){var array=[];for(var i=0,ii=elementFns.length;i < ii;i++) {array.push(elementFns[i](self,locals));}return array;},{literal:true,constant:elementFns.every(isConstant),inputs:elementFns});},object:function object(){var keys=[],valueFns=[];if(this.peekToken().text !== '}'){do {if(this.peek('}')){break;}var token=this.consume();if(token.constant){keys.push(token.value);}else if(token.identifier){keys.push(token.text);}else {this.throwError('invalid key',token);}this.consume(':');valueFns.push(this.expression());}while(this.expect(','));}this.consume('}');return extend(function $parseObjectLiteral(self,locals){var object={};for(var i=0,ii=valueFns.length;i < ii;i++) {object[keys[i]] = valueFns[i](self,locals);}return object;},{literal:true,constant:valueFns.every(isConstant),inputs:valueFns});}};function setter(obj,locals,path,setValue,fullExp){ensureSafeObject(obj,fullExp);ensureSafeObject(locals,fullExp);var element=path.split('.'),key;for(var i=0;element.length > 1;i++) {key = ensureSafeMemberName(element.shift(),fullExp);var propertyObj=i === 0 && locals && locals[key] || obj[key];if(!propertyObj){propertyObj = {};obj[key] = propertyObj;}obj = ensureSafeObject(propertyObj,fullExp);}key = ensureSafeMemberName(element.shift(),fullExp);ensureSafeObject(obj[key],fullExp);obj[key] = setValue;return setValue;}var getterFnCacheDefault=createMap();var getterFnCacheExpensive=createMap();function isPossiblyDangerousMemberName(name){return name == 'constructor';}function cspSafeGetterFn(key0,key1,key2,key3,key4,fullExp,expensiveChecks){ensureSafeMemberName(key0,fullExp);ensureSafeMemberName(key1,fullExp);ensureSafeMemberName(key2,fullExp);ensureSafeMemberName(key3,fullExp);ensureSafeMemberName(key4,fullExp);var eso=function eso(o){return ensureSafeObject(o,fullExp);};var eso0=expensiveChecks || isPossiblyDangerousMemberName(key0)?eso:identity;var eso1=expensiveChecks || isPossiblyDangerousMemberName(key1)?eso:identity;var eso2=expensiveChecks || isPossiblyDangerousMemberName(key2)?eso:identity;var eso3=expensiveChecks || isPossiblyDangerousMemberName(key3)?eso:identity;var eso4=expensiveChecks || isPossiblyDangerousMemberName(key4)?eso:identity;return function cspSafeGetter(scope,locals){var pathVal=locals && locals.hasOwnProperty(key0)?locals:scope;if(pathVal == null)return pathVal;pathVal = eso0(pathVal[key0]);if(!key1)return pathVal;if(pathVal == null)return undefined;pathVal = eso1(pathVal[key1]);if(!key2)return pathVal;if(pathVal == null)return undefined;pathVal = eso2(pathVal[key2]);if(!key3)return pathVal;if(pathVal == null)return undefined;pathVal = eso3(pathVal[key3]);if(!key4)return pathVal;if(pathVal == null)return undefined;pathVal = eso4(pathVal[key4]);return pathVal;};}function getterFnWithEnsureSafeObject(fn,fullExpression){return function(s,l){return fn(s,l,ensureSafeObject,fullExpression);};}function getterFn(path,options,fullExp){var expensiveChecks=options.expensiveChecks;var getterFnCache=expensiveChecks?getterFnCacheExpensive:getterFnCacheDefault;var fn=getterFnCache[path];if(fn)return fn;var pathKeys=path.split('.'),pathKeysLength=pathKeys.length;if(options.csp){if(pathKeysLength < 6){fn = cspSafeGetterFn(pathKeys[0],pathKeys[1],pathKeys[2],pathKeys[3],pathKeys[4],fullExp,expensiveChecks);}else {fn = function cspSafeGetter(scope,locals){var i=0,val;do {val = cspSafeGetterFn(pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],fullExp,expensiveChecks)(scope,locals);locals = undefined;scope = val;}while(i < pathKeysLength);return val;};}}else {var code='';if(expensiveChecks){code += 's = eso(s, fe);\nl = eso(l, fe);\n';}var needsEnsureSafeObject=expensiveChecks;forEach(pathKeys,function(key,index){ensureSafeMemberName(key,fullExp);var lookupJs=(index?'s':'((l&&l.hasOwnProperty("' + key + '"))?l:s)') + '.' + key;if(expensiveChecks || isPossiblyDangerousMemberName(key)){lookupJs = 'eso(' + lookupJs + ', fe)';needsEnsureSafeObject = true;}code += 'if(s == null) return undefined;\n' + 's=' + lookupJs + ';\n';});code += 'return s;';var evaledFnGetter=new Function('s','l','eso','fe',code);evaledFnGetter.toString = valueFn(code);if(needsEnsureSafeObject){evaledFnGetter = getterFnWithEnsureSafeObject(evaledFnGetter,fullExp);}fn = evaledFnGetter;}fn.sharedGetter = true;fn.assign = function(self,value,locals){return setter(self,locals,path,value,path);};getterFnCache[path] = fn;return fn;}var objectValueOf=Object.prototype.valueOf;function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value);}function $ParseProvider(){var cacheDefault=createMap();var cacheExpensive=createMap();this.$get = ['$filter','$sniffer',function($filter,$sniffer){var $parseOptions={csp:$sniffer.csp,expensiveChecks:false},$parseOptionsExpensive={csp:$sniffer.csp,expensiveChecks:true};function wrapSharedExpression(exp){var wrapped=exp;if(exp.sharedGetter){wrapped = function $parseWrapper(self,locals){return exp(self,locals);};wrapped.literal = exp.literal;wrapped.constant = exp.constant;wrapped.assign = exp.assign;}return wrapped;}return function $parse(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case 'string':cacheKey = exp = exp.trim();var cache=expensiveChecks?cacheExpensive:cacheDefault;parsedExpression = cache[cacheKey];if(!parsedExpression){if(exp.charAt(0) === ':' && exp.charAt(1) === ':'){oneTime = true;exp = exp.substring(2);}var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions;var lexer=new Lexer(parseOptions);var parser=new Parser(lexer,$filter,parseOptions);parsedExpression = parser.parse(exp);if(parsedExpression.constant){parsedExpression.$$watchDelegate = constantWatchDelegate;}else if(oneTime){parsedExpression = wrapSharedExpression(parsedExpression);parsedExpression.$$watchDelegate = parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate;}else if(parsedExpression.inputs){parsedExpression.$$watchDelegate = inputsWatchDelegate;}cache[cacheKey] = parsedExpression;}return addInterceptor(parsedExpression,interceptorFn);case 'function':return addInterceptor(exp,interceptorFn);default:return addInterceptor(noop,interceptorFn);}};function collectExpressionInputs(inputs,list){for(var i=0,ii=inputs.length;i < ii;i++) {var input=inputs[i];if(!input.constant){if(input.inputs){collectExpressionInputs(input.inputs,list);}else if(list.indexOf(input) === -1){list.push(input);}}}return list;}function expressionInputDirtyCheck(newValue,oldValueOfValue){if(newValue == null || oldValueOfValue == null){return newValue === oldValueOfValue;}if(typeof newValue === 'object'){newValue = getValueOf(newValue);if(typeof newValue === 'object'){return false;}}return newValue === oldValueOfValue || newValue !== newValue && oldValueOfValue !== oldValueOfValue;}function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression){var inputExpressions=parsedExpression.$$inputs || (parsedExpression.$$inputs = collectExpressionInputs(parsedExpression.inputs,[]));var lastResult;if(inputExpressions.length === 1){var oldInputValue=expressionInputDirtyCheck;inputExpressions = inputExpressions[0];return scope.$watch(function expressionInputWatch(scope){var newInputValue=inputExpressions(scope);if(!expressionInputDirtyCheck(newInputValue,oldInputValue)){lastResult = parsedExpression(scope);oldInputValue = newInputValue && getValueOf(newInputValue);}return lastResult;},listener,objectEquality);}var oldInputValueOfValues=[];for(var i=0,ii=inputExpressions.length;i < ii;i++) {oldInputValueOfValues[i] = expressionInputDirtyCheck;}return scope.$watch(function expressionInputsWatch(scope){var changed=false;for(var i=0,ii=inputExpressions.length;i < ii;i++) {var newInputValue=inputExpressions[i](scope);if(changed || (changed = !expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i]))){oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue);}}if(changed){lastResult = parsedExpression(scope);}return lastResult;},listener,objectEquality);}function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.apply(this,arguments);}if(isDefined(value)){scope.$$postDigest(function(){if(isDefined(lastValue)){unwatch();}});}},objectEquality);}function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.call(this,value,old,scope);}if(isAllDefined(value)){scope.$$postDigest(function(){if(isAllDefined(lastValue))unwatch();});}},objectEquality);function isAllDefined(value){var allDefined=true;forEach(value,function(val){if(!isDefined(val))allDefined = false;});return allDefined;}}function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch = scope.$watch(function constantWatch(scope){return parsedExpression(scope);},function constantListener(value,old,scope){if(isFunction(listener)){listener.apply(this,arguments);}unwatch();},objectEquality);}function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate;var regularWatch=watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate;var fn=regularWatch?function regularInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);return interceptorFn(value,scope,locals);}:function oneTimeInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);var result=interceptorFn(value,scope,locals);return isDefined(value)?result:value;};if(parsedExpression.$$watchDelegate && parsedExpression.$$watchDelegate !== inputsWatchDelegate){fn.$$watchDelegate = parsedExpression.$$watchDelegate;}else if(!interceptorFn.$stateful){fn.$$watchDelegate = inputsWatchDelegate;fn.inputs = [parsedExpression];}return fn;}}];}function $QProvider(){this.$get = ['$rootScope','$exceptionHandler',function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback);},$exceptionHandler);}];}function $$QProvider(){this.$get = ['$browser','$exceptionHandler',function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback);},$exceptionHandler);}];}function qFactory(nextTick,exceptionHandler){var $qMinErr=minErr('$q',TypeError);function callOnce(self,resolveFn,rejectFn){var called=false;function wrap(fn){return function(value){if(called)return;called = true;fn.call(self,value);};}return [wrap(resolveFn),wrap(rejectFn)];}var defer=function defer(){return new Deferred();};function Promise(){this.$$state = {status:0};}Promise.prototype = {then:function then(onFulfilled,onRejected,progressBack){var result=new Deferred();this.$$state.pending = this.$$state.pending || [];this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]);if(this.$$state.status > 0)scheduleProcessQueue(this.$$state);return result.promise;},'catch':function _catch(callback){return this.then(null,callback);},'finally':function _finally(callback,progressBack){return this.then(function(value){return handleCallback(value,true,callback);},function(error){return handleCallback(error,false,callback);},progressBack);}};function simpleBind(context,fn){return function(value){fn.call(context,value);};}function processQueue(state){var fn,promise,pending;pending = state.pending;state.processScheduled = false;state.pending = undefined;for(var i=0,ii=pending.length;i < ii;++i) {promise = pending[i][0];fn = pending[i][state.status];try{if(isFunction(fn)){promise.resolve(fn(state.value));}else if(state.status === 1){promise.resolve(state.value);}else {promise.reject(state.value);}}catch(e) {promise.reject(e);exceptionHandler(e);}}}function scheduleProcessQueue(state){if(state.processScheduled || !state.pending)return;state.processScheduled = true;nextTick(function(){processQueue(state);});}function Deferred(){this.promise = new Promise();this.resolve = simpleBind(this,this.resolve);this.reject = simpleBind(this,this.reject);this.notify = simpleBind(this,this.notify);}Deferred.prototype = {resolve:function resolve(val){if(this.promise.$$state.status)return;if(val === this.promise){this.$$reject($qMinErr('qcycle','Expected promise to be resolved with value other than itself \'{0}\'',val));}else {this.$$resolve(val);}},$$resolve:function $$resolve(val){var then,fns;fns = callOnce(this,this.$$resolve,this.$$reject);try{if(isObject(val) || isFunction(val))then = val && val.then;if(isFunction(then)){this.promise.$$state.status = -1;then.call(val,fns[0],fns[1],this.notify);}else {this.promise.$$state.value = val;this.promise.$$state.status = 1;scheduleProcessQueue(this.promise.$$state);}}catch(e) {fns[1](e);exceptionHandler(e);}},reject:function reject(reason){if(this.promise.$$state.status)return;this.$$reject(reason);},$$reject:function $$reject(reason){this.promise.$$state.value = reason;this.promise.$$state.status = 2;scheduleProcessQueue(this.promise.$$state);},notify:function notify(progress){var callbacks=this.promise.$$state.pending;if(this.promise.$$state.status <= 0 && callbacks && callbacks.length){nextTick(function(){var callback,result;for(var i=0,ii=callbacks.length;i < ii;i++) {result = callbacks[i][0];callback = callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress);}catch(e) {exceptionHandler(e);}}});}}};var reject=function reject(reason){var result=new Deferred();result.reject(reason);return result.promise;};var makePromise=function makePromise(value,resolved){var result=new Deferred();if(resolved){result.resolve(value);}else {result.reject(value);}return result.promise;};var handleCallback=function handleCallback(value,isResolved,callback){var callbackOutput=null;try{if(isFunction(callback))callbackOutput = callback();}catch(e) {return makePromise(e,false);}if(isPromiseLike(callbackOutput)){return callbackOutput.then(function(){return makePromise(value,isResolved);},function(error){return makePromise(error,false);});}else {return makePromise(value,isResolved);}};var when=function when(value,callback,errback,progressBack){var result=new Deferred();result.resolve(value);return result.promise.then(callback,errback,progressBack);};function all(promises){var deferred=new Deferred(),counter=0,results=isArray(promises)?[]:{};forEach(promises,function(promise,key){counter++;when(promise).then(function(value){if(results.hasOwnProperty(key))return;results[key] = value;if(! --counter)deferred.resolve(results);},function(reason){if(results.hasOwnProperty(key))return;deferred.reject(reason);});});if(counter === 0){deferred.resolve(results);}return deferred.promise;}var $Q=function Q(resolver){if(!isFunction(resolver)){throw $qMinErr('norslvr','Expected resolverFn, got \'{0}\'',resolver);}if(!(this instanceof Q)){return new Q(resolver);}var deferred=new Deferred();function resolveFn(value){deferred.resolve(value);}function rejectFn(reason){deferred.reject(reason);}resolver(resolveFn,rejectFn);return deferred.promise;};$Q.defer = defer;$Q.reject = reject;$Q.when = when;$Q.all = all;return $Q;}function $$RAFProvider(){this.$get = ['$window','$timeout',function($window,$timeout){var requestAnimationFrame=$window.requestAnimationFrame || $window.webkitRequestAnimationFrame;var cancelAnimationFrame=$window.cancelAnimationFrame || $window.webkitCancelAnimationFrame || $window.webkitCancelRequestAnimationFrame;var rafSupported=!!requestAnimationFrame;var raf=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id);};}:function(fn){var timer=$timeout(fn,16.66,false);return function(){$timeout.cancel(timer);};};raf.supported = rafSupported;return raf;}];}function $RootScopeProvider(){var TTL=10;var $rootScopeMinErr=minErr('$rootScope');var lastDirtyWatch=null;var applyAsyncId=null;this.digestTtl = function(value){if(arguments.length){TTL = value;}return TTL;};function createChildScopeClass(parent){function ChildScope(){this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null;this.$$listeners = {};this.$$listenerCount = {};this.$$watchersCount = 0;this.$id = nextUid();this.$$ChildScope = null;}ChildScope.prototype = parent;return ChildScope;}this.$get = ['$injector','$exceptionHandler','$parse','$browser',function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed = true;}function Scope(){this.$id = nextUid();this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;this.$root = this;this.$$destroyed = false;this.$$listeners = {};this.$$listenerCount = {};this.$$isolateBindings = null;}Scope.prototype = {constructor:Scope,$new:function $new(isolate,parent){var child;parent = parent || this;if(isolate){child = new Scope();child.$root = this.$root;}else {if(!this.$$ChildScope){this.$$ChildScope = createChildScopeClass(this);}child = new this.$$ChildScope();}child.$parent = parent;child.$$prevSibling = parent.$$childTail;if(parent.$$childHead){parent.$$childTail.$$nextSibling = child;parent.$$childTail = child;}else {parent.$$childHead = parent.$$childTail = child;}if(isolate || parent != this)child.$on('$destroy',destroyChildScope);return child;},$watch:function $watch(watchExp,listener,objectEquality){var get=$parse(watchExp);if(get.$$watchDelegate){return get.$$watchDelegate(this,listener,objectEquality,get);}var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:watchExp,eq:!!objectEquality};lastDirtyWatch = null;if(!isFunction(listener)){watcher.fn = noop;}if(!array){array = scope.$$watchers = [];}array.unshift(watcher);return function deregisterWatch(){arrayRemove(array,watcher);lastDirtyWatch = null;};},$watchGroup:function $watchGroup(watchExpressions,listener){var oldValues=new Array(watchExpressions.length);var newValues=new Array(watchExpressions.length);var deregisterFns=[];var self=this;var changeReactionScheduled=false;var firstRun=true;if(!watchExpressions.length){var shouldCall=true;self.$evalAsync(function(){if(shouldCall)listener(newValues,newValues,self);});return function deregisterWatchGroup(){shouldCall = false;};}if(watchExpressions.length === 1){return this.$watch(watchExpressions[0],function watchGroupAction(value,oldValue,scope){newValues[0] = value;oldValues[0] = oldValue;listener(newValues,value === oldValue?newValues:oldValues,scope);});}forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function watchGroupSubAction(value,oldValue){newValues[i] = value;oldValues[i] = oldValue;if(!changeReactionScheduled){changeReactionScheduled = true;self.$evalAsync(watchGroupAction);}});deregisterFns.push(unwatchFn);});function watchGroupAction(){changeReactionScheduled = false;if(firstRun){firstRun = false;listener(newValues,newValues,self);}else {listener(newValues,oldValues,self);}}return function deregisterWatchGroup(){while(deregisterFns.length) {deregisterFns.shift()();}};},$watchCollection:function $watchCollection(obj,listener){$watchCollectionInterceptor.$stateful = true;var self=this;var newValue;var oldValue;var veryOldValue;var trackVeryOldValue=listener.length > 1;var changeDetected=0;var changeDetector=$parse(obj,$watchCollectionInterceptor);var internalArray=[];var internalObject={};var initRun=true;var oldLength=0;function $watchCollectionInterceptor(_value){newValue = _value;var newLength,key,bothNaN,newItem,oldItem;if(isUndefined(newValue))return;if(!isObject(newValue)){if(oldValue !== newValue){oldValue = newValue;changeDetected++;}}else if(isArrayLike(newValue)){if(oldValue !== internalArray){oldValue = internalArray;oldLength = oldValue.length = 0;changeDetected++;}newLength = newValue.length;if(oldLength !== newLength){changeDetected++;oldValue.length = oldLength = newLength;}for(var i=0;i < newLength;i++) {oldItem = oldValue[i];newItem = newValue[i];bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[i] = newItem;}}}else {if(oldValue !== internalObject){oldValue = internalObject = {};oldLength = 0;changeDetected++;}newLength = 0;for(key in newValue) {if(newValue.hasOwnProperty(key)){newLength++;newItem = newValue[key];oldItem = oldValue[key];if(key in oldValue){bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[key] = newItem;}}else {oldLength++;oldValue[key] = newItem;changeDetected++;}}}if(oldLength > newLength){changeDetected++;for(key in oldValue) {if(!newValue.hasOwnProperty(key)){oldLength--;delete oldValue[key];}}}}return changeDetected;}function $watchCollectionAction(){if(initRun){initRun = false;listener(newValue,newValue,self);}else {listener(newValue,veryOldValue,self);}if(trackVeryOldValue){if(!isObject(newValue)){veryOldValue = newValue;}else if(isArrayLike(newValue)){veryOldValue = new Array(newValue.length);for(var i=0;i < newValue.length;i++) {veryOldValue[i] = newValue[i];}}else {veryOldValue = {};for(var key in newValue) {if(hasOwnProperty.call(newValue,key)){veryOldValue[key] = newValue[key];}}}}}return this.$watch(changeDetector,$watchCollectionAction);},$digest:function $digest(){var watch,value,last,watchers,length,dirty,ttl=TTL,next,current,target=this,watchLog=[],logIdx,logMsg,asyncTask;beginPhase('$digest');$browser.$$checkUrlChange();if(this === $rootScope && applyAsyncId !== null){$browser.defer.cancel(applyAsyncId);flushApplyAsync();}lastDirtyWatch = null;do {dirty = false;current = target;while(asyncQueue.length) {try{asyncTask = asyncQueue.shift();asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals);}catch(e) {$exceptionHandler(e);}lastDirtyWatch = null;}traverseScopesLoop: do {if(watchers = current.$$watchers){length = watchers.length;while(length--) {try{watch = watchers[length];if(watch){if((value = watch.get(current)) !== (last = watch.last) && !(watch.eq?equals(value,last):typeof value === 'number' && typeof last === 'number' && isNaN(value) && isNaN(last))){dirty = true;lastDirtyWatch = watch;watch.last = watch.eq?copy(value,null):value;watch.fn(value,last === initWatchVal?value:last,current);if(ttl < 5){logIdx = 4 - ttl;if(!watchLog[logIdx])watchLog[logIdx] = [];watchLog[logIdx].push({msg:isFunction(watch.exp)?'fn: ' + (watch.exp.name || watch.exp.toString()):watch.exp,newVal:value,oldVal:last});}}else if(watch === lastDirtyWatch){dirty = false;break traverseScopesLoop;}}}catch(e) {$exceptionHandler(e);}}}if(!(next = current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}while(current = next);if((dirty || asyncQueue.length) && ! ttl--){clearPhase();throw $rootScopeMinErr('infdig','{0} $digest() iterations reached. Aborting!\n' + 'Watchers fired in the last 5 iterations: {1}',TTL,watchLog);}}while(dirty || asyncQueue.length);clearPhase();while(postDigestQueue.length) {try{postDigestQueue.shift()();}catch(e) {$exceptionHandler(e);}}},$destroy:function $destroy(){if(this.$$destroyed)return;var parent=this.$parent;this.$broadcast('$destroy');this.$$destroyed = true;if(this === $rootScope)return;for(var eventName in this.$$listenerCount) {decrementListenerCount(this,this.$$listenerCount[eventName],eventName);}if(parent.$$childHead == this)parent.$$childHead = this.$$nextSibling;if(parent.$$childTail == this)parent.$$childTail = this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling = this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling = this.$$prevSibling;this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop;this.$on = this.$watch = this.$watchGroup = function(){return noop;};this.$$listeners = {};this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = this.$root = this.$$watchers = null;},$eval:function $eval(expr,locals){return $parse(expr)(this,locals);},$evalAsync:function $evalAsync(expr,locals){if(!$rootScope.$$phase && !asyncQueue.length){$browser.defer(function(){if(asyncQueue.length){$rootScope.$digest();}});}asyncQueue.push({scope:this,expression:expr,locals:locals});},$$postDigest:function $$postDigest(fn){postDigestQueue.push(fn);},$apply:function $apply(expr){try{beginPhase('$apply');return this.$eval(expr);}catch(e) {$exceptionHandler(e);}finally {clearPhase();try{$rootScope.$digest();}catch(e) {$exceptionHandler(e);throw e;}}},$applyAsync:function $applyAsync(expr){var scope=this;expr && applyAsyncQueue.push($applyAsyncExpression);scheduleApplyAsync();function $applyAsyncExpression(){scope.$eval(expr);}},$on:function $on(name,listener){var namedListeners=this.$$listeners[name];if(!namedListeners){this.$$listeners[name] = namedListeners = [];}namedListeners.push(listener);var current=this;do {if(!current.$$listenerCount[name]){current.$$listenerCount[name] = 0;}current.$$listenerCount[name]++;}while(current = current.$parent);var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);if(indexOfListener !== -1){namedListeners[indexOfListener] = null;decrementListenerCount(self,1,name);}};},$emit:function $emit(name,args){var empty=[],namedListeners,scope=this,_stopPropagation=false,event={name:name,targetScope:scope,stopPropagation:function stopPropagation(){_stopPropagation = true;},preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false},listenerArgs=concat([event],arguments,1),i,length;do {namedListeners = scope.$$listeners[name] || empty;event.currentScope = scope;for(i = 0,length = namedListeners.length;i < length;i++) {if(!namedListeners[i]){namedListeners.splice(i,1);i--;length--;continue;}try{namedListeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(_stopPropagation){event.currentScope = null;return event;}scope = scope.$parent;}while(scope);event.currentScope = null;return event;},$broadcast:function $broadcast(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false};if(!target.$$listenerCount[name])return event;var listenerArgs=concat([event],arguments,1),listeners,i,length;while(current = next) {event.currentScope = current;listeners = current.$$listeners[name] || [];for(i = 0,length = listeners.length;i < length;i++) {if(!listeners[i]){listeners.splice(i,1);i--;length--;continue;}try{listeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(!(next = current.$$listenerCount[name] && current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}event.currentScope = null;return event;}};var $rootScope=new Scope();var asyncQueue=$rootScope.$$asyncQueue = [];var postDigestQueue=$rootScope.$$postDigestQueue = [];var applyAsyncQueue=$rootScope.$$applyAsyncQueue = [];return $rootScope;function beginPhase(phase){if($rootScope.$$phase){throw $rootScopeMinErr('inprog','{0} already in progress',$rootScope.$$phase);}$rootScope.$$phase = phase;}function clearPhase(){$rootScope.$$phase = null;}function decrementListenerCount(current,count,name){do {current.$$listenerCount[name] -= count;if(current.$$listenerCount[name] === 0){delete current.$$listenerCount[name];}}while(current = current.$parent);}function initWatchVal(){}function flushApplyAsync(){while(applyAsyncQueue.length) {try{applyAsyncQueue.shift()();}catch(e) {$exceptionHandler(e);}}applyAsyncId = null;}function scheduleApplyAsync(){if(applyAsyncId === null){applyAsyncId = $browser.defer(function(){$rootScope.$apply(flushApplyAsync);});}}}];}function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){aHrefSanitizationWhitelist = regexp;return this;}return aHrefSanitizationWhitelist;};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){imgSrcSanitizationWhitelist = regexp;return this;}return imgSrcSanitizationWhitelist;};this.$get = function(){return function sanitizeUri(uri,isImage){var regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;var normalizedVal;normalizedVal = urlResolve(uri).href;if(normalizedVal !== '' && !normalizedVal.match(regex)){return 'unsafe:' + normalizedVal;}return uri;};};}var $sceMinErr=minErr('$sce');var SCE_CONTEXTS={HTML:'html',CSS:'css',URL:'url',RESOURCE_URL:'resourceUrl',JS:'js'};function adjustMatcher(matcher){if(matcher === 'self'){return matcher;}else if(isString(matcher)){if(matcher.indexOf('***') > -1){throw $sceMinErr('iwcard','Illegal sequence *** in string matcher. String: {0}',matcher);}matcher = escapeForRegexp(matcher).replace('\\*\\*','.*').replace('\\*','[^:/.?&;]*');return new RegExp('^' + matcher + '$');}else if(isRegExp(matcher)){return new RegExp('^' + matcher.source + '$');}else {throw $sceMinErr('imatcher','Matchers may only be "self", string patterns or RegExp objects');}}function adjustMatchers(matchers){var adjustedMatchers=[];if(isDefined(matchers)){forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher));});}return adjustedMatchers;}function $SceDelegateProvider(){this.SCE_CONTEXTS = SCE_CONTEXTS;var resourceUrlWhitelist=['self'],resourceUrlBlacklist=[];this.resourceUrlWhitelist = function(value){if(arguments.length){resourceUrlWhitelist = adjustMatchers(value);}return resourceUrlWhitelist;};this.resourceUrlBlacklist = function(value){if(arguments.length){resourceUrlBlacklist = adjustMatchers(value);}return resourceUrlBlacklist;};this.$get = ['$injector',function($injector){var htmlSanitizer=function htmlSanitizer(html){throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');};if($injector.has('$sanitize')){htmlSanitizer = $injector.get('$sanitize');}function matchUrl(matcher,parsedUrl){if(matcher === 'self'){return urlIsSameOrigin(parsedUrl);}else {return !!matcher.exec(parsedUrl.href);}}function isResourceUrlAllowedByPolicy(url){var parsedUrl=urlResolve(url.toString());var i,n,allowed=false;for(i = 0,n = resourceUrlWhitelist.length;i < n;i++) {if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed = true;break;}}if(allowed){for(i = 0,n = resourceUrlBlacklist.length;i < n;i++) {if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed = false;break;}}}return allowed;}function generateHolderType(Base){var holderType=function TrustedValueHolderType(trustedValue){this.$$unwrapTrustedValue = function(){return trustedValue;};};if(Base){holderType.prototype = new Base();}holderType.prototype.valueOf = function sceValueOf(){return this.$$unwrapTrustedValue();};holderType.prototype.toString = function sceToString(){return this.$$unwrapTrustedValue().toString();};return holderType;}var trustedValueHolderBase=generateHolderType(),byType={};byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]);function trustAs(type,trustedValue){var Constructor=byType.hasOwnProperty(type)?byType[type]:null;if(!Constructor){throw $sceMinErr('icontext','Attempted to trust a value in invalid context. Context: {0}; Value: {1}',type,trustedValue);}if(trustedValue === null || trustedValue === undefined || trustedValue === ''){return trustedValue;}if(typeof trustedValue !== 'string'){throw $sceMinErr('itype','Attempted to trust a non-string value in a content requiring a string: Context: {0}',type);}return new Constructor(trustedValue);}function valueOf(maybeTrusted){if(maybeTrusted instanceof trustedValueHolderBase){return maybeTrusted.$$unwrapTrustedValue();}else {return maybeTrusted;}}function getTrusted(type,maybeTrusted){if(maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === ''){return maybeTrusted;}var constructor=byType.hasOwnProperty(type)?byType[type]:null;if(constructor && maybeTrusted instanceof constructor){return maybeTrusted.$$unwrapTrustedValue();}if(type === SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted)){return maybeTrusted;}else {throw $sceMinErr('insecurl','Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}',maybeTrusted.toString());}}else if(type === SCE_CONTEXTS.HTML){return htmlSanitizer(maybeTrusted);}throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');}return {trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf};}];}function $SceProvider(){var enabled=true;this.enabled = function(value){if(arguments.length){enabled = !!value;}return enabled;};this.$get = ['$parse','$sceDelegate',function($parse,$sceDelegate){if(enabled && msie < 8){throw $sceMinErr('iequirks','Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + 'mode. You can fix this by adding the text <!doctype html> to the top of your HTML ' + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.');}var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled = function(){return enabled;};sce.trustAs = $sceDelegate.trustAs;sce.getTrusted = $sceDelegate.getTrusted;sce.valueOf = $sceDelegate.valueOf;if(!enabled){sce.trustAs = sce.getTrusted = function(type,value){return value;};sce.valueOf = identity;}sce.parseAs = function sceParseAs(type,expr){var parsed=$parse(expr);if(parsed.literal && parsed.constant){return parsed;}else {return $parse(expr,function(value){return sce.getTrusted(type,value);});}};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase('parse_as_' + lName)] = function(expr){return parse(enumValue,expr);};sce[camelCase('get_trusted_' + lName)] = function(value){return getTrusted(enumValue,value);};sce[camelCase('trust_as_' + lName)] = function(value){return trustAs(enumValue,value);};});return sce;}];}function $SnifferProvider(){this.$get = ['$window','$document',function($window,$document){var eventSupport={},android=int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]),boxee=/Boxee/i.test(($window.navigator || {}).userAgent),document=$document[0] || {},vendorPrefix,vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body && document.body.style,transitions=false,animations=false,match;if(bodyStyle){for(var prop in bodyStyle) {if(match = vendorRegex.exec(prop)){vendorPrefix = match[0];vendorPrefix = vendorPrefix.substr(0,1).toUpperCase() + vendorPrefix.substr(1);break;}}if(!vendorPrefix){vendorPrefix = 'WebkitOpacity' in bodyStyle && 'webkit';}transitions = !!('transition' in bodyStyle || vendorPrefix + 'Transition' in bodyStyle);animations = !!('animation' in bodyStyle || vendorPrefix + 'Animation' in bodyStyle);if(android && (!transitions || !animations)){transitions = isString(document.body.style.webkitTransition);animations = isString(document.body.style.webkitAnimation);}}return {history:!!($window.history && $window.history.pushState && !(android < 4) && !boxee),hasEvent:function hasEvent(event){if(event === 'input' && msie <= 11)return false;if(isUndefined(eventSupport[event])){var divElm=document.createElement('div');eventSupport[event] = 'on' + event in divElm;}return eventSupport[event];},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android};}];}var $compileMinErr=minErr('$compile');function $TemplateRequestProvider(){this.$get = ['$templateCache','$http','$q',function($templateCache,$http,$q){function handleRequestFn(tpl,ignoreRequestError){handleRequestFn.totalPendingRequests++;var transformResponse=$http.defaults && $http.defaults.transformResponse;if(isArray(transformResponse)){transformResponse = transformResponse.filter(function(transformer){return transformer !== defaultHttpResponseTransform;});}else if(transformResponse === defaultHttpResponseTransform){transformResponse = null;}var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)['finally'](function(){handleRequestFn.totalPendingRequests--;}).then(function(response){return response.data;},handleError);function handleError(resp){if(!ignoreRequestError){throw $compileMinErr('tpload','Failed to load template: {0}',tpl);}return $q.reject(resp);}}handleRequestFn.totalPendingRequests = 0;return handleRequestFn;}];}function $$TestabilityProvider(){this.$get = ['$rootScope','$browser','$location',function($rootScope,$browser,$location){var testability={};testability.findBindings = function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName('ng-binding');var matches=[];forEach(bindings,function(binding){var dataBinding=angular.element(binding).data('$binding');if(dataBinding){forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)');if(matcher.test(bindingName)){matches.push(binding);}}else {if(bindingName.indexOf(expression) != -1){matches.push(binding);}}});}});return matches;};testability.findModels = function(element,expression,opt_exactMatch){var prefixes=['ng-','data-ng-','ng\\:'];for(var p=0;p < prefixes.length;++p) {var attributeEquals=opt_exactMatch?'=':'*=';var selector='[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]';var elements=element.querySelectorAll(selector);if(elements.length){return elements;}}};testability.getLocation = function(){return $location.url();};testability.setLocation = function(url){if(url !== $location.url()){$location.url(url);$rootScope.$digest();}};testability.whenStable = function(callback){$browser.notifyWhenNoOutstandingRequests(callback);};return testability;}];}function $TimeoutProvider(){this.$get = ['$rootScope','$browser','$q','$$q','$exceptionHandler',function($rootScope,$browser,$q,$$q,$exceptionHandler){var deferreds={};function timeout(fn,delay,invokeApply){var skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise,timeoutId;timeoutId = $browser.defer(function(){try{deferred.resolve(fn());}catch(e) {deferred.reject(e);$exceptionHandler(e);}finally {delete deferreds[promise.$$timeoutId];}if(!skipApply)$rootScope.$apply();},delay);promise.$$timeoutId = timeoutId;deferreds[timeoutId] = deferred;return promise;}timeout.cancel = function(promise){if(promise && promise.$$timeoutId in deferreds){deferreds[promise.$$timeoutId].reject('canceled');delete deferreds[promise.$$timeoutId];return $browser.defer.cancel(promise.$$timeoutId);}return false;};return timeout;}];}var urlParsingNode=document.createElement('a');var originUrl=urlResolve(window.location.href);function urlResolve(url){var href=url;if(msie){urlParsingNode.setAttribute('href',href);href = urlParsingNode.href;}urlParsingNode.setAttribute('href',href);return {href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,''):'',host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,''):'',hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,''):'',hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:urlParsingNode.pathname.charAt(0) === '/'?urlParsingNode.pathname:'/' + urlParsingNode.pathname};}function urlIsSameOrigin(requestUrl){var parsed=isString(requestUrl)?urlResolve(requestUrl):requestUrl;return parsed.protocol === originUrl.protocol && parsed.host === originUrl.host;}function $WindowProvider(){this.$get = valueFn(window);}$FilterProvider.$inject = ['$provide'];function $FilterProvider($provide){var suffix='Filter';function register(name,factory){if(isObject(name)){var filters={};forEach(name,function(filter,key){filters[key] = register(key,filter);});return filters;}else {return $provide.factory(name + suffix,factory);}}this.register = register;this.$get = ['$injector',function($injector){return function(name){return $injector.get(name + suffix);};}];register('currency',currencyFilter);register('date',dateFilter);register('filter',filterFilter);register('json',jsonFilter);register('limitTo',limitToFilter);register('lowercase',lowercaseFilter);register('number',numberFilter);register('orderBy',orderByFilter);register('uppercase',uppercaseFilter);}function filterFilter(){return function(array,expression,comparator){if(!isArray(array))return array;var predicateFn;var matchAgainstAnyProp;switch(typeof expression){case 'function':predicateFn = expression;break;case 'boolean':case 'number':case 'string':matchAgainstAnyProp = true;case 'object':predicateFn = createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array;}return array.filter(predicateFn);};}function createPredicateFn(expression,comparator,matchAgainstAnyProp){var shouldMatchPrimitives=isObject(expression) && '$' in expression;var predicateFn;if(comparator === true){comparator = equals;}else if(!isFunction(comparator)){comparator = function(actual,expected){if(isObject(actual) || isObject(expected)){return false;}actual = lowercase('' + actual);expected = lowercase('' + expected);return actual.indexOf(expected) !== -1;};}predicateFn = function(item){if(shouldMatchPrimitives && !isObject(item)){return deepCompare(item,expression.$,comparator,false);}return deepCompare(item,expression,comparator,matchAgainstAnyProp);};return predicateFn;}function deepCompare(_x3,_x4,_x5,_x6,_x7){var _again2=true;_function2: while(_again2) {var actual=_x3,expected=_x4,comparator=_x5,matchAgainstAnyProp=_x6,dontMatchWholeObject=_x7;actualType = expectedType = key = expectedVal = matchAnyProperty = actualVal = undefined;_again2 = false;var actualType=actual !== null?typeof actual:'null';var expectedType=expected !== null?typeof expected:'null';if(expectedType === 'string' && expected.charAt(0) === '!'){return !deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);}else if(isArray(actual)){return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp);});}switch(actualType){case 'object':var key;if(matchAgainstAnyProp){for(key in actual) {if(key.charAt(0) !== '$' && deepCompare(actual[key],expected,comparator,true)){return true;}}if(dontMatchWholeObject){return false;}else {_x3 = actual;_x4 = expected;_x5 = comparator;_x6 = false;_again2 = true;continue _function2;}}else if(expectedType === 'object'){for(key in expected) {var expectedVal=expected[key];if(isFunction(expectedVal) || isUndefined(expectedVal)){continue;}var matchAnyProperty=key === '$';var actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty)){return false;}}return true;}else {return comparator(actual,expected);}break;case 'function':return false;default:return comparator(actual,expected);}}}currencyFilter.$inject = ['$locale'];function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){if(isUndefined(currencySymbol)){currencySymbol = formats.CURRENCY_SYM;}if(isUndefined(fractionSize)){fractionSize = formats.PATTERNS[1].maxFrac;}return amount == null?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol);};}numberFilter.$inject = ['$locale'];function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return number == null?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize);};}var DECIMAL_SEP='.';function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(!isFinite(number) || isObject(number))return '';var isNegative=number < 0;number = Math.abs(number);var numStr=number + '',formatedText='',parts=[];var hasExponent=false;if(numStr.indexOf('e') !== -1){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);if(match && match[2] == '-' && match[3] > fractionSize + 1){number = 0;}else {formatedText = numStr;hasExponent = true;}}if(!hasExponent){var fractionLen=(numStr.split(DECIMAL_SEP)[1] || '').length;if(isUndefined(fractionSize)){fractionSize = Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac);}number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);var fraction=('' + number).split(DECIMAL_SEP);var whole=fraction[0];fraction = fraction[1] || '';var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length >= lgroup + group){pos = whole.length - lgroup;for(i = 0;i < pos;i++) {if((pos - i) % group === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}}for(i = pos;i < whole.length;i++) {if((whole.length - i) % lgroup === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}while(fraction.length < fractionSize) {fraction += '0';}if(fractionSize && fractionSize !== '0')formatedText += decimalSep + fraction.substr(0,fractionSize);}else {if(fractionSize > 0 && number < 1){formatedText = number.toFixed(fractionSize);number = parseFloat(formatedText);}}if(number === 0){isNegative = false;}parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf);return parts.join('');}function padNumber(num,digits,trim){var neg='';if(num < 0){neg = '-';num = -num;}num = '' + num;while(num.length < digits) num = '0' + num;if(trim)num = num.substr(num.length - digits);return neg + num;}function dateGetter(name,size,offset,trim){offset = offset || 0;return function(date){var value=date['get' + name]();if(offset > 0 || value > -offset)value += offset;if(value === 0 && offset == -12)value = 12;return padNumber(value,size,trim);};}function dateStrGetter(name,shortForm){return function(date,formats){var value=date['get' + name]();var get=uppercase(shortForm?'SHORT' + name:name);return formats[get][value];};}function timeZoneGetter(date){var zone=-1 * date.getTimezoneOffset();var paddedZone=zone >= 0?'+':'';paddedZone += padNumber(Math[zone > 0?'floor':'ceil'](zone / 60),2) + padNumber(Math.abs(zone % 60),2);return paddedZone;}function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=new Date(year,0,1).getDay();return new Date(year,0,(dayOfWeekOnFirst <= 4?5:12) - dayOfWeekOnFirst);}function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate() + (4 - datetime.getDay()));}function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date);var diff=+thisThurs - +firstThurs,result=1 + Math.round(diff / 6.048e8);return padNumber(result,size);};}function ampmGetter(date,formats){return date.getHours() < 12?formats.AMPMS[0]:formats.AMPMS[1];}function eraGetter(date,formats){return date.getFullYear() <= 0?formats.ERAS[0]:formats.ERAS[1];}function longEraGetter(date,formats){return date.getFullYear() <= 0?formats.ERANAMES[0]:formats.ERANAMES[1];}var DATE_FORMATS={yyyy:dateGetter('FullYear',4),yy:dateGetter('FullYear',2,0,true),y:dateGetter('FullYear',1),MMMM:dateStrGetter('Month'),MMM:dateStrGetter('Month',true),MM:dateGetter('Month',2,1),M:dateGetter('Month',1,1),dd:dateGetter('Date',2),d:dateGetter('Date',1),HH:dateGetter('Hours',2),H:dateGetter('Hours',1),hh:dateGetter('Hours',2,-12),h:dateGetter('Hours',1,-12),mm:dateGetter('Minutes',2),m:dateGetter('Minutes',1),ss:dateGetter('Seconds',2),s:dateGetter('Seconds',1),sss:dateGetter('Milliseconds',3),EEEE:dateStrGetter('Day'),EEE:dateStrGetter('Day',true),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter};var DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject = ['$locale'];function dateFilter($locale){var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function jsonStringToDate(string){var match;if(match = string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;if(match[9]){tzHour = int(match[9] + match[10]);tzMin = int(match[9] + match[11]);}dateSetter.call(date,int(match[1]),int(match[2]) - 1,int(match[3]));var h=int(match[4] || 0) - tzHour;var m=int(match[5] || 0) - tzMin;var s=int(match[6] || 0);var ms=Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);timeSetter.call(date,h,m,s,ms);return date;}return string;}return function(date,format,timezone){var text='',parts=[],fn,match;format = format || 'mediumDate';format = $locale.DATETIME_FORMATS[format] || format;if(isString(date)){date = NUMBER_STRING.test(date)?int(date):jsonStringToDate(date);}if(isNumber(date)){date = new Date(date);}if(!isDate(date)){return date;}while(format) {match = DATE_FORMATS_SPLIT.exec(format);if(match){parts = concat(parts,match,1);format = parts.pop();}else {parts.push(format);format = null;}}if(timezone && timezone === 'UTC'){date = new Date(date.getTime());date.setMinutes(date.getMinutes() + date.getTimezoneOffset());}forEach(parts,function(value){fn = DATE_FORMATS[value];text += fn?fn(date,$locale.DATETIME_FORMATS):value.replace(/(^'|'$)/g,'').replace(/''/g,'\'');});return text;};}function jsonFilter(){return function(object,spacing){if(isUndefined(spacing)){spacing = 2;}return toJson(object,spacing);};}var lowercaseFilter=valueFn(lowercase);var uppercaseFilter=valueFn(uppercase);function limitToFilter(){return function(input,limit){if(isNumber(input))input = input.toString();if(!isArray(input) && !isString(input))return input;if(Math.abs(Number(limit)) === Infinity){limit = Number(limit);}else {limit = int(limit);}if(limit){return limit > 0?input.slice(0,limit):input.slice(limit);}else {return isString(input)?'':[];}};}orderByFilter.$inject = ['$parse'];function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){if(!isArrayLike(array))return array;sortPredicate = isArray(sortPredicate)?sortPredicate:[sortPredicate];if(sortPredicate.length === 0){sortPredicate = ['+'];}sortPredicate = sortPredicate.map(function(predicate){var descending=false,get=predicate || identity;if(isString(predicate)){if(predicate.charAt(0) == '+' || predicate.charAt(0) == '-'){descending = predicate.charAt(0) == '-';predicate = predicate.substring(1);}if(predicate === ''){return reverseComparator(compare,descending);}get = $parse(predicate);if(get.constant){var key=get();return reverseComparator(function(a,b){return compare(a[key],b[key]);},descending);}}return reverseComparator(function(a,b){return compare(get(a),get(b));},descending);});return slice.call(array).sort(reverseComparator(comparator,reverseOrder));function comparator(o1,o2){for(var i=0;i < sortPredicate.length;i++) {var comp=sortPredicate[i](o1,o2);if(comp !== 0)return comp;}return 0;}function reverseComparator(comp,descending){return descending?function(a,b){return comp(b,a);}:comp;}function isPrimitive(value){switch(typeof value){case 'number':case 'boolean':case 'string':return true;default:return false;}}function objectToString(value){if(value === null)return 'null';if(typeof value.valueOf === 'function'){value = value.valueOf();if(isPrimitive(value))return value;}if(typeof value.toString === 'function'){value = value.toString();if(isPrimitive(value))return value;}return '';}function compare(v1,v2){var t1=typeof v1;var t2=typeof v2;if(t1 === t2 && t1 === 'object'){v1 = objectToString(v1);v2 = objectToString(v2);}if(t1 === t2){if(t1 === 'string'){v1 = v1.toLowerCase();v2 = v2.toLowerCase();}if(v1 === v2)return 0;return v1 < v2?-1:1;}else {return t1 < t2?-1:1;}}};}function ngDirective(directive){if(isFunction(directive)){directive = {link:directive};}directive.restrict = directive.restrict || 'AC';return valueFn(directive);}var htmlAnchorDirective=valueFn({restrict:'E',compile:function compile(element,attr){if(!attr.href && !attr.xlinkHref && !attr.name){return function(scope,element){if(element[0].nodeName.toLowerCase() !== 'a')return;var href=toString.call(element.prop('href')) === '[object SVGAnimatedString]'?'xlink:href':'href';element.on('click',function(event){if(!element.attr(href)){event.preventDefault();}});};}}});var ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if(propName == 'multiple')return;var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {restrict:'A',priority:100,link:function link(scope,element,attr){scope.$watch(attr[normalized],function ngBooleanAttrWatchAction(value){attr.$set(attrName,!!value);});}};};});forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr] = function(){return {priority:100,link:function link(scope,element,attr){if(ngAttr === 'ngPattern' && attr.ngPattern.charAt(0) == '/'){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match){attr.$set('ngPattern',new RegExp(match[1],match[2]));return;}}scope.$watch(attr[ngAttr],function ngAttrAliasWatchAction(value){attr.$set(ngAttr,value);});}};};});forEach(['src','srcset','href'],function(attrName){var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {priority:99,link:function link(scope,element,attr){var propName=attrName,name=attrName;if(attrName === 'href' && toString.call(element.prop('href')) === '[object SVGAnimatedString]'){name = 'xlinkHref';attr.$attr[name] = 'xlink:href';propName = null;}attr.$observe(normalized,function(value){if(!value){if(attrName === 'href'){attr.$set(name,null);}return;}attr.$set(name,value);if(msie && propName)element.prop(propName,attr[name]);});}};};});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS='ng-submitted';function nullFormRenameControl(control,name){control.$name = name;}FormController.$inject = ['$element','$attrs','$scope','$animate','$interpolate'];function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[];var parentForm=form.$$parentForm = element.parent().controller('form') || nullFormCtrl;form.$error = {};form.$$success = {};form.$pending = undefined;form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope);form.$dirty = false;form.$pristine = true;form.$valid = true;form.$invalid = false;form.$submitted = false;parentForm.$addControl(form);form.$rollbackViewValue = function(){forEach(controls,function(control){control.$rollbackViewValue();});};form.$commitViewValue = function(){forEach(controls,function(control){control.$commitViewValue();});};form.$addControl = function(control){assertNotHasOwnProperty(control.$name,'input');controls.push(control);if(control.$name){form[control.$name] = control;}};form.$$renameControl = function(control,newName){var oldName=control.$name;if(form[oldName] === control){delete form[oldName];}form[newName] = control;control.$name = newName;};form.$removeControl = function(control){if(control.$name && form[control.$name] === control){delete form[control.$name];}forEach(form.$pending,function(value,name){form.$setValidity(name,null,control);});forEach(form.$error,function(value,name){form.$setValidity(name,null,control);});forEach(form.$$success,function(value,name){form.$setValidity(name,null,control);});arrayRemove(controls,control);};addSetValidityMethod({ctrl:this,$element:element,set:function set(object,property,controller){var list=object[property];if(!list){object[property] = [controller];}else {var index=list.indexOf(controller);if(index === -1){list.push(controller);}}},unset:function unset(object,property,controller){var list=object[property];if(!list){return;}arrayRemove(list,controller);if(list.length === 0){delete object[property];}},parentForm:parentForm,$animate:$animate});form.$setDirty = function(){$animate.removeClass(element,PRISTINE_CLASS);$animate.addClass(element,DIRTY_CLASS);form.$dirty = true;form.$pristine = false;parentForm.$setDirty();};form.$setPristine = function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS + ' ' + SUBMITTED_CLASS);form.$dirty = false;form.$pristine = true;form.$submitted = false;forEach(controls,function(control){control.$setPristine();});};form.$setUntouched = function(){forEach(controls,function(control){control.$setUntouched();});};form.$setSubmitted = function(){$animate.addClass(element,SUBMITTED_CLASS);form.$submitted = true;parentForm.$setSubmitted();};}var formDirectiveFactory=function formDirectiveFactory(isNgForm){return ['$timeout',function($timeout){var formDirective={name:'form',restrict:isNgForm?'EAC':'E',controller:FormController,compile:function ngFormCompile(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?'name':isNgForm && attr.ngForm?'ngForm':false;return {pre:function ngFormPreLink(scope,formElement,attr,controller){if(!('action' in attr)){var handleFormSubmission=function handleFormSubmission(event){scope.$apply(function(){controller.$commitViewValue();controller.$setSubmitted();});event.preventDefault();};addEventListenerFn(formElement[0],'submit',handleFormSubmission);formElement.on('$destroy',function(){$timeout(function(){removeEventListenerFn(formElement[0],'submit',handleFormSubmission);},0,false);});}var parentFormCtrl=controller.$$parentForm;if(nameAttr){setter(scope,null,controller.$name,controller,controller.$name);attr.$observe(nameAttr,function(newValue){if(controller.$name === newValue)return;setter(scope,null,controller.$name,undefined,controller.$name);parentFormCtrl.$$renameControl(controller,newValue);setter(scope,null,controller.$name,controller,controller.$name);});}formElement.on('$destroy',function(){parentFormCtrl.$removeControl(controller);if(nameAttr){setter(scope,null,attr[nameAttr],undefined,controller.$name);}extend(controller,nullFormCtrl);});}};}};return formDirective;}];};var formDirective=formDirectiveFactory();var ngFormDirective=formDirectiveFactory(true);var ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;var URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;var EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;var NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;var DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var WEEK_REGEXP=/^(\d{4})-W(\d\d)$/;var MONTH_REGEXP=/^(\d{4})-(\d\d)$/;var TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var inputType={'text':textInputType,'date':createDateInputType('date',DATE_REGEXP,createDateParser(DATE_REGEXP,['yyyy','MM','dd']),'yyyy-MM-dd'),'datetime-local':createDateInputType('datetimelocal',DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,['yyyy','MM','dd','HH','mm','ss','sss']),'yyyy-MM-ddTHH:mm:ss.sss'),'time':createDateInputType('time',TIME_REGEXP,createDateParser(TIME_REGEXP,['HH','mm','ss','sss']),'HH:mm:ss.sss'),'week':createDateInputType('week',WEEK_REGEXP,weekParser,'yyyy-Www'),'month':createDateInputType('month',MONTH_REGEXP,createDateParser(MONTH_REGEXP,['yyyy','MM']),'yyyy-MM'),'number':numberInputType,'url':urlInputType,'email':emailInputType,'radio':radioInputType,'checkbox':checkboxInputType,'hidden':noop,'button':noop,'submit':noop,'reset':noop,'file':noop};function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString();});}function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);}function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=false;element.on('compositionstart',function(data){composing = true;});element.on('compositionend',function(){composing = false;listener();});}var listener=function listener(ev){if(timeout){$browser.defer.cancel(timeout);timeout = null;}if(composing)return;var value=element.val(),event=ev && ev.type;if(type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')){value = trim(value);}if(ctrl.$viewValue !== value || value === '' && ctrl.$$hasNativeValidators){ctrl.$setViewValue(value,event);}};if($sniffer.hasEvent('input')){element.on('input',listener);}else {var timeout;var deferListener=function deferListener(ev,input,origValue){if(!timeout){timeout = $browser.defer(function(){timeout = null;if(!input || input.value !== origValue){listener(ev);}});}};element.on('keydown',function(event){var key=event.keyCode;if(key === 91 || 15 < key && key < 19 || 37 <= key && key <= 40)return;deferListener(event,this,this.value);});if($sniffer.hasEvent('paste')){element.on('paste cut',deferListener);}}element.on('change',listener);ctrl.$render = function(){element.val(ctrl.$isEmpty(ctrl.$viewValue)?'':ctrl.$viewValue);};}function weekParser(isoWeek,existingDate){if(isDate(isoWeek)){return isoWeek;}if(isString(isoWeek)){WEEK_REGEXP.lastIndex = 0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=(week - 1) * 7;if(existingDate){hours = existingDate.getHours();minutes = existingDate.getMinutes();seconds = existingDate.getSeconds();milliseconds = existingDate.getMilliseconds();}return new Date(year,0,firstThurs.getDate() + addDays,hours,minutes,seconds,milliseconds);}}return NaN;}function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso)){return iso;}if(isString(iso)){if(iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"'){iso = iso.substring(1,iso.length - 1);}if(ISO_DATE_REGEXP.test(iso)){return new Date(iso);}regexp.lastIndex = 0;parts = regexp.exec(iso);if(parts){parts.shift();if(date){map = {yyyy:date.getFullYear(),MM:date.getMonth() + 1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds() / 1000};}else {map = {yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0};}forEach(parts,function(part,index){if(index < mapping.length){map[mapping[index]] = +part;}});return new Date(map.yyyy,map.MM - 1,map.dd,map.HH,map.mm,map.ss || 0,map.sss * 1000 || 0);}}return NaN;};}function createDateInputType(type,regexp,parseDate,format){return function dynamicDateInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var timezone=ctrl && ctrl.$options && ctrl.$options.timezone;var previousDate;ctrl.$$parserName = type;ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);if(timezone === 'UTC'){parsedDate.setMinutes(parsedDate.getMinutes() - parsedDate.getTimezoneOffset());}return parsedDate;}return undefined;});ctrl.$formatters.push(function(value){if(value && !isDate(value)){throw $ngModelMinErr('datefmt','Expected `{0}` to be a date',value);}if(isValidDate(value)){previousDate = value;if(previousDate && timezone === 'UTC'){var timezoneOffset=60000 * previousDate.getTimezoneOffset();previousDate = new Date(previousDate.getTime() + timezoneOffset);}return $filter('date')(value,format,timezone);}else {previousDate = null;return '';}});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal;};attr.$observe('min',function(val){minVal = parseObservedDateValue(val);ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;};attr.$observe('max',function(val){maxVal = parseObservedDateValue(val);ctrl.$validate();});}function isValidDate(value){return value && !(value.getTime && value.getTime() !== value.getTime());}function parseObservedDateValue(val){return isDefined(val)?isDate(val)?val:parseDate(val):undefined;}};}function badInputChecker(scope,element,attr,ctrl){var node=element[0];var nativeValidation=ctrl.$$hasNativeValidators = isObject(node.validity);if(nativeValidation){ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY) || {};return validity.badInput && !validity.typeMismatch?undefined:value;});}}function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);ctrl.$$parserName = 'number';ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(NUMBER_REGEXP.test(value))return parseFloat(value);return undefined;});ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value)){throw $ngModelMinErr('numfmt','Expected `{0}` to be a number',value);}value = value.toString();}return value;});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal;};attr.$observe('min',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}minVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal;};attr.$observe('max',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}maxVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}}function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'url';ctrl.$validators.url = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || URL_REGEXP.test(value);};}function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'email';ctrl.$validators.email = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value);};}function radioInputType(scope,element,attr,ctrl){if(isUndefined(attr.name)){element.attr('name',nextUid());}var listener=function listener(ev){if(element[0].checked){ctrl.$setViewValue(attr.value,ev && ev.type);}};element.on('click',listener);ctrl.$render = function(){var value=attr.value;element[0].checked = value == ctrl.$viewValue;};attr.$observe('value',ctrl.$render);}function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){parseFn = $parse(expression);if(!parseFn.constant){throw minErr('ngModel')('constexpr','Expected constant expression for `{0}`, but saw ' + '`{1}`.',name,expression);}return parseFn(context);}return fallback;}function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,'ngTrueValue',attr.ngTrueValue,true);var falseValue=parseConstantExpr($parse,scope,'ngFalseValue',attr.ngFalseValue,false);var listener=function listener(ev){ctrl.$setViewValue(element[0].checked,ev && ev.type);};element.on('click',listener);ctrl.$render = function(){element[0].checked = ctrl.$viewValue;};ctrl.$isEmpty = function(value){return value === false;};ctrl.$formatters.push(function(value){return equals(value,trueValue);});ctrl.$parsers.push(function(value){return value?trueValue:falseValue;});}var inputDirective=['$browser','$sniffer','$filter','$parse',function($browser,$sniffer,$filter,$parse){return {restrict:'E',require:['?ngModel'],link:{pre:function pre(scope,element,attr,ctrls){if(ctrls[0]){(inputType[lowercase(attr.type)] || inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse);}}}};}];var CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/;var ngValueDirective=function ngValueDirective(){return {restrict:'A',priority:100,compile:function compile(tpl,tplAttr){if(CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)){return function ngValueConstantLink(scope,elm,attr){attr.$set('value',scope.$eval(attr.ngValue));};}else {return function ngValueLink(scope,elm,attr){scope.$watch(attr.ngValue,function valueWatchAction(value){attr.$set('value',value);});};}}};};var ngBindDirective=['$compile',function($compile){return {restrict:'AC',compile:function ngBindCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind);element = element[0];scope.$watch(attr.ngBind,function ngBindWatchAction(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindTemplateDirective=['$interpolate','$compile',function($interpolate,$compile){return {compile:function ngBindTemplateCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindTemplateLink(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions);element = element[0];attr.$observe('ngBindTemplate',function(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindHtmlDirective=['$sce','$parse','$compile',function($sce,$parse,$compile){return {restrict:'A',compile:function ngBindHtmlCompile(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml);var ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function getStringValue(value){return (value || '').toString();});$compile.$$addBindingClass(tElement);return function ngBindHtmlLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml);scope.$watch(ngBindHtmlWatch,function ngBindHtmlWatchAction(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope)) || '');});};}};}];var ngChangeDirective=valueFn({restrict:'A',require:'ngModel',link:function link(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange);});}});function classDirective(name,selector){name = 'ngClass' + name;return ['$animate',function($animate){return {restrict:'AC',link:function link(scope,element,attr){var oldVal;scope.$watch(attr[name],ngClassWatchAction,true);attr.$observe('class',function(value){ngClassWatchAction(scope.$eval(attr[name]));});if(name !== 'ngClass'){scope.$watch('$index',function($index,old$index){var mod=$index & 1;if(mod !== (old$index & 1)){var classes=arrayClasses(scope.$eval(attr[name]));mod === selector?addClasses(classes):removeClasses(classes);}});}function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses);}function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses);}function digestClassCounts(classes,count){var classCounts=element.data('$classCounts') || {};var classesToUpdate=[];forEach(classes,function(className){if(count > 0 || classCounts[className]){classCounts[className] = (classCounts[className] || 0) + count;if(classCounts[className] === +(count > 0)){classesToUpdate.push(className);}}});element.data('$classCounts',classCounts);return classesToUpdate.join(' ');}function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses);var toRemove=arrayDifference(oldClasses,newClasses);toAdd = digestClassCounts(toAdd,1);toRemove = digestClassCounts(toRemove,-1);if(toAdd && toAdd.length){$animate.addClass(element,toAdd);}if(toRemove && toRemove.length){$animate.removeClass(element,toRemove);}}function ngClassWatchAction(newVal){if(selector === true || scope.$index % 2 === selector){var newClasses=arrayClasses(newVal || []);if(!oldVal){addClasses(newClasses);}else if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses);}}oldVal = shallowCopy(newVal);}}};function arrayDifference(tokens1,tokens2){var values=[];outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values.push(token);}return values;}function arrayClasses(classVal){if(isArray(classVal)){return classVal;}else if(isString(classVal)){return classVal.split(' ');}else if(isObject(classVal)){var classes=[];forEach(classVal,function(v,k){if(v){classes = classes.concat(k.split(' '));}});return classes;}return classVal;}}];}var ngClassDirective=classDirective('',true);var ngClassOddDirective=classDirective('Odd',0);var ngClassEvenDirective=classDirective('Even',1);var ngCloakDirective=ngDirective({compile:function compile(element,attr){attr.$set('ngCloak',undefined);element.removeClass('ng-cloak');}});var ngControllerDirective=[function(){return {restrict:'A',scope:true,controller:'@',priority:500};}];var ngEventDirectives={};var forceAsyncEvents={'blur':true,'focus':true};forEach('click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(eventName){var directiveName=directiveNormalize('ng-' + eventName);ngEventDirectives[directiveName] = ['$parse','$rootScope',function($parse,$rootScope){return {restrict:'A',compile:function compile($element,attr){var fn=$parse(attr[directiveName],null,true);return function ngEventHandler(scope,element){element.on(eventName,function(event){var callback=function callback(){fn(scope,{$event:event});};if(forceAsyncEvents[eventName] && $rootScope.$$phase){scope.$evalAsync(callback);}else {scope.$apply(callback);}});};}};}];});var ngIfDirective=['$animate',function($animate){return {multiElement:true,transclude:'element',priority:600,terminal:true,restrict:'A',$$tlb:true,link:function link($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function ngIfWatchAction(value){if(value){if(!childScope){$transclude(function(clone,newScope){childScope = newScope;clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' ');block = {clone:clone};$animate.enter(clone,$element.parent(),$element);});}}else {if(previousElements){previousElements.remove();previousElements = null;}if(childScope){childScope.$destroy();childScope = null;}if(block){previousElements = getBlockNodes(block.clone);$animate.leave(previousElements).then(function(){previousElements = null;});block = null;}}});}};}];var ngIncludeDirective=['$templateRequest','$anchorScroll','$animate','$sce',function($templateRequest,$anchorScroll,$animate,$sce){return {restrict:'ECA',priority:400,terminal:true,transclude:'element',controller:angular.noop,compile:function compile(element,attr){var srcExp=attr.ngInclude || attr.src,onloadExp=attr.onload || '',autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function cleanupLastIncludeContent(){if(previousElement){previousElement.remove();previousElement = null;}if(currentScope){currentScope.$destroy();currentScope = null;}if(currentElement){$animate.leave(currentElement).then(function(){previousElement = null;});previousElement = currentElement;currentElement = null;}};scope.$watch($sce.parseAsResourceUrl(srcExp),function ngIncludeWatchAction(src){var afterAnimation=function afterAnimation(){if(isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))){$anchorScroll();}};var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId !== changeCounter)return;var newScope=scope.$new();ctrl.template = response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,null,$element).then(afterAnimation);});currentScope = newScope;currentElement = clone;currentScope.$emit('$includeContentLoaded',src);scope.$eval(onloadExp);},function(){if(thisChangeId === changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else {cleanupLastIncludeContent();ctrl.template = null;}});};}};}];var ngIncludeFillContentDirective=['$compile',function($compile){return {restrict:'ECA',priority:-400,require:'ngInclude',link:function link(scope,$element,$attr,ctrl){if(/SVG/.test($element[0].toString())){$element.empty();$compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function namespaceAdaptedClone(clone){$element.append(clone);},{futureParentElement:$element});return;}$element.html(ctrl.template);$compile($element.contents())(scope);}};}];var ngInitDirective=ngDirective({priority:450,compile:function compile(){return {pre:function pre(scope,element,attrs){scope.$eval(attrs.ngInit);}};}});var ngListDirective=function ngListDirective(){return {restrict:'A',priority:100,require:'ngModel',link:function link(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList) || ', ';var trimValues=attr.ngTrim !== 'false';var separator=trimValues?trim(ngList):ngList;var parse=function parse(viewValue){if(isUndefined(viewValue))return;var list=[];if(viewValue){forEach(viewValue.split(separator),function(value){if(value)list.push(trimValues?trim(value):value);});}return list;};ctrl.$parsers.push(parse);ctrl.$formatters.push(function(value){if(isArray(value)){return value.join(ngList);}return undefined;});ctrl.$isEmpty = function(value){return !value || !value.length;};}};};var VALID_CLASS='ng-valid',INVALID_CLASS='ng-invalid',PRISTINE_CLASS='ng-pristine',DIRTY_CLASS='ng-dirty',UNTOUCHED_CLASS='ng-untouched',TOUCHED_CLASS='ng-touched',PENDING_CLASS='ng-pending';var $ngModelMinErr=new minErr('ngModel');var NgModelController=['$scope','$exceptionHandler','$attrs','$element','$parse','$animate','$timeout','$rootScope','$q','$interpolate',function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue = Number.NaN;this.$modelValue = Number.NaN;this.$$rawModelValue = undefined;this.$validators = {};this.$asyncValidators = {};this.$parsers = [];this.$formatters = [];this.$viewChangeListeners = [];this.$untouched = true;this.$touched = false;this.$pristine = true;this.$dirty = false;this.$valid = true;this.$invalid = false;this.$error = {};this.$$success = {};this.$pending = undefined;this.$name = $interpolate($attr.name || '',false)($scope);var parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,parserValid,ctrl=this;this.$$setOptions = function(options){ctrl.$options = options;if(options && options.getterSetter){var invokeModelGetter=$parse($attr.ngModel + '()'),invokeModelSetter=$parse($attr.ngModel + '($$$p)');ngModelGet = function($scope){var modelValue=parsedNgModel($scope);if(isFunction(modelValue)){modelValue = invokeModelGetter($scope);}return modelValue;};ngModelSet = function($scope,newValue){if(isFunction(parsedNgModel($scope))){invokeModelSetter($scope,{$$$p:ctrl.$modelValue});}else {parsedNgModelAssign($scope,ctrl.$modelValue);}};}else if(!parsedNgModel.assign){throw $ngModelMinErr('nonassign','Expression \'{0}\' is non-assignable. Element: {1}',$attr.ngModel,startingTag($element));}};this.$render = noop;this.$isEmpty = function(value){return isUndefined(value) || value === '' || value === null || value !== value;};var parentForm=$element.inheritedData('$formController') || nullFormCtrl,currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function set(object,property){object[property] = true;},unset:function unset(object,property){delete object[property];},parentForm:parentForm,$animate:$animate});this.$setPristine = function(){ctrl.$dirty = false;ctrl.$pristine = true;$animate.removeClass($element,DIRTY_CLASS);$animate.addClass($element,PRISTINE_CLASS);};this.$setDirty = function(){ctrl.$dirty = true;ctrl.$pristine = false;$animate.removeClass($element,PRISTINE_CLASS);$animate.addClass($element,DIRTY_CLASS);parentForm.$setDirty();};this.$setUntouched = function(){ctrl.$touched = false;ctrl.$untouched = true;$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS);};this.$setTouched = function(){ctrl.$touched = true;ctrl.$untouched = false;$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS);};this.$rollbackViewValue = function(){$timeout.cancel(pendingDebounce);ctrl.$viewValue = ctrl.$$lastCommittedViewValue;ctrl.$render();};this.$validate = function(){if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){return;}var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=ctrl.$$rawModelValue;var prevValid=ctrl.$valid;var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){if(!allowInvalid && prevValid !== allValid){ctrl.$modelValue = allValid?modelValue:undefined;if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}});};this.$$runValidators = function(modelValue,viewValue,doneCallback){currentValidationRunId++;var localValidationRunId=currentValidationRunId;if(!processParseErrors()){validationDone(false);return;}if(!processSyncValidators()){validationDone(false);return;}processAsyncValidators();function processParseErrors(){var errorKey=ctrl.$$parserName || 'parse';if(parserValid === undefined){setValidity(errorKey,null);}else {if(!parserValid){forEach(ctrl.$validators,function(v,name){setValidity(name,null);});forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});}setValidity(errorKey,parserValid);return parserValid;}return true;}function processSyncValidators(){var syncValidatorsValid=true;forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid = syncValidatorsValid && result;setValidity(name,result);});if(!syncValidatorsValid){forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});return false;}return true;}function processAsyncValidators(){var validatorPromises=[];var allValid=true;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise)){throw $ngModelMinErr('$asyncValidators','Expected asynchronous validator to return a promise but got \'{0}\' instead.',promise);}setValidity(name,undefined);validatorPromises.push(promise.then(function(){setValidity(name,true);},function(error){allValid = false;setValidity(name,false);}));});if(!validatorPromises.length){validationDone(true);}else {$q.all(validatorPromises).then(function(){validationDone(allValid);},noop);}}function setValidity(name,isValid){if(localValidationRunId === currentValidationRunId){ctrl.$setValidity(name,isValid);}}function validationDone(allValid){if(localValidationRunId === currentValidationRunId){doneCallback(allValid);}}};this.$commitViewValue = function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce);if(ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)){return;}ctrl.$$lastCommittedViewValue = viewValue;if(ctrl.$pristine){this.$setDirty();}this.$$parseAndValidate();};this.$$parseAndValidate = function(){var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=viewValue;parserValid = isUndefined(modelValue)?undefined:true;if(parserValid){for(var i=0;i < ctrl.$parsers.length;i++) {modelValue = ctrl.$parsers[i](modelValue);if(isUndefined(modelValue)){parserValid = false;break;}}}if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){ctrl.$modelValue = ngModelGet($scope);}var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$rawModelValue = modelValue;if(allowInvalid){ctrl.$modelValue = modelValue;writeToModelIfNeeded();}ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){if(!allowInvalid){ctrl.$modelValue = allValid?modelValue:undefined;writeToModelIfNeeded();}});function writeToModelIfNeeded(){if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}};this.$$writeModelToScope = function(){ngModelSet($scope,ctrl.$modelValue);forEach(ctrl.$viewChangeListeners,function(listener){try{listener();}catch(e) {$exceptionHandler(e);}});};this.$setViewValue = function(value,trigger){ctrl.$viewValue = value;if(!ctrl.$options || ctrl.$options.updateOnDefault){ctrl.$$debounceViewValueCommit(trigger);}};this.$$debounceViewValueCommit = function(trigger){var debounceDelay=0,options=ctrl.$options,debounce;if(options && isDefined(options.debounce)){debounce = options.debounce;if(isNumber(debounce)){debounceDelay = debounce;}else if(isNumber(debounce[trigger])){debounceDelay = debounce[trigger];}else if(isNumber(debounce['default'])){debounceDelay = debounce['default'];}}$timeout.cancel(pendingDebounce);if(debounceDelay){pendingDebounce = $timeout(function(){ctrl.$commitViewValue();},debounceDelay);}else if($rootScope.$$phase){ctrl.$commitViewValue();}else {$scope.$apply(function(){ctrl.$commitViewValue();});}};$scope.$watch(function ngModelWatch(){var modelValue=ngModelGet($scope);if(modelValue !== ctrl.$modelValue){ctrl.$modelValue = ctrl.$$rawModelValue = modelValue;parserValid = undefined;var formatters=ctrl.$formatters,idx=formatters.length;var viewValue=modelValue;while(idx--) {viewValue = formatters[idx](viewValue);}if(ctrl.$viewValue !== viewValue){ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue;ctrl.$render();ctrl.$$runValidators(modelValue,viewValue,noop);}}return modelValue;});}];var ngModelDirective=['$rootScope',function($rootScope){return {restrict:'A',require:['ngModel','^?form','^?ngModelOptions'],controller:NgModelController,priority:1,compile:function ngModelCompile(element){element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);return {pre:function ngModelPreLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1] || nullFormCtrl;modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options);formCtrl.$addControl(modelCtrl);attr.$observe('name',function(newValue){if(modelCtrl.$name !== newValue){formCtrl.$$renameControl(modelCtrl,newValue);}});scope.$on('$destroy',function(){formCtrl.$removeControl(modelCtrl);});},post:function ngModelPostLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0];if(modelCtrl.$options && modelCtrl.$options.updateOn){element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev && ev.type);});}element.on('blur',function(ev){if(modelCtrl.$touched)return;if($rootScope.$$phase){scope.$evalAsync(modelCtrl.$setTouched);}else {scope.$apply(modelCtrl.$setTouched);}});}};}};}];var DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/;var ngModelOptionsDirective=function ngModelOptionsDirective(){return {restrict:'A',controller:['$scope','$attrs',function($scope,$attrs){var that=this;this.$options = $scope.$eval($attrs.ngModelOptions);if(this.$options.updateOn !== undefined){this.$options.updateOnDefault = false;this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){that.$options.updateOnDefault = true;return ' ';}));}else {this.$options.updateOnDefault = true;}}]};};function addSetValidityMethod(context){var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,parentForm=context.parentForm,$animate=context.$animate;classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS));ctrl.$setValidity = setValidity;function setValidity(validationErrorKey,state,controller){if(state === undefined){createAndSet('$pending',validationErrorKey,controller);}else {unsetAndCleanup('$pending',validationErrorKey,controller);}if(!isBoolean(state)){unset(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}else {if(state){unset(ctrl.$error,validationErrorKey,controller);set(ctrl.$$success,validationErrorKey,controller);}else {set(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}}if(ctrl.$pending){cachedToggleClass(PENDING_CLASS,true);ctrl.$valid = ctrl.$invalid = undefined;toggleValidationCss('',null);}else {cachedToggleClass(PENDING_CLASS,false);ctrl.$valid = isObjectEmpty(ctrl.$error);ctrl.$invalid = !ctrl.$valid;toggleValidationCss('',ctrl.$valid);}var combinedState;if(ctrl.$pending && ctrl.$pending[validationErrorKey]){combinedState = undefined;}else if(ctrl.$error[validationErrorKey]){combinedState = false;}else if(ctrl.$$success[validationErrorKey]){combinedState = true;}else {combinedState = null;}toggleValidationCss(validationErrorKey,combinedState);parentForm.$setValidity(validationErrorKey,combinedState,ctrl);}function createAndSet(name,value,controller){if(!ctrl[name]){ctrl[name] = {};}set(ctrl[name],value,controller);}function unsetAndCleanup(name,value,controller){if(ctrl[name]){unset(ctrl[name],value,controller);}if(isObjectEmpty(ctrl[name])){ctrl[name] = undefined;}}function cachedToggleClass(className,switchValue){if(switchValue && !classCache[className]){$animate.addClass($element,className);classCache[className] = true;}else if(!switchValue && classCache[className]){$animate.removeClass($element,className);classCache[className] = false;}}function toggleValidationCss(validationErrorKey,isValid){validationErrorKey = validationErrorKey?'-' + snake_case(validationErrorKey,'-'):'';cachedToggleClass(VALID_CLASS + validationErrorKey,isValid === true);cachedToggleClass(INVALID_CLASS + validationErrorKey,isValid === false);}}function isObjectEmpty(obj){if(obj){for(var prop in obj) {return false;}}return true;}var ngNonBindableDirective=ngDirective({terminal:true,priority:1000});var ngPluralizeDirective=['$locale','$interpolate',function($locale,$interpolate){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return {restrict:'EA',link:function link(scope,element,attr){var numberExp=attr.count,whenExp=attr.$attr.when && element.attr(attr.$attr.when),offset=attr.offset || 0,whens=scope.$eval(whenExp) || {},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol + numberExp + '-' + offset + endSymbol,watchRemover=angular.noop,lastCount;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?'-':'') + lowercase(tmpMatch[2]);whens[whenKey] = element.attr(attr.$attr[attributeName]);}});forEach(whens,function(expression,key){whensExpFns[key] = $interpolate(expression.replace(BRACE,braceReplacement));});scope.$watch(numberExp,function ngPluralizeWatchAction(newVal){var count=parseFloat(newVal);var countIsNaN=isNaN(count);if(!countIsNaN && !(count in whens)){count = $locale.pluralCat(count - offset);}if(count !== lastCount && !(countIsNaN && isNaN(lastCount))){watchRemover();watchRemover = scope.$watch(whensExpFns[count],updateElementText);lastCount = count;}});function updateElementText(newText){element.text(newText || '');}}};}];var ngRepeatDirective=['$parse','$animate',function($parse,$animate){var NG_REMOVED='$$NG_REMOVED';var ngRepeatMinErr=minErr('ngRepeat');var updateScope=function updateScope(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier] = value;if(keyIdentifier)scope[keyIdentifier] = key;scope.$index = index;scope.$first = index === 0;scope.$last = index === arrayLength - 1;scope.$middle = !(scope.$first || scope.$last);scope.$odd = !(scope.$even = (index & 1) === 0);};var getBlockStart=function getBlockStart(block){return block.clone[0];};var getBlockEnd=function getBlockEnd(block){return block.clone[block.clone.length - 1];};return {restrict:'A',multiElement:true,transclude:'element',priority:1000,terminal:true,$$tlb:true,compile:function ngRepeatCompile($element,$attr){var expression=$attr.ngRepeat;var ngRepeatEndComment=document.createComment(' end ngRepeat: ' + expression + ' ');var match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match){throw ngRepeatMinErr('iexp','Expected expression in form of \'_item_ in _collection_[ track by _id_]\' but got \'{0}\'.',expression);}var lhs=match[1];var rhs=match[2];var aliasAs=match[3];var trackByExp=match[4];match = lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!match){throw ngRepeatMinErr('iidexp','\'_item_\' in \'_item_ in _collection_\' should be an identifier or \'(_key_, _value_)\' expression, but got \'{0}\'.',lhs);}var valueIdentifier=match[3] || match[1];var keyIdentifier=match[2];if(aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))){throw ngRepeatMinErr('badident','alias \'{0}\' is invalid --- must be a valid JS identifier which is not a reserved name.',aliasAs);}var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn;var hashFnLocals={$id:hashKey};if(trackByExp){trackByExpGetter = $parse(trackByExp);}else {trackByIdArrayFn = function(key,value){return hashKey(value);};trackByIdObjFn = function(key){return key;};}return function ngRepeatLink($scope,$element,$attr,ctrl,$transclude){if(trackByExpGetter){trackByIdExpFn = function(key,value,index){if(keyIdentifier)hashFnLocals[keyIdentifier] = key;hashFnLocals[valueIdentifier] = value;hashFnLocals.$index = index;return trackByExpGetter($scope,hashFnLocals);};}var lastBlockMap=createMap();$scope.$watchCollection(rhs,function ngRepeatAction(collection){var index,length,previousNode=$element[0],nextNode,nextBlockMap=createMap(),collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove;if(aliasAs){$scope[aliasAs] = collection;}if(isArrayLike(collection)){collectionKeys = collection;trackByIdFn = trackByIdExpFn || trackByIdArrayFn;}else {trackByIdFn = trackByIdExpFn || trackByIdObjFn;collectionKeys = [];for(var itemKey in collection) {if(collection.hasOwnProperty(itemKey) && itemKey.charAt(0) != '$'){collectionKeys.push(itemKey);}}collectionKeys.sort();}collectionLength = collectionKeys.length;nextBlockOrder = new Array(collectionLength);for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];trackById = trackByIdFn(key,value,index);if(lastBlockMap[trackById]){block = lastBlockMap[trackById];delete lastBlockMap[trackById];nextBlockMap[trackById] = block;nextBlockOrder[index] = block;}else if(nextBlockMap[trackById]){forEach(nextBlockOrder,function(block){if(block && block.scope)lastBlockMap[block.id] = block;});throw ngRepeatMinErr('dupes','Duplicates in a repeater are not allowed. Use \'track by\' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}',expression,trackById,value);}else {nextBlockOrder[index] = {id:trackById,scope:undefined,clone:undefined};nextBlockMap[trackById] = true;}}for(var blockKey in lastBlockMap) {block = lastBlockMap[blockKey];elementsToRemove = getBlockNodes(block.clone);$animate.leave(elementsToRemove);if(elementsToRemove[0].parentNode){for(index = 0,length = elementsToRemove.length;index < length;index++) {elementsToRemove[index][NG_REMOVED] = true;}}block.scope.$destroy();}for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];block = nextBlockOrder[index];if(block.scope){nextNode = previousNode;do {nextNode = nextNode.nextSibling;}while(nextNode && nextNode[NG_REMOVED]);if(getBlockStart(block) != nextNode){$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode));}previousNode = getBlockEnd(block);updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);}else {$transclude(function ngRepeatTransclude(clone,scope){block.scope = scope;var endNode=ngRepeatEndComment.cloneNode(false);clone[clone.length++] = endNode;$animate.enter(clone,null,jqLite(previousNode));previousNode = endNode;block.clone = clone;nextBlockMap[block.id] = block;updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);});}}lastBlockMap = nextBlockMap;});};}};}];var NG_HIDE_CLASS='ng-hide';var NG_HIDE_IN_PROGRESS_CLASS='ng-hide-animate';var ngShowDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngShow,function ngShowWatchAction(value){$animate[value?'removeClass':'addClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngHideDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngHide,function ngHideWatchAction(value){$animate[value?'addClass':'removeClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watchCollection(attr.ngStyle,function ngStyleWatchAction(newStyles,oldStyles){if(oldStyles && newStyles !== oldStyles){forEach(oldStyles,function(val,style){element.css(style,'');});}if(newStyles)element.css(newStyles);});});var ngSwitchDirective=['$animate',function($animate){return {restrict:'EA',require:'ngSwitch',controller:['$scope',function ngSwitchController(){this.cases = {};}],link:function link(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch || attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[];var spliceFactory=function spliceFactory(array,index){return function(){array.splice(index,1);};};scope.$watch(watchExpr,function ngSwitchWatchAction(value){var i,ii;for(i = 0,ii = previousLeaveAnimations.length;i < ii;++i) {$animate.cancel(previousLeaveAnimations[i]);}previousLeaveAnimations.length = 0;for(i = 0,ii = selectedScopes.length;i < ii;++i) {var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i] = $animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i));}selectedElements.length = 0;selectedScopes.length = 0;if(selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?']){forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: ');var block={clone:caseElement};selectedElements.push(block);$animate.enter(caseElement,anchor.parent(),anchor);});});}});}};}];var ngSwitchWhenDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attrs,ctrl,$transclude){ctrl.cases['!' + attrs.ngSwitchWhen] = ctrl.cases['!' + attrs.ngSwitchWhen] || [];ctrl.cases['!' + attrs.ngSwitchWhen].push({transclude:$transclude,element:element});}});var ngSwitchDefaultDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attr,ctrl,$transclude){ctrl.cases['?'] = ctrl.cases['?'] || [];ctrl.cases['?'].push({transclude:$transclude,element:element});}});var ngTranscludeDirective=ngDirective({restrict:'EAC',link:function link($scope,$element,$attrs,controller,$transclude){if(!$transclude){throw minErr('ngTransclude')('orphan','Illegal use of ngTransclude directive in the template! ' + 'No parent directive that requires a transclusion found. ' + 'Element: {0}',startingTag($element));}$transclude(function(clone){$element.empty();$element.append(clone);});}});var scriptDirective=['$templateCache',function($templateCache){return {restrict:'E',terminal:true,compile:function compile(element,attr){if(attr.type == 'text/ng-template'){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text);}}};}];var ngOptionsMinErr=minErr('ngOptions');var ngOptionsDirective=valueFn({restrict:'A',terminal:true});var selectDirective=['$compile','$parse',function($compile,$parse){var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nullModelCtrl={$setViewValue:noop};return {restrict:'E',require:['select','?ngModel'],controller:['$element','$scope','$attrs',function($element,$scope,$attrs){var self=this,optionsMap={},ngModelCtrl=nullModelCtrl,nullOption,unknownOption;self.databound = $attrs.ngModel;self.init = function(ngModelCtrl_,nullOption_,unknownOption_){ngModelCtrl = ngModelCtrl_;nullOption = nullOption_;unknownOption = unknownOption_;};self.addOption = function(value,element){assertNotHasOwnProperty(value,'"option value"');optionsMap[value] = true;if(ngModelCtrl.$viewValue == value){$element.val(value);if(unknownOption.parent())unknownOption.remove();}if(element && element[0].hasAttribute('selected')){element[0].selected = true;}};self.removeOption = function(value){if(this.hasOption(value)){delete optionsMap[value];if(ngModelCtrl.$viewValue === value){this.renderUnknownOption(value);}}};self.renderUnknownOption = function(val){var unknownVal='? ' + hashKey(val) + ' ?';unknownOption.val(unknownVal);$element.prepend(unknownOption);$element.val(unknownVal);unknownOption.prop('selected',true);};self.hasOption = function(value){return optionsMap.hasOwnProperty(value);};$scope.$on('$destroy',function(){self.renderUnknownOption = noop;});}],link:function link(scope,element,attr,ctrls){if(!ctrls[1])return;var selectCtrl=ctrls[0],ngModelCtrl=ctrls[1],multiple=attr.multiple,optionsExp=attr.ngOptions,nullOption=false,emptyOption,renderScheduled=false,optionTemplate=jqLite(document.createElement('option')),optGroupTemplate=jqLite(document.createElement('optgroup')),unknownOption=optionTemplate.clone();for(var i=0,children=element.children(),ii=children.length;i < ii;i++) {if(children[i].value === ''){emptyOption = nullOption = children.eq(i);break;}}selectCtrl.init(ngModelCtrl,nullOption,unknownOption);if(multiple){ngModelCtrl.$isEmpty = function(value){return !value || value.length === 0;};}if(optionsExp)setupAsOptions(scope,element,ngModelCtrl);else if(multiple)setupAsMultiple(scope,element,ngModelCtrl);else setupAsSingle(scope,element,ngModelCtrl,selectCtrl);function setupAsSingle(scope,selectElement,ngModelCtrl,selectCtrl){ngModelCtrl.$render = function(){var viewValue=ngModelCtrl.$viewValue;if(selectCtrl.hasOption(viewValue)){if(unknownOption.parent())unknownOption.remove();selectElement.val(viewValue);if(viewValue === '')emptyOption.prop('selected',true);}else {if(isUndefined(viewValue) && emptyOption){selectElement.val('');}else {selectCtrl.renderUnknownOption(viewValue);}}};selectElement.on('change',function(){scope.$apply(function(){if(unknownOption.parent())unknownOption.remove();ngModelCtrl.$setViewValue(selectElement.val());});});}function setupAsMultiple(scope,selectElement,ctrl){var lastView;ctrl.$render = function(){var items=new HashMap(ctrl.$viewValue);forEach(selectElement.find('option'),function(option){option.selected = isDefined(items.get(option.value));});};scope.$watch(function selectMultipleWatch(){if(!equals(lastView,ctrl.$viewValue)){lastView = shallowCopy(ctrl.$viewValue);ctrl.$render();}});selectElement.on('change',function(){scope.$apply(function(){var array=[];forEach(selectElement.find('option'),function(option){if(option.selected){array.push(option.value);}});ctrl.$setViewValue(array);});});}function setupAsOptions(scope,selectElement,ctrl){var match;if(!(match = optionsExp.match(NG_OPTIONS_REGEXP))){throw ngOptionsMinErr('iexp','Expected expression in form of ' + '\'_select_ (as _label_)? for (_key_,)?_value_ in _collection_\'' + ' but got \'{0}\'. Element: {1}',optionsExp,startingTag(selectElement));}var displayFn=$parse(match[2] || match[1]),valueName=match[4] || match[6],selectAs=/ as /.test(match[0]) && match[1],selectAsFn=selectAs?$parse(selectAs):null,keyName=match[5],groupByFn=$parse(match[3] || ''),valueFn=$parse(match[2]?match[1]:valueName),valuesFn=$parse(match[7]),track=match[8],trackFn=track?$parse(match[8]):null,trackKeysCache={},optionGroupsCache=[[{element:selectElement,label:''}]],locals={};if(nullOption){$compile(nullOption)(scope);nullOption.removeClass('ng-scope');nullOption.remove();}selectElement.empty();selectElement.on('change',selectionChanged);ctrl.$render = render;scope.$watchCollection(valuesFn,scheduleRendering);scope.$watchCollection(getLabels,scheduleRendering);if(multiple){scope.$watchCollection(function(){return ctrl.$modelValue;},scheduleRendering);}function callExpression(exprFn,key,value){locals[valueName] = value;if(keyName)locals[keyName] = key;return exprFn(scope,locals);}function selectionChanged(){scope.$apply(function(){var collection=valuesFn(scope) || [];var viewValue;if(multiple){viewValue = [];forEach(selectElement.val(),function(selectedKey){selectedKey = trackFn?trackKeysCache[selectedKey]:selectedKey;viewValue.push(getViewValue(selectedKey,collection[selectedKey]));});}else {var selectedKey=trackFn?trackKeysCache[selectElement.val()]:selectElement.val();viewValue = getViewValue(selectedKey,collection[selectedKey]);}ctrl.$setViewValue(viewValue);render();});}function getViewValue(key,value){if(key === '?'){return undefined;}else if(key === ''){return null;}else {var viewValueFn=selectAsFn?selectAsFn:valueFn;return callExpression(viewValueFn,key,value);}}function getLabels(){var values=valuesFn(scope);var toDisplay;if(values && isArray(values)){toDisplay = new Array(values.length);for(var i=0,ii=values.length;i < ii;i++) {toDisplay[i] = callExpression(displayFn,i,values[i]);}return toDisplay;}else if(values){toDisplay = {};for(var prop in values) {if(values.hasOwnProperty(prop)){toDisplay[prop] = callExpression(displayFn,prop,values[prop]);}}}return toDisplay;}function createIsSelectedFn(viewValue){var selectedSet;if(multiple){if(trackFn && isArray(viewValue)){selectedSet = new HashMap([]);for(var trackIndex=0;trackIndex < viewValue.length;trackIndex++) {selectedSet.put(callExpression(trackFn,null,viewValue[trackIndex]),true);}}else {selectedSet = new HashMap(viewValue);}}else if(trackFn){viewValue = callExpression(trackFn,null,viewValue);}return function isSelected(key,value){var compareValueFn;if(trackFn){compareValueFn = trackFn;}else if(selectAsFn){compareValueFn = selectAsFn;}else {compareValueFn = valueFn;}if(multiple){return isDefined(selectedSet.remove(callExpression(compareValueFn,key,value)));}else {return viewValue === callExpression(compareValueFn,key,value);}};}function scheduleRendering(){if(!renderScheduled){scope.$$postDigest(render);renderScheduled = true;}}function updateLabelMap(labelMap,label,added){labelMap[label] = labelMap[label] || 0;labelMap[label] += added?1:-1;}function render(){renderScheduled = false;var optionGroups={'':[]},optionGroupNames=[''],optionGroupName,optionGroup,option,existingParent,existingOptions,existingOption,viewValue=ctrl.$viewValue,values=valuesFn(scope) || [],keys=keyName?sortedKeys(values):values,key,value,groupLength,length,groupIndex,index,labelMap={},selected,isSelected=createIsSelectedFn(viewValue),anySelected=false,lastElement,element,label,optionId;trackKeysCache = {};for(index = 0;length = keys.length,index < length;index++) {key = index;if(keyName){key = keys[index];if(key.charAt(0) === '$')continue;}value = values[key];optionGroupName = callExpression(groupByFn,key,value) || '';if(!(optionGroup = optionGroups[optionGroupName])){optionGroup = optionGroups[optionGroupName] = [];optionGroupNames.push(optionGroupName);}selected = isSelected(key,value);anySelected = anySelected || selected;label = callExpression(displayFn,key,value);label = isDefined(label)?label:'';optionId = trackFn?trackFn(scope,locals):keyName?keys[index]:index;if(trackFn){trackKeysCache[optionId] = key;}optionGroup.push({id:optionId,label:label,selected:selected});}if(!multiple){if(nullOption || viewValue === null){optionGroups[''].unshift({id:'',label:'',selected:!anySelected});}else if(!anySelected){optionGroups[''].unshift({id:'?',label:'',selected:true});}}for(groupIndex = 0,groupLength = optionGroupNames.length;groupIndex < groupLength;groupIndex++) {optionGroupName = optionGroupNames[groupIndex];optionGroup = optionGroups[optionGroupName];if(optionGroupsCache.length <= groupIndex){existingParent = {element:optGroupTemplate.clone().attr('label',optionGroupName),label:optionGroup.label};existingOptions = [existingParent];optionGroupsCache.push(existingOptions);selectElement.append(existingParent.element);}else {existingOptions = optionGroupsCache[groupIndex];existingParent = existingOptions[0];if(existingParent.label != optionGroupName){existingParent.element.attr('label',existingParent.label = optionGroupName);}}lastElement = null;for(index = 0,length = optionGroup.length;index < length;index++) {option = optionGroup[index];if(existingOption = existingOptions[index + 1]){lastElement = existingOption.element;if(existingOption.label !== option.label){updateLabelMap(labelMap,existingOption.label,false);updateLabelMap(labelMap,option.label,true);lastElement.text(existingOption.label = option.label);lastElement.prop('label',existingOption.label);}if(existingOption.id !== option.id){lastElement.val(existingOption.id = option.id);}if(lastElement[0].selected !== option.selected){lastElement.prop('selected',existingOption.selected = option.selected);if(msie){lastElement.prop('selected',existingOption.selected);}}}else {if(option.id === '' && nullOption){element = nullOption;}else {(element = optionTemplate.clone()).val(option.id).prop('selected',option.selected).attr('selected',option.selected).prop('label',option.label).text(option.label);}existingOptions.push(existingOption = {element:element,label:option.label,id:option.id,selected:option.selected});updateLabelMap(labelMap,option.label,true);if(lastElement){lastElement.after(element);}else {existingParent.element.append(element);}lastElement = element;}}index++;while(existingOptions.length > index) {option = existingOptions.pop();updateLabelMap(labelMap,option.label,false);option.element.remove();}}while(optionGroupsCache.length > groupIndex) {optionGroup = optionGroupsCache.pop();for(index = 1;index < optionGroup.length;++index) {updateLabelMap(labelMap,optionGroup[index].label,false);}optionGroup[0].element.remove();}forEach(labelMap,function(count,label){if(count > 0){selectCtrl.addOption(label);}else if(count < 0){selectCtrl.removeOption(label);}});}}}};}];var optionDirective=['$interpolate',function($interpolate){var nullSelectCtrl={addOption:noop,removeOption:noop};return {restrict:'E',priority:100,compile:function compile(element,attr){if(isUndefined(attr.value)){var interpolateFn=$interpolate(element.text(),true);if(!interpolateFn){attr.$set('value',element.text());}}return function(scope,element,attr){var selectCtrlName='$selectController',parent=element.parent(),selectCtrl=parent.data(selectCtrlName) || parent.parent().data(selectCtrlName);if(!selectCtrl || !selectCtrl.databound){selectCtrl = nullSelectCtrl;}if(interpolateFn){scope.$watch(interpolateFn,function interpolateWatchAction(newVal,oldVal){attr.$set('value',newVal);if(oldVal !== newVal){selectCtrl.removeOption(oldVal);}selectCtrl.addOption(newVal,element);});}else {selectCtrl.addOption(attr.value,element);}element.on('$destroy',function(){selectCtrl.removeOption(attr.value);});};}};}];var styleDirective=valueFn({restrict:'E',terminal:false});var requiredDirective=function requiredDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;attr.required = true;ctrl.$validators.required = function(modelValue,viewValue){return !attr.required || !ctrl.$isEmpty(viewValue);};attr.$observe('required',function(){ctrl.$validate();});}};};var patternDirective=function patternDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var regexp,patternExp=attr.ngPattern || attr.pattern;attr.$observe('pattern',function(regex){if(isString(regex) && regex.length > 0){regex = new RegExp('^' + regex + '$');}if(regex && !regex.test){throw minErr('ngPattern')('noregexp','Expected {0} to be a RegExp but was {1}. Element: {2}',patternExp,regex,startingTag(elm));}regexp = regex || undefined;ctrl.$validate();});ctrl.$validators.pattern = function(value){return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value);};}};};var maxlengthDirective=function maxlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var maxlength=-1;attr.$observe('maxlength',function(value){var intVal=int(value);maxlength = isNaN(intVal)?-1:intVal;ctrl.$validate();});ctrl.$validators.maxlength = function(modelValue,viewValue){return maxlength < 0 || ctrl.$isEmpty(viewValue) || viewValue.length <= maxlength;};}};};var minlengthDirective=function minlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var minlength=0;attr.$observe('minlength',function(value){minlength = int(value) || 0;ctrl.$validate();});ctrl.$validators.minlength = function(modelValue,viewValue){return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength;};}};};if(window.angular.bootstrap){console.log('WARNING: Tried to load angular more than once.');return;}bindJQuery();publishExternalAPI(angular);jqLite(document).ready(function(){angularInit(document,bootstrap);});})(window,document);!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'); + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { + + (function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define(factory);else if(typeof exports === 'object')exports['JSData'] = factory();else root['JSData'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _datastoreIndex=__webpack_require__(1);var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);module.exports = {DS:_datastoreIndex['default'],DSUtils:_utils['default'],DSErrors:_errors['default'],createStore:function createStore(options){return new _datastoreIndex['default'](options);},version:{full:'2.0.0-rc.1',major:parseInt('2',10),minor:parseInt('0',10),patch:parseInt('0',10),alpha:true?'false':false,beta:true?'false':false}};},function(module,exports,__webpack_require__){var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _sync_methodsIndex=__webpack_require__(4);var _async_methodsIndex=__webpack_require__(5);function lifecycleNoopCb(resource,attrs,cb){cb(null,attrs);}function lifecycleNoop(resource,attrs){return attrs;}function compare(_x,_x2,_x3,_x4){var _again=true;_function: while(_again) {var orderBy=_x,index=_x2,a=_x3,b=_x4;def = cA = cB = undefined;_again = false;var def=orderBy[index];var cA=_utils['default'].get(a,def[0]),cB=_utils['default'].get(b,def[0]);if(_utils['default']._s(cA)){cA = _utils['default'].upperCase(cA);}if(_utils['default']._s(cB)){cB = _utils['default'].upperCase(cB);}if(def[1] === 'DESC'){if(cB < cA){return -1;}else if(cB > cA){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}else {if(cA < cB){return -1;}else if(cA > cB){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}}}var Defaults=(function(){function Defaults(){_classCallCheck(this,Defaults);}_createClass(Defaults,[{key:'errorFn',value:function errorFn(a,b){if(this.error && typeof this.error === 'function'){try{if(typeof a === 'string'){throw new Error(a);}else {throw a;}}catch(err) {a = err;}this.error(this.name || null,a || null,b || null);}}}]);return Defaults;})();var defaultsPrototype=Defaults.prototype;defaultsPrototype.actions = {};defaultsPrototype.afterCreate = lifecycleNoopCb;defaultsPrototype.afterCreateCollection = lifecycleNoop;defaultsPrototype.afterCreateInstance = lifecycleNoop;defaultsPrototype.afterDestroy = lifecycleNoopCb;defaultsPrototype.afterEject = lifecycleNoop;defaultsPrototype.afterInject = lifecycleNoop;defaultsPrototype.afterReap = lifecycleNoop;defaultsPrototype.afterUpdate = lifecycleNoopCb;defaultsPrototype.afterValidate = lifecycleNoopCb;defaultsPrototype.allowSimpleWhere = true;defaultsPrototype.basePath = '';defaultsPrototype.beforeCreate = lifecycleNoopCb;defaultsPrototype.beforeCreateCollection = lifecycleNoop;defaultsPrototype.beforeCreateInstance = lifecycleNoop;defaultsPrototype.beforeDestroy = lifecycleNoopCb;defaultsPrototype.beforeEject = lifecycleNoop;defaultsPrototype.beforeInject = lifecycleNoop;defaultsPrototype.beforeReap = lifecycleNoop;defaultsPrototype.beforeUpdate = lifecycleNoopCb;defaultsPrototype.beforeValidate = lifecycleNoopCb;defaultsPrototype.bypassCache = false;defaultsPrototype.cacheResponse = !!_utils['default'].w;defaultsPrototype.clearEmptyQueries = true;defaultsPrototype.computed = {};defaultsPrototype.defaultAdapter = 'http';defaultsPrototype.debug = false;defaultsPrototype.defaultValues = {};defaultsPrototype.eagerEject = false;defaultsPrototype.eagerInject = false;defaultsPrototype.endpoint = '';defaultsPrototype.error = console?function(a,b,c){return console[typeof console.error === 'function'?'error':'log'](a,b,c);}:false;defaultsPrototype.instanceEvents = !!_utils['default'].w;defaultsPrototype.fallbackAdapters = ['http'];defaultsPrototype.findStrictCache = false;defaultsPrototype.idAttribute = 'id';defaultsPrototype.ignoredChanges = [/\$/];defaultsPrototype.ignoreMissing = false;defaultsPrototype.keepChangeHistory = false;defaultsPrototype.linkRelations = true;defaultsPrototype.log = console?function(a,b,c,d,e){return console[typeof console.info === 'function'?'info':'log'](a,b,c,d,e);}:false;defaultsPrototype.logFn = function(a,b,c,d){var _this=this;if(_this.debug && _this.log && typeof _this.log === 'function'){_this.log(_this.name || null,a || null,b || null,c || null,d || null);}};defaultsPrototype.maxAge = false;defaultsPrototype.methods = {};defaultsPrototype.notify = !!_utils['default'].w;defaultsPrototype.omit = [];defaultsPrototype.onConflict = 'merge';defaultsPrototype.reapAction = !!_utils['default'].w?'inject':'none';defaultsPrototype.reapInterval = !!_utils['default'].w?30000:false;defaultsPrototype.relationsEnumerable = false;defaultsPrototype.returnMeta = false;defaultsPrototype.resetHistoryOnInject = true;defaultsPrototype.strategy = 'single';defaultsPrototype.upsert = !!_utils['default'].w;defaultsPrototype.useClass = true;defaultsPrototype.useFilter = false;defaultsPrototype.validate = lifecycleNoopCb;defaultsPrototype.defaultFilter = function(collection,resourceName,params,options){var filtered=collection;var where=null;var reserved={skip:'',offset:'',where:'',limit:'',orderBy:'',sort:''};params = params || {};options = options || {};if(_utils['default']._o(params.where)){where = params.where;}else {where = {};}if(options.allowSimpleWhere){_utils['default'].forOwn(params,function(value,key){if(!(key in reserved) && !(key in where)){where[key] = {'==':value};}});}if(_utils['default'].isEmpty(where)){where = null;}if(where){filtered = _utils['default'].filter(filtered,function(attrs){var first=true;var keep=true;_utils['default'].forOwn(where,function(clause,field){if(!_utils['default']._o(clause)){clause = {'==':clause};}_utils['default'].forOwn(clause,function(term,op){var expr=undefined;var isOr=op[0] === '|';var val=_utils['default'].get(attrs,field);op = isOr?op.substr(1):op;if(op === '=='){expr = val == term;}else if(op === '==='){expr = val === term;}else if(op === '!='){expr = val != term;}else if(op === '!=='){expr = val !== term;}else if(op === '>'){expr = val > term;}else if(op === '>='){expr = val >= term;}else if(op === '<'){expr = val < term;}else if(op === '<='){expr = val <= term;}else if(op === 'isectEmpty'){expr = !_utils['default'].intersection(val || [],term || []).length;}else if(op === 'isectNotEmpty'){expr = _utils['default'].intersection(val || [],term || []).length;}else if(op === 'in'){if(_utils['default']._s(term)){expr = term.indexOf(val) !== -1;}else {expr = _utils['default'].contains(term,val);}}else if(op === 'notIn'){if(_utils['default']._s(term)){expr = term.indexOf(val) === -1;}else {expr = !_utils['default'].contains(term,val);}}else if(op === 'contains'){if(_utils['default']._s(val)){expr = val.indexOf(term) !== -1;}else {expr = _utils['default'].contains(val,term);}}else if(op === 'notContains'){if(_utils['default']._s(val)){expr = val.indexOf(term) === -1;}else {expr = !_utils['default'].contains(val,term);}}if(expr !== undefined){keep = first?expr:isOr?keep || expr:keep && expr;}first = false;});});return keep;});}var orderBy=null;if(_utils['default']._s(params.orderBy)){orderBy = [[params.orderBy,'ASC']];}else if(_utils['default']._a(params.orderBy)){orderBy = params.orderBy;}if(!orderBy && _utils['default']._s(params.sort)){orderBy = [[params.sort,'ASC']];}else if(!orderBy && _utils['default']._a(params.sort)){orderBy = params.sort;}if(orderBy){(function(){var index=0;_utils['default'].forEach(orderBy,function(def,i){if(_utils['default']._s(def)){orderBy[i] = [def,'ASC'];}else if(!_utils['default']._a(def)){throw new _errors['default'].IA('DS.filter("' + resourceName + '"[, params][, options]): ' + _utils['default'].toJson(def) + ': Must be a string or an array!',{params:{'orderBy[i]':{actual:typeof def,expected:'string|array'}}});}});filtered = _utils['default'].sort(filtered,function(a,b){return compare(orderBy,index,a,b);});})();}var limit=_utils['default']._n(params.limit)?params.limit:null;var skip=null;if(_utils['default']._n(params.skip)){skip = params.skip;}else if(_utils['default']._n(params.offset)){skip = params.offset;}if(limit && skip){filtered = _utils['default'].slice(filtered,skip,Math.min(filtered.length,skip + limit));}else if(_utils['default']._n(limit)){filtered = _utils['default'].slice(filtered,0,Math.min(filtered.length,limit));}else if(_utils['default']._n(skip)){if(skip < filtered.length){filtered = _utils['default'].slice(filtered,skip);}else {filtered = [];}}return filtered;};var DS=(function(){function DS(options){_classCallCheck(this,DS);var _this=this;options = options || {};_this.store = {};_this.s = _this.store;_this.definitions = {};_this.defs = _this.definitions;_this.adapters = {};_this.defaults = new Defaults();_this.observe = _utils['default'].observe;_utils['default'].forOwn(options,function(v,k){if(k === 'omit'){_this.defaults.omit = v.concat(Defaults.prototype.omit);}else {_this.defaults[k] = v;}});_this.defaults.logFn('new data store created',_this.defaults);var P=_utils['default'].Promise;if(P && !P.prototype.spread){P.prototype.spread = function(cb){return this.then(function(arr){return cb.apply(this,arr);});};}}_createClass(DS,[{key:'getAdapterName',value:function getAdapterName(options){var errorIfNotExist=false;options = options || {};this.defaults.logFn('getAdapterName',options);if(_utils['default']._s(options)){errorIfNotExist = true;options = {adapter:options};}if(this.adapters[options.adapter]){return options.adapter;}else if(errorIfNotExist){throw new Error(options.adapter + ' is not a registered adapter!');}else {return options.defaultAdapter;}}},{key:'getAdapter',value:function getAdapter(options){options = options || {};this.defaults.logFn('getAdapter',options);return this.adapters[this.getAdapterName(options)];}},{key:'registerAdapter',value:function registerAdapter(name,Adapter,options){var _this=this;options = options || {};_this.defaults.logFn('registerAdapter',name,Adapter,options);if(_utils['default'].isFunction(Adapter)){_this.adapters[name] = new Adapter(options);}else {_this.adapters[name] = Adapter;}if(options['default']){_this.defaults.defaultAdapter = name;}_this.defaults.logFn('default adapter is ' + _this.defaults.defaultAdapter);}},{key:'is',value:function is(resourceName,instance){var definition=this.defs[resourceName];if(!definition){throw new _errors['default'].NER(resourceName);}return instance instanceof definition[definition['class']];}}]);return DS;})();var dsPrototype=DS.prototype;dsPrototype.getAdapterName.shorthand = false;dsPrototype.getAdapter.shorthand = false;dsPrototype.registerAdapter.shorthand = false;dsPrototype.errors = _errors['default'];dsPrototype.utils = _utils['default'];function addMethods(target,obj){_utils['default'].forOwn(obj,function(v,k){target[k] = v;target[k].before = function(fn){var orig=target[k];target[k] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}return orig.apply(this,fn.apply(this,args) || args);};};});}addMethods(dsPrototype,_sync_methodsIndex['default']);addMethods(dsPrototype,_async_methodsIndex['default']);exports['default'] = DS;},function(module,exports,__webpack_require__){function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}var _errors=__webpack_require__(3);var BinaryHeap=__webpack_require__(7);var forEach=__webpack_require__(8);var slice=__webpack_require__(9);var forOwn=__webpack_require__(13);var contains=__webpack_require__(10);var deepMixIn=__webpack_require__(14);var pascalCase=__webpack_require__(18);var remove=__webpack_require__(11);var pick=__webpack_require__(15);var sort=__webpack_require__(12);var upperCase=__webpack_require__(19);var get=__webpack_require__(16);var set=__webpack_require__(17);var observe=__webpack_require__(6);var w=undefined;var objectProto=Object.prototype;var toString=objectProto.toString;var P=undefined;try{P = Promise;}catch(err) {console.error('js-data requires a global Promise constructor!');}var isArray=Array.isArray || function isArray(value){return toString.call(value) == '[object Array]' || false;};var isRegExp=function isRegExp(value){return toString.call(value) == '[object RegExp]' || false;};var isString=function isString(value){return typeof value == 'string' || value && typeof value == 'object' && toString.call(value) == '[object String]' || false;};var isObject=function isObject(value){return toString.call(value) == '[object Object]' || false;};var isDate=function isDate(value){return value && typeof value == 'object' && toString.call(value) == '[object Date]' || false;};var isNumber=function isNumber(value){var type=typeof value;return type == 'number' || value && type == 'object' && toString.call(value) == '[object Number]' || false;};var isFunction=function isFunction(value){return typeof value == 'function' || value && toString.call(value) === '[object Function]' || false;};var isStringOrNumber=function isStringOrNumber(value){return isString(value) || isNumber(value);};var isStringOrNumberErr=function isStringOrNumberErr(field){return new _errors['default'].IA('"' + field + '" must be a string or a number!');};var isObjectErr=function isObjectErr(field){return new _errors['default'].IA('"' + field + '" must be an object!');};var isArrayErr=function isArrayErr(field){return new _errors['default'].IA('"' + field + '" must be an array!');};var isEmpty=function isEmpty(val){if(val == null){return true;}else if(typeof val === 'string' || isArray(val)){return !val.length;}else if(typeof val === 'object'){var result=true;forOwn(val,function(){result = false;return false;});return result;}else {return true;}};var intersection=function intersection(array1,array2){if(!array1 || !array2){return [];}var result=[];var item=undefined;for(var i=0,_length=array1.length;i < _length;i++) {item = array1[i];if(contains(result,item)){continue;}if(contains(array2,item)){result.push(item);}}return result;};var filter=function filter(array,cb,thisObj){var results=[];forEach(array,function(value,key,arr){if(cb(value,key,arr)){results.push(value);}},thisObj);return results;};try{w = window;w = {};}catch(e) {w = null;}function Events(target){var events={};target = target || this;target.on = function(type,func,ctx){events[type] = events[type] || [];events[type].push({f:func,c:ctx});};target.off = function(type,func){var listeners=events[type];if(!listeners){events = {};}else if(func){for(var i=0;i < listeners.length;i++) {if(listeners[i] === func){listeners.splice(i,1);break;}}}else {listeners.splice(0,listeners.length);}};target.emit = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}var listeners=events[args.shift()] || [];if(listeners){for(var i=0;i < listeners.length;i++) {listeners[i].f.apply(listeners[i].c,args);}}};}var toPromisify=['beforeValidate','validate','afterValidate','beforeCreate','afterCreate','beforeUpdate','afterUpdate','beforeDestroy','afterDestroy'];var isBlacklisted=observe.isBlacklisted;var copy=function copy(source,destination,stackSource,stackDest,blacklist){if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest,blacklist);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){destination = copy(source,Object.create(Object.getPrototypeOf(source)),stackSource,stackDest,blacklist);}}}else {if(source === destination){throw new Error('Cannot copy! Source and destination are identical.');}stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1){return stackDest[index];}stackSource.push(source);stackDest.push(destination);}var result=undefined;if(isArray(source)){var i=undefined;destination.length = 0;for(i = 0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest,blacklist);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){if(isBlacklisted(key,blacklist)){continue;}result = copy(source[key],null,stackSource,stackDest,blacklist);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}}}return destination;};var equals=function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2){return true;}if(o1 === null || o2 === null){return false;}if(o1 !== o1 && o2 !== o2){return true;}var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2)){return false;}if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key])){return false;}}return true;}}else if(isDate(o1)){if(!isDate(o2)){return false;}_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1) && isRegExp(o2)){return o1.toString() == o2.toString();}else {if(isArray(o2)){return false;}keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key])){continue;}if(!equals(o1[key],o2[key])){return false;}keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key])){return false;}}return true;}}}return false;}};var resolveId=function resolveId(definition,idOrInstance){if(isString(idOrInstance) || isNumber(idOrInstance)){return idOrInstance;}else if(idOrInstance && definition){return idOrInstance[definition.idAttribute] || idOrInstance;}else {return idOrInstance;}};var resolveItem=function resolveItem(resource,idOrInstance){if(resource && (isString(idOrInstance) || isNumber(idOrInstance))){return resource.index[idOrInstance] || idOrInstance;}else {return idOrInstance;}};var isValidString=function isValidString(val){return val != null && val !== '';};var join=function join(items,separator){separator = separator || '';return filter(items,isValidString).join(separator);};var makePath=function makePath(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}var result=join(args,'/');return result.replace(/([^:\/]|^)\/{2,}/g,'$1/');};exports['default'] = {Promise:P,_:function _(parent,options){var _this=this;options = options || {};if(options && options.constructor === parent.constructor){return options;}else if(!isObject(options)){throw new _errors['default'].IA('"options" must be an object!');}forEach(toPromisify,function(name){if(typeof options[name] === 'function' && options[name].toString().indexOf('for (var _len = arg') === -1){options[name] = _this.promisify(options[name]);}});var O=function Options(attrs){var self=this;forOwn(attrs,function(value,key){self[key] = value;});};O.prototype = parent;O.prototype.orig = function(){var orig={};forOwn(this,function(value,key){orig[key] = value;});return orig;};return new O(options);},_n:isNumber,_s:isString,_sn:isStringOrNumber,_snErr:isStringOrNumberErr,_o:isObject,_oErr:isObjectErr,_a:isArray,_aErr:isArrayErr,compute:function compute(fn,field){var _this=this;var args=[];forEach(fn.deps,function(dep){args.push(get(_this,dep));});set(_this,field,fn[fn.length - 1].apply(_this,args));},contains:contains,copy:copy,deepMixIn:deepMixIn,diffObjectFromOldObject:observe.diffObjectFromOldObject,BinaryHeap:BinaryHeap,equals:equals,Events:Events,filter:filter,fillIn:function fillIn(target,obj){forOwn(obj,function(v,k){if(!(k in target)){target[k] = v;}});return target;},forEach:forEach,forOwn:forOwn,fromJson:function fromJson(json){return isString(json)?JSON.parse(json):json;},get:get,intersection:intersection,isArray:isArray,isBlacklisted:isBlacklisted,isEmpty:isEmpty,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isString:isString,makePath:makePath,observe:observe,omit:function omit(obj,bl){var toRemove=[];forOwn(obj,function(v,k){if(isBlacklisted(k,bl)){toRemove.push(k);}});forEach(toRemove,function(k){delete obj[k];});return obj;},pascalCase:pascalCase,pick:pick,promisify:function promisify(fn,target){var _this=this;if(!fn){return;}else if(typeof fn !== 'function'){throw new Error('Can only promisify functions!');}return function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}return new _this.Promise(function(resolve,reject){args.push(function(err,result){if(err){reject(err);}else {resolve(result);}});try{var promise=fn.apply(target || this,args);if(promise && promise.then){promise.then(resolve,reject);}}catch(err) {reject(err);}});};},remove:remove,set:set,slice:slice,sort:sort,toJson:JSON.stringify,updateTimestamp:function updateTimestamp(timestamp){var newTimestamp=typeof Date.now === 'function'?Date.now():new Date().getTime();if(timestamp && newTimestamp <= timestamp){return timestamp + 1;}else {return newTimestamp;}},upperCase:upperCase,removeCircular:function removeCircular(object){return (function rmCirc(value,ctx){var i=undefined;var nu=undefined;if(typeof value === 'object' && value !== null && !(value instanceof Boolean) && !(value instanceof Date) && !(value instanceof Number) && !(value instanceof RegExp) && !(value instanceof String)){var cur=ctx.cur;var parent=ctx.ctx;while(parent) {if(parent.cur === cur){return undefined;}parent = parent.ctx;}if(isArray(value)){nu = [];for(i = 0;i < value.length;i += 1) {nu[i] = rmCirc(value[i],{ctx:ctx,cur:value[i]});}}else {nu = {};forOwn(value,function(v,k){nu[k] = rmCirc(value[k],{ctx:ctx,cur:value[k]});});}return nu;}return value;})(object,{ctx:null,cur:object});},resolveItem:resolveItem,resolveId:resolveId,respond:function respond(response,meta,options){if(options.returnMeta === 'array'){return [response,meta];}else if(options.returnMeta === 'object'){return {response:response,meta:meta};}else {return response;}},w:w,applyRelationGettersToTarget:function applyRelationGettersToTarget(store,definition,target){this.forEach(definition.relationList,function(def){var relationName=def.relation;var enumerable=typeof def.enumerable === 'boolean'?def.enumerable:!!definition.relationsEnumerable;if(typeof def.link === 'boolean'?def.link:!!definition.linkRelations){delete target[def.localField];if(def.type === 'belongsTo'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else if(def.type === 'hasMany'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};if(def.foreignKey){params[def.foreignKey] = this[definition.idAttribute];return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true});}else if(def.localKeys){params.where = _defineProperty({},definition.getResource(relationName).idAttribute,{'in':this[def.localKeys]});return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params);}return undefined;},set:function set(){}});}else if(def.type === 'hasOne'){if(def.localKey){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else {Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};params[def.foreignKey] = this[definition.idAttribute];var items=params[def.foreignKey]?definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true}):[];if(items.length){return items[0];}return undefined;},set:function set(){}});}}}});}};},function(module,exports,__webpack_require__){var _get=function get(_x,_x2,_x3){var _again=true;_function: while(_again) {var object=_x,property=_x2,receiver=_x3;desc = parent = getter = undefined;_again = false;if(object === null)object = Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc === undefined){var parent=Object.getPrototypeOf(object);if(parent === null){return undefined;}else {_x = parent;_x2 = property;_x3 = receiver;_again = true;continue _function;}}else if('value' in desc){return desc.value;}else {var getter=desc.get;if(getter === undefined){return undefined;}return getter.call(receiver);}}};function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}function _inherits(subClass,superClass){if(typeof superClass !== 'function' && superClass !== null){throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__ = superClass;}var IllegalArgumentError=(function(_Error){function IllegalArgumentError(message){_classCallCheck(this,IllegalArgumentError);_get(Object.getPrototypeOf(IllegalArgumentError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(IllegalArgumentError,_Error);return IllegalArgumentError;})(Error);var RuntimeError=(function(_Error2){function RuntimeError(message){_classCallCheck(this,RuntimeError);_get(Object.getPrototypeOf(RuntimeError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(RuntimeError,_Error2);return RuntimeError;})(Error);var NonexistentResourceError=(function(_Error3){function NonexistentResourceError(resourceName){_classCallCheck(this,NonexistentResourceError);_get(Object.getPrototypeOf(NonexistentResourceError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = resourceName + ' is not a registered resource!';}_inherits(NonexistentResourceError,_Error3);return NonexistentResourceError;})(Error);exports['default'] = {IllegalArgumentError:IllegalArgumentError,IA:IllegalArgumentError,RuntimeError:RuntimeError,R:RuntimeError,NonexistentResourceError:NonexistentResourceError,NER:NonexistentResourceError};},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _defineResource=__webpack_require__(28);var _eject=__webpack_require__(29);var _ejectAll=__webpack_require__(30);var _filter=__webpack_require__(31);var _inject=__webpack_require__(32);var NER=_errors['default'].NER;var IA=_errors['default'].IA;var R=_errors['default'].R;function diffIsEmpty(diff){return !(_utils['default'].isEmpty(diff.added) && _utils['default'].isEmpty(diff.removed) && _utils['default'].isEmpty(diff.changed));}exports['default'] = {changes:function changes(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];options = options || {};id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('changes',id,options);var item=definition.get(id);if(item){var _ret=(function(){if(_utils['default'].w){_this.s[resourceName].observers[id].deliver();}var ignoredChanges=options.ignoredChanges || [];_utils['default'].forEach(definition.relationFields,function(field){if(!_utils['default'].contains(ignoredChanges,field)){ignoredChanges.push(field);}});var diff=_utils['default'].diffObjectFromOldObject(item,_this.s[resourceName].previousAttributes[id],_utils['default'].equals,ignoredChanges);_utils['default'].forOwn(diff,function(changeset,name){var toKeep=[];_utils['default'].forOwn(changeset,function(value,field){if(!_utils['default'].isFunction(value)){toKeep.push(field);}});diff[name] = _utils['default'].pick(diff[name],toKeep);});_utils['default'].forEach(definition.relationFields,function(field){delete diff.added[field];delete diff.removed[field];delete diff.changed[field];});return {v:diff};})();if(typeof _ret === 'object')return _ret.v;}},changeHistory:function changeHistory(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(resourceName && !_this.defs[resourceName]){throw new NER(resourceName);}else if(id && !_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('changeHistory',id);if(!definition.keepChangeHistory){definition.errorFn('changeHistory is disabled for this resource!');}else {if(resourceName){var item=definition.get(id);if(item){return resource.changeHistories[id];}}else {return resource.changeHistory;}}},compute:function compute(resourceName,instance){var _this=this;var definition=_this.defs[resourceName];instance = _utils['default'].resolveItem(_this.s[resourceName],instance);if(!definition){throw new NER(resourceName);}else if(!instance){throw new R('Item not in the store!');}else if(!_utils['default']._o(instance) && !_utils['default']._sn(instance)){throw new IA('"instance" must be an object, string or number!');}definition.logFn('compute',instance);_utils['default'].forOwn(definition.computed,function(fn,field){_utils['default'].compute.call(instance,fn,field);});return instance;},createInstance:function createInstance(resourceName,attrs,options){var definition=this.defs[resourceName];var item=undefined;attrs = attrs || {};if(!definition){throw new NER(resourceName);}else if(attrs && !_utils['default'].isObject(attrs)){throw new IA('"attrs" must be an object!');}options = _utils['default']._(definition,options);options.logFn('createInstance',attrs,options);options.beforeCreateInstance(options,attrs);var Constructor=definition[definition['class']];item = new Constructor();if(options.defaultValues){_utils['default'].deepMixIn(item,options.defaultValues);}_utils['default'].deepMixIn(item,attrs);if(definition.computed){definition.compute(item);}options.afterCreateInstance(options,item);return item;},createCollection:function createCollection(resourceName,arr,params,options){var _this=this;var definition=_this.defs[resourceName];arr = arr || [];params = params || {};if(!definition){throw new NER(resourceName);}else if(arr && !_utils['default'].isArray(arr)){throw new IA('"arr" must be an array!');}options = _utils['default']._(definition,options);options.logFn('createCollection',arr,options);options.beforeCreateCollection(options,arr);Object.defineProperties(arr,{fetch:{value:function value(params,options){var __this=this;__this.params = params || __this.params;return definition.findAll(__this.params,options).then(function(data){if(data === __this){return __this;}data.unshift(__this.length);data.unshift(0);__this.splice.apply(__this,data);data.shift();data.shift();if(data.$$injected){_this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this;__this.$$injected = true;}return __this;});}},params:{value:params,writable:true},resourceName:{value:resourceName}});options.afterCreateCollection(options,arr);return arr;},defineResource:_defineResource['default'],digest:function digest(){this.observe.Platform.performMicrotaskCheckpoint();},eject:_eject['default'],ejectAll:_ejectAll['default'],filter:_filter['default'],get:function get(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('get',id,options);return _this.s[resourceName].index[id];},getAll:function getAll(resourceName,ids){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var collection=[];if(!definition){throw new NER(resourceName);}else if(ids && !_utils['default']._a(ids)){throw _utils['default']._aErr('ids');}definition.logFn('getAll',ids);if(_utils['default']._a(ids)){var _length=ids.length;for(var i=0;i < _length;i++) {if(resource.index[ids[i]]){collection.push(resource.index[ids[i]]);}}}else {collection = resource.collection.slice();}return collection;},hasChanges:function hasChanges(resourceName,id){var _this=this;var definition=_this.defs[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('hasChanges',id);return definition.get(id)?diffIsEmpty(definition.changes(id)):false;},inject:_inject['default'],lastModified:function lastModified(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastModified',id);if(id){if(!(id in resource.modified)){resource.modified[id] = 0;}return resource.modified[id];}return resource.collectionModified;},lastSaved:function lastSaved(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastSaved',id);if(!(id in resource.saved)){resource.saved[id] = 0;}return resource.saved[id];},previous:function previous(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('previous',id);return resource.previousAttributes[id]?_utils['default'].copy(resource.previousAttributes[id]):undefined;}};},function(module,exports,__webpack_require__){var _create=__webpack_require__(33);var _destroy=__webpack_require__(34);var _destroyAll=__webpack_require__(35);var _find=__webpack_require__(36);var _findAll=__webpack_require__(37);var _loadRelations=__webpack_require__(38);var _reap=__webpack_require__(39);var _save=__webpack_require__(40);var _update=__webpack_require__(41);var _updateAll=__webpack_require__(42);exports['default'] = {create:_create['default'],destroy:_destroy['default'],destroyAll:_destroyAll['default'],find:_find['default'],findAll:_findAll['default'],loadRelations:_loadRelations['default'],reap:_reap['default'],refresh:function refresh(resourceName,id,options){var _this=this;var DSUtils=_this.utils;return new DSUtils.Promise(function(resolve,reject){var definition=_this.defs[resourceName];id = DSUtils.resolveId(_this.defs[resourceName],id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refresh',id,options);resolve(_this.get(resourceName,id));}}).then(function(item){return item?_this.find(resourceName,id,options):item;});},refreshAll:function refreshAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refreshAll',params,options);resolve(_this.filter(resourceName,params,options));}}).then(function(existing){options.bypassCache = true;return _this.findAll(resourceName,params,options).then(function(found){DSUtils.forEach(existing,function(item){if(found.indexOf(item) === -1){definition.eject(item);}});return found;});});},save:_save['default'],update:_update['default'],updateAll:_updateAll['default']};},function(module,exports,__webpack_require__){(function(global){var testingExposeCycleCount=global.testingExposeCycleCount;function detectObjectObserve(){if(typeof Object.observe !== 'function' || typeof Array.observe !== 'function'){return false;}var records=[];function callback(recs){records = recs;}var test={};var arr=[];Object.observe(test,callback);Array.observe(arr,callback);test.id = 1;test.id = 2;delete test.id;arr.push(1,2);arr.length = 0;Object.deliverChangeRecords(callback);if(records.length !== 5)return false;if(records[0].type != 'add' || records[1].type != 'update' || records[2].type != 'delete' || records[3].type != 'splice' || records[4].type != 'splice'){return false;}Object.unobserve(test,callback);Array.unobserve(arr,callback);return true;}var hasObserve=detectObjectObserve();var createObject='__proto__' in {}?function(obj){return obj;}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name));});return newObject;};var MAX_DIRTY_CHECK_CYCLES=1000;function dirtyCheck(observer){var cycles=0;while(cycles < MAX_DIRTY_CHECK_CYCLES && observer.check_()) {cycles++;}if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;return cycles > 0;}function objectIsEmpty(object){for(var prop in object) return false;return true;}function diffIsEmpty(diff){return objectIsEmpty(diff.added) && objectIsEmpty(diff.removed) && objectIsEmpty(diff.changed);}function isBlacklisted(prop,bl){if(!bl || !bl.length){return false;}var matches;for(var i=0;i < bl.length;i++) {if(Object.prototype.toString.call(bl[i]) === '[object RegExp]' && bl[i].test(prop) || bl[i] === prop){return matches = prop;}}return !!matches;}function diffObjectFromOldObject(object,oldObject,equals,bl){var added={};var removed={};var changed={};for(var prop in oldObject) {var newValue=object[prop];if(isBlacklisted(prop,bl))continue;if(newValue !== undefined && (equals?equals(newValue,oldObject[prop]):newValue === oldObject[prop]))continue;if(!(prop in object)){removed[prop] = undefined;continue;}if(equals?!equals(newValue,oldObject[prop]):newValue !== oldObject[prop])changed[prop] = newValue;}for(var prop in object) {if(prop in oldObject)continue;if(isBlacklisted(prop,bl))continue;added[prop] = object[prop];}if(Array.isArray(object) && object.length !== oldObject.length)changed.length = object.length;return {added:added,removed:removed,changed:changed};}var eomTasks=[];function runEOMTasks(){if(!eomTasks.length)return false;for(var i=0;i < eomTasks.length;i++) {eomTasks[i]();}eomTasks.length = 0;return true;}var runEOM=hasObserve?(function(){return function(fn){return Promise.resolve().then(fn);};})():(function(){return function(fn){eomTasks.push(fn);};})();var observedObjectCache=[];function newObservedObject(){var observer;var object;var discardRecords=false;var first=true;function callback(records){if(observer && observer.state_ === OPENED && !discardRecords)observer.check_(records);}return {open:function open(obs){if(observer)throw Error('ObservedObject in use');if(!first)Object.deliverChangeRecords(callback);observer = obs;first = false;},observe:function observe(obj,arrayObserve){object = obj;if(arrayObserve)Array.observe(object,callback);else Object.observe(object,callback);},deliver:function deliver(discard){discardRecords = discard;Object.deliverChangeRecords(callback);discardRecords = false;},close:function close(){observer = undefined;Object.unobserve(object,callback);observedObjectCache.push(this);}};}function getObservedObject(observer,object,arrayObserve){var dir=observedObjectCache.pop() || newObservedObject();dir.open(observer);dir.observe(object,arrayObserve);return dir;}var UNOPENED=0;var OPENED=1;var CLOSED=2;var nextObserverId=1;function Observer(){this.state_ = UNOPENED;this.callback_ = undefined;this.target_ = undefined;this.directObserver_ = undefined;this.value_ = undefined;this.id_ = nextObserverId++;}Observer.prototype = {open:function open(callback,target){if(this.state_ != UNOPENED)throw Error('Observer has already been opened.');addToAll(this);this.callback_ = callback;this.target_ = target;this.connect_();this.state_ = OPENED;return this.value_;},close:function close(){if(this.state_ != OPENED)return;removeFromAll(this);this.disconnect_();this.value_ = undefined;this.callback_ = undefined;this.target_ = undefined;this.state_ = CLOSED;},deliver:function deliver(){if(this.state_ != OPENED)return;dirtyCheck(this);},report_:function report_(changes){try{this.callback_.apply(this.target_,changes);}catch(ex) {Observer._errorThrownDuringCallback = true;console.error('Exception caught during observer callback: ' + (ex.stack || ex));}},discardChanges:function discardChanges(){this.check_(undefined,true);return this.value_;}};var collectObservers=!hasObserve;var allObservers;Observer._allObserversCount = 0;if(collectObservers){allObservers = [];}function addToAll(observer){Observer._allObserversCount++;if(!collectObservers)return;allObservers.push(observer);}function removeFromAll(observer){Observer._allObserversCount--;}var runningMicrotaskCheckpoint=false;global.Platform = global.Platform || {};global.Platform.performMicrotaskCheckpoint = function(){if(runningMicrotaskCheckpoint)return;if(!collectObservers)return;runningMicrotaskCheckpoint = true;var cycles=0;var anyChanged,toCheck;do {cycles++;toCheck = allObservers;allObservers = [];anyChanged = false;for(var i=0;i < toCheck.length;i++) {var observer=toCheck[i];if(observer.state_ != OPENED)continue;if(observer.check_())anyChanged = true;allObservers.push(observer);}if(runEOMTasks())anyChanged = true;}while(cycles < MAX_DIRTY_CHECK_CYCLES && anyChanged);if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;runningMicrotaskCheckpoint = false;};if(collectObservers){global.Platform.clearObservers = function(){allObservers = [];};}function ObjectObserver(object){Observer.call(this);this.value_ = object;this.oldObject_ = undefined;}ObjectObserver.prototype = createObject({__proto__:Observer.prototype,arrayObserve:false,connect_:function connect_(callback,target){if(hasObserve){this.directObserver_ = getObservedObject(this,this.value_,this.arrayObserve);}else {this.oldObject_ = this.copyObject(this.value_);}},copyObject:function copyObject(object){var copy=Array.isArray(object)?[]:{};for(var prop in object) {copy[prop] = object[prop];};if(Array.isArray(object))copy.length = object.length;return copy;},check_:function check_(changeRecords,skipChanges){var diff;var oldValues;if(hasObserve){if(!changeRecords)return false;oldValues = {};diff = diffObjectFromChangeRecords(this.value_,changeRecords,oldValues);}else {oldValues = this.oldObject_;diff = diffObjectFromOldObject(this.value_,this.oldObject_);}if(diffIsEmpty(diff))return false;if(!hasObserve)this.oldObject_ = this.copyObject(this.value_);this.report_([diff.added || {},diff.removed || {},diff.changed || {},function(property){return oldValues[property];}]);return true;},disconnect_:function disconnect_(){if(hasObserve){this.directObserver_.close();this.directObserver_ = undefined;}else {this.oldObject_ = undefined;}},deliver:function deliver(){if(this.state_ != OPENED)return;if(hasObserve)this.directObserver_.deliver(false);else dirtyCheck(this);},discardChanges:function discardChanges(){if(this.directObserver_)this.directObserver_.deliver(true);else this.oldObject_ = this.copyObject(this.value_);return this.value_;}});var observerSentinel={};var expectedRecordTypes={add:true,update:true,'delete':true};function diffObjectFromChangeRecords(object,changeRecords,oldValues){var added={};var removed={};for(var i=0;i < changeRecords.length;i++) {var record=changeRecords[i];if(!expectedRecordTypes[record.type]){console.error('Unknown changeRecord type: ' + record.type);console.error(record);continue;}if(!(record.name in oldValues))oldValues[record.name] = record.oldValue;if(record.type == 'update')continue;if(record.type == 'add'){if(record.name in removed)delete removed[record.name];else added[record.name] = true;continue;}if(record.name in added){delete added[record.name];delete oldValues[record.name];}else {removed[record.name] = true;}}for(var prop in added) added[prop] = object[prop];for(var prop in removed) removed[prop] = undefined;var changed={};for(var prop in oldValues) {if(prop in added || prop in removed)continue;var newValue=object[prop];if(oldValues[prop] !== newValue)changed[prop] = newValue;}return {added:added,removed:removed,changed:changed};}global.Observer = Observer;global.isBlacklisted = isBlacklisted;global.Observer.runEOM_ = runEOM;global.Observer.observerSentinel_ = observerSentinel;global.Observer.hasObjectObserve = hasObserve;global.diffObjectFromOldObject = diffObjectFromOldObject;global.ObjectObserver = ObjectObserver;})(exports);},function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define('yabh',factory);else if(typeof exports === 'object')exports['BinaryHeap'] = factory();else root['BinaryHeap'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _classCallCheck=function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}};var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();Object.defineProperty(exports,'__esModule',{value:true});function bubbleUp(heap,weightFunc,n){var element=heap[n];var weight=weightFunc(element);while(n > 0) {var parentN=Math.floor((n + 1) / 2) - 1;var _parent=heap[parentN];if(weight >= weightFunc(_parent)){break;}else {heap[parentN] = element;heap[n] = _parent;n = parentN;}}}var bubbleDown=function bubbleDown(heap,weightFunc,n){var length=heap.length;var node=heap[n];var nodeWeight=weightFunc(node);while(true) {var child2N=(n + 1) * 2,child1N=child2N - 1;var swap=null;if(child1N < length){var child1=heap[child1N],child1Weight=weightFunc(child1);if(child1Weight < nodeWeight){swap = child1N;}}if(child2N < length){var child2=heap[child2N],child2Weight=weightFunc(child2);if(child2Weight < (swap === null?nodeWeight:weightFunc(heap[child1N]))){swap = child2N;}}if(swap === null){break;}else {heap[n] = heap[swap];heap[swap] = node;n = swap;}}};var BinaryHeap=(function(){function BinaryHeap(weightFunc,compareFunc){_classCallCheck(this,BinaryHeap);if(!weightFunc){weightFunc = function(x){return x;};}if(!compareFunc){compareFunc = function(x,y){return x === y;};}if(typeof weightFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');}if(typeof compareFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');}this.weightFunc = weightFunc;this.compareFunc = compareFunc;this.heap = [];}_createClass(BinaryHeap,[{key:'push',value:function push(node){this.heap.push(node);bubbleUp(this.heap,this.weightFunc,this.heap.length - 1);}},{key:'peek',value:function peek(){return this.heap[0];}},{key:'pop',value:function pop(){var front=this.heap[0];var end=this.heap.pop();if(this.heap.length > 0){this.heap[0] = end;bubbleDown(this.heap,this.weightFunc,0);}return front;}},{key:'remove',value:function remove(node){var length=this.heap.length;for(var i=0;i < length;i++) {if(this.compareFunc(this.heap[i],node)){var removed=this.heap[i];var end=this.heap.pop();if(i !== length - 1){this.heap[i] = end;bubbleUp(this.heap,this.weightFunc,i);bubbleDown(this.heap,this.weightFunc,i);}return removed;}}return null;}},{key:'removeAll',value:function removeAll(){this.heap = [];}},{key:'size',value:function size(){return this.heap.length;}}]);return BinaryHeap;})();exports['default'] = BinaryHeap;module.exports = exports['default'];}]));});;},function(module,exports,__webpack_require__){function forEach(arr,callback,thisObj){if(arr == null){return;}var i=-1,len=arr.length;while(++i < len) {if(callback.call(thisObj,arr[i],i,arr) === false){break;}}}module.exports = forEach;},function(module,exports,__webpack_require__){function slice(arr,start,end){var len=arr.length;if(start == null){start = 0;}else if(start < 0){start = Math.max(len + start,0);}else {start = Math.min(start,len);}if(end == null){end = len;}else if(end < 0){end = Math.max(len + end,0);}else {end = Math.min(end,len);}var result=[];while(start < end) {result.push(arr[start++]);}return result;}module.exports = slice;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function contains(arr,val){return indexOf(arr,val) !== -1;}module.exports = contains;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function remove(arr,item){var idx=indexOf(arr,item);if(idx !== -1)arr.splice(idx,1);}module.exports = remove;},function(module,exports,__webpack_require__){function mergeSort(arr,compareFn){if(arr == null){return [];}else if(arr.length < 2){return arr;}if(compareFn == null){compareFn = defaultCompare;}var mid,left,right;mid = ~ ~(arr.length / 2);left = mergeSort(arr.slice(0,mid),compareFn);right = mergeSort(arr.slice(mid,arr.length),compareFn);return merge(left,right,compareFn);}function defaultCompare(a,b){return a < b?-1:a > b?1:0;}function merge(left,right,compareFn){var result=[];while(left.length && right.length) {if(compareFn(left[0],right[0]) <= 0){result.push(left.shift());}else {result.push(right.shift());}}if(left.length){result.push.apply(result,left);}if(right.length){result.push.apply(result,right);}return result;}module.exports = mergeSort;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var forIn=__webpack_require__(22);function forOwn(obj,fn,thisObj){forIn(obj,function(val,key){if(hasOwn(obj,key)){return fn.call(thisObj,obj[key],key,obj);}});}module.exports = forOwn;},function(module,exports,__webpack_require__){var forOwn=__webpack_require__(13);var isPlainObject=__webpack_require__(23);function deepMixIn(target,objects){var i=0,n=arguments.length,obj;while(++i < n) {obj = arguments[i];if(obj){forOwn(obj,copyProp,target);}}return target;}function copyProp(val,key){var existing=this[key];if(isPlainObject(val) && isPlainObject(existing)){deepMixIn(existing,val);}else {this[key] = val;}}module.exports = deepMixIn;},function(module,exports,__webpack_require__){var slice=__webpack_require__(9);function pick(obj,var_keys){var keys=typeof arguments[1] !== 'string'?arguments[1]:slice(arguments,1),out={},i=0,key;while(key = keys[i++]) {out[key] = obj[key];}return out;}module.exports = pick;},function(module,exports,__webpack_require__){var isPrimitive=__webpack_require__(24);function get(obj,prop){var parts=prop.split('.'),last=parts.pop();while(prop = parts.shift()) {obj = obj[prop];if(obj == null)return;}return obj[last];}module.exports = get;},function(module,exports,__webpack_require__){var namespace=__webpack_require__(25);function set(obj,prop,val){var parts=/^(.+)\.(.+)$/.exec(prop);if(parts){namespace(obj,parts[1])[parts[2]] = val;}else {obj[prop] = val;}}module.exports = set;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var camelCase=__webpack_require__(27);var upperCase=__webpack_require__(19);function pascalCase(str){str = toString(str);return camelCase(str).replace(/^[a-z]/,upperCase);}module.exports = pascalCase;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function upperCase(str){str = toString(str);return str.toUpperCase();}module.exports = upperCase;},function(module,exports,__webpack_require__){function indexOf(arr,item,fromIndex){fromIndex = fromIndex || 0;if(arr == null){return -1;}var len=arr.length,i=fromIndex < 0?len + fromIndex:fromIndex;while(i < len) {if(arr[i] === item){return i;}i++;}return -1;}module.exports = indexOf;},function(module,exports,__webpack_require__){function hasOwn(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports = hasOwn;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var _hasDontEnumBug,_dontEnums;function checkDontEnum(){_dontEnums = ['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'];_hasDontEnumBug = true;for(var key in {'toString':null}) {_hasDontEnumBug = false;}}function forIn(obj,fn,thisObj){var key,i=0;if(_hasDontEnumBug == null)checkDontEnum();for(key in obj) {if(exec(fn,obj,key,thisObj) === false){break;}}if(_hasDontEnumBug){var ctor=obj.constructor,isProto=!!ctor && obj === ctor.prototype;while(key = _dontEnums[i++]) {if((key !== 'constructor' || !isProto && hasOwn(obj,key)) && obj[key] !== Object.prototype[key]){if(exec(fn,obj,key,thisObj) === false){break;}}}}}function exec(fn,obj,key,thisObj){return fn.call(thisObj,obj[key],key,obj);}module.exports = forIn;},function(module,exports,__webpack_require__){function isPlainObject(value){return !!value && typeof value === 'object' && value.constructor === Object;}module.exports = isPlainObject;},function(module,exports,__webpack_require__){function isPrimitive(value){switch(typeof value){case 'string':case 'number':case 'boolean':return true;}return value == null;}module.exports = isPrimitive;},function(module,exports,__webpack_require__){var forEach=__webpack_require__(8);function namespace(obj,path){if(!path)return obj;forEach(path.split('.'),function(key){if(!obj[key]){obj[key] = {};}obj = obj[key];});return obj;}module.exports = namespace;},function(module,exports,__webpack_require__){function toString(val){return val == null?'':val.toString();}module.exports = toString;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var replaceAccents=__webpack_require__(43);var removeNonWord=__webpack_require__(44);var upperCase=__webpack_require__(19);var lowerCase=__webpack_require__(45);function camelCase(str){str = toString(str);str = replaceAccents(str);str = removeNonWord(str).replace(/[\-_]/g,' ').replace(/\s[a-z]/g,upperCase).replace(/\s+/g,'').replace(/^[A-Z]/g,lowerCase);return str;}module.exports = camelCase;},function(module,exports,__webpack_require__){exports['default'] = defineResource;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var instanceMethods=['compute','eject','refresh','save','update','destroy','loadRelations','changeHistory','changes','hasChanges','lastModified','lastSaved','previous'];function defineResource(definition){var _this=this;var definitions=_this.defs;if(_utils['default']._s(definition)){definition = {name:definition.replace(/\s/gi,'')};}if(!_utils['default']._o(definition)){throw _utils['default']._oErr('definition');}else if(!_utils['default']._s(definition.name)){throw new _errors['default'].IA('"name" must be a string!');}else if(definitions[definition.name]){throw new _errors['default'].R(definition.name + ' is already registered!');}function Resource(options){this.defaultValues = {};this.methods = {};this.computed = {};_utils['default'].deepMixIn(this,options);var parent=_this.defaults;if(definition['extends'] && definitions[definition['extends']]){parent = definitions[definition['extends']];}_utils['default'].fillIn(this.defaultValues,parent.defaultValues);_utils['default'].fillIn(this.methods,parent.methods);_utils['default'].fillIn(this.computed,parent.computed);this.endpoint = 'endpoint' in options?options.endpoint:this.name;}try{var def;var _class;var _ret=(function(){if(definition['extends'] && definitions[definition['extends']]){Resource.prototype = definitions[definition['extends']];}else {Resource.prototype = _this.defaults;}definitions[definition.name] = new Resource(definition);def = definitions[definition.name];def.getResource = function(resourceName){return _this.defs[resourceName];};def.logFn('Preparing resource.');if(!_utils['default']._s(def.idAttribute)){throw new _errors['default'].IA('"idAttribute" must be a string!');}if(def.relations){def.relationList = [];def.relationFields = [];_utils['default'].forOwn(def.relations,function(relatedModels,type){_utils['default'].forOwn(relatedModels,function(defs,relationName){if(!_utils['default']._a(defs)){relatedModels[relationName] = [defs];}_utils['default'].forEach(relatedModels[relationName],function(d){d.type = type;d.relation = relationName;d.name = def.name;def.relationList.push(d);if(d.localField){def.relationFields.push(d.localField);}});});});if(def.relations.belongsTo){_utils['default'].forOwn(def.relations.belongsTo,function(relatedModel,modelName){_utils['default'].forEach(relatedModel,function(relation){if(relation.parent){def.parent = modelName;def.parentKey = relation.localKey;def.parentField = relation.localField;}});});}if(typeof Object.freeze === 'function'){Object.freeze(def.relations);Object.freeze(def.relationList);}}_class = def['class'] = _utils['default'].pascalCase(def.name);try{if(typeof def.useClass === 'function'){eval('function ' + _class + '() { def.useClass.call(this); }');def[_class] = eval(_class);def[_class].prototype = (function(proto){function Ctor(){}Ctor.prototype = proto;return new Ctor();})(def.useClass.prototype);}else {eval('function ' + _class + '() {}');def[_class] = eval(_class);}}catch(e) {def[_class] = function(){};}_utils['default'].forOwn(def.methods,function(fn,m){def[_class].prototype[m] = fn;});def[_class].prototype.set = function(key,value){var _this2=this;_utils['default'].set(this,key,value);def.compute(this);if(def.instanceEvents){setTimeout(function(){_this2.emit('DS.change',def,_this2);},0);}def.handleChange(this);return this;};def[_class].prototype.get = function(key){return _utils['default'].get(this,key);};if(def.instanceEvents){_utils['default'].Events(def[_class].prototype);}_utils['default'].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;if(!def.hasOwnProperty('omit')){parentOmit = def.omit;def.omit = [];}else {parentOmit = _this.defaults.omit;}def.omit = def.omit.concat(parentOmit || []);_utils['default'].forOwn(def.computed,function(fn,field){if(_utils['default'].isFunction(fn)){def.computed[field] = [fn];fn = def.computed[field];}if(def.methods && field in def.methods){def.errorFn('Computed property "' + field + '" conflicts with previously defined prototype method!');}def.omit.push(field);var deps;if(fn.length === 1){var match=fn[0].toString().match(/function.*?\(([\s\S]*?)\)/);deps = match[1].split(',');def.computed[field] = deps.concat(fn);fn = def.computed[field];if(deps.length){def.errorFn('Use the computed property array syntax for compatibility with minified code!');}}deps = fn.slice(0,fn.length - 1);_utils['default'].forEach(deps,function(val,index){deps[index] = val.trim();});fn.deps = _utils['default'].filter(deps,function(dep){return !!dep;});});_utils['default'].forEach(instanceMethods,function(name){def[_class].prototype['DS' + _utils['default'].pascalCase(name)] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}args.unshift(this[def.idAttribute] || this);args.unshift(def.name);return _this[name].apply(_this,args);};});def[_class].prototype.DSCreate = function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}args.unshift(this);args.unshift(def.name);return _this.create.apply(_this,args);};_this.s[def.name] = {collection:[],expiresHeap:new _utils['default'].BinaryHeap(function(x){return x.expires;},function(x,y){return x.item === y;}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var resource=_this.s[def.name];if(def.reapInterval){setInterval(function(){return def.reap();},def.reapInterval);}var fns=['registerAdapter','getAdapterName','getAdapter','is'];for(var key in _this) {if(typeof _this[key] === 'function'){fns.push(key);}}_utils['default'].forEach(fns,function(key){var k=key;if(_this[k].shorthand !== false){def[k] = function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}args.unshift(def.name);return _this[k].apply(_this,args);};def[k].before = function(fn){var orig=def[k];def[k] = function(){for(var _len4=arguments.length,args=Array(_len4),_key4=0;_key4 < _len4;_key4++) {args[_key4] = arguments[_key4];}return orig.apply(def,fn.apply(def,args) || args);};};}else {def[k] = function(){for(var _len5=arguments.length,args=Array(_len5),_key5=0;_key5 < _len5;_key5++) {args[_key5] = arguments[_key5];}return _this[k].apply(_this,args);};}});def.beforeValidate = _utils['default'].promisify(def.beforeValidate);def.validate = _utils['default'].promisify(def.validate);def.afterValidate = _utils['default'].promisify(def.afterValidate);def.beforeCreate = _utils['default'].promisify(def.beforeCreate);def.afterCreate = _utils['default'].promisify(def.afterCreate);def.beforeUpdate = _utils['default'].promisify(def.beforeUpdate);def.afterUpdate = _utils['default'].promisify(def.afterUpdate);def.beforeDestroy = _utils['default'].promisify(def.beforeDestroy);def.afterDestroy = _utils['default'].promisify(def.afterDestroy);var defaultAdapter=undefined;if(def.hasOwnProperty('defaultAdapter')){defaultAdapter = def.defaultAdapter;}_utils['default'].forOwn(def.actions,function(action,name){if(def[name] && !def.actions[name]){throw new Error('Cannot override existing method "' + name + '"!');}action.request = action.request || function(config){return config;};action.response = action.response || function(response){return response;};action.responseError = action.responseError || function(err){return _utils['default'].Promise.reject(err);};def[name] = function(id,options){if(_utils['default']._o(id)){options = id;}options = options || {};var adapter=def.getAdapter(action.adapter || defaultAdapter || 'http');var config=_utils['default'].deepMixIn({},action);if(!options.hasOwnProperty('endpoint') && config.endpoint){options.endpoint = config.endpoint;}if(typeof options.getEndpoint === 'function'){config.url = options.getEndpoint(def,options);}else {var args=[options.basePath || adapter.defaults.basePath || def.basePath,adapter.getEndpoint(def,_utils['default']._sn(id)?id:null,options)];if(_utils['default']._sn(id)){args.push(id);}args.push(action.pathname || name);config.url = _utils['default'].makePath.apply(null,args);}config.method = config.method || 'GET';_utils['default'].deepMixIn(config,options);return new _utils['default'].Promise(function(r){return r(config);}).then(options.request || action.request).then(function(config){return adapter.HTTP(config);}).then(options.response || action.response,options.responseError || action.responseError);};});_utils['default'].Events(def);def.handleChange = function(data){resource.collectionModified = _utils['default'].updateTimestamp(resource.collectionModified);if(def.notify){setTimeout(function(){def.emit('DS.change',def,data);},0);}};def.logFn('Done preparing resource.');return {v:def};})();if(typeof _ret === 'object')return _ret.v;}catch(err) {_this.defaults.errorFn(err);delete definitions[definition.name];delete _this.s[definition.name];throw err;}}},function(module,exports,__webpack_require__){exports['default'] = eject;function eject(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined;var found=false;id = DSUtils.resolveId(definition,id);if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._sn(id)){throw DSUtils._snErr('id');}options = DSUtils._(definition,options);options.logFn('eject',id,options);for(var i=0;i < resource.collection.length;i++) {if(resource.collection[i][definition.idAttribute] == id){item = resource.collection[i];resource.expiresHeap.remove(item);found = true;break;}}if(found){var _ret=(function(){definition.beforeEject(options,item);if(options.notify){definition.emit('DS.beforeEject',definition,item);}var toRemove=[];DSUtils.forOwn(resource.queryData,function(items,queryHash){if(items.$$injected){DSUtils.remove(items,item);}if(!items.length && options.clearEmptyQueries){toRemove.push(queryHash);}});DSUtils.forEach(resource.changeHistories[id],function(changeRecord){DSUtils.remove(resource.changeHistory,changeRecord);});DSUtils.forEach(toRemove,function(queryHash){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];});if(DSUtils.w){resource.observers[id].close();}delete resource.observers[id];delete resource.index[id];delete resource.previousAttributes[id];delete resource.completedQueries[id];delete resource.pendingQueries[id];delete resource.changeHistories[id];delete resource.modified[id];delete resource.saved[id];resource.collection.splice(i,1);definition.handleChange(item);definition.afterEject(options,item);if(options.notify){definition.emit('DS.afterEject',definition,item);}return {v:item};})();if(typeof _ret === 'object')return _ret.v;}}},function(module,exports,__webpack_require__){exports['default'] = ejectAll;function ejectAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._o(params)){throw DSUtils._oErr('params');}definition.logFn('ejectAll',params,options);var resource=_this.s[resourceName];var queryHash=DSUtils.toJson(params);var items=definition.filter(params);var ids=[];if(DSUtils.isEmpty(params)){resource.completedQueries = {};}else {delete resource.completedQueries[queryHash];}DSUtils.forEach(items,function(item){if(item && item[definition.idAttribute]){ids.push(item[definition.idAttribute]);}});DSUtils.forEach(ids,function(id){definition.eject(id,options);});definition.handleChange(items);return items;}},function(module,exports,__webpack_require__){exports['default'] = filter;function filter(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];if(!definition){throw new _this.errors.NER(resourceName);}else if(params && !DSUtils._o(params)){throw DSUtils._oErr('params');}params = params || {};options = DSUtils._(definition,options);options.logFn('filter',params,options);return definition.defaultFilter.call(_this,_this.s[resourceName].collection,resourceName,params,options);}},function(module,exports,__webpack_require__){exports['default'] = inject;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);function makeObserverHandler(definition,resource){var DS=this;var name=definition.name;return function _react(added,removed,changed,oldValueFn,firstTime){var target=this;var item=undefined;var innerId=oldValueFn && oldValueFn(definition.idAttribute)?oldValueFn(definition.idAttribute):target[definition.idAttribute];_utils['default'].forEach(definition.relationFields,function(field){delete added[field];delete removed[field];delete changed[field];});if(!_utils['default'].isEmpty(added) || !_utils['default'].isEmpty(removed) || !_utils['default'].isEmpty(changed) || firstTime){item = DS.get(name,innerId);resource.modified[innerId] = _utils['default'].updateTimestamp(resource.modified[innerId]);if(item && definition.instanceEvents){setTimeout(function(){item.emit('DS.change',definition,item);},0);}definition.handleChange(item);if(definition.keepChangeHistory){var changeRecord={resourceName:name,target:item,added:added,removed:removed,changed:changed,timestamp:resource.modified[innerId]};resource.changeHistories[innerId].push(changeRecord);resource.changeHistory.push(changeRecord);}}if(definition.computed){item = item || DS.get(name,innerId);_utils['default'].forOwn(definition.computed,function(fn,field){var compute=false;_utils['default'].forEach(fn.deps,function(dep){if(dep in added || dep in removed || dep in changed || !(field in item)){compute = true;}});compute = compute || !fn.deps.length;if(compute){_utils['default'].compute.call(item,fn,field);}});}if(definition.idAttribute in changed){definition.errorFn('Doh! You just changed the primary key of an object! Your data for the "' + name + '" resource is now in an undefined (probably broken) state.');}};}function _inject(definition,resource,attrs,options){var _this=this;var injected=undefined;if(_utils['default']._a(attrs)){injected = [];for(var i=0;i < attrs.length;i++) {injected.push(_inject.call(_this,definition,resource,attrs[i],options));}}else {var _react=makeObserverHandler.call(_this,definition,resource);var c=definition.computed;var idA=definition.idAttribute;if(c && c[idA]){(function(){var args=[];_utils['default'].forEach(c[idA].deps,function(dep){args.push(attrs[dep]);});attrs[idA] = c[idA][c[idA].length - 1].apply(attrs,args);})();}if(!(idA in attrs)){var error=new _errors['default'].R(definition.name + '.inject: "attrs" must contain the property specified by "idAttribute"!');options.errorFn(error);throw error;}else {try{(function(){_utils['default'].forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=_this.defs[relationName];var toInject=attrs[def.localField];if(toInject){if(!relationDef){throw new _errors['default'].R(definition.name + ' relation is defined but the resource is not!');}if(_utils['default']._a(toInject)){(function(){var items=[];_utils['default'].forEach(toInject,function(toInjectItem){if(toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]){try{var injectedItem=relationDef.inject(toInjectItem,options.orig());if(def.foreignKey){injectedItem[def.foreignKey] = attrs[definition.idAttribute];}items.push(injectedItem);}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}});})();}else {if(toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]){try{var _injected=relationDef.inject(attrs[def.localField],options.orig());if(def.foreignKey){_injected[def.foreignKey] = attrs[definition.idAttribute];}}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}}}});var id=attrs[idA];var item=definition.get(id);var initialLastModified=item?resource.modified[id]:0;if(!item){if(attrs instanceof definition[definition['class']]){item = attrs;}else {item = new definition[definition['class']]();}_utils['default'].forEach(definition.relationList,function(def){delete attrs[def.localField];});_utils['default'].deepMixIn(item,attrs);resource.collection.push(item);resource.changeHistories[id] = [];if(_utils['default'].w){resource.observers[id] = new _this.observe.ObjectObserver(item);resource.observers[id].open(_react,item);}resource.index[id] = item;_react.call(item,{},{},{},null,true);resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);}else {if(options.onConflict === 'merge'){_utils['default'].deepMixIn(item,attrs);}else if(options.onConflict === 'replace'){_utils['default'].forOwn(item,function(v,k){if(k !== definition.idAttribute){if(!attrs.hasOwnProperty(k)){delete item[k];}}});_utils['default'].forOwn(attrs,function(v,k){if(k !== definition.idAttribute){item[k] = v;}});}if(definition.resetHistoryOnInject){resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);if(resource.changeHistories[id].length){_utils['default'].forEach(resource.changeHistories[id],function(changeRecord){_utils['default'].remove(resource.changeHistory,changeRecord);});resource.changeHistories[id].splice(0,resource.changeHistories[id].length);}}if(_utils['default'].w){resource.observers[id].deliver();}}resource.modified[id] = initialLastModified && resource.modified[id] === initialLastModified?_utils['default'].updateTimestamp(resource.modified[id]):resource.modified[id];resource.expiresHeap.remove(item);var timestamp=new Date().getTime();resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});injected = item;})();}catch(err) {options.errorFn(err,attrs);}}}return injected;}function inject(resourceName,attrs,options){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var injected=undefined;if(!definition){throw new _errors['default'].NER(resourceName);}else if(!_utils['default']._o(attrs) && !_utils['default']._a(attrs)){throw new _errors['default'].IA(resourceName + '.inject: "attrs" must be an object or an array!');}options = _utils['default']._(definition,options);options.logFn('inject',attrs,options);options.beforeInject(options,attrs);if(options.notify){definition.emit('DS.beforeInject',definition,attrs);}injected = _inject.call(_this,definition,resource,attrs,options);definition.handleChange(injected);options.afterInject(options,injected);if(options.notify){definition.emit('DS.afterInject',definition,injected);}return injected;}},function(module,exports,__webpack_require__){exports['default'] = create;function create(resourceName,attrs,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var adapter=undefined;options = options || {};attrs = attrs || {};var rejectionError=undefined;if(!definition){rejectionError = new _this.errors.NER(resourceName);}else if(!DSUtils._o(attrs)){rejectionError = DSUtils._oErr('attrs');}else {options = DSUtils._(definition,options);if(options.upsert && DSUtils._sn(attrs[definition.idAttribute])){return _this.update(resourceName,attrs[definition.idAttribute],attrs,options);}options.logFn('create',attrs,options);}return new DSUtils.Promise(function(resolve,reject){if(rejectionError){reject(rejectionError);}else {resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeCreate',definition,attrs);}adapter = _this.getAdapterName(options);return _this.adapters[adapter].create(definition,DSUtils.omit(attrs,options.omit),options);}).then(function(attrs){return options.afterCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.afterCreate',definition,attrs);}if(options.cacheResponse){var created=_this.inject(definition.name,attrs,options.orig());var id=created[definition.idAttribute];var resource=_this.s[resourceName];resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return created;}else {return _this.createInstance(resourceName,attrs,options);}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = destroy;function destroy(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var item=undefined;var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {item = definition.get(id) || {id:id};options = DSUtils._(definition,options);options.logFn('destroy',id,options);resolve(item);}}).then(function(attrs){return options.beforeDestroy.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeDestroy',definition,attrs);}if(options.eagerEject){definition.eject(id);}adapter = definition.getAdapter(options);return adapter.destroy(definition,id,options);}).then(function(){return options.afterDestroy.call(item,options,item);}).then(function(item){if(options.notify){definition.emit('DS.afterDestroy',definition,item);}definition.eject(id);return DSUtils.respond(id,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && item){definition.inject(item,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = destroyAll;function destroyAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var ejected=undefined,toEject=undefined,adapter=undefined;params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('attrs'));}else {options = DSUtils._(definition,options);options.logFn('destroyAll',params,options);resolve();}}).then(function(){toEject = definition.defaultFilter.call(_this,resourceName,params);return options.beforeDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.beforeDestroy',definition,toEject);}if(options.eagerEject){ejected = definition.ejectAll(params);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].destroyAll(definition,params,options);}).then(function(){return options.afterDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.afterDestroy',definition,toEject);}return ejected || definition.ejectAll(params);}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && ejected){definition.inject(ejected,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = find;function find(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('find',id,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[id];}if((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache){resolve(definition.get(id));}else {delete resource.completedQueries[id];resolve();}}}).then(function(item){if(!item){if(!(id in resource.pendingQueries)){var promise=undefined;var strategy=options.findStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].find(definition,id,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].find(definition,id,options);}resource.pendingQueries[id] = promise.then(function(data){delete resource.pendingQueries[id];if(options.cacheResponse){var injected=definition.inject(data,options.orig());resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return injected;}else {return definition.createInstance(data,options.orig());}});}return resource.pendingQueries[id];}else {return item;}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[id];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = findAll;function processResults(data,resourceName,queryHash,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var idAttribute=_this.defs[resourceName].idAttribute;var date=new Date().getTime();data = data || [];delete resource.pendingQueries[queryHash];resource.completedQueries[queryHash] = date;var injected=definition.inject(data,options.orig());if(DSUtils._a(injected)){DSUtils.forEach(injected,function(item){if(item){var id=item[idAttribute];if(id){resource.completedQueries[id] = date;resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);}}});}else {options.errorFn('response is expected to be an array!');resource.completedQueries[injected[idAttribute]] = date;}return injected;}function findAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var queryHash=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){params = params || {};if(!_this.defs[resourceName]){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);queryHash = DSUtils.toJson(params);options.logFn('findAll',params,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];}if(queryHash in resource.completedQueries){if(options.useFilter){resolve(definition.filter(params,options.orig()));}else {resolve(resource.queryData[queryHash]);}}else {resolve();}}}).then(function(items){if(!(queryHash in resource.completedQueries)){if(!(queryHash in resource.pendingQueries)){var promise=undefined;var strategy=options.findAllStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findAllFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].findAll(definition,params,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].findAll(definition,params,options);}resource.pendingQueries[queryHash] = promise.then(function(data){delete resource.pendingQueries[queryHash];if(options.cacheResponse){resource.queryData[queryHash] = processResults.call(_this,data,resourceName,queryHash,options);resource.queryData[queryHash].$$injected = true;return resource.queryData[queryHash];}else {DSUtils.forEach(data,function(item,i){data[i] = definition.createInstance(item,options.orig());});return data;}});}return resource.pendingQueries[queryHash];}else {return items;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[queryHash];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = loadRelations;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}function loadRelations(resourceName,instance,relations,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];return new DSUtils.Promise(function(resolve,reject){if(DSUtils._sn(instance)){instance = definition.get(instance);}if(DSUtils._s(relations)){relations = [relations];}relations = relations || [];if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._o(instance)){reject(new DSErrors.IA('"instance(id)" must be a string, number or object!'));}else if(!DSUtils._a(relations)){reject(new DSErrors.IA('"relations" must be a string or an array!'));}else {(function(){var _options=DSUtils._(definition,options);_options.logFn('loadRelations',instance,relations,_options);var tasks=[];DSUtils.forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=definition.getResource(relationName);var __options=DSUtils._(relationDef,options);if(!relations.length || DSUtils.contains(relations,relationName) || DSUtils.contains(relations,def.localField)){var task=undefined;var params={};if(__options.allowSimpleWhere){params[def.foreignKey] = instance[definition.idAttribute];}else {params.where = {};params.where[def.foreignKey] = {'==':instance[definition.idAttribute]};}if(def.type === 'hasMany'){if(def.localKeys){delete params[def.foreignKey];params.where = _defineProperty({},relationDef.idAttribute,{'in':instance[def.localKeys]});}task = relationDef.findAll(params,__options.orig());}else if(def.type === 'hasOne'){if(def.localKey && instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}else if(def.foreignKey){task = relationDef.findAll(params,__options.orig()).then(function(hasOnes){return hasOnes.length?hasOnes[0]:null;});}}else if(instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}if(task){tasks.push(task);}}});resolve(tasks);})();}}).then(function(tasks){return DSUtils.Promise.all(tasks);}).then(function(){return instance;});}},function(module,exports,__webpack_require__){exports['default'] = reap;function reap(resourceName,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else {options = DSUtils._(definition,options);if(!options.hasOwnProperty('notify')){options.notify = false;}options.logFn('reap',options);var items=[];var now=new Date().getTime();var expiredItem=undefined;while((expiredItem = resource.expiresHeap.peek()) && expiredItem.expires < now) {items.push(expiredItem.item);delete expiredItem.item;resource.expiresHeap.pop();}resolve(items);}}).then(function(items){if(items.length){definition.beforeReap(options,items);if(options.notify){definition.emit('DS.beforeReap',definition,items);}}if(options.reapAction === 'inject'){(function(){var timestamp=new Date().getTime();DSUtils.forEach(items,function(item){resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});});})();}else if(options.reapAction === 'eject'){DSUtils.forEach(items,function(item){definition.eject(item[definition.idAttribute]);});}else if(options.reapAction === 'refresh'){var _ret2=(function(){var tasks=[];DSUtils.forEach(items,function(item){tasks.push(definition.refresh(item[definition.idAttribute]));});return {v:DSUtils.Promise.all(tasks)};})();if(typeof _ret2 === 'object')return _ret2.v;}return items;}).then(function(items){if(items.length){definition.afterReap(options,items);if(options.notify){definition.emit('DS.afterReap',definition,items);}}return items;});}},function(module,exports,__webpack_require__){exports['default'] = save;function save(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined,noChanges=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else if(!definition.get(id)){reject(new DSErrors.R('id "' + id + '" not found in cache!'));}else {item = definition.get(id);options = DSUtils._(definition,options);options.logFn('save',id,options);resolve(item);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}if(options.changesOnly){if(DSUtils.w){resource.observers[id].deliver();}var toKeep=[];var changes=definition.changes(id);for(var key in changes.added) {toKeep.push(key);}for(key in changes.changed) {toKeep.push(key);}changes = DSUtils.pick(attrs,toKeep);if(DSUtils.isEmpty(changes)){options.logFn('save - no changes',id,options);noChanges = true;return attrs;}else {attrs = changes;}}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(noChanges){return attrs;}else if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = update;function update(resourceName,id,attrs,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('update',id,attrs,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var resource=_this.s[resourceName];var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = updateAll;function updateAll(resourceName,attrs,params,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new DSErrors.NER(resourceName));}else {options = DSUtils._(definition,options);options.logFn('updateAll',attrs,params,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].updateAll(definition,DSUtils.omit(attrs,options.omit),params,options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(data){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}var origOptions=options.orig();if(options.cacheResponse){var _ret=(function(){var injected=definition.inject(data,origOptions);var resource=_this.s[resourceName];DSUtils.forEach(injected,function(i){var id=i[definition.idAttribute];resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[id] = DSUtils.copy(i,null,null,null,definition.relationFields);}});return {v:injected};})();if(typeof _ret === 'object')return _ret.v;}else {var _ret2=(function(){var instances=[];DSUtils.forEach(data,function(item){instances.push(definition.createInstance(item,origOptions));});return {v:instances};})();if(typeof _ret2 === 'object')return _ret2.v;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function replaceAccents(str){str = toString(str);if(str.search(/[\xC0-\xFF]/g) > -1){str = str.replace(/[\xC0-\xC5]/g,'A').replace(/[\xC6]/g,'AE').replace(/[\xC7]/g,'C').replace(/[\xC8-\xCB]/g,'E').replace(/[\xCC-\xCF]/g,'I').replace(/[\xD0]/g,'D').replace(/[\xD1]/g,'N').replace(/[\xD2-\xD6\xD8]/g,'O').replace(/[\xD9-\xDC]/g,'U').replace(/[\xDD]/g,'Y').replace(/[\xDE]/g,'P').replace(/[\xE0-\xE5]/g,'a').replace(/[\xE6]/g,'ae').replace(/[\xE7]/g,'c').replace(/[\xE8-\xEB]/g,'e').replace(/[\xEC-\xEF]/g,'i').replace(/[\xF1]/g,'n').replace(/[\xF2-\xF6\xF8]/g,'o').replace(/[\xF9-\xFC]/g,'u').replace(/[\xFE]/g,'p').replace(/[\xFD\xFF]/g,'y');}return str;}module.exports = replaceAccents;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var PATTERN=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;function removeNonWord(str){str = toString(str);return str.replace(PATTERN,'');}module.exports = removeNonWord;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function lowerCase(str){str = toString(str);return str.toLowerCase();}module.exports = lowerCase;}]));}); + +/***/ } +/******/ ]); \ No newline at end of file diff --git a/build_examples/webpack_es6_2/index.html b/build_examples/webpack_es6_2/index.html new file mode 100644 index 0000000..9769ccd --- /dev/null +++ b/build_examples/webpack_es6_2/index.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html ng-app="app"> +<head> + <title>My App</title> + <!-- load bundled scripts --> + <script src="bundle.js"></script> +</head> +<body> +<h1>{{ test }}</h1> +</body> +</html> diff --git a/build_examples/webpack_es6_2/webpack.config.js b/build_examples/webpack_es6_2/webpack.config.js new file mode 100644 index 0000000..a645ef2 --- /dev/null +++ b/build_examples/webpack_es6_2/webpack.config.js @@ -0,0 +1,17 @@ +module.exports = { + entry: './app.js', + output: { + filename: 'bundle.js' + }, + externals: ['axios'], + resolve: { + alias: { + 'js-data-angular': '../../dist/js-data-angular.js' + } + }, + module: { + loaders: [ + { test: /(.+)\.js$/, loader: 'babel-loader?blacklist=useStrict' } + ] + } +}; From 47ea7abebe48900b0aee1e3c76a8bcf7ae3f30e0 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Wed, 1 Jul 2015 10:45:09 -0400 Subject: [PATCH 15/32] Removed some build files. --- .gitignore | 2 + build_examples/webpack_es6/bundle.js | 810 ------------------------- build_examples/webpack_es6_2/bundle.js | 804 ------------------------ 3 files changed, 2 insertions(+), 1614 deletions(-) delete mode 100644 build_examples/webpack_es6/bundle.js delete mode 100644 build_examples/webpack_es6_2/bundle.js diff --git a/.gitignore b/.gitignore index 1a7da08..75552dd 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ bower_components/ build_examples/r.js/bundle.js build_examples/browserify/bundle.js build_examples/webpack/bundle.js +build_examples/webpack_es6/bundle.js +build_examples/webpack_es6_2/bundle.js diff --git a/build_examples/webpack_es6/bundle.js b/build_examples/webpack_es6/bundle.js deleted file mode 100644 index 63a7168..0000000 --- a/build_examples/webpack_es6/bundle.js +++ /dev/null @@ -1,810 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - var _angular = __webpack_require__(2); - - var _angular2 = _interopRequireDefault(_angular); - - var _jsDataAngular = __webpack_require__(1); - - var _jsDataAngular2 = _interopRequireDefault(_jsDataAngular); - - _angular2['default'].module('app', [_jsDataAngular2['default']]).run(function (DS, DSVersion, $rootScope) { - $rootScope.test = 'It works! Using js-data ' + DSVersion.full; - }); - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - /*! - * js-data-angular - * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> - * @author Jason Dobry <jason.dobry@gmail.com> - * @copyright (c) 2014-2015 Jason Dobry - * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> - * - * @overview Angular wrapper for js-data. - */ - (function webpackUniversalModuleDefinition(root, factory) { - if (true) module.exports = factory(__webpack_require__(5), __webpack_require__(2), (function webpackLoadOptionalExternalModule() { - try { - return __webpack_require__(3); - } catch (e) {} - })());else if (typeof define === 'function' && define.amd) define(['js-data', 'angular'], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { - return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root['axios']); - });else if (typeof exports === 'object') exports['jsDataAngularModuleName'] = factory(require('js-data'), require('angular'), (function webpackLoadOptionalExternalModule() { - try { - return require('axios'); - } catch (e) {} - })());else root['jsDataAngularModuleName'] = factory(root['JSData'], root['angular'], root['axios']); - })(this, function (__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { - return ( /******/(function (modules) { - // webpackBootstrap - /******/ // The module cache - /******/var installedModules = {}; - - /******/ // The require function - /******/function __webpack_require__(moduleId) { - - /******/ // Check if module is in cache - /******/if (installedModules[moduleId]) - /******/return installedModules[moduleId].exports; - - /******/ // Create a new module (and put it into the cache) - /******/var module = installedModules[moduleId] = { - /******/exports: {}, - /******/id: moduleId, - /******/loaded: false - /******/ }; - - /******/ // Execute the module function - /******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - - /******/ // Flag the module as loaded - /******/module.loaded = true; - - /******/ // Return the exports of the module - /******/return module.exports; - /******/ - } - - /******/ // expose the modules object (__webpack_modules__) - /******/__webpack_require__.m = modules; - - /******/ // expose the module cache - /******/__webpack_require__.c = installedModules; - - /******/ // __webpack_public_path__ - /******/__webpack_require__.p = ''; - - /******/ // Load entry module and return exports - /******/return __webpack_require__(0); - /******/ - })([ - /* 0 */ - /***/function (module, exports, __webpack_require__) { - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); - } - } - - /*jshint loopfunc:true*/ - var JSData = __webpack_require__(1); - var DSHttpAdapter = __webpack_require__(4); - var angular = __webpack_require__(2); - - var DSUtils = JSData.DSUtils; - var DSErrors = JSData.DSErrors; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; - var isObject = DSUtils.isObject; - var set = DSUtils.set; - var resolveId = DSUtils.resolveId; - - var adapters = [{ - project: 'js-data-localstorage', - name: 'localstorage', - 'class': 'DSLocalStorageAdapter' - }, { - project: 'js-data-localforage', - name: 'localforage', - 'class': 'DSLocalForageAdapter' - }, { - project: 'js-data-firebase', - name: 'firebase', - 'class': 'DSFirebaseAdapter' - }, { - project: 'js-data-sql', - name: 'sql', - 'class': 'DSSqlAdapter' - }]; - - var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; - - function registerAdapter(adapter) { - var Adapter = undefined; - - try { - Adapter = __webpack_require__(3)(adapter.project); - } catch (e) {} - - if (!Adapter) { - Adapter = window[adapter['class']]; - } - - if (Adapter) { - adapter.loaded = true; - angular.module('js-data').provider(adapter['class'], function () { - var _this = this; - _this.defaults = {}; - _this.$get = [function () { - return new Adapter(_this.defaults); - }]; - }); - } - } - - var DSHttpAdapterProvider = function DSHttpAdapterProvider() { - _classCallCheck(this, DSHttpAdapterProvider); - - var defaults = {}; - this.defaults = defaults; - - this.$get = ['$http', 'DS', function ($http, DS) { - defaults.http = defaults.http || $http; - var adapter = new DSHttpAdapter(defaults); - DS.registerAdapter('http', adapter, { 'default': true }); - return adapter; - }]; - }; - - var DSProvider = function DSProvider() { - _classCallCheck(this, DSProvider); - - var _this = this; - var deps = []; - - for (var i = 0; i < adapters.length; i++) { - if (adapters[i].loaded) { - deps.push(adapters[i]['class']); - } - } - - _this.defaults = {}; - - JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { - var _this = this; - - params = params || {}; - - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!isObject(params)) { - throw new DSErrors.IA('"params" must be an object!'); - } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName); - }, function () { - var items = _this.filter(resourceName, params); - set(scope, expr, items); - if (cb) { - cb(null, items); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { - var _this = this; - - id = resolveId(_this.definitions[resourceName], id); - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!isString(id) && !isNumber(id)) { - throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName, id); - }, function () { - var item = _this.get(resourceName, id); - if (item) { - _this.compute(resourceName, id); - } - set(scope, expr, item); - if (cb) { - cb(null, item); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - function load() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var $rootScope = args[args.length - 2]; - var $q = args[args.length - 1]; - var store = new JSData.DS(_this.defaults); - var originals = {}; - - function QPromise(executor) { - var deferred = $q.defer(); - - try { - executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); - } catch (err) { - deferred.reject(err); - } - - return deferred.promise; - } - - QPromise.all = $q.all; - QPromise.when = $q.when; - QPromise.reject = $q.reject; - - DSUtils.Promise = QPromise; - - // Register any adapters that have been loaded - if (args.length) { - for (var i = 0; i < args.length; i++) { - for (var j = 0; j < adapters.length; j++) { - if (adapters[j].loaded && !adapters[j].registered) { - adapters[j].registered = true; - store.registerAdapter(adapters[j].name, args[i]); - break; - } - } - } - } - - var _loop = function _loop() { - var name = functionsToWrap[k]; - originals[name] = store[name]; - store[name] = function () { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - if (!$rootScope.$$phase) { - return $rootScope.$apply(function () { - return originals[name].apply(store, args); - }); - } - return originals[name].apply(store, args); - }; - }; - - // Wrap certain sync functions with $apply - for (var k = 0; k < functionsToWrap.length; k++) { - _loop(); - } - - // Hook into the digest loop - if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { - $rootScope.$watch(function () { - return store.observe.Platform.performMicrotaskCheckpoint(); - }); - } - - return store; - } - - deps.push('$rootScope'); - deps.push('$q'); - deps.push(load); - - _this.$get = deps; - }; - - angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { - DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); - }]); - - for (var i = 0; i < adapters.length; i++) { - registerAdapter(adapters[i]); - } - - // return the module name - module.exports = 'js-data'; - module.exports.name = 'js-data'; - - /***/ - }, - /* 1 */ - /***/function (module, exports, __webpack_require__) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_1__; - - /***/ - }, - /* 2 */ - /***/function (module, exports, __webpack_require__) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_2__; - - /***/ - }, - /* 3 */ - /***/function (module, exports, __webpack_require__) { - - var map = {}; - function webpackContext(req) { - return __webpack_require__(webpackContextResolve(req)); - }; - function webpackContextResolve(req) { - return map[req] || (function () { - throw new Error('Cannot find module \'' + req + '\'.'); - })(); - }; - webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); - }; - webpackContext.resolve = webpackContextResolve; - module.exports = webpackContext; - webpackContext.id = 3; - - /***/ - }, - /* 4 */ - /***/function (module, exports, __webpack_require__) { - - var _createClass = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); - } - }return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; - }; - })(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); - } - } - - var JSData = __webpack_require__(1); - var axios = null; - - try { - axios = __webpack_require__(5); - } catch (e) {} - - var DSUtils = JSData.DSUtils; - var deepMixIn = DSUtils.deepMixIn; - var removeCircular = DSUtils.removeCircular; - var copy = DSUtils.copy; - var makePath = DSUtils.makePath; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; - - var Defaults = (function () { - function Defaults() { - _classCallCheck(this, Defaults); - } - - _createClass(Defaults, [{ - key: 'queryTransform', - value: function queryTransform(resourceConfig, params) { - return params; - } - }, { - key: 'deserialize', - value: function deserialize(resourceConfig, data) { - return data ? 'data' in data ? data.data : data : data; - } - }, { - key: 'serialize', - value: function serialize(resourceConfig, data) { - return data; - } - }, { - key: 'log', - value: function log() {} - }, { - key: 'error', - value: function error() {} - }]); - - return Defaults; - })(); - - var defaultsPrototype = Defaults.prototype; - - defaultsPrototype.basePath = ''; - - defaultsPrototype.forceTrailingSlash = ''; - - defaultsPrototype.httpConfig = {}; - - var DSHttpAdapter = (function () { - function DSHttpAdapter(options) { - _classCallCheck(this, DSHttpAdapter); - - this.defaults = new Defaults(); - if (console) { - this.defaults.log = function (a, b) { - return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - }; - } - if (console) { - this.defaults.error = function (a, b) { - return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - }; - } - deepMixIn(this.defaults, options); - this.http = options.http || axios; - } - - _createClass(DSHttpAdapter, [{ - key: 'getEndpoint', - value: function getEndpoint(resourceConfig, id, options) { - var _this2 = this; - - options = options || {}; - options.params = options.params || {}; - - var item = undefined; - var parentKey = resourceConfig.parentKey; - var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; - var parentField = resourceConfig.parentField; - var parentDef = resourceConfig.getResource(resourceConfig.parent); - var parentId = options.params[parentKey]; - - if (parentId === false || !parentKey || !parentDef) { - if (parentId === false) { - delete options.params[parentKey]; - } - return endpoint; - } else { - delete options.params[parentKey]; - - if (DSUtils._sn(id)) { - item = resourceConfig.get(id); - } else if (DSUtils._o(id)) { - item = id; - } - - if (item) { - parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); - } - - if (parentId) { - var _ret = (function () { - delete options.endpoint; - var _options = {}; - DSUtils.forOwn(options, function (value, key) { - _options[key] = value; - }); - return { - v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) - }; - })(); - - if (typeof _ret === 'object') return _ret.v; - } else { - return endpoint; - } - } - } - }, { - key: 'getPath', - value: function getPath(method, resourceConfig, id, options) { - var _this = this; - options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); - } - return makePath.apply(DSUtils, args); - } - }, { - key: 'HTTP', - value: function HTTP(config) { - var _this = this; - var start = new Date(); - config = copy(config); - config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { - config.url += '/'; - } - if (typeof config.data === 'object') { - config.data = removeCircular(config.data); - } - config.method = config.method.toUpperCase(); - var suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { - config.url += suffix; - } - - function logResponse(data) { - var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); - } - return data; - } else { - if (_this.defaults.error) { - _this.defaults.error('\'FAILED: ' + str, data); - } - return DSUtils.Promise.reject(data); - } - } - - if (!this.http) { - throw new Error('You have not configured this adapter with an http library!'); - } - - return this.http(config).then(logResponse, logResponse); - } - }, { - key: 'GET', - value: function GET(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'POST', - value: function POST(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); - } - }, { - key: 'PUT', - value: function PUT(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); - } - }, { - key: 'DEL', - value: function DEL(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'find', - value: function find(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item; - }); - } - }, { - key: 'findAll', - value: function findAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'create', - value: function create(resourceConfig, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'update', - value: function update(resourceConfig, id, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'updateAll', - value: function updateAll(resourceConfig, attrs, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroy', - value: function destroy(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroyAll', - value: function destroyAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }]); - - return DSHttpAdapter; - })(); - - module.exports = DSHttpAdapter; - - /***/ - }, - /* 5 */ - /***/function (module, exports, __webpack_require__) { - - if (typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') { - var e = new Error('Cannot find module "axios"');e.code = 'MODULE_NOT_FOUND';throw e; - } - module.exports = __WEBPACK_EXTERNAL_MODULE_5__; - - /***/ - } - /******/]) - ); - }); - ; - - /************************************************************************/ - /******/ - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(4); - module.exports = angular; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - if(typeof axios === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} - module.exports = axios; - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - var require;(function(window,document,undefined){'use strict';function minErr(module,ErrorConstructor){ErrorConstructor = ErrorConstructor || Error;return function(){var code=arguments[0],prefix='[' + (module?module + ':':'') + code + '] ',template=arguments[1],templateArgs=arguments,message,i;message = prefix + template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1),arg;if(index + 2 < templateArgs.length){return toDebugString(templateArgs[index + 2]);}return match;});message = message + '\nhttp://errors.angularjs.org/1.3.15/' + (module?module + '/':'') + code;for(i = 2;i < arguments.length;i++) {message = message + (i == 2?'?':'&') + 'p' + (i - 2) + '=' + encodeURIComponent(toDebugString(arguments[i]));}return new ErrorConstructor(message);};}var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/;var VALIDITY_STATE_PROPERTY='validity';var lowercase=function lowercase(string){return isString(string)?string.toLowerCase():string;};var hasOwnProperty=Object.prototype.hasOwnProperty;var uppercase=function uppercase(string){return isString(string)?string.toUpperCase():string;};var manualLowercase=function manualLowercase(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) | 32);}):s;};var manualUppercase=function manualUppercase(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) & ~32);}):s;};if('i' !== 'I'.toLowerCase()){lowercase = manualLowercase;uppercase = manualUppercase;}var msie,jqLite,jQuery,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,ngMinErr=minErr('ng'),angular=window.angular || (window.angular = {}),angularModule,uid=0;msie = document.documentMode;function isArrayLike(obj){if(obj == null || isWindow(obj)){return false;}var length=obj.length;if(obj.nodeType === NODE_TYPE_ELEMENT && length){return true;}return isString(obj) || isArray(obj) || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;}function forEach(obj,iterator,context){var key,length;if(obj){if(isFunction(obj)){for(key in obj) {if(key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))){iterator.call(context,obj[key],key,obj);}}}else if(isArray(obj) || isArrayLike(obj)){var isPrimitive=typeof obj !== 'object';for(key = 0,length = obj.length;key < length;key++) {if(isPrimitive || key in obj){iterator.call(context,obj[key],key,obj);}}}else if(obj.forEach && obj.forEach !== forEach){obj.forEach(iterator,context,obj);}else {for(key in obj) {if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key,obj);}}}}return obj;}function sortedKeys(obj){return Object.keys(obj).sort();}function forEachSorted(obj,iterator,context){var keys=sortedKeys(obj);for(var i=0;i < keys.length;i++) {iterator.call(context,obj[keys[i]],keys[i]);}return keys;}function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value);};}function nextUid(){return ++uid;}function setHashKey(obj,h){if(h){obj.$$hashKey = h;}else {delete obj.$$hashKey;}}function extend(dst){var h=dst.$$hashKey;for(var i=1,ii=arguments.length;i < ii;i++) {var obj=arguments[i];if(obj){var keys=Object.keys(obj);for(var j=0,jj=keys.length;j < jj;j++) {var key=keys[j];dst[key] = obj[key];}}}setHashKey(dst,h);return dst;}function int(str){return parseInt(str,10);}function inherit(parent,extra){return extend(Object.create(parent),extra);}function noop(){}noop.$inject = [];function identity($){return $;}identity.$inject = [];function valueFn(value){return function(){return value;};}function isUndefined(value){return typeof value === 'undefined';}function isDefined(value){return typeof value !== 'undefined';}function isObject(value){return value !== null && typeof value === 'object';}function isString(value){return typeof value === 'string';}function isNumber(value){return typeof value === 'number';}function isDate(value){return toString.call(value) === '[object Date]';}var isArray=Array.isArray;function isFunction(value){return typeof value === 'function';}function isRegExp(value){return toString.call(value) === '[object RegExp]';}function isWindow(obj){return obj && obj.window === obj;}function isScope(obj){return obj && obj.$evalAsync && obj.$watch;}function isFile(obj){return toString.call(obj) === '[object File]';}function isFormData(obj){return toString.call(obj) === '[object FormData]';}function isBlob(obj){return toString.call(obj) === '[object Blob]';}function isBoolean(value){return typeof value === 'boolean';}function isPromiseLike(obj){return obj && isFunction(obj.then);}var trim=function trim(value){return isString(value)?value.trim():value;};var escapeForRegexp=function escapeForRegexp(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,'\\$1').replace(/\x08/g,'\\x08');};function isElement(node){return !!(node && (node.nodeName || node.prop && node.attr && node.find));}function makeMap(str){var obj={},items=str.split(','),i;for(i = 0;i < items.length;i++) obj[items[i]] = true;return obj;}function nodeName_(element){return lowercase(element.nodeName || element[0] && element[0].nodeName);}function includes(array,obj){return Array.prototype.indexOf.call(array,obj) != -1;}function arrayRemove(array,value){var index=array.indexOf(value);if(index >= 0)array.splice(index,1);return value;}function copy(source,destination,stackSource,stackDest){if(isWindow(source) || isScope(source)){throw ngMinErr('cpws','Can\'t copy! Making copies of Window or Scope instances is not supported.');}if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){var emptyObject=Object.create(Object.getPrototypeOf(source));destination = copy(source,emptyObject,stackSource,stackDest);}}}else {if(source === destination)throw ngMinErr('cpi','Can\'t copy! Source and destination are identical.');stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1)return stackDest[index];stackSource.push(source);stackDest.push(destination);}var result;if(isArray(source)){destination.length = 0;for(var i=0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {var h=destination.$$hashKey;if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){result = copy(source[key],null,stackSource,stackDest);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}setHashKey(destination,h);}}return destination;}function shallowCopy(src,dst){if(isArray(src)){dst = dst || [];for(var i=0,ii=src.length;i < ii;i++) {dst[i] = src[i];}}else if(isObject(src)){dst = dst || {};for(var key in src) {if(!(key.charAt(0) === '$' && key.charAt(1) === '$')){dst[key] = src[key];}}}return dst || src;}function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2)return true;if(o1 === null || o2 === null)return false;if(o1 !== o1 && o2 !== o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2))return false;if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key]))return false;}return true;}}else if(isDate(o1)){if(!isDate(o2))return false;_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1)){return isRegExp(o2)?o1.toString() == o2.toString():false;}else {if(isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || isArray(o2) || isDate(o2) || isRegExp(o2))return false;keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key]))return false;}return true;}}}return false;}}var csp=function csp(){if(isDefined(csp.isActive_))return csp.isActive_;var active=!!(document.querySelector('[ng-csp]') || document.querySelector('[data-ng-csp]'));if(!active){try{new Function('');}catch(e) {active = true;}}return csp.isActive_ = active;};function concat(array1,array2,index){return array1.concat(slice.call(array2,index));}function sliceArgs(args,startIndex){return slice.call(args,startIndex || 0);}function bind(self,fn){var curryArgs=arguments.length > 2?sliceArgs(arguments,2):[];if(isFunction(fn) && !(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs);}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self);};}else {return fn;}}function toJsonReplacer(key,value){var val=value;if(typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$'){val = undefined;}else if(isWindow(value)){val = '$WINDOW';}else if(value && document === value){val = '$DOCUMENT';}else if(isScope(value)){val = '$SCOPE';}return val;}function toJson(obj,pretty){if(typeof obj === 'undefined')return undefined;if(!isNumber(pretty)){pretty = pretty?2:null;}return JSON.stringify(obj,toJsonReplacer,pretty);}function fromJson(json){return isString(json)?JSON.parse(json):json;}function startingTag(element){element = jqLite(element).clone();try{element.empty();}catch(e) {}var elemHtml=jqLite('<div>').append(element).html();try{return element[0].nodeType === NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return '<' + lowercase(nodeName);});}catch(e) {return lowercase(elemHtml);}}function tryDecodeURIComponent(value){try{return decodeURIComponent(value);}catch(e) {}}function parseKeyValue(keyValue){var obj={},key_value,key;forEach((keyValue || '').split('&'),function(keyValue){if(keyValue){key_value = keyValue.replace(/\+/g,'%20').split('=');key = tryDecodeURIComponent(key_value[0]);if(isDefined(key)){var val=isDefined(key_value[1])?tryDecodeURIComponent(key_value[1]):true;if(!hasOwnProperty.call(obj,key)){obj[key] = val;}else if(isArray(obj[key])){obj[key].push(val);}else {obj[key] = [obj[key],val];}}}});return obj;}function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){if(isArray(value)){forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,true) + (arrayValue === true?'':'=' + encodeUriQuery(arrayValue,true)));});}else {parts.push(encodeUriQuery(key,true) + (value === true?'':'=' + encodeUriQuery(value,true)));}});return parts.length?parts.join('&'):'';}function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,'&').replace(/%3D/gi,'=').replace(/%2B/gi,'+');}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,'@').replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%3B/gi,';').replace(/%20/g,pctEncodeSpaces?'%20':'+');}var ngAttrPrefixes=['ng-','data-ng-','ng:','x-ng-'];function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;element = jqLite(element);for(i = 0;i < ii;++i) {attr = ngAttrPrefixes[i] + ngAttr;if(isString(attr = element.attr(attr))){return attr;}}return null;}function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';if(!appElement && element.hasAttribute && element.hasAttribute(name)){appElement = element;module = element.getAttribute(name);}});forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';var candidate;if(!appElement && (candidate = element.querySelector('[' + name.replace(':','\\:') + ']'))){appElement = candidate;module = candidate.getAttribute(name);}});if(appElement){config.strictDi = getNgAttribute(appElement,'strict-di') !== null;bootstrap(appElement,module?[module]:[],config);}}function bootstrap(element,modules,config){if(!isObject(config))config = {};var defaultConfig={strictDi:false};config = extend(defaultConfig,config);var doBootstrap=function doBootstrap(){element = jqLite(element);if(element.injector()){var tag=element[0] === document?'document':startingTag(element);throw ngMinErr('btstrpd','App Already Bootstrapped with this Element \'{0}\'',tag.replace(/</,'<').replace(/>/,'>'));}modules = modules || [];modules.unshift(['$provide',function($provide){$provide.value('$rootElement',element);}]);if(config.debugInfoEnabled){modules.push(['$compileProvider',function($compileProvider){$compileProvider.debugInfoEnabled(true);}]);}modules.unshift('ng');var injector=createInjector(modules,config.strictDi);injector.invoke(['$rootScope','$rootElement','$compile','$injector',function bootstrapApply(scope,element,compile,injector){scope.$apply(function(){element.data('$injector',injector);compile(element)(scope);});}]);return injector;};var NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/;var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window && NG_ENABLE_DEBUG_INFO.test(window.name)){config.debugInfoEnabled = true;window.name = window.name.replace(NG_ENABLE_DEBUG_INFO,'');}if(window && !NG_DEFER_BOOTSTRAP.test(window.name)){return doBootstrap();}window.name = window.name.replace(NG_DEFER_BOOTSTRAP,'');angular.resumeBootstrap = function(extraModules){forEach(extraModules,function(module){modules.push(module);});return doBootstrap();};if(isFunction(angular.resumeDeferredBootstrap)){angular.resumeDeferredBootstrap();}}function reloadWithDebugInfo(){window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;window.location.reload();}function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector){throw ngMinErr('test','no injector found for element argument to getTestability');}return injector.get('$$testability');}var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator = separator || '_';return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return (pos?separator:'') + letter.toLowerCase();});}var bindJQueryFired=false;var skipDestroyOnNextJQueryCleanData;function bindJQuery(){var originalCleanData;if(bindJQueryFired){return;}jQuery = window.jQuery;if(jQuery && jQuery.fn.on){jqLite = jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});originalCleanData = jQuery.cleanData;jQuery.cleanData = function(elems){var events;if(!skipDestroyOnNextJQueryCleanData){for(var i=0,elem;(elem = elems[i]) != null;i++) {events = jQuery._data(elem,'events');if(events && events.$destroy){jQuery(elem).triggerHandler('$destroy');}}}else {skipDestroyOnNextJQueryCleanData = false;}originalCleanData(elems);};}else {jqLite = JQLite;}angular.element = jqLite;bindJQueryFired = true;}function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq','Argument \'{0}\' is {1}',name || '?',reason || 'required');}return arg;}function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation && isArray(arg)){arg = arg[arg.length - 1];}assertArg(isFunction(arg),name,'not a function, got ' + (arg && typeof arg === 'object'?arg.constructor.name || 'Object':typeof arg));return arg;}function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}}function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split('.');var key;var lastInstance=obj;var len=keys.length;for(var i=0;i < len;i++) {key = keys[i];if(obj){obj = (lastInstance = obj)[key];}}if(!bindFnToScope && isFunction(obj)){return bind(lastInstance,obj);}return obj;}function getBlockNodes(nodes){var node=nodes[0];var endNode=nodes[nodes.length - 1];var blockNodes=[node];do {node = node.nextSibling;if(!node)break;blockNodes.push(node);}while(node !== endNode);return jqLite(blockNodes);}function createMap(){return Object.create(null);}var NODE_TYPE_ELEMENT=1;var NODE_TYPE_TEXT=3;var NODE_TYPE_COMMENT=8;var NODE_TYPE_DOCUMENT=9;var NODE_TYPE_DOCUMENT_FRAGMENT=11;function setupModuleLoader(window){var $injectorMinErr=minErr('$injector');var ngMinErr=minErr('ng');function ensure(obj,name,factory){return obj[name] || (obj[name] = factory());}var angular=ensure(window,'angular',Object);angular.$$minErr = angular.$$minErr || minErr;return ensure(angular,'module',function(){var modules={};return function module(name,requires,configFn){var assertNotHasOwnProperty=function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}};assertNotHasOwnProperty(name,'module');if(requires && modules.hasOwnProperty(name)){modules[name] = null;}return ensure(modules,name,function(){if(!requires){throw $injectorMinErr('nomod','Module \'{0}\' is not available! You either misspelled ' + 'the module name or forgot to load it. If registering a module ensure that you ' + 'specify the dependencies as the second argument.',name);}var invokeQueue=[];var configBlocks=[];var runBlocks=[];var config=invokeLater('$injector','invoke','push',configBlocks);var moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater('$provide','provider'),factory:invokeLater('$provide','factory'),service:invokeLater('$provide','service'),value:invokeLater('$provide','value'),constant:invokeLater('$provide','constant','unshift'),animation:invokeLater('$animateProvider','register'),filter:invokeLater('$filterProvider','register'),controller:invokeLater('$controllerProvider','register'),directive:invokeLater('$compileProvider','directive'),config:config,run:function run(block){runBlocks.push(block);return this;}};if(configFn){config(configFn);}return moduleInstance;function invokeLater(provider,method,insertMethod,queue){if(!queue)queue = invokeQueue;return function(){queue[insertMethod || 'push']([provider,method,arguments]);return moduleInstance;};}});};});}function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){val = toJsonReplacer(key,val);if(isObject(val)){if(seen.indexOf(val) >= 0)return '<<already seen>>';seen.push(val);}return val;});}function toDebugString(obj){if(typeof obj === 'function'){return obj.toString().replace(/ \{[\s\S]*$/,'');}else if(typeof obj === 'undefined'){return 'undefined';}else if(typeof obj !== 'string'){return serializeObject(obj);}return obj;}var version={full:'1.3.15',major:1,minor:3,dot:15,codeName:'locality-filtration'};function publishExternalAPI(angular){extend(angular,{'bootstrap':bootstrap,'copy':copy,'extend':extend,'equals':equals,'element':jqLite,'forEach':forEach,'injector':createInjector,'noop':noop,'bind':bind,'toJson':toJson,'fromJson':fromJson,'identity':identity,'isUndefined':isUndefined,'isDefined':isDefined,'isString':isString,'isFunction':isFunction,'isObject':isObject,'isNumber':isNumber,'isElement':isElement,'isArray':isArray,'version':version,'isDate':isDate,'lowercase':lowercase,'uppercase':uppercase,'callbacks':{counter:0},'getTestability':getTestability,'$$minErr':minErr,'$$csp':csp,'reloadWithDebugInfo':reloadWithDebugInfo});angularModule = setupModuleLoader(window);try{angularModule('ngLocale');}catch(e) {angularModule('ngLocale',[]).provider('$locale',$LocaleProvider);}angularModule('ng',['ngLocale'],['$provide',function ngModule($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider});$provide.provider('$compile',$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$asyncCallback:$$AsyncCallbackProvider,$$jqLite:$$jqLiteProvider});}]);}JQLite.expando = 'ng339';var jqCache=JQLite.cache = {},jqId=1,addEventListenerFn=function addEventListenerFn(element,type,fn){element.addEventListener(type,fn,false);},removeEventListenerFn=function removeEventListenerFn(element,type,fn){element.removeEventListener(type,fn,false);};JQLite._data = function(node){return this.cache[node[this.expando]] || {};};function jqNextId(){return ++jqId;}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;var MOUSE_EVENT_MAP={mouseleave:'mouseout',mouseenter:'mouseover'};var jqLiteMinErr=minErr('jqLite');function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter;}).replace(MOZ_HACK_REGEXP,'Moz$1');}var SINGLE_TAG_REGEXP=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var HTML_REGEXP=/<|&#?\w+;/;var TAG_NAME_REGEXP=/<([\w:]+)/;var XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;var wrapMap={'option':[1,'<select multiple="multiple">','</select>'],'thead':[1,'<table>','</table>'],'col':[2,'<table><colgroup>','</colgroup></table>'],'tr':[2,'<table><tbody>','</tbody></table>'],'td':[3,'<table><tbody><tr>','</tr></tbody></table>'],'_default':[0,'','']};wrapMap.optgroup = wrapMap.option;wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;wrapMap.th = wrapMap.td;function jqLiteIsTextNode(html){return !HTML_REGEXP.test(html);}function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;}function jqLiteBuildFragment(html,context){var tmp,tag,wrap,fragment=context.createDocumentFragment(),nodes=[],i;if(jqLiteIsTextNode(html)){nodes.push(context.createTextNode(html));}else {tmp = tmp || fragment.appendChild(context.createElement('div'));tag = (TAG_NAME_REGEXP.exec(html) || ['',''])[1].toLowerCase();wrap = wrapMap[tag] || wrapMap._default;tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP,'<$1></$2>') + wrap[2];i = wrap[0];while(i--) {tmp = tmp.lastChild;}nodes = concat(nodes,tmp.childNodes);tmp = fragment.firstChild;tmp.textContent = '';}fragment.textContent = '';fragment.innerHTML = '';forEach(nodes,function(node){fragment.appendChild(node);});return fragment;}function jqLiteParseHTML(html,context){context = context || document;var parsed;if(parsed = SINGLE_TAG_REGEXP.exec(html)){return [context.createElement(parsed[1])];}if(parsed = jqLiteBuildFragment(html,context)){return parsed.childNodes;}return [];}function JQLite(element){if(element instanceof JQLite){return element;}var argIsString;if(isString(element)){element = trim(element);argIsString = true;}if(!(this instanceof JQLite)){if(argIsString && element.charAt(0) != '<'){throw jqLiteMinErr('nosel','Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');}return new JQLite(element);}if(argIsString){jqLiteAddNodes(this,jqLiteParseHTML(element));}else {jqLiteAddNodes(this,element);}}function jqLiteClone(element){return element.cloneNode(true);}function jqLiteDealoc(element,onlyDescendants){if(!onlyDescendants)jqLiteRemoveData(element);if(element.querySelectorAll){var descendants=element.querySelectorAll('*');for(var i=0,l=descendants.length;i < l;i++) {jqLiteRemoveData(descendants[i]);}}}function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('offargs','jqLite#off() does not support the `selector` argument');var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var handle=expandoStore && expandoStore.handle;if(!handle)return;if(!type){for(type in events) {if(type !== '$destroy'){removeEventListenerFn(element,type,handle);}delete events[type];}}else {forEach(type.split(' '),function(type){if(isDefined(fn)){var listenerFns=events[type];arrayRemove(listenerFns || [],fn);if(listenerFns && listenerFns.length > 0){return;}}removeEventListenerFn(element,type,handle);delete events[type];});}}function jqLiteRemoveData(element,name){var expandoId=element.ng339;var expandoStore=expandoId && jqCache[expandoId];if(expandoStore){if(name){delete expandoStore.data[name];return;}if(expandoStore.handle){if(expandoStore.events.$destroy){expandoStore.handle({},'$destroy');}jqLiteOff(element);}delete jqCache[expandoId];element.ng339 = undefined;}}function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId && jqCache[expandoId];if(createIfNecessary && !expandoStore){element.ng339 = expandoId = jqNextId();expandoStore = jqCache[expandoId] = {events:{},data:{},handle:undefined};}return expandoStore;}function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value);var isSimpleGetter=!isSimpleSetter && key && !isObject(key);var massGetter=!key;var expandoStore=jqLiteExpandoStore(element,!isSimpleGetter);var data=expandoStore && expandoStore.data;if(isSimpleSetter){data[key] = value;}else {if(massGetter){return data;}else {if(isSimpleGetter){return data && data[key];}else {extend(data,key);}}}}}function jqLiteHasClass(element,selector){if(!element.getAttribute)return false;return (' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').indexOf(' ' + selector + ' ') > -1;}function jqLiteRemoveClass(element,cssClasses){if(cssClasses && element.setAttribute){forEach(cssClasses.split(' '),function(cssClass){element.setAttribute('class',trim((' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').replace(' ' + trim(cssClass) + ' ',' ')));});}}function jqLiteAddClass(element,cssClasses){if(cssClasses && element.setAttribute){var existingClasses=(' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ');forEach(cssClasses.split(' '),function(cssClass){cssClass = trim(cssClass);if(existingClasses.indexOf(' ' + cssClass + ' ') === -1){existingClasses += cssClass + ' ';}});element.setAttribute('class',trim(existingClasses));}}function jqLiteAddNodes(root,elements){if(elements){if(elements.nodeType){root[root.length++] = elements;}else {var length=elements.length;if(typeof length === 'number' && elements.window !== elements){if(length){for(var i=0;i < length;i++) {root[root.length++] = elements[i];}}}else {root[root.length++] = elements;}}}}function jqLiteController(element,name){return jqLiteInheritedData(element,'$' + (name || 'ngController') + 'Controller');}function jqLiteInheritedData(element,name,value){if(element.nodeType == NODE_TYPE_DOCUMENT){element = element.documentElement;}var names=isArray(name)?name:[name];while(element) {for(var i=0,ii=names.length;i < ii;i++) {if((value = jqLite.data(element,names[i])) !== undefined)return value;}element = element.parentNode || element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host;}}function jqLiteEmpty(element){jqLiteDealoc(element,true);while(element.firstChild) {element.removeChild(element.firstChild);}}function jqLiteRemove(element,keepData){if(!keepData)jqLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element);}function jqLiteDocumentLoaded(action,win){win = win || window;if(win.document.readyState === 'complete'){win.setTimeout(action);}else {jqLite(win).on('load',action);}}var JQLitePrototype=JQLite.prototype = {ready:function ready(fn){var fired=false;function trigger(){if(fired)return;fired = true;fn();}if(document.readyState === 'complete'){setTimeout(trigger);}else {this.on('DOMContentLoaded',trigger);JQLite(window).on('load',trigger);}},toString:function toString(){var value=[];forEach(this,function(e){value.push('' + e);});return '[' + value.join(', ') + ']';},eq:function eq(index){return index >= 0?jqLite(this[index]):jqLite(this[this.length + index]);},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','),function(value){BOOLEAN_ATTR[lowercase(value)] = value;});var BOOLEAN_ELEMENTS={};forEach('input,select,option,textarea,button,form,details'.split(','),function(value){BOOLEAN_ELEMENTS[value] = true;});var ALIASED_ATTR={'ngMinlength':'minlength','ngMaxlength':'maxlength','ngMin':'min','ngMax':'max','ngPattern':'pattern'};function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;}function getAliasedAttrName(element,name){var nodeName=element.nodeName;return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name];}forEach({data:jqLiteData,removeData:jqLiteRemoveData},function(fn,name){JQLite[name] = fn;});forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function scope(element){return jqLite.data(element,'$scope') || jqLiteInheritedData(element.parentNode || element,['$isolateScope','$scope']);},isolateScope:function isolateScope(element){return jqLite.data(element,'$isolateScope') || jqLite.data(element,'$isolateScopeNoTemplate');},controller:jqLiteController,injector:function injector(element){return jqLiteInheritedData(element,'$injector');},removeAttr:function removeAttr(element,name){element.removeAttribute(name);},hasClass:jqLiteHasClass,css:function css(element,name,value){name = camelCase(name);if(isDefined(value)){element.style[name] = value;}else {return element.style[name];}},attr:function attr(element,name,value){var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name] = true;element.setAttribute(name,lowercasedName);}else {element[name] = false;element.removeAttribute(lowercasedName);}}else {return element[name] || (element.attributes.getNamedItem(name) || noop).specified?lowercasedName:undefined;}}else if(isDefined(value)){element.setAttribute(name,value);}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret === null?undefined:ret;}},prop:function prop(element,name,value){if(isDefined(value)){element[name] = value;}else {return element[name];}},text:(function(){getText.$dv = '';return getText;function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT?element.textContent:'';}element.textContent = value;}})(),val:function val(element,value){if(isUndefined(value)){if(element.multiple && nodeName_(element) === 'select'){var result=[];forEach(element.options,function(option){if(option.selected){result.push(option.value || option.text);}});return result.length === 0?null:result;}return element.value;}element.value = value;},html:function html(element,value){if(isUndefined(value)){return element.innerHTML;}jqLiteDealoc(element,true);element.innerHTML = value;},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name] = function(arg1,arg2){var i,key;var nodeCount=this.length;if(fn !== jqLiteEmpty && (fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)?arg1:arg2) === undefined){if(isObject(arg1)){for(i = 0;i < nodeCount;i++) {if(fn === jqLiteData){fn(this[i],arg1);}else {for(key in arg1) {fn(this[i],key,arg1[key]);}}}return this;}else {var value=fn.$dv;var jj=value === undefined?Math.min(nodeCount,1):nodeCount;for(var j=0;j < jj;j++) {var nodeValue=fn(this[j],arg1,arg2);value = value?value + nodeValue:nodeValue;}return value;}}else {for(i = 0;i < nodeCount;i++) {fn(this[i],arg1,arg2);}return this;}};});function createEventHandler(element,events){var eventHandler=function eventHandler(event,type){event.isDefaultPrevented = function(){return event.defaultPrevented;};var eventFns=events[type || event.type];var eventFnsLength=eventFns?eventFns.length:0;if(!eventFnsLength)return;if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation = function(){event.immediatePropagationStopped = true;if(event.stopPropagation){event.stopPropagation();}if(originalStopImmediatePropagation){originalStopImmediatePropagation.call(event);}};}event.isImmediatePropagationStopped = function(){return event.immediatePropagationStopped === true;};if(eventFnsLength > 1){eventFns = shallowCopy(eventFns);}for(var i=0;i < eventFnsLength;i++) {if(!event.isImmediatePropagationStopped()){eventFns[i].call(element,event);}}};eventHandler.elem = element;return eventHandler;}forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('onargs','jqLite#on() does not support the `selector` or `eventData` parameters');if(!jqLiteAcceptsData(element)){return;}var expandoStore=jqLiteExpandoStore(element,true);var events=expandoStore.events;var handle=expandoStore.handle;if(!handle){handle = expandoStore.handle = createEventHandler(element,events);}var types=type.indexOf(' ') >= 0?type.split(' '):[type];var i=types.length;while(i--) {type = types[i];var eventFns=events[type];if(!eventFns){events[type] = [];if(type === 'mouseenter' || type === 'mouseleave'){jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;if(!related || related !== target && !target.contains(related)){handle(event,type);}});}else {if(type !== '$destroy'){addEventListenerFn(element,type,handle);}}eventFns = events[type];}eventFns.push(fn);}},off:jqLiteOff,one:function one(element,type,fn){element = jqLite(element);element.on(type,function onFn(){element.off(type,fn);element.off(type,onFn);});element.on(type,fn);},replaceWith:function replaceWith(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling);}else {parent.replaceChild(node,element);}index = node;});},children:function children(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType === NODE_TYPE_ELEMENT)children.push(element);});return children;},contents:function contents(element){return element.contentDocument || element.childNodes || [];},append:function append(element,node){var nodeType=element.nodeType;if(nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT)return;node = new JQLite(node);for(var i=0,ii=node.length;i < ii;i++) {var child=node[i];element.appendChild(child);}},prepend:function prepend(element,node){if(element.nodeType === NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index);});}},wrap:function wrap(element,wrapNode){wrapNode = jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element);}wrapNode.appendChild(element);},remove:jqLiteRemove,detach:function detach(element){jqLiteRemove(element,true);},after:function after(element,newElement){var index=element,parent=element.parentNode;newElement = new JQLite(newElement);for(var i=0,ii=newElement.length;i < ii;i++) {var node=newElement[i];parent.insertBefore(node,index.nextSibling);index = node;}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function toggleClass(element,selector,condition){if(selector){forEach(selector.split(' '),function(className){var classCondition=condition;if(isUndefined(classCondition)){classCondition = !jqLiteHasClass(element,className);}(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className);});}},parent:function parent(element){var parent=element.parentNode;return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT?parent:null;},next:function next(element){return element.nextElementSibling;},find:function find(element,selector){if(element.getElementsByTagName){return element.getElementsByTagName(selector);}else {return [];}},clone:jqLiteClone,triggerHandler:function triggerHandler(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs;var eventName=event.type || event;var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var eventFns=events && events[eventName];if(eventFns){dummyEvent = {preventDefault:function preventDefault(){this.defaultPrevented = true;},isDefaultPrevented:function isDefaultPrevented(){return this.defaultPrevented === true;},stopImmediatePropagation:function stopImmediatePropagation(){this.immediatePropagationStopped = true;},isImmediatePropagationStopped:function isImmediatePropagationStopped(){return this.immediatePropagationStopped === true;},stopPropagation:noop,type:eventName,target:element};if(event.type){dummyEvent = extend(dummyEvent,event);}eventFnsCopy = shallowCopy(eventFns);handlerArgs = extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent];forEach(eventFnsCopy,function(fn){if(!dummyEvent.isImmediatePropagationStopped()){fn.apply(element,handlerArgs);}});}}},function(fn,name){JQLite.prototype[name] = function(arg1,arg2,arg3){var value;for(var i=0,ii=this.length;i < ii;i++) {if(isUndefined(value)){value = fn(this[i],arg1,arg2,arg3);if(isDefined(value)){value = jqLite(value);}}else {jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));}}return isDefined(value)?value:this;};JQLite.prototype.bind = JQLite.prototype.on;JQLite.prototype.unbind = JQLite.prototype.off;});function $$jqLiteProvider(){this.$get = function $$jqLite(){return extend(JQLite,{hasClass:function hasClass(node,classes){if(node.attr)node = node[0];return jqLiteHasClass(node,classes);},addClass:function addClass(node,classes){if(node.attr)node = node[0];return jqLiteAddClass(node,classes);},removeClass:function removeClass(node,classes){if(node.attr)node = node[0];return jqLiteRemoveClass(node,classes);}});};}function hashKey(obj,nextUidFn){var key=obj && obj.$$hashKey;if(key){if(typeof key === 'function'){key = obj.$$hashKey();}return key;}var objType=typeof obj;if(objType == 'function' || objType == 'object' && obj !== null){key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();}else {key = objType + ':' + obj;}return key;}function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid = function(){return ++uid;};}forEach(array,this.put,this);}HashMap.prototype = {put:function put(key,value){this[hashKey(key,this.nextUid)] = value;},get:function get(key){return this[hashKey(key,this.nextUid)];},remove:function remove(key){var value=this[key = hashKey(key,this.nextUid)];delete this[key];return value;}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;var $injectorMinErr=minErr('$injector');function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,''),args=fnText.match(FN_ARGS);if(args){return 'function(' + (args[1] || '').replace(/[\s\r\n]+/,' ') + ')';}return 'fn';}function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if(typeof fn === 'function'){if(!($inject = fn.$inject)){$inject = [];if(fn.length){if(strictDi){if(!isString(name) || !name){name = fn.name || anonFn(fn);}throw $injectorMinErr('strictdi','{0} is not using explicit annotation and cannot be invoked in strict mode',name);}fnText = fn.toString().replace(STRIP_COMMENTS,'');argDecl = fnText.match(FN_ARGS);forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name);});});}fn.$inject = $inject;}}else if(isArray(fn)){last = fn.length - 1;assertArgFn(fn[last],'fn');$inject = fn.slice(0,last);}else {assertArgFn(fn,'fn',true);}return $inject;}function createInjector(modulesToLoad,strictDi){strictDi = strictDi === true;var INSTANTIATING={},providerSuffix='Provider',path=[],loadedModules=new HashMap([],true),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector = createInternalInjector(providerCache,function(serviceName,caller){if(angular.isString(caller)){path.push(caller);}throw $injectorMinErr('unpr','Unknown provider: {0}',path.join(' <- '));}),instanceCache={},instanceInjector=instanceCache.$injector = createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName + providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName);});forEach(loadModules(modulesToLoad),function(fn){instanceInjector.invoke(fn || noop);});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate));}else {return delegate(key,value);}};}function provider(name,provider_){assertNotHasOwnProperty(name,'service');if(isFunction(provider_) || isArray(provider_)){provider_ = providerInjector.instantiate(provider_);}if(!provider_.$get){throw $injectorMinErr('pget','Provider \'{0}\' must define $get factory method.',name);}return providerCache[name + providerSuffix] = provider_;}function enforceReturnValue(name,factory){return function enforcedReturnValue(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result)){throw $injectorMinErr('undef','Provider \'{0}\' must return a value from $get factory method.',name);}return result;};}function factory(name,factoryFn,enforce){return provider(name,{$get:enforce !== false?enforceReturnValue(name,factoryFn):factoryFn});}function service(name,constructor){return factory(name,['$injector',function($injector){return $injector.instantiate(constructor);}]);}function value(name,val){return factory(name,valueFn(val),false);}function constant(name,value){assertNotHasOwnProperty(name,'constant');providerCache[name] = value;instanceCache[name] = value;}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName + providerSuffix),orig$get=origProvider.$get;origProvider.$get = function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance});};}function loadModules(modulesToLoad){var runBlocks=[],moduleFn;forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);function runInvokeQueue(queue){var i,ii;for(i = 0,ii = queue.length;i < ii;i++) {var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2]);}}try{if(isString(module)){moduleFn = angularModule(module);runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);runInvokeQueue(moduleFn._invokeQueue);runInvokeQueue(moduleFn._configBlocks);}else if(isFunction(module)){runBlocks.push(providerInjector.invoke(module));}else if(isArray(module)){runBlocks.push(providerInjector.invoke(module));}else {assertArgFn(module,'module');}}catch(e) {if(isArray(module)){module = module[module.length - 1];}if(e.message && e.stack && e.stack.indexOf(e.message) == -1){e = e.message + '\n' + e.stack;}throw $injectorMinErr('modulerr','Failed to instantiate module {0} due to:\n{1}',module,e.stack || e.message || e);}});return runBlocks;}function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName] === INSTANTIATING){throw $injectorMinErr('cdep','Circular dependency found: {0}',serviceName + ' <- ' + path.join(' <- '));}return cache[serviceName];}else {try{path.unshift(serviceName);cache[serviceName] = INSTANTIATING;return cache[serviceName] = factory(serviceName,caller);}catch(err) {if(cache[serviceName] === INSTANTIATING){delete cache[serviceName];}throw err;}finally {path.shift();}}}function invoke(fn,self,locals,serviceName){if(typeof locals === 'string'){serviceName = locals;locals = null;}var args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName),length,i,key;for(i = 0,length = $inject.length;i < length;i++) {key = $inject[i];if(typeof key !== 'string'){throw $injectorMinErr('itkn','Incorrect injection token! Expected service name as string, got {0}',key);}args.push(locals && locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName));}if(isArray(fn)){fn = fn[length];}return fn.apply(self,args);}function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length - 1]:Type).prototype || null);var returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue) || isFunction(returnedValue)?returnedValue:instance;}return {invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function has(name){return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);}};}}createInjector.$$annotate = annotate;function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling = function(){autoScrollingEnabled = false;};this.$get = ['$window','$location','$rootScope',function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=null;Array.prototype.some.call(list,function(element){if(nodeName_(element) === 'a'){result = element;return true;}});return result;}function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset)){offset = offset();}else if(isElement(offset)){var elem=offset[0];var style=$window.getComputedStyle(elem);if(style.position !== 'fixed'){offset = 0;}else {offset = elem.getBoundingClientRect().bottom;}}else if(!isNumber(offset)){offset = 0;}return offset;}function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop - offset);}}else {$window.scrollTo(0,0);}}function scroll(){var hash=$location.hash(),elm;if(!hash)scrollTo(null);else if(elm = document.getElementById(hash))scrollTo(elm);else if(elm = getFirstAnchor(document.getElementsByName(hash)))scrollTo(elm);else if(hash === 'top')scrollTo(null);}if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash();},function autoScrollWatchAction(newVal,oldVal){if(newVal === oldVal && newVal === '')return;jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll);});});}return scroll;}];}var $animateMinErr=minErr('$animate');var $AnimateProvider=['$provide',function($provide){this.$$selectors = {};this.register = function(name,factory){var key=name + '-animation';if(name && name.charAt(0) != '.')throw $animateMinErr('notcsel','Expecting class selector starting with \'.\' got \'{0}\'.',name);this.$$selectors[name.substr(1)] = key;$provide.factory(key,factory);};this.classNameFilter = function(expression){if(arguments.length === 1){this.$$classNameFilter = expression instanceof RegExp?expression:null;}return this.$$classNameFilter;};this.$get = ['$$q','$$asyncCallback','$rootScope',function($$q,$$asyncCallback,$rootScope){var currentDefer;function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();defer.promise.$$cancelFn = function ngAnimateMaybeCancel(){cancelFn && cancelFn();};$rootScope.$$postDigest(function ngAnimatePostDigest(){cancelFn = fn(function ngAnimateNotifyComplete(){defer.resolve();});});return defer.promise;}function resolveElementClasses(element,classes){var toAdd=[],toRemove=[];var hasClasses=createMap();forEach((element.attr('class') || '').split(/\s+/),function(className){hasClasses[className] = true;});forEach(classes,function(status,className){var hasClass=hasClasses[className];if(status === false && hasClass){toRemove.push(className);}else if(status === true && !hasClass){toAdd.push(className);}});return toAdd.length + toRemove.length > 0 && [toAdd.length?toAdd:null,toRemove.length?toRemove:null];}function cachedClassManipulation(cache,classes,op){for(var i=0,ii=classes.length;i < ii;++i) {var className=classes[i];cache[className] = op;}}function asyncPromise(){if(!currentDefer){currentDefer = $$q.defer();$$asyncCallback(function(){currentDefer.resolve();currentDefer = null;});}return currentDefer.promise;}function applyStyles(element,options){if(angular.isObject(options)){var styles=extend(options.from || {},options.to || {});element.css(styles);}}return {animate:function animate(element,from,to){applyStyles(element,{from:from,to:to});return asyncPromise();},enter:function enter(element,parent,after,options){applyStyles(element,options);after?after.after(element):parent.prepend(element);return asyncPromise();},leave:function leave(element,options){applyStyles(element,options);element.remove();return asyncPromise();},move:function move(element,parent,after,options){return this.enter(element,parent,after,options);},addClass:function addClass(element,className,options){return this.setClass(element,className,[],options);},$$addClassImmediately:function $$addClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteAddClass(element,className);});applyStyles(element,options);return asyncPromise();},removeClass:function removeClass(element,className,options){return this.setClass(element,[],className,options);},$$removeClassImmediately:function $$removeClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteRemoveClass(element,className);});applyStyles(element,options);return asyncPromise();},setClass:function setClass(element,add,remove,options){var self=this;var STORAGE_KEY='$$animateClasses';var createdCache=false;element = jqLite(element);var cache=element.data(STORAGE_KEY);if(!cache){cache = {classes:{},options:options};createdCache = true;}else if(options && cache.options){cache.options = angular.extend(cache.options || {},options);}var classes=cache.classes;add = isArray(add)?add:add.split(' ');remove = isArray(remove)?remove:remove.split(' ');cachedClassManipulation(classes,add,true);cachedClassManipulation(classes,remove,false);if(createdCache){cache.promise = runAnimationPostDigest(function(done){var cache=element.data(STORAGE_KEY);element.removeData(STORAGE_KEY);if(cache){var classes=resolveElementClasses(element,cache.classes);if(classes){self.$$setClassImmediately(element,classes[0],classes[1],cache.options);}}done();});element.data(STORAGE_KEY,cache);}return cache.promise;},$$setClassImmediately:function $$setClassImmediately(element,add,remove,options){add && this.$$addClassImmediately(element,add);remove && this.$$removeClassImmediately(element,remove);applyStyles(element,options);return asyncPromise();},enabled:noop,cancel:noop};}];}];function $$AsyncCallbackProvider(){this.$get = ['$$rAF','$timeout',function($$rAF,$timeout){return $$rAF.supported?function(fn){return $$rAF(fn);}:function(fn){return $timeout(fn,0,false);};}];}function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock = false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest = completeOutstandingRequest;self.$$incOutstandingRequestCount = function(){outstandingRequestCount++;};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1));}finally {outstandingRequestCount--;if(outstandingRequestCount === 0){while(outstandingRequestCallbacks.length) {try{outstandingRequestCallbacks.pop()();}catch(e) {$log.error(e);}}}}}function getHash(url){var index=url.indexOf('#');return index === -1?'':url.substr(index + 1);}self.notifyWhenNoOutstandingRequests = function(callback){forEach(pollFns,function(pollFn){pollFn();});if(outstandingRequestCount === 0){callback();}else {outstandingRequestCallbacks.push(callback);}};var pollFns=[],pollTimeout;self.addPollFn = function(fn){if(isUndefined(pollTimeout))startPoller(100,setTimeout);pollFns.push(fn);return fn;};function startPoller(interval,setTimeout){(function check(){forEach(pollFns,function(pollFn){pollFn();});pollTimeout = setTimeout(check,interval);})();}var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find('base'),reloadLocation=null;cacheState();lastHistoryState = cachedState;self.url = function(url,replace,state){if(isUndefined(state)){state = null;}if(location !== window.location)location = window.location;if(history !== window.history)history = window.history;if(url){var sameState=lastHistoryState === state;if(lastBrowserUrl === url && (!$sniffer.history || sameState)){return self;}var sameBase=lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);lastBrowserUrl = url;lastHistoryState = state;if($sniffer.history && (!sameBase || !sameState)){history[replace?'replaceState':'pushState'](state,'',url);cacheState();lastHistoryState = cachedState;}else {if(!sameBase){reloadLocation = url;}if(replace){location.replace(url);}else if(!sameBase){location.href = url;}else {location.hash = getHash(url);}}return self;}else {return reloadLocation || location.href.replace(/%27/g,'\'');}};self.state = function(){return cachedState;};var urlChangeListeners=[],urlChangeInit=false;function cacheStateAndFireUrlChange(){cacheState();fireUrlChange();}function getCurrentState(){try{return history.state;}catch(e) {}}var lastCachedState=null;function cacheState(){cachedState = getCurrentState();cachedState = isUndefined(cachedState)?null:cachedState;if(equals(cachedState,lastCachedState)){cachedState = lastCachedState;}lastCachedState = cachedState;}function fireUrlChange(){if(lastBrowserUrl === self.url() && lastHistoryState === cachedState){return;}lastBrowserUrl = self.url();lastHistoryState = cachedState;forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState);});}self.onUrlChange = function(callback){if(!urlChangeInit){if($sniffer.history)jqLite(window).on('popstate',cacheStateAndFireUrlChange);jqLite(window).on('hashchange',cacheStateAndFireUrlChange);urlChangeInit = true;}urlChangeListeners.push(callback);return callback;};self.$$checkUrlChange = fireUrlChange;self.baseHref = function(){var href=baseElement.attr('href');return href?href.replace(/^(https?\:)?\/\/[^\/]*/,''):'';};var lastCookies={};var lastCookieString='';var cookiePath=self.baseHref();function safeDecodeURIComponent(str){try{return decodeURIComponent(str);}catch(e) {return str;}}self.cookies = function(name,value){var cookieLength,cookieArray,cookie,i,index;if(name){if(value === undefined){rawDocument.cookie = encodeURIComponent(name) + '=;path=' + cookiePath + ';expires=Thu, 01 Jan 1970 00:00:00 GMT';}else {if(isString(value)){cookieLength = (rawDocument.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=' + cookiePath).length + 1;if(cookieLength > 4096){$log.warn('Cookie \'' + name + '\' possibly not set or overflowed because it was too large (' + cookieLength + ' > 4096 bytes)!');}}}}else {if(rawDocument.cookie !== lastCookieString){lastCookieString = rawDocument.cookie;cookieArray = lastCookieString.split('; ');lastCookies = {};for(i = 0;i < cookieArray.length;i++) {cookie = cookieArray[i];index = cookie.indexOf('=');if(index > 0){name = safeDecodeURIComponent(cookie.substring(0,index));if(lastCookies[name] === undefined){lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));}}}}return lastCookies;}};self.defer = function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId = setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn);},delay || 0);pendingDeferIds[timeoutId] = true;return timeoutId;};self.defer.cancel = function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true;}return false;};}function $BrowserProvider(){this.$get = ['$window','$log','$sniffer','$document',function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer);}];}function $CacheFactoryProvider(){this.$get = function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw minErr('$cacheFactory')('iid','CacheId \'{0}\' is already taken!',cacheId);}var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options && options.capacity || Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId] = {put:function put(key,value){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key] || (lruHash[key] = {key:key});refresh(lruEntry);}if(isUndefined(value))return;if(!(key in data))size++;data[key] = value;if(size > capacity){this.remove(staleEnd.key);}return value;},get:function get(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);}return data[key];},remove:function remove(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry == freshEnd)freshEnd = lruEntry.p;if(lruEntry == staleEnd)staleEnd = lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];}delete data[key];size--;},removeAll:function removeAll(){data = {};size = 0;lruHash = {};freshEnd = staleEnd = null;},destroy:function destroy(){data = null;stats = null;lruHash = null;delete caches[cacheId];},info:function info(){return extend({},stats,{size:size});}};function refresh(entry){if(entry != freshEnd){if(!staleEnd){staleEnd = entry;}else if(staleEnd == entry){staleEnd = entry.n;}link(entry.n,entry.p);link(entry,freshEnd);freshEnd = entry;freshEnd.n = null;}}function link(nextEntry,prevEntry){if(nextEntry != prevEntry){if(nextEntry)nextEntry.p = prevEntry;if(prevEntry)prevEntry.n = nextEntry;}}}cacheFactory.info = function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId] = cache.info();});return info;};cacheFactory.get = function(cacheId){return caches[cacheId];};return cacheFactory;};}function $TemplateCacheProvider(){this.$get = ['$cacheFactory',function($cacheFactory){return $cacheFactory('templates');}];}var $compileMinErr=minErr('$compile');$CompileProvider.$inject = ['$provide','$$sanitizeUriProvider'];function $CompileProvider($provide,$$sanitizeUriProvider){var hasDirectives={},Suffix='Directive',COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap('ngSrc,ngSrcset,src,srcset'),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/;var EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;function parseIsolateBindings(scope,directiveName){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;var bindings={};forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match){throw $compileMinErr('iscp','Invalid isolate scope definition for directive \'{0}\'.' + ' Definition: {... {1}: \'{2}\' ...}',directiveName,scopeName,definition);}bindings[scopeName] = {mode:match[1][0],collection:match[2] === '*',optional:match[3] === '?',attrName:match[4] || scopeName};});return bindings;}this.directive = function registerDirective(name,directiveFactory){assertNotHasOwnProperty(name,'directive');if(isString(name)){assertArg(directiveFactory,'directiveFactory');if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name] = [];$provide.factory(name + Suffix,['$injector','$exceptionHandler',function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive = {compile:valueFn(directive)};}else if(!directive.compile && directive.link){directive.compile = valueFn(directive.link);}directive.priority = directive.priority || 0;directive.index = index;directive.name = directive.name || name;directive.require = directive.require || directive.controller && directive.name;directive.restrict = directive.restrict || 'EA';if(isObject(directive.scope)){directive.$$isolateBindings = parseIsolateBindings(directive.scope,directive.name);}directives.push(directive);}catch(e) {$exceptionHandler(e);}});return directives;}]);}hasDirectives[name].push(directiveFactory);}else {forEach(name,reverseParams(registerDirective));}return this;};this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.aHrefSanitizationWhitelist();}};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();}};var debugInfoEnabled=true;this.debugInfoEnabled = function(enabled){if(isDefined(enabled)){debugInfoEnabled = enabled;return this;}return debugInfoEnabled;};this.$get = ['$injector','$interpolate','$exceptionHandler','$templateRequest','$parse','$controller','$rootScope','$document','$sce','$animate','$$sanitizeUri',function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){var Attributes=function Attributes(element,attributesToCopy){if(attributesToCopy){var keys=Object.keys(attributesToCopy);var i,l,key;for(i = 0,l = keys.length;i < l;i++) {key = keys[i];this[key] = attributesToCopy[key];}}else {this.$attr = {};}this.$$element = element;};Attributes.prototype = {$normalize:directiveNormalize,$addClass:function $addClass(classVal){if(classVal && classVal.length > 0){$animate.addClass(this.$$element,classVal);}},$removeClass:function $removeClass(classVal){if(classVal && classVal.length > 0){$animate.removeClass(this.$$element,classVal);}},$updateClass:function $updateClass(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);if(toAdd && toAdd.length){$animate.addClass(this.$$element,toAdd);}var toRemove=tokenDifference(oldClasses,newClasses);if(toRemove && toRemove.length){$animate.removeClass(this.$$element,toRemove);}},$set:function $set(key,value,writeAttr,attrName){var node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(node,key),observer=key,nodeName;if(booleanKey){this.$$element.prop(key,value);attrName = booleanKey;}else if(aliasedKey){this[aliasedKey] = value;observer = aliasedKey;}this[key] = value;if(attrName){this.$attr[key] = attrName;}else {attrName = this.$attr[key];if(!attrName){this.$attr[key] = attrName = snake_case(key,'-');}}nodeName = nodeName_(this.$$element);if(nodeName === 'a' && key === 'href' || nodeName === 'img' && key === 'src'){this[key] = value = $$sanitizeUri(value,key === 'src');}else if(nodeName === 'img' && key === 'srcset'){var result='';var trimmedSrcset=trim(value);var srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/;var pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/;var rawUris=trimmedSrcset.split(pattern);var nbrUrisWith2parts=Math.floor(rawUris.length / 2);for(var i=0;i < nbrUrisWith2parts;i++) {var innerIdx=i * 2;result += $$sanitizeUri(trim(rawUris[innerIdx]),true);result += ' ' + trim(rawUris[innerIdx + 1]);}var lastTuple=trim(rawUris[i * 2]).split(/\s/);result += $$sanitizeUri(trim(lastTuple[0]),true);if(lastTuple.length === 2){result += ' ' + trim(lastTuple[1]);}this[key] = value = result;}if(writeAttr !== false){if(value === null || value === undefined){this.$$element.removeAttr(attrName);}else {this.$$element.attr(attrName,value);}}var $$observers=this.$$observers;$$observers && forEach($$observers[observer],function(fn){try{fn(value);}catch(e) {$exceptionHandler(e);}});},$observe:function $observe(key,fn){var attrs=this,$$observers=attrs.$$observers || (attrs.$$observers = createMap()),listeners=$$observers[key] || ($$observers[key] = []);listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter && attrs.hasOwnProperty(key)){fn(attrs[key]);}});return function(){arrayRemove(listeners,fn);};}};function safeAddClass($element,className){try{$element.addClass(className);}catch(e) {}}var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=startSymbol == '{{' || endSymbol == '}}'?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol);},NG_ATTR_BINDING=/^ngAttr[A-Z]/;compile.$$addBindingInfo = debugInfoEnabled?function $$addBindingInfo($element,binding){var bindings=$element.data('$binding') || [];if(isArray(binding)){bindings = bindings.concat(binding);}else {bindings.push(binding);}$element.data('$binding',bindings);}:noop;compile.$$addBindingClass = debugInfoEnabled?function $$addBindingClass($element){safeAddClass($element,'ng-binding');}:noop;compile.$$addScopeInfo = debugInfoEnabled?function $$addScopeInfo($element,scope,isolated,noTemplate){var dataName=isolated?noTemplate?'$isolateScopeNoTemplate':'$isolateScope':'$scope';$element.data(dataName,scope);}:noop;compile.$$addScopeClass = debugInfoEnabled?function $$addScopeClass($element,isolated){safeAddClass($element,isolated?'ng-isolate-scope':'ng-scope');}:noop;return compile;function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){if(!($compileNodes instanceof jqLite)){$compileNodes = jqLite($compileNodes);}forEach($compileNodes,function(node,index){if(node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/)){$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function publicLinkFn(scope,cloneConnectFn,options){assertArg(scope,'scope');options = options || {};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;if(parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude){parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude;}if(!namespace){namespace = detectNamespaceForChildElements(futureParentElement);}var $linkNode;if(namespace !== 'html'){$linkNode = jqLite(wrapTemplate(namespace,jqLite('<div>').append($compileNodes).html()));}else if(cloneConnectFn){$linkNode = JQLitePrototype.clone.call($compileNodes);}else {$linkNode = $compileNodes;}if(transcludeControllers){for(var controllerName in transcludeControllers) {$linkNode.data('$' + controllerName + 'Controller',transcludeControllers[controllerName].instance);}}compile.$$addScopeInfo($linkNode,scope);if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn);return $linkNode;};}function detectNamespaceForChildElements(parentElement){var node=parentElement && parentElement[0];if(!node){return 'html';}else {return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/)?'svg':'html';}}function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){var linkFns=[],attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound;for(var i=0;i < nodeList.length;i++) {attrs = new Attributes();directives = collectDirectives(nodeList[i],[],attrs,i === 0?maxPriority:undefined,ignoreDirective);nodeLinkFn = directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null;if(nodeLinkFn && nodeLinkFn.scope){compile.$$addScopeClass(attrs.$$element);}childLinkFn = nodeLinkFn && nodeLinkFn.terminal || !(childNodes = nodeList[i].childNodes) || !childNodes.length?null:compileNodes(childNodes,nodeLinkFn?(nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) && nodeLinkFn.transclude:transcludeFn);if(nodeLinkFn || childLinkFn){linkFns.push(i,nodeLinkFn,childLinkFn);linkFnFound = true;nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn;}previousCompileContext = null;}return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn;var stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;stableNodeList = new Array(nodeListLength);for(i = 0;i < linkFns.length;i += 3) {idx = linkFns[i];stableNodeList[idx] = nodeList[idx];}}else {stableNodeList = nodeList;}for(i = 0,ii = linkFns.length;i < ii;) {node = stableNodeList[linkFns[i++]];nodeLinkFn = linkFns[i++];childLinkFn = linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope = scope.$new();compile.$$addScopeInfo(jqLite(node),childScope);}else {childScope = scope;}if(nodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn,nodeLinkFn.elementTranscludeOnThisElement);}else if(!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn){childBoundTranscludeFn = parentBoundTranscludeFn;}else if(!parentBoundTranscludeFn && transcludeFn){childBoundTranscludeFn = createBoundTranscludeFn(scope,transcludeFn);}else {childBoundTranscludeFn = null;}nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn);}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn);}}}}function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn,elementTransclusion){var boundTranscludeFn=function boundTranscludeFn(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){if(!transcludedScope){transcludedScope = scope.$new(false,containingScope);transcludedScope.$$transcluded = true;}return transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement});};return boundTranscludeFn;}function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),'E',maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs && nAttrs.length;j < jj;j++) {var attrStartName=false;var attrEndName=false;attr = nAttrs[j];name = attr.name;value = trim(attr.value);ngAttrName = directiveNormalize(name);if(isNgAttr = NG_ATTR_BINDING.test(ngAttrName)){name = name.replace(PREFIX_REGEXP,'').substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase();});}var directiveNName=ngAttrName.replace(/(Start|End)$/,'');if(directiveIsMultiElement(directiveNName)){if(ngAttrName === directiveNName + 'Start'){attrStartName = name;attrEndName = name.substr(0,name.length - 5) + 'end';name = name.substr(0,name.length - 6);}}nName = directiveNormalize(name.toLowerCase());attrsMap[nName] = name;if(isNgAttr || !attrs.hasOwnProperty(nName)){attrs[nName] = value;if(getBooleanAttrName(node,nName)){attrs[nName] = true;}}addAttrInterpolateDirective(node,directives,value,nName,isNgAttr);addDirective(directives,nName,'A',maxPriority,ignoreDirective,attrStartName,attrEndName);}className = node.className;if(isObject(className)){className = className.animVal;}if(isString(className) && className !== ''){while(match = CLASS_DIRECTIVE_REGEXP.exec(className)) {nName = directiveNormalize(match[2]);if(addDirective(directives,nName,'C',maxPriority,ignoreDirective)){attrs[nName] = trim(match[3]);}className = className.substr(match.index + match[0].length);}}break;case NODE_TYPE_TEXT:addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);if(match){nName = directiveNormalize(match[1]);if(addDirective(directives,nName,'M',maxPriority,ignoreDirective)){attrs[nName] = trim(match[2]);}}}catch(e) {}break;}directives.sort(byPriority);return directives;}function groupScan(node,attrStart,attrEnd){var nodes=[];var depth=0;if(attrStart && node.hasAttribute && node.hasAttribute(attrStart)){do {if(!node){throw $compileMinErr('uterdir','Unterminated attribute, found \'{0}\' but no matching \'{1}\' found.',attrStart,attrEnd);}if(node.nodeType == NODE_TYPE_ELEMENT){if(node.hasAttribute(attrStart))depth++;if(node.hasAttribute(attrEnd))depth--;}nodes.push(node);node = node.nextSibling;}while(depth > 0);}else {nodes.push(node);}return jqLite(nodes);}function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){element = groupScan(element[0],attrStart,attrEnd);return linkFn(scope,element,attrs,controllers,transcludeFn);};}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){previousCompileContext = previousCompileContext || {};var terminalPriority=-Number.MAX_VALUE,newScopeDirective,controllerDirectives=previousCompileContext.controllerDirectives,controllers,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=false,hasTemplate=false,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element = jqLite(compileNode),directive,directiveName,$template,replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,linkFn,directiveValue;for(var i=0,ii=directives.length;i < ii;i++) {directive = directives[i];var attrStart=directive.$$start;var attrEnd=directive.$$end;if(attrStart){$compileNode = groupScan(compileNode,attrStart,attrEnd);}$template = undefined;if(terminalPriority > directive.priority){break;}if(directiveValue = directive.scope){if(!directive.templateUrl){if(isObject(directiveValue)){assertNoDuplicate('new/isolated scope',newIsolateScopeDirective || newScopeDirective,directive,$compileNode);newIsolateScopeDirective = directive;}else {assertNoDuplicate('new/isolated scope',newIsolateScopeDirective,directive,$compileNode);}}newScopeDirective = newScopeDirective || directive;}directiveName = directive.name;if(!directive.templateUrl && directive.controller){directiveValue = directive.controller;controllerDirectives = controllerDirectives || {};assertNoDuplicate('\'' + directiveName + '\' controller',controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName] = directive;}if(directiveValue = directive.transclude){hasTranscludeDirective = true;if(!directive.$$tlb){assertNoDuplicate('transclusion',nonTlbTranscludeDirective,directive,$compileNode);nonTlbTranscludeDirective = directive;}if(directiveValue == 'element'){hasElementTranscludeDirective = true;terminalPriority = directive.priority;$template = $compileNode;$compileNode = templateAttrs.$$element = jqLite(document.createComment(' ' + directiveName + ': ' + templateAttrs[directiveName] + ' '));compileNode = $compileNode[0];replaceWith(jqCollection,sliceArgs($template),compileNode);childTranscludeFn = compile($template,transcludeFn,terminalPriority,replaceDirective && replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective});}else {$template = jqLite(jqLiteClone(compileNode)).contents();$compileNode.empty();childTranscludeFn = compile($template,transcludeFn);}}if(directive.template){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;directiveValue = isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template;directiveValue = denormalizeTemplate(directiveValue);if(directive.replace){replaceDirective = directive;if(jqLiteIsTextNode(directiveValue)){$template = [];}else {$template = removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',directiveName,'');}replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};var templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs);var unprocessedDirectives=directives.splice(i + 1,directives.length - (i + 1));if(newIsolateScopeDirective){markDirectivesAsIsolate(templateDirectives);}directives = directives.concat(templateDirectives).concat(unprocessedDirectives);mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii = directives.length;}else {$compileNode.html(directiveValue);}}if(directive.templateUrl){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;if(directive.replace){replaceDirective = directive;}nodeLinkFn = compileTemplateUrl(directives.splice(i,directives.length - i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective && childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective});ii = directives.length;}else if(directive.compile){try{linkFn = directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn,attrStart,attrEnd);}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd);}}catch(e) {$exceptionHandler(e,startingTag($compileNode));}}if(directive.terminal){nodeLinkFn.terminal = true;terminalPriority = Math.max(terminalPriority,directive.priority);}}nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;nodeLinkFn.templateOnThisElement = hasTemplate;nodeLinkFn.transclude = childTranscludeFn;previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;return nodeLinkFn;function addLinkFns(pre,post,attrStart,attrEnd){if(pre){if(attrStart)pre = groupElementsLinkFnWrapper(pre,attrStart,attrEnd);pre.require = directive.require;pre.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){pre = cloneAndAnnotateFn(pre,{isolateScope:true});}preLinkFns.push(pre);}if(post){if(attrStart)post = groupElementsLinkFnWrapper(post,attrStart,attrEnd);post.require = directive.require;post.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){post = cloneAndAnnotateFn(post,{isolateScope:true});}postLinkFns.push(post);}}function getControllers(directiveName,require,$element,elementControllers){var value,retrievalMethod='data',optional=false;var $searchElement=$element;var match;if(isString(require)){match = require.match(REQUIRE_PREFIX_REGEXP);require = require.substring(match[0].length);if(match[3]){if(match[1])match[3] = null;else match[1] = match[3];}if(match[1] === '^'){retrievalMethod = 'inheritedData';}else if(match[1] === '^^'){retrievalMethod = 'inheritedData';$searchElement = $element.parent();}if(match[2] === '?'){optional = true;}value = null;if(elementControllers && retrievalMethod === 'data'){if(value = elementControllers[require]){value = value.instance;}}value = value || $searchElement[retrievalMethod]('$' + require + 'Controller');if(!value && !optional){throw $compileMinErr('ctreq','Controller \'{0}\', required by directive \'{1}\', can\'t be found!',require,directiveName);}return value || null;}else if(isArray(require)){value = [];forEach(require,function(require){value.push(getControllers(directiveName,require,$element,elementControllers));});}return value;}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode === linkNode){attrs = templateAttrs;$element = templateAttrs.$$element;}else {$element = jqLite(linkNode);attrs = new Attributes($element,templateAttrs);}if(newIsolateScopeDirective){isolateScope = scope.$new(true);}if(boundTranscludeFn){transcludeFn = controllersBoundTransclude;transcludeFn.$$boundTransclude = boundTranscludeFn;}if(controllerDirectives){controllers = {};elementControllers = {};forEach(controllerDirectives,function(directive){var locals={$scope:directive === newIsolateScopeDirective || directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn},controllerInstance;controller = directive.controller;if(controller == '@'){controller = attrs[directive.name];}controllerInstance = $controller(controller,locals,true,directive.controllerAs);elementControllers[directive.name] = controllerInstance;if(!hasElementTranscludeDirective){$element.data('$' + directive.name + 'Controller',controllerInstance.instance);}controllers[directive.name] = controllerInstance;});}if(newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,true,!(templateDirective && (templateDirective === newIsolateScopeDirective || templateDirective === newIsolateScopeDirective.$$originalDirective)));compile.$$addScopeClass($element,true);var isolateScopeController=controllers && controllers[newIsolateScopeDirective.name];var isolateBindingContext=isolateScope;if(isolateScopeController && isolateScopeController.identifier && newIsolateScopeDirective.bindToController === true){isolateBindingContext = isolateScopeController.instance;}forEach(isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings,function(definition,scopeName){var attrName=definition.attrName,optional=definition.optional,mode=definition.mode,lastValue,parentGet,parentSet,compare;switch(mode){case '@':attrs.$observe(attrName,function(value){isolateBindingContext[scopeName] = value;});attrs.$$observers[attrName].$$scope = scope;if(attrs[attrName]){isolateBindingContext[scopeName] = $interpolate(attrs[attrName])(scope);}break;case '=':if(optional && !attrs[attrName]){return;}parentGet = $parse(attrs[attrName]);if(parentGet.literal){compare = equals;}else {compare = function(a,b){return a === b || a !== a && b !== b;};}parentSet = parentGet.assign || function(){lastValue = isolateBindingContext[scopeName] = parentGet(scope);throw $compileMinErr('nonassign','Expression \'{0}\' used with directive \'{1}\' is non-assignable!',attrs[attrName],newIsolateScopeDirective.name);};lastValue = isolateBindingContext[scopeName] = parentGet(scope);var parentValueWatch=function parentValueWatch(parentValue){if(!compare(parentValue,isolateBindingContext[scopeName])){if(!compare(parentValue,lastValue)){isolateBindingContext[scopeName] = parentValue;}else {parentSet(scope,parentValue = isolateBindingContext[scopeName]);}}return lastValue = parentValue;};parentValueWatch.$stateful = true;var unwatch;if(definition.collection){unwatch = scope.$watchCollection(attrs[attrName],parentValueWatch);}else {unwatch = scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal);}isolateScope.$on('$destroy',unwatch);break;case '&':parentGet = $parse(attrs[attrName]);isolateBindingContext[scopeName] = function(locals){return parentGet(scope,locals);};break;}});}if(controllers){forEach(controllers,function(controller){controller();});controllers = null;}for(i = 0,ii = preLinkFns.length;i < ii;i++) {linkFn = preLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}var scopeToChild=scope;if(newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)){scopeToChild = isolateScope;}childLinkFn && childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn);for(i = postLinkFns.length - 1;i >= 0;i--) {linkFn = postLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;if(!isScope(scope)){futureParentElement = cloneAttachFn;cloneAttachFn = scope;scope = undefined;}if(hasElementTranscludeDirective){transcludeControllers = elementControllers;}if(!futureParentElement){futureParentElement = hasElementTranscludeDirective?$element.parent():$element;}return boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild);}}}function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;j < jj;j++) {directives[j] = inherit(directives[j],{$$isolateScope:true});}}function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name === ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {try{directive = directives[i];if((maxPriority === undefined || maxPriority > directive.priority) && directive.restrict.indexOf(location) != -1){if(startAttrName){directive = inherit(directive,{$$start:startAttrName,$$end:endAttrName});}tDirectives.push(directive);match = directive;}}catch(e) {$exceptionHandler(e);}}}return match;}function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {directive = directives[i];if(directive.multiElement){return true;}}}return false;}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0) != '$'){if(src[key] && src[key] !== value){value += (key === 'style'?';':' ') + src[key];}dst.$set(key,value,true,srcAttr[key]);}});forEach(src,function(value,key){if(key == 'class'){safeAddClass($element,value);dst['class'] = (dst['class']?dst['class'] + ' ':'') + value;}else if(key == 'style'){$element.attr('style',$element.attr('style') + ';' + value);dst['style'] = (dst['style']?dst['style'] + ';':'') + value;}else if(key.charAt(0) != '$' && !dst.hasOwnProperty(key)){dst[key] = value;dstAttr[key] = srcAttr[key];}});}function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var linkQueue=[],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;$compileNode.empty();$templateRequest($sce.getTrustedResourceUrl(templateUrl)).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;content = denormalizeTemplate(content);if(origAsyncDirective.replace){if(jqLiteIsTextNode(content)){$template = [];}else {$template = removeComments(wrapTemplate(templateNamespace,trim(content)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',origAsyncDirective.name,templateUrl);}tempTemplateAttrs = {$attr:{}};replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);if(isObject(origAsyncDirective.scope)){markDirectivesAsIsolate(templateDirectives);}directives = templateDirectives.concat(directives);mergeTemplateAttributes(tAttrs,tempTemplateAttrs);}else {compileNode = beforeTemplateCompileNode;$compileNode.html(content);}directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn = applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext);forEach($rootElement,function(node,i){if(node == compileNode){$rootElement[i] = $compileNode[0];}});afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length) {var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];if(scope.$$destroyed)continue;if(beforeTemplateLinkNode !== beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;if(!(previousCompileContext.hasElementTranscludeDirective && origAsyncDirective.replace)){linkNode = jqLiteClone(compileNode);}replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode);safeAddClass(jqLite(linkNode),oldClasses);}if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}else {childBoundTranscludeFn = boundTranscludeFn;}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn);}linkQueue = null;});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;if(scope.$$destroyed)return;if(linkQueue){linkQueue.push(scope,node,rootElement,childBoundTranscludeFn);}else {if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn);}};}function byPriority(a,b){var diff=b.priority - a.priority;if(diff !== 0)return diff;if(a.name !== b.name)return a.name < b.name?-1:1;return a.index - b.index;}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective){throw $compileMinErr('multidir','Multiple directives [{0}, {1}] asking for {2} on: {3}',previousDirective.name,directive.name,what,startingTag(element));}}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:function textInterpolateCompileFn(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;if(hasCompileParent)compile.$$addBindingClass(templateNodeParent);return function textInterpolateLinkFn(scope,node){var parent=node.parent();if(!hasCompileParent)compile.$$addBindingClass(parent);compile.$$addBindingInfo(parent,interpolateFn.expressions);scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue = value;});};}});}}function wrapTemplate(type,template){type = lowercase(type || 'html');switch(type){case 'svg':case 'math':var wrapper=document.createElement('div');wrapper.innerHTML = '<' + type + '>' + template + '</' + type + '>';return wrapper.childNodes[0].childNodes;default:return template;}}function getTrustedContext(node,attrNormalizedName){if(attrNormalizedName == 'srcdoc'){return $sce.HTML;}var tag=nodeName_(node);if(attrNormalizedName == 'xlinkHref' || tag == 'form' && attrNormalizedName == 'action' || tag != 'img' && (attrNormalizedName == 'src' || attrNormalizedName == 'ngSrc')){return $sce.RESOURCE_URL;}}function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing;var interpolateFn=$interpolate(value,true,trustedContext,allOrNothing);if(!interpolateFn)return;if(name === 'multiple' && nodeName_(node) === 'select'){throw $compileMinErr('selmulti','Binding to the \'multiple\' attribute is not supported. Element: {0}',startingTag(node));}directives.push({priority:100,compile:function compile(){return {pre:function attrInterpolatePreLinkFn(scope,element,attr){var $$observers=attr.$$observers || (attr.$$observers = {});if(EVENT_HANDLER_ATTR_REGEXP.test(name)){throw $compileMinErr('nodomevents','Interpolations for HTML DOM event attributes are disallowed. Please use the ' + 'ng- versions (such as ng-click instead of onclick) instead.');}var newValue=attr[name];if(newValue !== value){interpolateFn = newValue && $interpolate(newValue,true,trustedContext,allOrNothing);value = newValue;}if(!interpolateFn)return;attr[name] = interpolateFn(scope);($$observers[name] || ($$observers[name] = [])).$$inter = true;(attr.$$observers && attr.$$observers[name].$$scope || scope).$watch(interpolateFn,function interpolateFnWatchAction(newValue,oldValue){if(name === 'class' && newValue != oldValue){attr.$updateClass(newValue,oldValue);}else {attr.$set(name,newValue);}});}};}});}function replaceWith($rootElement,elementsToRemove,newNode){var firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode,i,ii;if($rootElement){for(i = 0,ii = $rootElement.length;i < ii;i++) {if($rootElement[i] == firstElementToRemove){$rootElement[i++] = newNode;for(var j=i,j2=j + removeCount - 1,jj=$rootElement.length;j < jj;j++,j2++) {if(j2 < jj){$rootElement[j] = $rootElement[j2];}else {delete $rootElement[j];}}$rootElement.length -= removeCount - 1;if($rootElement.context === firstElementToRemove){$rootElement.context = newNode;}break;}}}if(parent){parent.replaceChild(newNode,firstElementToRemove);}var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove);jqLite(newNode).data(jqLite(firstElementToRemove).data());if(!jQuery){delete jqLite.cache[firstElementToRemove[jqLite.expando]];}else {skipDestroyOnNextJQueryCleanData = true;jQuery.cleanData([firstElementToRemove]);}for(var k=1,kk=elementsToRemove.length;k < kk;k++) {var element=elementsToRemove[k];jqLite(element).remove();fragment.appendChild(element);delete elementsToRemove[k];}elementsToRemove[0] = newNode;elementsToRemove.length = 1;}function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments);},fn,annotation);}function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn);}catch(e) {$exceptionHandler(e,startingTag($element));}}}];}var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,''));}function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}function tokenDifference(str1,str2){var values='',tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values += (values.length > 0?' ':'') + token;}return values;}function removeComments(jqNodes){jqNodes = jqLite(jqNodes);var i=jqNodes.length;if(i <= 1){return jqNodes;}while(i--) {var node=jqNodes[i];if(node.nodeType === NODE_TYPE_COMMENT){splice.call(jqNodes,i,1);}}return jqNodes;}var $controllerMinErr=minErr('$controller');function $ControllerProvider(){var controllers={},globals=false,CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;this.register = function(name,constructor){assertNotHasOwnProperty(name,'controller');if(isObject(name)){extend(controllers,name);}else {controllers[name] = constructor;}};this.allowGlobals = function(){globals = true;};this.$get = ['$injector','$window',function($injector,$window){return function(expression,locals,later,ident){var instance,match,constructor,identifier;later = later === true;if(ident && isString(ident)){identifier = ident;}if(isString(expression)){match = expression.match(CNTRL_REG);if(!match){throw $controllerMinErr('ctrlfmt','Badly formed controller string \'{0}\'. ' + 'Must match `__name__ as __id__` or `__name__`.',expression);}constructor = match[1],identifier = identifier || match[3];expression = controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true) || (globals?getter($window,constructor,true):undefined);assertArgFn(expression,constructor,true);}if(later){var controllerPrototype=(isArray(expression)?expression[expression.length - 1]:expression).prototype;instance = Object.create(controllerPrototype || null);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return extend(function(){$injector.invoke(expression,instance,locals,constructor);return instance;},{instance:instance,identifier:identifier});}instance = $injector.instantiate(expression,locals,constructor);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return instance;};function addIdentifier(locals,identifier,instance,name){if(!(locals && isObject(locals.$scope))){throw minErr('$controller')('noscp','Cannot export controller \'{0}\' as \'{1}\'! No $scope object provided via `locals`.',name,identifier);}locals.$scope[identifier] = instance;}}];}function $DocumentProvider(){this.$get = ['$window',function(window){return jqLite(window.document);}];}function $ExceptionHandlerProvider(){this.$get = ['$log',function($log){return function(exception,cause){$log.error.apply($log,arguments);};}];}var APPLICATION_JSON='application/json';var CONTENT_TYPE_APPLICATION_JSON={'Content-Type':APPLICATION_JSON + ';charset=utf-8'};var JSON_START=/^\[|^\{(?!\{)/;var JSON_ENDS={'[':/]$/,'{':/}$/};var JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/;function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,'').trim();if(tempData){var contentType=headers('Content-Type');if(contentType && contentType.indexOf(APPLICATION_JSON) === 0 || isJsonLike(tempData)){data = fromJson(tempData);}}}return data;}function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart && JSON_ENDS[jsonStart[0]].test(str);}function parseHeaders(headers){var parsed=createMap(),key,val,i;if(!headers)return parsed;forEach(headers.split('\n'),function(line){i = line.indexOf(':');key = lowercase(trim(line.substr(0,i)));val = trim(line.substr(i + 1));if(key){parsed[key] = parsed[key]?parsed[key] + ', ' + val:val;}});return parsed;}function headersGetter(headers){var headersObj=isObject(headers)?headers:undefined;return function(name){if(!headersObj)headersObj = parseHeaders(headers);if(name){var value=headersObj[lowercase(name)];if(value === void 0){value = null;}return value;}return headersObj;};}function transformData(data,headers,status,fns){if(isFunction(fns))return fns(data,headers,status);forEach(fns,function(fn){data = fn(data,headers,status);});return data;}function isSuccess(status){return 200 <= status && status < 300;}function $HttpProvider(){var defaults=this.defaults = {transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d)?toJson(d):d;}],headers:{common:{'Accept':'application/json, text/plain, */*'},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:'XSRF-TOKEN',xsrfHeaderName:'X-XSRF-TOKEN'};var useApplyAsync=false;this.useApplyAsync = function(value){if(isDefined(value)){useApplyAsync = !!value;return this;}return useApplyAsync;};var interceptorFactories=this.interceptors = [];this.$get = ['$httpBackend','$browser','$cacheFactory','$rootScope','$q','$injector',function($httpBackend,$browser,$cacheFactory,$rootScope,$q,$injector){var defaultCache=$cacheFactory('$http');var reversedInterceptors=[];forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory));});function $http(requestConfig){if(!angular.isObject(requestConfig)){throw minErr('$http')('badreq','Http request configuration must be an object. Received: {0}',requestConfig);}var config=extend({method:'get',transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse},requestConfig);config.headers = mergeHeaders(requestConfig);config.method = uppercase(config.method);var serverRequest=function serverRequest(config){var headers=config.headers;var reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);if(isUndefined(reqData)){forEach(headers,function(value,header){if(lowercase(header) === 'content-type'){delete headers[header];}});}if(isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)){config.withCredentials = defaults.withCredentials;}return sendReq(config,reqData).then(transformResponse,transformResponse);};var chain=[serverRequest,undefined];var promise=$q.when(config);forEach(reversedInterceptors,function(interceptor){if(interceptor.request || interceptor.requestError){chain.unshift(interceptor.request,interceptor.requestError);}if(interceptor.response || interceptor.responseError){chain.push(interceptor.response,interceptor.responseError);}});while(chain.length) {var thenFn=chain.shift();var rejectFn=chain.shift();promise = promise.then(thenFn,rejectFn);}promise.success = function(fn){promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error = function(fn){promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};return promise;function transformResponse(response){var resp=extend({},response);if(!response.data){resp.data = response.data;}else {resp.data = transformData(response.data,response.headers,response.status,config.transformResponse);}return isSuccess(response.status)?resp:$q.reject(resp);}function executeHeaderFns(headers){var headerContent,processedHeaders={};forEach(headers,function(headerFn,header){if(isFunction(headerFn)){headerContent = headerFn();if(headerContent != null){processedHeaders[header] = headerContent;}}else {processedHeaders[header] = headerFn;}});return processedHeaders;}function mergeHeaders(config){var defHeaders=defaults.headers,reqHeaders=extend({},config.headers),defHeaderName,lowercaseDefHeaderName,reqHeaderName;defHeaders = extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration: for(defHeaderName in defHeaders) {lowercaseDefHeaderName = lowercase(defHeaderName);for(reqHeaderName in reqHeaders) {if(lowercase(reqHeaderName) === lowercaseDefHeaderName){continue defaultHeadersIteration;}}reqHeaders[defHeaderName] = defHeaders[defHeaderName];}return executeHeaderFns(reqHeaders);}}$http.pendingRequests = [];createShortMethods('get','delete','head','jsonp');createShortMethodsWithData('post','put','patch');$http.defaults = defaults;return $http;function createShortMethods(names){forEach(arguments,function(name){$http[name] = function(url,config){return $http(extend(config || {},{method:name,url:url}));};});}function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name] = function(url,data,config){return $http(extend(config || {},{method:name,url:url,data:data}));};});}function sendReq(config,reqData){var deferred=$q.defer(),promise=deferred.promise,cache,cachedResp,reqHeaders=config.headers,url=buildUrl(config.url,config.params);$http.pendingRequests.push(config);promise.then(removePendingReq,removePendingReq);if((config.cache || defaults.cache) && config.cache !== false && (config.method === 'GET' || config.method === 'JSONP')){cache = isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache;}if(cache){cachedResp = cache.get(url);if(isDefined(cachedResp)){if(isPromiseLike(cachedResp)){cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult);}else {if(isArray(cachedResp)){resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]);}else {resolvePromise(cachedResp,200,{},'OK');}}}else {cache.put(url,promise);}}if(isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$browser.cookies()[config.xsrfCookieName || defaults.xsrfCookieName]:undefined;if(xsrfValue){reqHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;}$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType);}return promise;function done(status,response,headersString,statusText){if(cache){if(isSuccess(status)){cache.put(url,[status,response,parseHeaders(headersString),statusText]);}else {cache.remove(url);}}function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText);}if(useApplyAsync){$rootScope.$applyAsync(resolveHttpPromise);}else {resolveHttpPromise();if(!$rootScope.$$phase)$rootScope.$apply();}}function resolvePromise(response,status,headers,statusText){status = Math.max(status,0);(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText});}function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText);}function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);if(idx !== -1)$http.pendingRequests.splice(idx,1);}}function buildUrl(url,params){if(!params)return url;var parts=[];forEachSorted(params,function(value,key){if(value === null || isUndefined(value))return;if(!isArray(value))value = [value];forEach(value,function(v){if(isObject(v)){if(isDate(v)){v = v.toISOString();}else {v = toJson(v);}}parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(v));});});if(parts.length > 0){url += (url.indexOf('?') == -1?'?':'&') + parts.join('&');}return url;}}];}function createXhr(){return new window.XMLHttpRequest();}function $HttpBackendProvider(){this.$get = ['$browser','$window','$document',function($browser,$window,$document){return createHttpBackend($browser,createXhr,$browser.defer,$window.angular.callbacks,$document[0]);}];}function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){return function(method,url,post,callback,headers,timeout,withCredentials,responseType){$browser.$$incOutstandingRequestCount();url = url || $browser.url();if(lowercase(method) == 'jsonp'){var callbackId='_' + (callbacks.counter++).toString(36);callbacks[callbackId] = function(data){callbacks[callbackId].data = data;callbacks[callbackId].called = true;};var jsonpDone=jsonpReq(url.replace('JSON_CALLBACK','angular.callbacks.' + callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,'',text);callbacks[callbackId] = noop;});}else {var xhr=createXhr();xhr.open(method,url,true);forEach(headers,function(value,key){if(isDefined(value)){xhr.setRequestHeader(key,value);}});xhr.onload = function requestLoaded(){var statusText=xhr.statusText || '';var response='response' in xhr?xhr.response:xhr.responseText;var status=xhr.status === 1223?204:xhr.status;if(status === 0){status = response?200:urlResolve(url).protocol == 'file'?404:0;}completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText);};var requestError=function requestError(){completeRequest(callback,-1,null,null,'');};xhr.onerror = requestError;xhr.onabort = requestError;if(withCredentials){xhr.withCredentials = true;}if(responseType){try{xhr.responseType = responseType;}catch(e) {if(responseType !== 'json'){throw e;}}}xhr.send(post || null);}if(timeout > 0){var timeoutId=$browserDefer(timeoutRequest,timeout);}else if(isPromiseLike(timeout)){timeout.then(timeoutRequest);}function timeoutRequest(){jsonpDone && jsonpDone();xhr && xhr.abort();}function completeRequest(callback,status,response,headersString,statusText){if(timeoutId !== undefined){$browserDefer.cancel(timeoutId);}jsonpDone = xhr = null;callback(status,response,headersString,statusText);$browser.$$completeOutstandingRequest(noop);}};function jsonpReq(url,callbackId,done){var script=rawDocument.createElement('script'),callback=null;script.type = 'text/javascript';script.src = url;script.async = true;callback = function(event){removeEventListenerFn(script,'load',callback);removeEventListenerFn(script,'error',callback);rawDocument.body.removeChild(script);script = null;var status=-1;var text='unknown';if(event){if(event.type === 'load' && !callbacks[callbackId].called){event = {type:'error'};}text = event.type;status = event.type === 'error'?404:200;}if(done){done(status,text);}};addEventListenerFn(script,'load',callback);addEventListenerFn(script,'error',callback);rawDocument.body.appendChild(script);return callback;}}var $interpolateMinErr=minErr('$interpolate');function $InterpolateProvider(){var startSymbol='{{';var endSymbol='}}';this.startSymbol = function(value){if(value){startSymbol = value;return this;}else {return startSymbol;}};this.endSymbol = function(value){if(value){endSymbol = value;return this;}else {return endSymbol;}};this.$get = ['$parse','$exceptionHandler','$sce',function($parse,$exceptionHandler,$sce){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),'g'),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),'g');function escape(ch){return '\\\\\\' + ch;}function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){allOrNothing = !!allOrNothing;var startIndex,endIndex,index=0,expressions=[],parseFns=[],textLength=text.length,exp,concat=[],expressionPositions=[];while(index < textLength) {if((startIndex = text.indexOf(startSymbol,index)) != -1 && (endIndex = text.indexOf(endSymbol,startIndex + startSymbolLength)) != -1){if(index !== startIndex){concat.push(unescapeText(text.substring(index,startIndex)));}exp = text.substring(startIndex + startSymbolLength,endIndex);expressions.push(exp);parseFns.push($parse(exp,parseStringifyInterceptor));index = endIndex + endSymbolLength;expressionPositions.push(concat.length);concat.push('');}else {if(index !== textLength){concat.push(unescapeText(text.substring(index)));}break;}}if(trustedContext && concat.length > 1){throw $interpolateMinErr('noconcat','Error while interpolating: {0}\nStrict Contextual Escaping disallows ' + 'interpolations that concatenate multiple expressions when a trusted value is ' + 'required. See http://docs.angularjs.org/api/ng.$sce',text);}if(!mustHaveExpression || expressions.length){var compute=function compute(values){for(var i=0,ii=expressions.length;i < ii;i++) {if(allOrNothing && isUndefined(values[i]))return;concat[expressionPositions[i]] = values[i];}return concat.join('');};var getValue=function getValue(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value);};var stringify=function stringify(value){if(value == null){return '';}switch(typeof value){case 'string':break;case 'number':value = '' + value;break;default:value = toJson(value);}return value;};return extend(function interpolationFn(context){var i=0;var ii=expressions.length;var values=new Array(ii);try{for(;i < ii;i++) {values[i] = parseFns[i](context);}return compute(values);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}},{exp:text,expressions:expressions,$$watchDelegate:function $$watchDelegate(scope,listener,objectEquality){var lastValue;return scope.$watchGroup(parseFns,function interpolateFnWatcher(values,oldValues){var currValue=compute(values);if(isFunction(listener)){listener.call(this,currValue,values !== oldValues?lastValue:currValue,scope);}lastValue = currValue;},objectEquality);}});}function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol);}function parseStringifyInterceptor(value){try{value = getValue(value);return allOrNothing && !isDefined(value)?value:stringify(value);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}}}$interpolate.startSymbol = function(){return startSymbol;};$interpolate.endSymbol = function(){return endSymbol;};return $interpolate;}];}function $IntervalProvider(){this.$get = ['$rootScope','$window','$q','$$q',function($rootScope,$window,$q,$$q){var intervals={};function interval(fn,delay,count,invokeApply){var setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;count = isDefined(count)?count:0;promise.then(null,null,fn);promise.$$intervalId = setInterval(function tick(){deferred.notify(iteration++);if(count > 0 && iteration >= count){deferred.resolve(iteration);clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];}if(!skipApply)$rootScope.$apply();},delay);intervals[promise.$$intervalId] = deferred;return promise;}interval.cancel = function(promise){if(promise && promise.$$intervalId in intervals){intervals[promise.$$intervalId].reject('canceled');$window.clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];return true;}return false;};return interval;}];}function $LocaleProvider(){this.$get = function(){return {id:'en-us',NUMBER_FORMATS:{DECIMAL_SEP:'.',GROUP_SEP:',',PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:'',posSuf:'',negPre:'-',negSuf:'',gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:'¤',posSuf:'',negPre:'(¤',negSuf:')',gSize:3,lgSize:3}],CURRENCY_SYM:'$'},DATETIME_FORMATS:{MONTH:'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),SHORTMONTH:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),DAY:'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),SHORTDAY:'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),AMPMS:['AM','PM'],medium:'MMM d, y h:mm:ss a','short':'M/d/yy h:mm a',fullDate:'EEEE, MMMM d, y',longDate:'MMMM d, y',mediumDate:'MMM d, y',shortDate:'M/d/yy',mediumTime:'h:mm:ss a',shortTime:'h:mm a',ERANAMES:['Before Christ','Anno Domini'],ERAS:['BC','AD']},pluralCat:function pluralCat(num){if(num === 1){return 'one';}return 'other';}};};}var PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={'http':80,'https':443,'ftp':21};var $locationMinErr=minErr('$location');function encodePath(path){var segments=path.split('/'),i=segments.length;while(i--) {segments[i] = encodeUriSegment(segments[i]);}return segments.join('/');}function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol = parsedUrl.protocol;locationObj.$$host = parsedUrl.hostname;locationObj.$$port = int(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;}function parseAppUrl(relativeUrl,locationObj){var prefixed=relativeUrl.charAt(0) !== '/';if(prefixed){relativeUrl = '/' + relativeUrl;}var match=urlResolve(relativeUrl);locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/'?match.pathname.substring(1):match.pathname);locationObj.$$search = parseKeyValue(match.search);locationObj.$$hash = decodeURIComponent(match.hash);if(locationObj.$$path && locationObj.$$path.charAt(0) != '/'){locationObj.$$path = '/' + locationObj.$$path;}}function beginsWith(begin,whole){if(whole.indexOf(begin) === 0){return whole.substr(begin.length);}}function stripHash(url){var index=url.indexOf('#');return index == -1?url:url.substr(0,index);}function trimEmptyHash(url){return url.replace(/(#.+)|#$/,'$1');}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf('/') + 1);}function serverBase(url){return url.substring(0,url.indexOf('/',url.indexOf('//') + 2));}function LocationHtml5Url(appBase,basePrefix){this.$$html5 = true;basePrefix = basePrefix || '';var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw $locationMinErr('ipthprfx','Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);}parseAppUrl(pathUrl,this);if(!this.$$path){this.$$path = '/';}this.$$compose();};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBaseNoFile + this.$$url.substr(1);};this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var appUrl,prevAppUrl;var rewrittenUrl;if((appUrl = beginsWith(appBase,url)) !== undefined){prevAppUrl = appUrl;if((appUrl = beginsWith(basePrefix,appUrl)) !== undefined){rewrittenUrl = appBaseNoFile + (beginsWith('/',appUrl) || appUrl);}else {rewrittenUrl = appBase + prevAppUrl;}}else if((appUrl = beginsWith(appBaseNoFile,url)) !== undefined){rewrittenUrl = appBaseNoFile + appUrl;}else if(appBaseNoFile == url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};}function LocationHashbangUrl(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var withoutBaseUrl=beginsWith(appBase,url) || beginsWith(appBaseNoFile,url);var withoutHashUrl;if(withoutBaseUrl.charAt(0) === '#'){withoutHashUrl = beginsWith(hashPrefix,withoutBaseUrl);if(isUndefined(withoutHashUrl)){withoutHashUrl = withoutBaseUrl;}}else {withoutHashUrl = this.$$html5?withoutBaseUrl:'';}parseAppUrl(withoutHashUrl,this);this.$$path = removeWindowsDriveName(this.$$path,withoutHashUrl,appBase);this.$$compose();function removeWindowsDriveName(path,url,base){var windowsFilePathExp=/^\/[A-Z]:(\/.*)/;var firstPathSegmentMatch;if(url.indexOf(base) === 0){url = url.replace(base,'');}if(windowsFilePathExp.exec(url)){return path;}firstPathSegmentMatch = windowsFilePathExp.exec(path);return firstPathSegmentMatch?firstPathSegmentMatch[1]:path;}};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + (this.$$url?hashPrefix + this.$$url:'');};this.$$parseLinkUrl = function(url,relHref){if(stripHash(appBase) == stripHash(url)){this.$$parse(url);return true;}return false;};}function LocationHashbangInHtml5Url(appBase,hashPrefix){this.$$html5 = true;LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(appBase);this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var rewrittenUrl;var appUrl;if(appBase == stripHash(url)){rewrittenUrl = url;}else if(appUrl = beginsWith(appBaseNoFile,url)){rewrittenUrl = appBase + hashPrefix + appUrl;}else if(appBaseNoFile === url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + hashPrefix + this.$$url;};}var locationPrototype={$$html5:false,$$replace:false,absUrl:locationGetter('$$absUrl'),url:function url(_url){if(isUndefined(_url))return this.$$url;var match=PATH_MATCH.exec(_url);if(match[1] || _url === '')this.path(decodeURIComponent(match[1]));if(match[2] || match[1] || _url === '')this.search(match[3] || '');this.hash(match[5] || '');return this;},protocol:locationGetter('$$protocol'),host:locationGetter('$$host'),port:locationGetter('$$port'),path:locationGetterSetter('$$path',function(path){path = path !== null?path.toString():'';return path.charAt(0) == '/'?path:'/' + path;}),search:function search(_search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(_search) || isNumber(_search)){_search = _search.toString();this.$$search = parseKeyValue(_search);}else if(isObject(_search)){_search = copy(_search,{});forEach(_search,function(value,key){if(value == null)delete _search[key];});this.$$search = _search;}else {throw $locationMinErr('isrcharg','The first argument of the `$location#search()` call must be a string or an object.');}break;default:if(isUndefined(paramValue) || paramValue === null){delete this.$$search[_search];}else {this.$$search[_search] = paramValue;}}this.$$compose();return this;},hash:locationGetterSetter('$$hash',function(hash){return hash !== null?hash.toString():'';}),replace:function replace(){this.$$replace = true;return this;}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype = Object.create(locationPrototype);Location.prototype.state = function(state){if(!arguments.length)return this.$$state;if(Location !== LocationHtml5Url || !this.$$html5){throw $locationMinErr('nostate','History API state support is available only ' + 'in HTML5 mode and only in browsers supporting HTML5 History API');}this.$$state = isUndefined(state)?null:state;return this;};});function locationGetter(property){return function(){return this[property];};}function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value))return this[property];this[property] = preprocess(value);this.$$compose();return this;};}function $LocationProvider(){var hashPrefix='',html5Mode={enabled:false,requireBase:true,rewriteLinks:true};this.hashPrefix = function(prefix){if(isDefined(prefix)){hashPrefix = prefix;return this;}else {return hashPrefix;}};this.html5Mode = function(mode){if(isBoolean(mode)){html5Mode.enabled = mode;return this;}else if(isObject(mode)){if(isBoolean(mode.enabled)){html5Mode.enabled = mode.enabled;}if(isBoolean(mode.requireBase)){html5Mode.requireBase = mode.requireBase;}if(isBoolean(mode.rewriteLinks)){html5Mode.rewriteLinks = mode.rewriteLinks;}return this;}else {return html5Mode;}};this.$get = ['$rootScope','$browser','$sniffer','$rootElement','$window',function($rootScope,$browser,$sniffer,$rootElement,$window){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode.enabled){if(!baseHref && html5Mode.requireBase){throw $locationMinErr('nobase','$location in HTML5 mode requires a <base> tag to be present!');}appBase = serverBase(initialUrl) + (baseHref || '/');LocationMode = $sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url;}else {appBase = stripHash(initialUrl);LocationMode = LocationHashbangUrl;}$location = new LocationMode(appBase,'#' + hashPrefix);$location.$$parseLinkUrl(initialUrl,initialUrl);$location.$$state = $browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url();var oldState=$location.$$state;try{$browser.url(url,replace,state);$location.$$state = $browser.state();}catch(e) {$location.url(oldUrl);$location.$$state = oldState;throw e;}}$rootElement.on('click',function(event){if(!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2)return;var elm=jqLite(event.target);while(nodeName_(elm[0]) !== 'a') {if(elm[0] === $rootElement[0] || !(elm = elm.parent())[0])return;}var absHref=elm.prop('href');var relHref=elm.attr('href') || elm.attr('xlink:href');if(isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]'){absHref = urlResolve(absHref.animVal).href;}if(IGNORE_URI_REGEXP.test(absHref))return;if(absHref && !elm.attr('target') && !event.isDefaultPrevented()){if($location.$$parseLinkUrl(absHref,relHref)){event.preventDefault();if($location.absUrl() != $browser.url()){$rootScope.$apply();$window.angular['ff-684208-preventDefault'] = true;}}}});if(trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)){$browser.url($location.absUrl(),true);}var initializing=true;$browser.onUrlChange(function(newUrl,newState){$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();var oldState=$location.$$state;var defaultPrevented;$location.$$parse(newUrl);$location.$$state = newState;defaultPrevented = $rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,newState,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;setBrowserUrlWithFallback(oldUrl,false,oldState);}else {initializing = false;afterLocationChange(oldUrl,oldState);}});if(!$rootScope.$$phase)$rootScope.$digest();});$rootScope.$watch(function $locationWatch(){var oldUrl=trimEmptyHash($browser.url());var newUrl=trimEmptyHash($location.absUrl());var oldState=$browser.state();var currentReplace=$location.$$replace;var urlOrStateChanged=oldUrl !== newUrl || $location.$$html5 && $sniffer.history && oldState !== $location.$$state;if(initializing || urlOrStateChanged){initializing = false;$rootScope.$evalAsync(function(){var newUrl=$location.absUrl();var defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;}else {if(urlOrStateChanged){setBrowserUrlWithFallback(newUrl,currentReplace,oldState === $location.$$state?null:$location.$$state);}afterLocationChange(oldUrl,oldState);}});}$location.$$replace = false;});return $location;function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast('$locationChangeSuccess',$location.absUrl(),oldUrl,$location.$$state,oldState);}}];}function $LogProvider(){var debug=true,self=this;this.debugEnabled = function(flag){if(isDefined(flag)){debug = flag;return this;}else {return debug;}};this.$get = ['$window',function($window){return {log:consoleLog('log'),info:consoleLog('info'),warn:consoleLog('warn'),error:consoleLog('error'),debug:(function(){var fn=consoleLog('debug');return function(){if(debug){fn.apply(self,arguments);}};})()};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg = arg.message && arg.stack.indexOf(arg.message) === -1?'Error: ' + arg.message + '\n' + arg.stack:arg.stack;}else if(arg.sourceURL){arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line;}}return arg;}function consoleLog(type){var console=$window.console || {},logFn=console[type] || console.log || noop,hasApply=false;try{hasApply = !!logFn.apply;}catch(e) {}if(hasApply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg));});return logFn.apply(console,args);};}return function(arg1,arg2){logFn(arg1,arg2 == null?'':arg2);};}}];}var $parseMinErr=minErr('$parse');function ensureSafeMemberName(name,fullExpression){if(name === '__defineGetter__' || name === '__defineSetter__' || name === '__lookupGetter__' || name === '__lookupSetter__' || name === '__proto__'){throw $parseMinErr('isecfld','Attempting to access a disallowed field in Angular expressions! ' + 'Expression: {0}',fullExpression);}return name;}function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.window === obj){throw $parseMinErr('isecwindow','Referencing the Window in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.children && (obj.nodeName || obj.prop && obj.attr && obj.find)){throw $parseMinErr('isecdom','Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === Object){throw $parseMinErr('isecobj','Referencing Object in Angular expressions is disallowed! Expression: {0}',fullExpression);}}return obj;}var CALL=Function.prototype.call;var APPLY=Function.prototype.apply;var BIND=Function.prototype.bind;function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === CALL || obj === APPLY || obj === BIND){throw $parseMinErr('isecff','Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',fullExpression);}}}var CONSTANTS=createMap();forEach({'null':function _null(){return null;},'true':function _true(){return true;},'false':function _false(){return false;},'undefined':function undefined(){}},function(constantGetter,name){constantGetter.constant = constantGetter.literal = constantGetter.sharedGetter = true;CONSTANTS[name] = constantGetter;});CONSTANTS['this'] = function(self){return self;};CONSTANTS['this'].sharedGetter = true;var OPERATORS=extend(createMap(),{'+':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);if(isDefined(a)){if(isDefined(b)){return a + b;}return a;}return isDefined(b)?b:undefined;},'-':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);return (isDefined(a)?a:0) - (isDefined(b)?b:0);},'*':function _(self,locals,a,b){return a(self,locals) * b(self,locals);},'/':function _(self,locals,a,b){return a(self,locals) / b(self,locals);},'%':function _(self,locals,a,b){return a(self,locals) % b(self,locals);},'===':function _(self,locals,a,b){return a(self,locals) === b(self,locals);},'!==':function _(self,locals,a,b){return a(self,locals) !== b(self,locals);},'==':function _(self,locals,a,b){return a(self,locals) == b(self,locals);},'!=':function _(self,locals,a,b){return a(self,locals) != b(self,locals);},'<':function _(self,locals,a,b){return a(self,locals) < b(self,locals);},'>':function _(self,locals,a,b){return a(self,locals) > b(self,locals);},'<=':function _(self,locals,a,b){return a(self,locals) <= b(self,locals);},'>=':function _(self,locals,a,b){return a(self,locals) >= b(self,locals);},'&&':function _(self,locals,a,b){return a(self,locals) && b(self,locals);},'||':function _(self,locals,a,b){return a(self,locals) || b(self,locals);},'!':function _(self,locals,a){return !a(self,locals);},'=':true,'|':true});var ESCAPE={'n':'\n','f':'\f','r':'\r','t':'\t','v':'\u000b','\'':'\'','"':'"'};var Lexer=function Lexer(options){this.options = options;};Lexer.prototype = {constructor:Lexer,lex:function lex(text){this.text = text;this.index = 0;this.tokens = [];while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(ch === '"' || ch === '\''){this.readString(ch);}else if(this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())){this.readNumber();}else if(this.isIdent(ch)){this.readIdent();}else if(this.is(ch,'(){}[].,;:?')){this.tokens.push({index:this.index,text:ch});this.index++;}else if(this.isWhitespace(ch)){this.index++;}else {var ch2=ch + this.peek();var ch3=ch2 + this.peek(2);var op1=OPERATORS[ch];var op2=OPERATORS[ch2];var op3=OPERATORS[ch3];if(op1 || op2 || op3){var token=op3?ch3:op2?ch2:ch;this.tokens.push({index:this.index,text:token,operator:true});this.index += token.length;}else {this.throwError('Unexpected next character ',this.index,this.index + 1);}}}return this.tokens;},is:function is(ch,chars){return chars.indexOf(ch) !== -1;},peek:function peek(i){var num=i || 1;return this.index + num < this.text.length?this.text.charAt(this.index + num):false;},isNumber:function isNumber(ch){return '0' <= ch && ch <= '9' && typeof ch === 'string';},isWhitespace:function isWhitespace(ch){return ch === ' ' || ch === '\r' || ch === '\t' || ch === '\n' || ch === '\u000b' || ch === ' ';},isIdent:function isIdent(ch){return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || '_' === ch || ch === '$';},isExpOperator:function isExpOperator(ch){return ch === '-' || ch === '+' || this.isNumber(ch);},throwError:function throwError(error,start,end){end = end || this.index;var colStr=isDefined(start)?'s ' + start + '-' + this.index + ' [' + this.text.substring(start,end) + ']':' ' + end;throw $parseMinErr('lexerr','Lexer Error: {0} at column{1} in expression [{2}].',error,colStr,this.text);},readNumber:function readNumber(){var number='';var start=this.index;while(this.index < this.text.length) {var ch=lowercase(this.text.charAt(this.index));if(ch == '.' || this.isNumber(ch)){number += ch;}else {var peekCh=this.peek();if(ch == 'e' && this.isExpOperator(peekCh)){number += ch;}else if(this.isExpOperator(ch) && peekCh && this.isNumber(peekCh) && number.charAt(number.length - 1) == 'e'){number += ch;}else if(this.isExpOperator(ch) && (!peekCh || !this.isNumber(peekCh)) && number.charAt(number.length - 1) == 'e'){this.throwError('Invalid exponent');}else {break;}}this.index++;}this.tokens.push({index:start,text:number,constant:true,value:Number(number)});},readIdent:function readIdent(){var start=this.index;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(!(this.isIdent(ch) || this.isNumber(ch))){break;}this.index++;}this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:true});},readString:function readString(quote){var start=this.index;this.index++;var string='';var rawString=quote;var escape=false;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);rawString += ch;if(escape){if(ch === 'u'){var hex=this.text.substring(this.index + 1,this.index + 5);if(!hex.match(/[\da-f]{4}/i))this.throwError('Invalid unicode escape [\\u' + hex + ']');this.index += 4;string += String.fromCharCode(parseInt(hex,16));}else {var rep=ESCAPE[ch];string = string + (rep || ch);}escape = false;}else if(ch === '\\'){escape = true;}else if(ch === quote){this.index++;this.tokens.push({index:start,text:rawString,constant:true,value:string});return;}else {string += ch;}this.index++;}this.throwError('Unterminated quote',start);}};function isConstant(exp){return exp.constant;}var Parser=function Parser(lexer,$filter,options){this.lexer = lexer;this.$filter = $filter;this.options = options;};Parser.ZERO = extend(function(){return 0;},{sharedGetter:true,constant:true});Parser.prototype = {constructor:Parser,parse:function parse(text){this.text = text;this.tokens = this.lexer.lex(text);var value=this.statements();if(this.tokens.length !== 0){this.throwError('is an unexpected token',this.tokens[0]);}value.literal = !!value.literal;value.constant = !!value.constant;return value;},primary:function primary(){var primary;if(this.expect('(')){primary = this.filterChain();this.consume(')');}else if(this.expect('[')){primary = this.arrayDeclaration();}else if(this.expect('{')){primary = this.object();}else if(this.peek().identifier && this.peek().text in CONSTANTS){primary = CONSTANTS[this.consume().text];}else if(this.peek().identifier){primary = this.identifier();}else if(this.peek().constant){primary = this.constant();}else {this.throwError('not a primary expression',this.peek());}var next,context;while(next = this.expect('(','[','.')) {if(next.text === '('){primary = this.functionCall(primary,context);context = null;}else if(next.text === '['){context = primary;primary = this.objectIndex(primary);}else if(next.text === '.'){context = primary;primary = this.fieldAccess(primary);}else {this.throwError('IMPOSSIBLE');}}return primary;},throwError:function throwError(msg,token){throw $parseMinErr('syntax','Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].',token.text,msg,token.index + 1,this.text,this.text.substring(token.index));},peekToken:function peekToken(){if(this.tokens.length === 0)throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);return this.tokens[0];},peek:function peek(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4);},peekAhead:function peekAhead(i,e1,e2,e3,e4){if(this.tokens.length > i){var token=this.tokens[i];var t=token.text;if(t === e1 || t === e2 || t === e3 || t === e4 || !e1 && !e2 && !e3 && !e4){return token;}}return false;},expect:function expect(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);if(token){this.tokens.shift();return token;}return false;},consume:function consume(e1){if(this.tokens.length === 0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}var token=this.expect(e1);if(!token){this.throwError('is unexpected, expecting [' + e1 + ']',this.peek());}return token;},unaryFn:function unaryFn(op,right){var fn=OPERATORS[op];return extend(function $parseUnaryFn(self,locals){return fn(self,locals,right);},{constant:right.constant,inputs:[right]});},binaryFn:function binaryFn(left,op,right,isBranching){var fn=OPERATORS[op];return extend(function $parseBinaryFn(self,locals){return fn(self,locals,left,right);},{constant:left.constant && right.constant,inputs:!isBranching && [left,right]});},identifier:function identifier(){var id=this.consume().text;while(this.peek('.') && this.peekAhead(1).identifier && !this.peekAhead(2,'(')) {id += this.consume().text + this.consume().text;}return getterFn(id,this.options,this.text);},constant:function constant(){var value=this.consume().value;return extend(function $parseConstant(){return value;},{constant:true,literal:true});},statements:function statements(){var statements=[];while(true) {if(this.tokens.length > 0 && !this.peek('}',')',';',']'))statements.push(this.filterChain());if(!this.expect(';')){return statements.length === 1?statements[0]:function $parseStatements(self,locals){var value;for(var i=0,ii=statements.length;i < ii;i++) {value = statements[i](self,locals);}return value;};}}},filterChain:function filterChain(){var left=this.expression();var token;while(token = this.expect('|')) {left = this.filter(left);}return left;},filter:function filter(inputFn){var fn=this.$filter(this.consume().text);var argsFn;var args;if(this.peek(':')){argsFn = [];args = [];while(this.expect(':')) {argsFn.push(this.expression());}}var inputs=[inputFn].concat(argsFn || []);return extend(function $parseFilter(self,locals){var input=inputFn(self,locals);if(args){args[0] = input;var i=argsFn.length;while(i--) {args[i + 1] = argsFn[i](self,locals);}return fn.apply(undefined,args);}return fn(input);},{constant:!fn.$stateful && inputs.every(isConstant),inputs:!fn.$stateful && inputs});},expression:function expression(){return this.assignment();},assignment:function assignment(){var left=this.ternary();var right;var token;if(token = this.expect('=')){if(!left.assign){this.throwError('implies assignment but [' + this.text.substring(0,token.index) + '] can not be assigned to',token);}right = this.ternary();return extend(function $parseAssignment(scope,locals){return left.assign(scope,right(scope,locals),locals);},{inputs:[left,right]});}return left;},ternary:function ternary(){var left=this.logicalOR();var middle;var token;if(token = this.expect('?')){middle = this.assignment();if(this.consume(':')){var right=this.assignment();return extend(function $parseTernary(self,locals){return left(self,locals)?middle(self,locals):right(self,locals);},{constant:left.constant && middle.constant && right.constant});}}return left;},logicalOR:function logicalOR(){var left=this.logicalAND();var token;while(token = this.expect('||')) {left = this.binaryFn(left,token.text,this.logicalAND(),true);}return left;},logicalAND:function logicalAND(){var left=this.equality();var token;while(token = this.expect('&&')) {left = this.binaryFn(left,token.text,this.equality(),true);}return left;},equality:function equality(){var left=this.relational();var token;while(token = this.expect('==','!=','===','!==')) {left = this.binaryFn(left,token.text,this.relational());}return left;},relational:function relational(){var left=this.additive();var token;while(token = this.expect('<','>','<=','>=')) {left = this.binaryFn(left,token.text,this.additive());}return left;},additive:function additive(){var left=this.multiplicative();var token;while(token = this.expect('+','-')) {left = this.binaryFn(left,token.text,this.multiplicative());}return left;},multiplicative:function multiplicative(){var left=this.unary();var token;while(token = this.expect('*','/','%')) {left = this.binaryFn(left,token.text,this.unary());}return left;},unary:function unary(){var token;if(this.expect('+')){return this.primary();}else if(token = this.expect('-')){return this.binaryFn(Parser.ZERO,token.text,this.unary());}else if(token = this.expect('!')){return this.unaryFn(token.text,this.unary());}else {return this.primary();}},fieldAccess:function fieldAccess(object){var getter=this.identifier();return extend(function $parseFieldAccess(scope,locals,self){var o=self || object(scope,locals);return o == null?undefined:getter(o);},{assign:function assign(scope,value,locals){var o=object(scope,locals);if(!o)object.assign(scope,o = {},locals);return getter.assign(o,value);}});},objectIndex:function objectIndex(obj){var expression=this.text;var indexFn=this.expression();this.consume(']');return extend(function $parseObjectIndex(self,locals){var o=obj(self,locals),i=indexFn(self,locals),v;ensureSafeMemberName(i,expression);if(!o)return undefined;v = ensureSafeObject(o[i],expression);return v;},{assign:function assign(self,value,locals){var key=ensureSafeMemberName(indexFn(self,locals),expression);var o=ensureSafeObject(obj(self,locals),expression);if(!o)obj.assign(self,o = {},locals);return o[key] = value;}});},functionCall:function functionCall(fnGetter,contextGetter){var argsFn=[];if(this.peekToken().text !== ')'){do {argsFn.push(this.expression());}while(this.expect(','));}this.consume(')');var expressionText=this.text;var args=argsFn.length?[]:null;return function $parseFunctionCall(scope,locals){var context=contextGetter?contextGetter(scope,locals):isDefined(contextGetter)?undefined:scope;var fn=fnGetter(scope,locals,context) || noop;if(args){var i=argsFn.length;while(i--) {args[i] = ensureSafeObject(argsFn[i](scope,locals),expressionText);}}ensureSafeObject(context,expressionText);ensureSafeFunction(fn,expressionText);var v=fn.apply?fn.apply(context,args):fn(args[0],args[1],args[2],args[3],args[4]);if(args){args.length = 0;}return ensureSafeObject(v,expressionText);};},arrayDeclaration:function arrayDeclaration(){var elementFns=[];if(this.peekToken().text !== ']'){do {if(this.peek(']')){break;}elementFns.push(this.expression());}while(this.expect(','));}this.consume(']');return extend(function $parseArrayLiteral(self,locals){var array=[];for(var i=0,ii=elementFns.length;i < ii;i++) {array.push(elementFns[i](self,locals));}return array;},{literal:true,constant:elementFns.every(isConstant),inputs:elementFns});},object:function object(){var keys=[],valueFns=[];if(this.peekToken().text !== '}'){do {if(this.peek('}')){break;}var token=this.consume();if(token.constant){keys.push(token.value);}else if(token.identifier){keys.push(token.text);}else {this.throwError('invalid key',token);}this.consume(':');valueFns.push(this.expression());}while(this.expect(','));}this.consume('}');return extend(function $parseObjectLiteral(self,locals){var object={};for(var i=0,ii=valueFns.length;i < ii;i++) {object[keys[i]] = valueFns[i](self,locals);}return object;},{literal:true,constant:valueFns.every(isConstant),inputs:valueFns});}};function setter(obj,locals,path,setValue,fullExp){ensureSafeObject(obj,fullExp);ensureSafeObject(locals,fullExp);var element=path.split('.'),key;for(var i=0;element.length > 1;i++) {key = ensureSafeMemberName(element.shift(),fullExp);var propertyObj=i === 0 && locals && locals[key] || obj[key];if(!propertyObj){propertyObj = {};obj[key] = propertyObj;}obj = ensureSafeObject(propertyObj,fullExp);}key = ensureSafeMemberName(element.shift(),fullExp);ensureSafeObject(obj[key],fullExp);obj[key] = setValue;return setValue;}var getterFnCacheDefault=createMap();var getterFnCacheExpensive=createMap();function isPossiblyDangerousMemberName(name){return name == 'constructor';}function cspSafeGetterFn(key0,key1,key2,key3,key4,fullExp,expensiveChecks){ensureSafeMemberName(key0,fullExp);ensureSafeMemberName(key1,fullExp);ensureSafeMemberName(key2,fullExp);ensureSafeMemberName(key3,fullExp);ensureSafeMemberName(key4,fullExp);var eso=function eso(o){return ensureSafeObject(o,fullExp);};var eso0=expensiveChecks || isPossiblyDangerousMemberName(key0)?eso:identity;var eso1=expensiveChecks || isPossiblyDangerousMemberName(key1)?eso:identity;var eso2=expensiveChecks || isPossiblyDangerousMemberName(key2)?eso:identity;var eso3=expensiveChecks || isPossiblyDangerousMemberName(key3)?eso:identity;var eso4=expensiveChecks || isPossiblyDangerousMemberName(key4)?eso:identity;return function cspSafeGetter(scope,locals){var pathVal=locals && locals.hasOwnProperty(key0)?locals:scope;if(pathVal == null)return pathVal;pathVal = eso0(pathVal[key0]);if(!key1)return pathVal;if(pathVal == null)return undefined;pathVal = eso1(pathVal[key1]);if(!key2)return pathVal;if(pathVal == null)return undefined;pathVal = eso2(pathVal[key2]);if(!key3)return pathVal;if(pathVal == null)return undefined;pathVal = eso3(pathVal[key3]);if(!key4)return pathVal;if(pathVal == null)return undefined;pathVal = eso4(pathVal[key4]);return pathVal;};}function getterFnWithEnsureSafeObject(fn,fullExpression){return function(s,l){return fn(s,l,ensureSafeObject,fullExpression);};}function getterFn(path,options,fullExp){var expensiveChecks=options.expensiveChecks;var getterFnCache=expensiveChecks?getterFnCacheExpensive:getterFnCacheDefault;var fn=getterFnCache[path];if(fn)return fn;var pathKeys=path.split('.'),pathKeysLength=pathKeys.length;if(options.csp){if(pathKeysLength < 6){fn = cspSafeGetterFn(pathKeys[0],pathKeys[1],pathKeys[2],pathKeys[3],pathKeys[4],fullExp,expensiveChecks);}else {fn = function cspSafeGetter(scope,locals){var i=0,val;do {val = cspSafeGetterFn(pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],fullExp,expensiveChecks)(scope,locals);locals = undefined;scope = val;}while(i < pathKeysLength);return val;};}}else {var code='';if(expensiveChecks){code += 's = eso(s, fe);\nl = eso(l, fe);\n';}var needsEnsureSafeObject=expensiveChecks;forEach(pathKeys,function(key,index){ensureSafeMemberName(key,fullExp);var lookupJs=(index?'s':'((l&&l.hasOwnProperty("' + key + '"))?l:s)') + '.' + key;if(expensiveChecks || isPossiblyDangerousMemberName(key)){lookupJs = 'eso(' + lookupJs + ', fe)';needsEnsureSafeObject = true;}code += 'if(s == null) return undefined;\n' + 's=' + lookupJs + ';\n';});code += 'return s;';var evaledFnGetter=new Function('s','l','eso','fe',code);evaledFnGetter.toString = valueFn(code);if(needsEnsureSafeObject){evaledFnGetter = getterFnWithEnsureSafeObject(evaledFnGetter,fullExp);}fn = evaledFnGetter;}fn.sharedGetter = true;fn.assign = function(self,value,locals){return setter(self,locals,path,value,path);};getterFnCache[path] = fn;return fn;}var objectValueOf=Object.prototype.valueOf;function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value);}function $ParseProvider(){var cacheDefault=createMap();var cacheExpensive=createMap();this.$get = ['$filter','$sniffer',function($filter,$sniffer){var $parseOptions={csp:$sniffer.csp,expensiveChecks:false},$parseOptionsExpensive={csp:$sniffer.csp,expensiveChecks:true};function wrapSharedExpression(exp){var wrapped=exp;if(exp.sharedGetter){wrapped = function $parseWrapper(self,locals){return exp(self,locals);};wrapped.literal = exp.literal;wrapped.constant = exp.constant;wrapped.assign = exp.assign;}return wrapped;}return function $parse(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case 'string':cacheKey = exp = exp.trim();var cache=expensiveChecks?cacheExpensive:cacheDefault;parsedExpression = cache[cacheKey];if(!parsedExpression){if(exp.charAt(0) === ':' && exp.charAt(1) === ':'){oneTime = true;exp = exp.substring(2);}var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions;var lexer=new Lexer(parseOptions);var parser=new Parser(lexer,$filter,parseOptions);parsedExpression = parser.parse(exp);if(parsedExpression.constant){parsedExpression.$$watchDelegate = constantWatchDelegate;}else if(oneTime){parsedExpression = wrapSharedExpression(parsedExpression);parsedExpression.$$watchDelegate = parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate;}else if(parsedExpression.inputs){parsedExpression.$$watchDelegate = inputsWatchDelegate;}cache[cacheKey] = parsedExpression;}return addInterceptor(parsedExpression,interceptorFn);case 'function':return addInterceptor(exp,interceptorFn);default:return addInterceptor(noop,interceptorFn);}};function collectExpressionInputs(inputs,list){for(var i=0,ii=inputs.length;i < ii;i++) {var input=inputs[i];if(!input.constant){if(input.inputs){collectExpressionInputs(input.inputs,list);}else if(list.indexOf(input) === -1){list.push(input);}}}return list;}function expressionInputDirtyCheck(newValue,oldValueOfValue){if(newValue == null || oldValueOfValue == null){return newValue === oldValueOfValue;}if(typeof newValue === 'object'){newValue = getValueOf(newValue);if(typeof newValue === 'object'){return false;}}return newValue === oldValueOfValue || newValue !== newValue && oldValueOfValue !== oldValueOfValue;}function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression){var inputExpressions=parsedExpression.$$inputs || (parsedExpression.$$inputs = collectExpressionInputs(parsedExpression.inputs,[]));var lastResult;if(inputExpressions.length === 1){var oldInputValue=expressionInputDirtyCheck;inputExpressions = inputExpressions[0];return scope.$watch(function expressionInputWatch(scope){var newInputValue=inputExpressions(scope);if(!expressionInputDirtyCheck(newInputValue,oldInputValue)){lastResult = parsedExpression(scope);oldInputValue = newInputValue && getValueOf(newInputValue);}return lastResult;},listener,objectEquality);}var oldInputValueOfValues=[];for(var i=0,ii=inputExpressions.length;i < ii;i++) {oldInputValueOfValues[i] = expressionInputDirtyCheck;}return scope.$watch(function expressionInputsWatch(scope){var changed=false;for(var i=0,ii=inputExpressions.length;i < ii;i++) {var newInputValue=inputExpressions[i](scope);if(changed || (changed = !expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i]))){oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue);}}if(changed){lastResult = parsedExpression(scope);}return lastResult;},listener,objectEquality);}function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.apply(this,arguments);}if(isDefined(value)){scope.$$postDigest(function(){if(isDefined(lastValue)){unwatch();}});}},objectEquality);}function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.call(this,value,old,scope);}if(isAllDefined(value)){scope.$$postDigest(function(){if(isAllDefined(lastValue))unwatch();});}},objectEquality);function isAllDefined(value){var allDefined=true;forEach(value,function(val){if(!isDefined(val))allDefined = false;});return allDefined;}}function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch = scope.$watch(function constantWatch(scope){return parsedExpression(scope);},function constantListener(value,old,scope){if(isFunction(listener)){listener.apply(this,arguments);}unwatch();},objectEquality);}function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate;var regularWatch=watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate;var fn=regularWatch?function regularInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);return interceptorFn(value,scope,locals);}:function oneTimeInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);var result=interceptorFn(value,scope,locals);return isDefined(value)?result:value;};if(parsedExpression.$$watchDelegate && parsedExpression.$$watchDelegate !== inputsWatchDelegate){fn.$$watchDelegate = parsedExpression.$$watchDelegate;}else if(!interceptorFn.$stateful){fn.$$watchDelegate = inputsWatchDelegate;fn.inputs = [parsedExpression];}return fn;}}];}function $QProvider(){this.$get = ['$rootScope','$exceptionHandler',function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback);},$exceptionHandler);}];}function $$QProvider(){this.$get = ['$browser','$exceptionHandler',function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback);},$exceptionHandler);}];}function qFactory(nextTick,exceptionHandler){var $qMinErr=minErr('$q',TypeError);function callOnce(self,resolveFn,rejectFn){var called=false;function wrap(fn){return function(value){if(called)return;called = true;fn.call(self,value);};}return [wrap(resolveFn),wrap(rejectFn)];}var defer=function defer(){return new Deferred();};function Promise(){this.$$state = {status:0};}Promise.prototype = {then:function then(onFulfilled,onRejected,progressBack){var result=new Deferred();this.$$state.pending = this.$$state.pending || [];this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]);if(this.$$state.status > 0)scheduleProcessQueue(this.$$state);return result.promise;},'catch':function _catch(callback){return this.then(null,callback);},'finally':function _finally(callback,progressBack){return this.then(function(value){return handleCallback(value,true,callback);},function(error){return handleCallback(error,false,callback);},progressBack);}};function simpleBind(context,fn){return function(value){fn.call(context,value);};}function processQueue(state){var fn,promise,pending;pending = state.pending;state.processScheduled = false;state.pending = undefined;for(var i=0,ii=pending.length;i < ii;++i) {promise = pending[i][0];fn = pending[i][state.status];try{if(isFunction(fn)){promise.resolve(fn(state.value));}else if(state.status === 1){promise.resolve(state.value);}else {promise.reject(state.value);}}catch(e) {promise.reject(e);exceptionHandler(e);}}}function scheduleProcessQueue(state){if(state.processScheduled || !state.pending)return;state.processScheduled = true;nextTick(function(){processQueue(state);});}function Deferred(){this.promise = new Promise();this.resolve = simpleBind(this,this.resolve);this.reject = simpleBind(this,this.reject);this.notify = simpleBind(this,this.notify);}Deferred.prototype = {resolve:function resolve(val){if(this.promise.$$state.status)return;if(val === this.promise){this.$$reject($qMinErr('qcycle','Expected promise to be resolved with value other than itself \'{0}\'',val));}else {this.$$resolve(val);}},$$resolve:function $$resolve(val){var then,fns;fns = callOnce(this,this.$$resolve,this.$$reject);try{if(isObject(val) || isFunction(val))then = val && val.then;if(isFunction(then)){this.promise.$$state.status = -1;then.call(val,fns[0],fns[1],this.notify);}else {this.promise.$$state.value = val;this.promise.$$state.status = 1;scheduleProcessQueue(this.promise.$$state);}}catch(e) {fns[1](e);exceptionHandler(e);}},reject:function reject(reason){if(this.promise.$$state.status)return;this.$$reject(reason);},$$reject:function $$reject(reason){this.promise.$$state.value = reason;this.promise.$$state.status = 2;scheduleProcessQueue(this.promise.$$state);},notify:function notify(progress){var callbacks=this.promise.$$state.pending;if(this.promise.$$state.status <= 0 && callbacks && callbacks.length){nextTick(function(){var callback,result;for(var i=0,ii=callbacks.length;i < ii;i++) {result = callbacks[i][0];callback = callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress);}catch(e) {exceptionHandler(e);}}});}}};var reject=function reject(reason){var result=new Deferred();result.reject(reason);return result.promise;};var makePromise=function makePromise(value,resolved){var result=new Deferred();if(resolved){result.resolve(value);}else {result.reject(value);}return result.promise;};var handleCallback=function handleCallback(value,isResolved,callback){var callbackOutput=null;try{if(isFunction(callback))callbackOutput = callback();}catch(e) {return makePromise(e,false);}if(isPromiseLike(callbackOutput)){return callbackOutput.then(function(){return makePromise(value,isResolved);},function(error){return makePromise(error,false);});}else {return makePromise(value,isResolved);}};var when=function when(value,callback,errback,progressBack){var result=new Deferred();result.resolve(value);return result.promise.then(callback,errback,progressBack);};function all(promises){var deferred=new Deferred(),counter=0,results=isArray(promises)?[]:{};forEach(promises,function(promise,key){counter++;when(promise).then(function(value){if(results.hasOwnProperty(key))return;results[key] = value;if(! --counter)deferred.resolve(results);},function(reason){if(results.hasOwnProperty(key))return;deferred.reject(reason);});});if(counter === 0){deferred.resolve(results);}return deferred.promise;}var $Q=function Q(resolver){if(!isFunction(resolver)){throw $qMinErr('norslvr','Expected resolverFn, got \'{0}\'',resolver);}if(!(this instanceof Q)){return new Q(resolver);}var deferred=new Deferred();function resolveFn(value){deferred.resolve(value);}function rejectFn(reason){deferred.reject(reason);}resolver(resolveFn,rejectFn);return deferred.promise;};$Q.defer = defer;$Q.reject = reject;$Q.when = when;$Q.all = all;return $Q;}function $$RAFProvider(){this.$get = ['$window','$timeout',function($window,$timeout){var requestAnimationFrame=$window.requestAnimationFrame || $window.webkitRequestAnimationFrame;var cancelAnimationFrame=$window.cancelAnimationFrame || $window.webkitCancelAnimationFrame || $window.webkitCancelRequestAnimationFrame;var rafSupported=!!requestAnimationFrame;var raf=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id);};}:function(fn){var timer=$timeout(fn,16.66,false);return function(){$timeout.cancel(timer);};};raf.supported = rafSupported;return raf;}];}function $RootScopeProvider(){var TTL=10;var $rootScopeMinErr=minErr('$rootScope');var lastDirtyWatch=null;var applyAsyncId=null;this.digestTtl = function(value){if(arguments.length){TTL = value;}return TTL;};function createChildScopeClass(parent){function ChildScope(){this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null;this.$$listeners = {};this.$$listenerCount = {};this.$$watchersCount = 0;this.$id = nextUid();this.$$ChildScope = null;}ChildScope.prototype = parent;return ChildScope;}this.$get = ['$injector','$exceptionHandler','$parse','$browser',function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed = true;}function Scope(){this.$id = nextUid();this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;this.$root = this;this.$$destroyed = false;this.$$listeners = {};this.$$listenerCount = {};this.$$isolateBindings = null;}Scope.prototype = {constructor:Scope,$new:function $new(isolate,parent){var child;parent = parent || this;if(isolate){child = new Scope();child.$root = this.$root;}else {if(!this.$$ChildScope){this.$$ChildScope = createChildScopeClass(this);}child = new this.$$ChildScope();}child.$parent = parent;child.$$prevSibling = parent.$$childTail;if(parent.$$childHead){parent.$$childTail.$$nextSibling = child;parent.$$childTail = child;}else {parent.$$childHead = parent.$$childTail = child;}if(isolate || parent != this)child.$on('$destroy',destroyChildScope);return child;},$watch:function $watch(watchExp,listener,objectEquality){var get=$parse(watchExp);if(get.$$watchDelegate){return get.$$watchDelegate(this,listener,objectEquality,get);}var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:watchExp,eq:!!objectEquality};lastDirtyWatch = null;if(!isFunction(listener)){watcher.fn = noop;}if(!array){array = scope.$$watchers = [];}array.unshift(watcher);return function deregisterWatch(){arrayRemove(array,watcher);lastDirtyWatch = null;};},$watchGroup:function $watchGroup(watchExpressions,listener){var oldValues=new Array(watchExpressions.length);var newValues=new Array(watchExpressions.length);var deregisterFns=[];var self=this;var changeReactionScheduled=false;var firstRun=true;if(!watchExpressions.length){var shouldCall=true;self.$evalAsync(function(){if(shouldCall)listener(newValues,newValues,self);});return function deregisterWatchGroup(){shouldCall = false;};}if(watchExpressions.length === 1){return this.$watch(watchExpressions[0],function watchGroupAction(value,oldValue,scope){newValues[0] = value;oldValues[0] = oldValue;listener(newValues,value === oldValue?newValues:oldValues,scope);});}forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function watchGroupSubAction(value,oldValue){newValues[i] = value;oldValues[i] = oldValue;if(!changeReactionScheduled){changeReactionScheduled = true;self.$evalAsync(watchGroupAction);}});deregisterFns.push(unwatchFn);});function watchGroupAction(){changeReactionScheduled = false;if(firstRun){firstRun = false;listener(newValues,newValues,self);}else {listener(newValues,oldValues,self);}}return function deregisterWatchGroup(){while(deregisterFns.length) {deregisterFns.shift()();}};},$watchCollection:function $watchCollection(obj,listener){$watchCollectionInterceptor.$stateful = true;var self=this;var newValue;var oldValue;var veryOldValue;var trackVeryOldValue=listener.length > 1;var changeDetected=0;var changeDetector=$parse(obj,$watchCollectionInterceptor);var internalArray=[];var internalObject={};var initRun=true;var oldLength=0;function $watchCollectionInterceptor(_value){newValue = _value;var newLength,key,bothNaN,newItem,oldItem;if(isUndefined(newValue))return;if(!isObject(newValue)){if(oldValue !== newValue){oldValue = newValue;changeDetected++;}}else if(isArrayLike(newValue)){if(oldValue !== internalArray){oldValue = internalArray;oldLength = oldValue.length = 0;changeDetected++;}newLength = newValue.length;if(oldLength !== newLength){changeDetected++;oldValue.length = oldLength = newLength;}for(var i=0;i < newLength;i++) {oldItem = oldValue[i];newItem = newValue[i];bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[i] = newItem;}}}else {if(oldValue !== internalObject){oldValue = internalObject = {};oldLength = 0;changeDetected++;}newLength = 0;for(key in newValue) {if(newValue.hasOwnProperty(key)){newLength++;newItem = newValue[key];oldItem = oldValue[key];if(key in oldValue){bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[key] = newItem;}}else {oldLength++;oldValue[key] = newItem;changeDetected++;}}}if(oldLength > newLength){changeDetected++;for(key in oldValue) {if(!newValue.hasOwnProperty(key)){oldLength--;delete oldValue[key];}}}}return changeDetected;}function $watchCollectionAction(){if(initRun){initRun = false;listener(newValue,newValue,self);}else {listener(newValue,veryOldValue,self);}if(trackVeryOldValue){if(!isObject(newValue)){veryOldValue = newValue;}else if(isArrayLike(newValue)){veryOldValue = new Array(newValue.length);for(var i=0;i < newValue.length;i++) {veryOldValue[i] = newValue[i];}}else {veryOldValue = {};for(var key in newValue) {if(hasOwnProperty.call(newValue,key)){veryOldValue[key] = newValue[key];}}}}}return this.$watch(changeDetector,$watchCollectionAction);},$digest:function $digest(){var watch,value,last,watchers,length,dirty,ttl=TTL,next,current,target=this,watchLog=[],logIdx,logMsg,asyncTask;beginPhase('$digest');$browser.$$checkUrlChange();if(this === $rootScope && applyAsyncId !== null){$browser.defer.cancel(applyAsyncId);flushApplyAsync();}lastDirtyWatch = null;do {dirty = false;current = target;while(asyncQueue.length) {try{asyncTask = asyncQueue.shift();asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals);}catch(e) {$exceptionHandler(e);}lastDirtyWatch = null;}traverseScopesLoop: do {if(watchers = current.$$watchers){length = watchers.length;while(length--) {try{watch = watchers[length];if(watch){if((value = watch.get(current)) !== (last = watch.last) && !(watch.eq?equals(value,last):typeof value === 'number' && typeof last === 'number' && isNaN(value) && isNaN(last))){dirty = true;lastDirtyWatch = watch;watch.last = watch.eq?copy(value,null):value;watch.fn(value,last === initWatchVal?value:last,current);if(ttl < 5){logIdx = 4 - ttl;if(!watchLog[logIdx])watchLog[logIdx] = [];watchLog[logIdx].push({msg:isFunction(watch.exp)?'fn: ' + (watch.exp.name || watch.exp.toString()):watch.exp,newVal:value,oldVal:last});}}else if(watch === lastDirtyWatch){dirty = false;break traverseScopesLoop;}}}catch(e) {$exceptionHandler(e);}}}if(!(next = current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}while(current = next);if((dirty || asyncQueue.length) && ! ttl--){clearPhase();throw $rootScopeMinErr('infdig','{0} $digest() iterations reached. Aborting!\n' + 'Watchers fired in the last 5 iterations: {1}',TTL,watchLog);}}while(dirty || asyncQueue.length);clearPhase();while(postDigestQueue.length) {try{postDigestQueue.shift()();}catch(e) {$exceptionHandler(e);}}},$destroy:function $destroy(){if(this.$$destroyed)return;var parent=this.$parent;this.$broadcast('$destroy');this.$$destroyed = true;if(this === $rootScope)return;for(var eventName in this.$$listenerCount) {decrementListenerCount(this,this.$$listenerCount[eventName],eventName);}if(parent.$$childHead == this)parent.$$childHead = this.$$nextSibling;if(parent.$$childTail == this)parent.$$childTail = this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling = this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling = this.$$prevSibling;this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop;this.$on = this.$watch = this.$watchGroup = function(){return noop;};this.$$listeners = {};this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = this.$root = this.$$watchers = null;},$eval:function $eval(expr,locals){return $parse(expr)(this,locals);},$evalAsync:function $evalAsync(expr,locals){if(!$rootScope.$$phase && !asyncQueue.length){$browser.defer(function(){if(asyncQueue.length){$rootScope.$digest();}});}asyncQueue.push({scope:this,expression:expr,locals:locals});},$$postDigest:function $$postDigest(fn){postDigestQueue.push(fn);},$apply:function $apply(expr){try{beginPhase('$apply');return this.$eval(expr);}catch(e) {$exceptionHandler(e);}finally {clearPhase();try{$rootScope.$digest();}catch(e) {$exceptionHandler(e);throw e;}}},$applyAsync:function $applyAsync(expr){var scope=this;expr && applyAsyncQueue.push($applyAsyncExpression);scheduleApplyAsync();function $applyAsyncExpression(){scope.$eval(expr);}},$on:function $on(name,listener){var namedListeners=this.$$listeners[name];if(!namedListeners){this.$$listeners[name] = namedListeners = [];}namedListeners.push(listener);var current=this;do {if(!current.$$listenerCount[name]){current.$$listenerCount[name] = 0;}current.$$listenerCount[name]++;}while(current = current.$parent);var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);if(indexOfListener !== -1){namedListeners[indexOfListener] = null;decrementListenerCount(self,1,name);}};},$emit:function $emit(name,args){var empty=[],namedListeners,scope=this,_stopPropagation=false,event={name:name,targetScope:scope,stopPropagation:function stopPropagation(){_stopPropagation = true;},preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false},listenerArgs=concat([event],arguments,1),i,length;do {namedListeners = scope.$$listeners[name] || empty;event.currentScope = scope;for(i = 0,length = namedListeners.length;i < length;i++) {if(!namedListeners[i]){namedListeners.splice(i,1);i--;length--;continue;}try{namedListeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(_stopPropagation){event.currentScope = null;return event;}scope = scope.$parent;}while(scope);event.currentScope = null;return event;},$broadcast:function $broadcast(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false};if(!target.$$listenerCount[name])return event;var listenerArgs=concat([event],arguments,1),listeners,i,length;while(current = next) {event.currentScope = current;listeners = current.$$listeners[name] || [];for(i = 0,length = listeners.length;i < length;i++) {if(!listeners[i]){listeners.splice(i,1);i--;length--;continue;}try{listeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(!(next = current.$$listenerCount[name] && current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}event.currentScope = null;return event;}};var $rootScope=new Scope();var asyncQueue=$rootScope.$$asyncQueue = [];var postDigestQueue=$rootScope.$$postDigestQueue = [];var applyAsyncQueue=$rootScope.$$applyAsyncQueue = [];return $rootScope;function beginPhase(phase){if($rootScope.$$phase){throw $rootScopeMinErr('inprog','{0} already in progress',$rootScope.$$phase);}$rootScope.$$phase = phase;}function clearPhase(){$rootScope.$$phase = null;}function decrementListenerCount(current,count,name){do {current.$$listenerCount[name] -= count;if(current.$$listenerCount[name] === 0){delete current.$$listenerCount[name];}}while(current = current.$parent);}function initWatchVal(){}function flushApplyAsync(){while(applyAsyncQueue.length) {try{applyAsyncQueue.shift()();}catch(e) {$exceptionHandler(e);}}applyAsyncId = null;}function scheduleApplyAsync(){if(applyAsyncId === null){applyAsyncId = $browser.defer(function(){$rootScope.$apply(flushApplyAsync);});}}}];}function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){aHrefSanitizationWhitelist = regexp;return this;}return aHrefSanitizationWhitelist;};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){imgSrcSanitizationWhitelist = regexp;return this;}return imgSrcSanitizationWhitelist;};this.$get = function(){return function sanitizeUri(uri,isImage){var regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;var normalizedVal;normalizedVal = urlResolve(uri).href;if(normalizedVal !== '' && !normalizedVal.match(regex)){return 'unsafe:' + normalizedVal;}return uri;};};}var $sceMinErr=minErr('$sce');var SCE_CONTEXTS={HTML:'html',CSS:'css',URL:'url',RESOURCE_URL:'resourceUrl',JS:'js'};function adjustMatcher(matcher){if(matcher === 'self'){return matcher;}else if(isString(matcher)){if(matcher.indexOf('***') > -1){throw $sceMinErr('iwcard','Illegal sequence *** in string matcher. String: {0}',matcher);}matcher = escapeForRegexp(matcher).replace('\\*\\*','.*').replace('\\*','[^:/.?&;]*');return new RegExp('^' + matcher + '$');}else if(isRegExp(matcher)){return new RegExp('^' + matcher.source + '$');}else {throw $sceMinErr('imatcher','Matchers may only be "self", string patterns or RegExp objects');}}function adjustMatchers(matchers){var adjustedMatchers=[];if(isDefined(matchers)){forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher));});}return adjustedMatchers;}function $SceDelegateProvider(){this.SCE_CONTEXTS = SCE_CONTEXTS;var resourceUrlWhitelist=['self'],resourceUrlBlacklist=[];this.resourceUrlWhitelist = function(value){if(arguments.length){resourceUrlWhitelist = adjustMatchers(value);}return resourceUrlWhitelist;};this.resourceUrlBlacklist = function(value){if(arguments.length){resourceUrlBlacklist = adjustMatchers(value);}return resourceUrlBlacklist;};this.$get = ['$injector',function($injector){var htmlSanitizer=function htmlSanitizer(html){throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');};if($injector.has('$sanitize')){htmlSanitizer = $injector.get('$sanitize');}function matchUrl(matcher,parsedUrl){if(matcher === 'self'){return urlIsSameOrigin(parsedUrl);}else {return !!matcher.exec(parsedUrl.href);}}function isResourceUrlAllowedByPolicy(url){var parsedUrl=urlResolve(url.toString());var i,n,allowed=false;for(i = 0,n = resourceUrlWhitelist.length;i < n;i++) {if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed = true;break;}}if(allowed){for(i = 0,n = resourceUrlBlacklist.length;i < n;i++) {if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed = false;break;}}}return allowed;}function generateHolderType(Base){var holderType=function TrustedValueHolderType(trustedValue){this.$$unwrapTrustedValue = function(){return trustedValue;};};if(Base){holderType.prototype = new Base();}holderType.prototype.valueOf = function sceValueOf(){return this.$$unwrapTrustedValue();};holderType.prototype.toString = function sceToString(){return this.$$unwrapTrustedValue().toString();};return holderType;}var trustedValueHolderBase=generateHolderType(),byType={};byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]);function trustAs(type,trustedValue){var Constructor=byType.hasOwnProperty(type)?byType[type]:null;if(!Constructor){throw $sceMinErr('icontext','Attempted to trust a value in invalid context. Context: {0}; Value: {1}',type,trustedValue);}if(trustedValue === null || trustedValue === undefined || trustedValue === ''){return trustedValue;}if(typeof trustedValue !== 'string'){throw $sceMinErr('itype','Attempted to trust a non-string value in a content requiring a string: Context: {0}',type);}return new Constructor(trustedValue);}function valueOf(maybeTrusted){if(maybeTrusted instanceof trustedValueHolderBase){return maybeTrusted.$$unwrapTrustedValue();}else {return maybeTrusted;}}function getTrusted(type,maybeTrusted){if(maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === ''){return maybeTrusted;}var constructor=byType.hasOwnProperty(type)?byType[type]:null;if(constructor && maybeTrusted instanceof constructor){return maybeTrusted.$$unwrapTrustedValue();}if(type === SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted)){return maybeTrusted;}else {throw $sceMinErr('insecurl','Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}',maybeTrusted.toString());}}else if(type === SCE_CONTEXTS.HTML){return htmlSanitizer(maybeTrusted);}throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');}return {trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf};}];}function $SceProvider(){var enabled=true;this.enabled = function(value){if(arguments.length){enabled = !!value;}return enabled;};this.$get = ['$parse','$sceDelegate',function($parse,$sceDelegate){if(enabled && msie < 8){throw $sceMinErr('iequirks','Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + 'mode. You can fix this by adding the text <!doctype html> to the top of your HTML ' + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.');}var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled = function(){return enabled;};sce.trustAs = $sceDelegate.trustAs;sce.getTrusted = $sceDelegate.getTrusted;sce.valueOf = $sceDelegate.valueOf;if(!enabled){sce.trustAs = sce.getTrusted = function(type,value){return value;};sce.valueOf = identity;}sce.parseAs = function sceParseAs(type,expr){var parsed=$parse(expr);if(parsed.literal && parsed.constant){return parsed;}else {return $parse(expr,function(value){return sce.getTrusted(type,value);});}};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase('parse_as_' + lName)] = function(expr){return parse(enumValue,expr);};sce[camelCase('get_trusted_' + lName)] = function(value){return getTrusted(enumValue,value);};sce[camelCase('trust_as_' + lName)] = function(value){return trustAs(enumValue,value);};});return sce;}];}function $SnifferProvider(){this.$get = ['$window','$document',function($window,$document){var eventSupport={},android=int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]),boxee=/Boxee/i.test(($window.navigator || {}).userAgent),document=$document[0] || {},vendorPrefix,vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body && document.body.style,transitions=false,animations=false,match;if(bodyStyle){for(var prop in bodyStyle) {if(match = vendorRegex.exec(prop)){vendorPrefix = match[0];vendorPrefix = vendorPrefix.substr(0,1).toUpperCase() + vendorPrefix.substr(1);break;}}if(!vendorPrefix){vendorPrefix = 'WebkitOpacity' in bodyStyle && 'webkit';}transitions = !!('transition' in bodyStyle || vendorPrefix + 'Transition' in bodyStyle);animations = !!('animation' in bodyStyle || vendorPrefix + 'Animation' in bodyStyle);if(android && (!transitions || !animations)){transitions = isString(document.body.style.webkitTransition);animations = isString(document.body.style.webkitAnimation);}}return {history:!!($window.history && $window.history.pushState && !(android < 4) && !boxee),hasEvent:function hasEvent(event){if(event === 'input' && msie <= 11)return false;if(isUndefined(eventSupport[event])){var divElm=document.createElement('div');eventSupport[event] = 'on' + event in divElm;}return eventSupport[event];},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android};}];}var $compileMinErr=minErr('$compile');function $TemplateRequestProvider(){this.$get = ['$templateCache','$http','$q',function($templateCache,$http,$q){function handleRequestFn(tpl,ignoreRequestError){handleRequestFn.totalPendingRequests++;var transformResponse=$http.defaults && $http.defaults.transformResponse;if(isArray(transformResponse)){transformResponse = transformResponse.filter(function(transformer){return transformer !== defaultHttpResponseTransform;});}else if(transformResponse === defaultHttpResponseTransform){transformResponse = null;}var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)['finally'](function(){handleRequestFn.totalPendingRequests--;}).then(function(response){return response.data;},handleError);function handleError(resp){if(!ignoreRequestError){throw $compileMinErr('tpload','Failed to load template: {0}',tpl);}return $q.reject(resp);}}handleRequestFn.totalPendingRequests = 0;return handleRequestFn;}];}function $$TestabilityProvider(){this.$get = ['$rootScope','$browser','$location',function($rootScope,$browser,$location){var testability={};testability.findBindings = function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName('ng-binding');var matches=[];forEach(bindings,function(binding){var dataBinding=angular.element(binding).data('$binding');if(dataBinding){forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)');if(matcher.test(bindingName)){matches.push(binding);}}else {if(bindingName.indexOf(expression) != -1){matches.push(binding);}}});}});return matches;};testability.findModels = function(element,expression,opt_exactMatch){var prefixes=['ng-','data-ng-','ng\\:'];for(var p=0;p < prefixes.length;++p) {var attributeEquals=opt_exactMatch?'=':'*=';var selector='[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]';var elements=element.querySelectorAll(selector);if(elements.length){return elements;}}};testability.getLocation = function(){return $location.url();};testability.setLocation = function(url){if(url !== $location.url()){$location.url(url);$rootScope.$digest();}};testability.whenStable = function(callback){$browser.notifyWhenNoOutstandingRequests(callback);};return testability;}];}function $TimeoutProvider(){this.$get = ['$rootScope','$browser','$q','$$q','$exceptionHandler',function($rootScope,$browser,$q,$$q,$exceptionHandler){var deferreds={};function timeout(fn,delay,invokeApply){var skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise,timeoutId;timeoutId = $browser.defer(function(){try{deferred.resolve(fn());}catch(e) {deferred.reject(e);$exceptionHandler(e);}finally {delete deferreds[promise.$$timeoutId];}if(!skipApply)$rootScope.$apply();},delay);promise.$$timeoutId = timeoutId;deferreds[timeoutId] = deferred;return promise;}timeout.cancel = function(promise){if(promise && promise.$$timeoutId in deferreds){deferreds[promise.$$timeoutId].reject('canceled');delete deferreds[promise.$$timeoutId];return $browser.defer.cancel(promise.$$timeoutId);}return false;};return timeout;}];}var urlParsingNode=document.createElement('a');var originUrl=urlResolve(window.location.href);function urlResolve(url){var href=url;if(msie){urlParsingNode.setAttribute('href',href);href = urlParsingNode.href;}urlParsingNode.setAttribute('href',href);return {href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,''):'',host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,''):'',hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,''):'',hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:urlParsingNode.pathname.charAt(0) === '/'?urlParsingNode.pathname:'/' + urlParsingNode.pathname};}function urlIsSameOrigin(requestUrl){var parsed=isString(requestUrl)?urlResolve(requestUrl):requestUrl;return parsed.protocol === originUrl.protocol && parsed.host === originUrl.host;}function $WindowProvider(){this.$get = valueFn(window);}$FilterProvider.$inject = ['$provide'];function $FilterProvider($provide){var suffix='Filter';function register(name,factory){if(isObject(name)){var filters={};forEach(name,function(filter,key){filters[key] = register(key,filter);});return filters;}else {return $provide.factory(name + suffix,factory);}}this.register = register;this.$get = ['$injector',function($injector){return function(name){return $injector.get(name + suffix);};}];register('currency',currencyFilter);register('date',dateFilter);register('filter',filterFilter);register('json',jsonFilter);register('limitTo',limitToFilter);register('lowercase',lowercaseFilter);register('number',numberFilter);register('orderBy',orderByFilter);register('uppercase',uppercaseFilter);}function filterFilter(){return function(array,expression,comparator){if(!isArray(array))return array;var predicateFn;var matchAgainstAnyProp;switch(typeof expression){case 'function':predicateFn = expression;break;case 'boolean':case 'number':case 'string':matchAgainstAnyProp = true;case 'object':predicateFn = createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array;}return array.filter(predicateFn);};}function createPredicateFn(expression,comparator,matchAgainstAnyProp){var shouldMatchPrimitives=isObject(expression) && '$' in expression;var predicateFn;if(comparator === true){comparator = equals;}else if(!isFunction(comparator)){comparator = function(actual,expected){if(isObject(actual) || isObject(expected)){return false;}actual = lowercase('' + actual);expected = lowercase('' + expected);return actual.indexOf(expected) !== -1;};}predicateFn = function(item){if(shouldMatchPrimitives && !isObject(item)){return deepCompare(item,expression.$,comparator,false);}return deepCompare(item,expression,comparator,matchAgainstAnyProp);};return predicateFn;}function deepCompare(_x3,_x4,_x5,_x6,_x7){var _again2=true;_function2: while(_again2) {var actual=_x3,expected=_x4,comparator=_x5,matchAgainstAnyProp=_x6,dontMatchWholeObject=_x7;actualType = expectedType = key = expectedVal = matchAnyProperty = actualVal = undefined;_again2 = false;var actualType=actual !== null?typeof actual:'null';var expectedType=expected !== null?typeof expected:'null';if(expectedType === 'string' && expected.charAt(0) === '!'){return !deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);}else if(isArray(actual)){return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp);});}switch(actualType){case 'object':var key;if(matchAgainstAnyProp){for(key in actual) {if(key.charAt(0) !== '$' && deepCompare(actual[key],expected,comparator,true)){return true;}}if(dontMatchWholeObject){return false;}else {_x3 = actual;_x4 = expected;_x5 = comparator;_x6 = false;_again2 = true;continue _function2;}}else if(expectedType === 'object'){for(key in expected) {var expectedVal=expected[key];if(isFunction(expectedVal) || isUndefined(expectedVal)){continue;}var matchAnyProperty=key === '$';var actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty)){return false;}}return true;}else {return comparator(actual,expected);}break;case 'function':return false;default:return comparator(actual,expected);}}}currencyFilter.$inject = ['$locale'];function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){if(isUndefined(currencySymbol)){currencySymbol = formats.CURRENCY_SYM;}if(isUndefined(fractionSize)){fractionSize = formats.PATTERNS[1].maxFrac;}return amount == null?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol);};}numberFilter.$inject = ['$locale'];function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return number == null?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize);};}var DECIMAL_SEP='.';function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(!isFinite(number) || isObject(number))return '';var isNegative=number < 0;number = Math.abs(number);var numStr=number + '',formatedText='',parts=[];var hasExponent=false;if(numStr.indexOf('e') !== -1){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);if(match && match[2] == '-' && match[3] > fractionSize + 1){number = 0;}else {formatedText = numStr;hasExponent = true;}}if(!hasExponent){var fractionLen=(numStr.split(DECIMAL_SEP)[1] || '').length;if(isUndefined(fractionSize)){fractionSize = Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac);}number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);var fraction=('' + number).split(DECIMAL_SEP);var whole=fraction[0];fraction = fraction[1] || '';var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length >= lgroup + group){pos = whole.length - lgroup;for(i = 0;i < pos;i++) {if((pos - i) % group === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}}for(i = pos;i < whole.length;i++) {if((whole.length - i) % lgroup === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}while(fraction.length < fractionSize) {fraction += '0';}if(fractionSize && fractionSize !== '0')formatedText += decimalSep + fraction.substr(0,fractionSize);}else {if(fractionSize > 0 && number < 1){formatedText = number.toFixed(fractionSize);number = parseFloat(formatedText);}}if(number === 0){isNegative = false;}parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf);return parts.join('');}function padNumber(num,digits,trim){var neg='';if(num < 0){neg = '-';num = -num;}num = '' + num;while(num.length < digits) num = '0' + num;if(trim)num = num.substr(num.length - digits);return neg + num;}function dateGetter(name,size,offset,trim){offset = offset || 0;return function(date){var value=date['get' + name]();if(offset > 0 || value > -offset)value += offset;if(value === 0 && offset == -12)value = 12;return padNumber(value,size,trim);};}function dateStrGetter(name,shortForm){return function(date,formats){var value=date['get' + name]();var get=uppercase(shortForm?'SHORT' + name:name);return formats[get][value];};}function timeZoneGetter(date){var zone=-1 * date.getTimezoneOffset();var paddedZone=zone >= 0?'+':'';paddedZone += padNumber(Math[zone > 0?'floor':'ceil'](zone / 60),2) + padNumber(Math.abs(zone % 60),2);return paddedZone;}function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=new Date(year,0,1).getDay();return new Date(year,0,(dayOfWeekOnFirst <= 4?5:12) - dayOfWeekOnFirst);}function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate() + (4 - datetime.getDay()));}function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date);var diff=+thisThurs - +firstThurs,result=1 + Math.round(diff / 6.048e8);return padNumber(result,size);};}function ampmGetter(date,formats){return date.getHours() < 12?formats.AMPMS[0]:formats.AMPMS[1];}function eraGetter(date,formats){return date.getFullYear() <= 0?formats.ERAS[0]:formats.ERAS[1];}function longEraGetter(date,formats){return date.getFullYear() <= 0?formats.ERANAMES[0]:formats.ERANAMES[1];}var DATE_FORMATS={yyyy:dateGetter('FullYear',4),yy:dateGetter('FullYear',2,0,true),y:dateGetter('FullYear',1),MMMM:dateStrGetter('Month'),MMM:dateStrGetter('Month',true),MM:dateGetter('Month',2,1),M:dateGetter('Month',1,1),dd:dateGetter('Date',2),d:dateGetter('Date',1),HH:dateGetter('Hours',2),H:dateGetter('Hours',1),hh:dateGetter('Hours',2,-12),h:dateGetter('Hours',1,-12),mm:dateGetter('Minutes',2),m:dateGetter('Minutes',1),ss:dateGetter('Seconds',2),s:dateGetter('Seconds',1),sss:dateGetter('Milliseconds',3),EEEE:dateStrGetter('Day'),EEE:dateStrGetter('Day',true),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter};var DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject = ['$locale'];function dateFilter($locale){var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function jsonStringToDate(string){var match;if(match = string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;if(match[9]){tzHour = int(match[9] + match[10]);tzMin = int(match[9] + match[11]);}dateSetter.call(date,int(match[1]),int(match[2]) - 1,int(match[3]));var h=int(match[4] || 0) - tzHour;var m=int(match[5] || 0) - tzMin;var s=int(match[6] || 0);var ms=Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);timeSetter.call(date,h,m,s,ms);return date;}return string;}return function(date,format,timezone){var text='',parts=[],fn,match;format = format || 'mediumDate';format = $locale.DATETIME_FORMATS[format] || format;if(isString(date)){date = NUMBER_STRING.test(date)?int(date):jsonStringToDate(date);}if(isNumber(date)){date = new Date(date);}if(!isDate(date)){return date;}while(format) {match = DATE_FORMATS_SPLIT.exec(format);if(match){parts = concat(parts,match,1);format = parts.pop();}else {parts.push(format);format = null;}}if(timezone && timezone === 'UTC'){date = new Date(date.getTime());date.setMinutes(date.getMinutes() + date.getTimezoneOffset());}forEach(parts,function(value){fn = DATE_FORMATS[value];text += fn?fn(date,$locale.DATETIME_FORMATS):value.replace(/(^'|'$)/g,'').replace(/''/g,'\'');});return text;};}function jsonFilter(){return function(object,spacing){if(isUndefined(spacing)){spacing = 2;}return toJson(object,spacing);};}var lowercaseFilter=valueFn(lowercase);var uppercaseFilter=valueFn(uppercase);function limitToFilter(){return function(input,limit){if(isNumber(input))input = input.toString();if(!isArray(input) && !isString(input))return input;if(Math.abs(Number(limit)) === Infinity){limit = Number(limit);}else {limit = int(limit);}if(limit){return limit > 0?input.slice(0,limit):input.slice(limit);}else {return isString(input)?'':[];}};}orderByFilter.$inject = ['$parse'];function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){if(!isArrayLike(array))return array;sortPredicate = isArray(sortPredicate)?sortPredicate:[sortPredicate];if(sortPredicate.length === 0){sortPredicate = ['+'];}sortPredicate = sortPredicate.map(function(predicate){var descending=false,get=predicate || identity;if(isString(predicate)){if(predicate.charAt(0) == '+' || predicate.charAt(0) == '-'){descending = predicate.charAt(0) == '-';predicate = predicate.substring(1);}if(predicate === ''){return reverseComparator(compare,descending);}get = $parse(predicate);if(get.constant){var key=get();return reverseComparator(function(a,b){return compare(a[key],b[key]);},descending);}}return reverseComparator(function(a,b){return compare(get(a),get(b));},descending);});return slice.call(array).sort(reverseComparator(comparator,reverseOrder));function comparator(o1,o2){for(var i=0;i < sortPredicate.length;i++) {var comp=sortPredicate[i](o1,o2);if(comp !== 0)return comp;}return 0;}function reverseComparator(comp,descending){return descending?function(a,b){return comp(b,a);}:comp;}function isPrimitive(value){switch(typeof value){case 'number':case 'boolean':case 'string':return true;default:return false;}}function objectToString(value){if(value === null)return 'null';if(typeof value.valueOf === 'function'){value = value.valueOf();if(isPrimitive(value))return value;}if(typeof value.toString === 'function'){value = value.toString();if(isPrimitive(value))return value;}return '';}function compare(v1,v2){var t1=typeof v1;var t2=typeof v2;if(t1 === t2 && t1 === 'object'){v1 = objectToString(v1);v2 = objectToString(v2);}if(t1 === t2){if(t1 === 'string'){v1 = v1.toLowerCase();v2 = v2.toLowerCase();}if(v1 === v2)return 0;return v1 < v2?-1:1;}else {return t1 < t2?-1:1;}}};}function ngDirective(directive){if(isFunction(directive)){directive = {link:directive};}directive.restrict = directive.restrict || 'AC';return valueFn(directive);}var htmlAnchorDirective=valueFn({restrict:'E',compile:function compile(element,attr){if(!attr.href && !attr.xlinkHref && !attr.name){return function(scope,element){if(element[0].nodeName.toLowerCase() !== 'a')return;var href=toString.call(element.prop('href')) === '[object SVGAnimatedString]'?'xlink:href':'href';element.on('click',function(event){if(!element.attr(href)){event.preventDefault();}});};}}});var ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if(propName == 'multiple')return;var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {restrict:'A',priority:100,link:function link(scope,element,attr){scope.$watch(attr[normalized],function ngBooleanAttrWatchAction(value){attr.$set(attrName,!!value);});}};};});forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr] = function(){return {priority:100,link:function link(scope,element,attr){if(ngAttr === 'ngPattern' && attr.ngPattern.charAt(0) == '/'){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match){attr.$set('ngPattern',new RegExp(match[1],match[2]));return;}}scope.$watch(attr[ngAttr],function ngAttrAliasWatchAction(value){attr.$set(ngAttr,value);});}};};});forEach(['src','srcset','href'],function(attrName){var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {priority:99,link:function link(scope,element,attr){var propName=attrName,name=attrName;if(attrName === 'href' && toString.call(element.prop('href')) === '[object SVGAnimatedString]'){name = 'xlinkHref';attr.$attr[name] = 'xlink:href';propName = null;}attr.$observe(normalized,function(value){if(!value){if(attrName === 'href'){attr.$set(name,null);}return;}attr.$set(name,value);if(msie && propName)element.prop(propName,attr[name]);});}};};});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS='ng-submitted';function nullFormRenameControl(control,name){control.$name = name;}FormController.$inject = ['$element','$attrs','$scope','$animate','$interpolate'];function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[];var parentForm=form.$$parentForm = element.parent().controller('form') || nullFormCtrl;form.$error = {};form.$$success = {};form.$pending = undefined;form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope);form.$dirty = false;form.$pristine = true;form.$valid = true;form.$invalid = false;form.$submitted = false;parentForm.$addControl(form);form.$rollbackViewValue = function(){forEach(controls,function(control){control.$rollbackViewValue();});};form.$commitViewValue = function(){forEach(controls,function(control){control.$commitViewValue();});};form.$addControl = function(control){assertNotHasOwnProperty(control.$name,'input');controls.push(control);if(control.$name){form[control.$name] = control;}};form.$$renameControl = function(control,newName){var oldName=control.$name;if(form[oldName] === control){delete form[oldName];}form[newName] = control;control.$name = newName;};form.$removeControl = function(control){if(control.$name && form[control.$name] === control){delete form[control.$name];}forEach(form.$pending,function(value,name){form.$setValidity(name,null,control);});forEach(form.$error,function(value,name){form.$setValidity(name,null,control);});forEach(form.$$success,function(value,name){form.$setValidity(name,null,control);});arrayRemove(controls,control);};addSetValidityMethod({ctrl:this,$element:element,set:function set(object,property,controller){var list=object[property];if(!list){object[property] = [controller];}else {var index=list.indexOf(controller);if(index === -1){list.push(controller);}}},unset:function unset(object,property,controller){var list=object[property];if(!list){return;}arrayRemove(list,controller);if(list.length === 0){delete object[property];}},parentForm:parentForm,$animate:$animate});form.$setDirty = function(){$animate.removeClass(element,PRISTINE_CLASS);$animate.addClass(element,DIRTY_CLASS);form.$dirty = true;form.$pristine = false;parentForm.$setDirty();};form.$setPristine = function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS + ' ' + SUBMITTED_CLASS);form.$dirty = false;form.$pristine = true;form.$submitted = false;forEach(controls,function(control){control.$setPristine();});};form.$setUntouched = function(){forEach(controls,function(control){control.$setUntouched();});};form.$setSubmitted = function(){$animate.addClass(element,SUBMITTED_CLASS);form.$submitted = true;parentForm.$setSubmitted();};}var formDirectiveFactory=function formDirectiveFactory(isNgForm){return ['$timeout',function($timeout){var formDirective={name:'form',restrict:isNgForm?'EAC':'E',controller:FormController,compile:function ngFormCompile(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?'name':isNgForm && attr.ngForm?'ngForm':false;return {pre:function ngFormPreLink(scope,formElement,attr,controller){if(!('action' in attr)){var handleFormSubmission=function handleFormSubmission(event){scope.$apply(function(){controller.$commitViewValue();controller.$setSubmitted();});event.preventDefault();};addEventListenerFn(formElement[0],'submit',handleFormSubmission);formElement.on('$destroy',function(){$timeout(function(){removeEventListenerFn(formElement[0],'submit',handleFormSubmission);},0,false);});}var parentFormCtrl=controller.$$parentForm;if(nameAttr){setter(scope,null,controller.$name,controller,controller.$name);attr.$observe(nameAttr,function(newValue){if(controller.$name === newValue)return;setter(scope,null,controller.$name,undefined,controller.$name);parentFormCtrl.$$renameControl(controller,newValue);setter(scope,null,controller.$name,controller,controller.$name);});}formElement.on('$destroy',function(){parentFormCtrl.$removeControl(controller);if(nameAttr){setter(scope,null,attr[nameAttr],undefined,controller.$name);}extend(controller,nullFormCtrl);});}};}};return formDirective;}];};var formDirective=formDirectiveFactory();var ngFormDirective=formDirectiveFactory(true);var ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;var URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;var EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;var NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;var DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var WEEK_REGEXP=/^(\d{4})-W(\d\d)$/;var MONTH_REGEXP=/^(\d{4})-(\d\d)$/;var TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var inputType={'text':textInputType,'date':createDateInputType('date',DATE_REGEXP,createDateParser(DATE_REGEXP,['yyyy','MM','dd']),'yyyy-MM-dd'),'datetime-local':createDateInputType('datetimelocal',DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,['yyyy','MM','dd','HH','mm','ss','sss']),'yyyy-MM-ddTHH:mm:ss.sss'),'time':createDateInputType('time',TIME_REGEXP,createDateParser(TIME_REGEXP,['HH','mm','ss','sss']),'HH:mm:ss.sss'),'week':createDateInputType('week',WEEK_REGEXP,weekParser,'yyyy-Www'),'month':createDateInputType('month',MONTH_REGEXP,createDateParser(MONTH_REGEXP,['yyyy','MM']),'yyyy-MM'),'number':numberInputType,'url':urlInputType,'email':emailInputType,'radio':radioInputType,'checkbox':checkboxInputType,'hidden':noop,'button':noop,'submit':noop,'reset':noop,'file':noop};function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString();});}function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);}function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=false;element.on('compositionstart',function(data){composing = true;});element.on('compositionend',function(){composing = false;listener();});}var listener=function listener(ev){if(timeout){$browser.defer.cancel(timeout);timeout = null;}if(composing)return;var value=element.val(),event=ev && ev.type;if(type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')){value = trim(value);}if(ctrl.$viewValue !== value || value === '' && ctrl.$$hasNativeValidators){ctrl.$setViewValue(value,event);}};if($sniffer.hasEvent('input')){element.on('input',listener);}else {var timeout;var deferListener=function deferListener(ev,input,origValue){if(!timeout){timeout = $browser.defer(function(){timeout = null;if(!input || input.value !== origValue){listener(ev);}});}};element.on('keydown',function(event){var key=event.keyCode;if(key === 91 || 15 < key && key < 19 || 37 <= key && key <= 40)return;deferListener(event,this,this.value);});if($sniffer.hasEvent('paste')){element.on('paste cut',deferListener);}}element.on('change',listener);ctrl.$render = function(){element.val(ctrl.$isEmpty(ctrl.$viewValue)?'':ctrl.$viewValue);};}function weekParser(isoWeek,existingDate){if(isDate(isoWeek)){return isoWeek;}if(isString(isoWeek)){WEEK_REGEXP.lastIndex = 0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=(week - 1) * 7;if(existingDate){hours = existingDate.getHours();minutes = existingDate.getMinutes();seconds = existingDate.getSeconds();milliseconds = existingDate.getMilliseconds();}return new Date(year,0,firstThurs.getDate() + addDays,hours,minutes,seconds,milliseconds);}}return NaN;}function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso)){return iso;}if(isString(iso)){if(iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"'){iso = iso.substring(1,iso.length - 1);}if(ISO_DATE_REGEXP.test(iso)){return new Date(iso);}regexp.lastIndex = 0;parts = regexp.exec(iso);if(parts){parts.shift();if(date){map = {yyyy:date.getFullYear(),MM:date.getMonth() + 1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds() / 1000};}else {map = {yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0};}forEach(parts,function(part,index){if(index < mapping.length){map[mapping[index]] = +part;}});return new Date(map.yyyy,map.MM - 1,map.dd,map.HH,map.mm,map.ss || 0,map.sss * 1000 || 0);}}return NaN;};}function createDateInputType(type,regexp,parseDate,format){return function dynamicDateInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var timezone=ctrl && ctrl.$options && ctrl.$options.timezone;var previousDate;ctrl.$$parserName = type;ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);if(timezone === 'UTC'){parsedDate.setMinutes(parsedDate.getMinutes() - parsedDate.getTimezoneOffset());}return parsedDate;}return undefined;});ctrl.$formatters.push(function(value){if(value && !isDate(value)){throw $ngModelMinErr('datefmt','Expected `{0}` to be a date',value);}if(isValidDate(value)){previousDate = value;if(previousDate && timezone === 'UTC'){var timezoneOffset=60000 * previousDate.getTimezoneOffset();previousDate = new Date(previousDate.getTime() + timezoneOffset);}return $filter('date')(value,format,timezone);}else {previousDate = null;return '';}});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal;};attr.$observe('min',function(val){minVal = parseObservedDateValue(val);ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;};attr.$observe('max',function(val){maxVal = parseObservedDateValue(val);ctrl.$validate();});}function isValidDate(value){return value && !(value.getTime && value.getTime() !== value.getTime());}function parseObservedDateValue(val){return isDefined(val)?isDate(val)?val:parseDate(val):undefined;}};}function badInputChecker(scope,element,attr,ctrl){var node=element[0];var nativeValidation=ctrl.$$hasNativeValidators = isObject(node.validity);if(nativeValidation){ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY) || {};return validity.badInput && !validity.typeMismatch?undefined:value;});}}function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);ctrl.$$parserName = 'number';ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(NUMBER_REGEXP.test(value))return parseFloat(value);return undefined;});ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value)){throw $ngModelMinErr('numfmt','Expected `{0}` to be a number',value);}value = value.toString();}return value;});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal;};attr.$observe('min',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}minVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal;};attr.$observe('max',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}maxVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}}function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'url';ctrl.$validators.url = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || URL_REGEXP.test(value);};}function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'email';ctrl.$validators.email = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value);};}function radioInputType(scope,element,attr,ctrl){if(isUndefined(attr.name)){element.attr('name',nextUid());}var listener=function listener(ev){if(element[0].checked){ctrl.$setViewValue(attr.value,ev && ev.type);}};element.on('click',listener);ctrl.$render = function(){var value=attr.value;element[0].checked = value == ctrl.$viewValue;};attr.$observe('value',ctrl.$render);}function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){parseFn = $parse(expression);if(!parseFn.constant){throw minErr('ngModel')('constexpr','Expected constant expression for `{0}`, but saw ' + '`{1}`.',name,expression);}return parseFn(context);}return fallback;}function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,'ngTrueValue',attr.ngTrueValue,true);var falseValue=parseConstantExpr($parse,scope,'ngFalseValue',attr.ngFalseValue,false);var listener=function listener(ev){ctrl.$setViewValue(element[0].checked,ev && ev.type);};element.on('click',listener);ctrl.$render = function(){element[0].checked = ctrl.$viewValue;};ctrl.$isEmpty = function(value){return value === false;};ctrl.$formatters.push(function(value){return equals(value,trueValue);});ctrl.$parsers.push(function(value){return value?trueValue:falseValue;});}var inputDirective=['$browser','$sniffer','$filter','$parse',function($browser,$sniffer,$filter,$parse){return {restrict:'E',require:['?ngModel'],link:{pre:function pre(scope,element,attr,ctrls){if(ctrls[0]){(inputType[lowercase(attr.type)] || inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse);}}}};}];var CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/;var ngValueDirective=function ngValueDirective(){return {restrict:'A',priority:100,compile:function compile(tpl,tplAttr){if(CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)){return function ngValueConstantLink(scope,elm,attr){attr.$set('value',scope.$eval(attr.ngValue));};}else {return function ngValueLink(scope,elm,attr){scope.$watch(attr.ngValue,function valueWatchAction(value){attr.$set('value',value);});};}}};};var ngBindDirective=['$compile',function($compile){return {restrict:'AC',compile:function ngBindCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind);element = element[0];scope.$watch(attr.ngBind,function ngBindWatchAction(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindTemplateDirective=['$interpolate','$compile',function($interpolate,$compile){return {compile:function ngBindTemplateCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindTemplateLink(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions);element = element[0];attr.$observe('ngBindTemplate',function(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindHtmlDirective=['$sce','$parse','$compile',function($sce,$parse,$compile){return {restrict:'A',compile:function ngBindHtmlCompile(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml);var ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function getStringValue(value){return (value || '').toString();});$compile.$$addBindingClass(tElement);return function ngBindHtmlLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml);scope.$watch(ngBindHtmlWatch,function ngBindHtmlWatchAction(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope)) || '');});};}};}];var ngChangeDirective=valueFn({restrict:'A',require:'ngModel',link:function link(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange);});}});function classDirective(name,selector){name = 'ngClass' + name;return ['$animate',function($animate){return {restrict:'AC',link:function link(scope,element,attr){var oldVal;scope.$watch(attr[name],ngClassWatchAction,true);attr.$observe('class',function(value){ngClassWatchAction(scope.$eval(attr[name]));});if(name !== 'ngClass'){scope.$watch('$index',function($index,old$index){var mod=$index & 1;if(mod !== (old$index & 1)){var classes=arrayClasses(scope.$eval(attr[name]));mod === selector?addClasses(classes):removeClasses(classes);}});}function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses);}function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses);}function digestClassCounts(classes,count){var classCounts=element.data('$classCounts') || {};var classesToUpdate=[];forEach(classes,function(className){if(count > 0 || classCounts[className]){classCounts[className] = (classCounts[className] || 0) + count;if(classCounts[className] === +(count > 0)){classesToUpdate.push(className);}}});element.data('$classCounts',classCounts);return classesToUpdate.join(' ');}function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses);var toRemove=arrayDifference(oldClasses,newClasses);toAdd = digestClassCounts(toAdd,1);toRemove = digestClassCounts(toRemove,-1);if(toAdd && toAdd.length){$animate.addClass(element,toAdd);}if(toRemove && toRemove.length){$animate.removeClass(element,toRemove);}}function ngClassWatchAction(newVal){if(selector === true || scope.$index % 2 === selector){var newClasses=arrayClasses(newVal || []);if(!oldVal){addClasses(newClasses);}else if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses);}}oldVal = shallowCopy(newVal);}}};function arrayDifference(tokens1,tokens2){var values=[];outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values.push(token);}return values;}function arrayClasses(classVal){if(isArray(classVal)){return classVal;}else if(isString(classVal)){return classVal.split(' ');}else if(isObject(classVal)){var classes=[];forEach(classVal,function(v,k){if(v){classes = classes.concat(k.split(' '));}});return classes;}return classVal;}}];}var ngClassDirective=classDirective('',true);var ngClassOddDirective=classDirective('Odd',0);var ngClassEvenDirective=classDirective('Even',1);var ngCloakDirective=ngDirective({compile:function compile(element,attr){attr.$set('ngCloak',undefined);element.removeClass('ng-cloak');}});var ngControllerDirective=[function(){return {restrict:'A',scope:true,controller:'@',priority:500};}];var ngEventDirectives={};var forceAsyncEvents={'blur':true,'focus':true};forEach('click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(eventName){var directiveName=directiveNormalize('ng-' + eventName);ngEventDirectives[directiveName] = ['$parse','$rootScope',function($parse,$rootScope){return {restrict:'A',compile:function compile($element,attr){var fn=$parse(attr[directiveName],null,true);return function ngEventHandler(scope,element){element.on(eventName,function(event){var callback=function callback(){fn(scope,{$event:event});};if(forceAsyncEvents[eventName] && $rootScope.$$phase){scope.$evalAsync(callback);}else {scope.$apply(callback);}});};}};}];});var ngIfDirective=['$animate',function($animate){return {multiElement:true,transclude:'element',priority:600,terminal:true,restrict:'A',$$tlb:true,link:function link($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function ngIfWatchAction(value){if(value){if(!childScope){$transclude(function(clone,newScope){childScope = newScope;clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' ');block = {clone:clone};$animate.enter(clone,$element.parent(),$element);});}}else {if(previousElements){previousElements.remove();previousElements = null;}if(childScope){childScope.$destroy();childScope = null;}if(block){previousElements = getBlockNodes(block.clone);$animate.leave(previousElements).then(function(){previousElements = null;});block = null;}}});}};}];var ngIncludeDirective=['$templateRequest','$anchorScroll','$animate','$sce',function($templateRequest,$anchorScroll,$animate,$sce){return {restrict:'ECA',priority:400,terminal:true,transclude:'element',controller:angular.noop,compile:function compile(element,attr){var srcExp=attr.ngInclude || attr.src,onloadExp=attr.onload || '',autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function cleanupLastIncludeContent(){if(previousElement){previousElement.remove();previousElement = null;}if(currentScope){currentScope.$destroy();currentScope = null;}if(currentElement){$animate.leave(currentElement).then(function(){previousElement = null;});previousElement = currentElement;currentElement = null;}};scope.$watch($sce.parseAsResourceUrl(srcExp),function ngIncludeWatchAction(src){var afterAnimation=function afterAnimation(){if(isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))){$anchorScroll();}};var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId !== changeCounter)return;var newScope=scope.$new();ctrl.template = response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,null,$element).then(afterAnimation);});currentScope = newScope;currentElement = clone;currentScope.$emit('$includeContentLoaded',src);scope.$eval(onloadExp);},function(){if(thisChangeId === changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else {cleanupLastIncludeContent();ctrl.template = null;}});};}};}];var ngIncludeFillContentDirective=['$compile',function($compile){return {restrict:'ECA',priority:-400,require:'ngInclude',link:function link(scope,$element,$attr,ctrl){if(/SVG/.test($element[0].toString())){$element.empty();$compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function namespaceAdaptedClone(clone){$element.append(clone);},{futureParentElement:$element});return;}$element.html(ctrl.template);$compile($element.contents())(scope);}};}];var ngInitDirective=ngDirective({priority:450,compile:function compile(){return {pre:function pre(scope,element,attrs){scope.$eval(attrs.ngInit);}};}});var ngListDirective=function ngListDirective(){return {restrict:'A',priority:100,require:'ngModel',link:function link(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList) || ', ';var trimValues=attr.ngTrim !== 'false';var separator=trimValues?trim(ngList):ngList;var parse=function parse(viewValue){if(isUndefined(viewValue))return;var list=[];if(viewValue){forEach(viewValue.split(separator),function(value){if(value)list.push(trimValues?trim(value):value);});}return list;};ctrl.$parsers.push(parse);ctrl.$formatters.push(function(value){if(isArray(value)){return value.join(ngList);}return undefined;});ctrl.$isEmpty = function(value){return !value || !value.length;};}};};var VALID_CLASS='ng-valid',INVALID_CLASS='ng-invalid',PRISTINE_CLASS='ng-pristine',DIRTY_CLASS='ng-dirty',UNTOUCHED_CLASS='ng-untouched',TOUCHED_CLASS='ng-touched',PENDING_CLASS='ng-pending';var $ngModelMinErr=new minErr('ngModel');var NgModelController=['$scope','$exceptionHandler','$attrs','$element','$parse','$animate','$timeout','$rootScope','$q','$interpolate',function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue = Number.NaN;this.$modelValue = Number.NaN;this.$$rawModelValue = undefined;this.$validators = {};this.$asyncValidators = {};this.$parsers = [];this.$formatters = [];this.$viewChangeListeners = [];this.$untouched = true;this.$touched = false;this.$pristine = true;this.$dirty = false;this.$valid = true;this.$invalid = false;this.$error = {};this.$$success = {};this.$pending = undefined;this.$name = $interpolate($attr.name || '',false)($scope);var parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,parserValid,ctrl=this;this.$$setOptions = function(options){ctrl.$options = options;if(options && options.getterSetter){var invokeModelGetter=$parse($attr.ngModel + '()'),invokeModelSetter=$parse($attr.ngModel + '($$$p)');ngModelGet = function($scope){var modelValue=parsedNgModel($scope);if(isFunction(modelValue)){modelValue = invokeModelGetter($scope);}return modelValue;};ngModelSet = function($scope,newValue){if(isFunction(parsedNgModel($scope))){invokeModelSetter($scope,{$$$p:ctrl.$modelValue});}else {parsedNgModelAssign($scope,ctrl.$modelValue);}};}else if(!parsedNgModel.assign){throw $ngModelMinErr('nonassign','Expression \'{0}\' is non-assignable. Element: {1}',$attr.ngModel,startingTag($element));}};this.$render = noop;this.$isEmpty = function(value){return isUndefined(value) || value === '' || value === null || value !== value;};var parentForm=$element.inheritedData('$formController') || nullFormCtrl,currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function set(object,property){object[property] = true;},unset:function unset(object,property){delete object[property];},parentForm:parentForm,$animate:$animate});this.$setPristine = function(){ctrl.$dirty = false;ctrl.$pristine = true;$animate.removeClass($element,DIRTY_CLASS);$animate.addClass($element,PRISTINE_CLASS);};this.$setDirty = function(){ctrl.$dirty = true;ctrl.$pristine = false;$animate.removeClass($element,PRISTINE_CLASS);$animate.addClass($element,DIRTY_CLASS);parentForm.$setDirty();};this.$setUntouched = function(){ctrl.$touched = false;ctrl.$untouched = true;$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS);};this.$setTouched = function(){ctrl.$touched = true;ctrl.$untouched = false;$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS);};this.$rollbackViewValue = function(){$timeout.cancel(pendingDebounce);ctrl.$viewValue = ctrl.$$lastCommittedViewValue;ctrl.$render();};this.$validate = function(){if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){return;}var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=ctrl.$$rawModelValue;var prevValid=ctrl.$valid;var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){if(!allowInvalid && prevValid !== allValid){ctrl.$modelValue = allValid?modelValue:undefined;if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}});};this.$$runValidators = function(modelValue,viewValue,doneCallback){currentValidationRunId++;var localValidationRunId=currentValidationRunId;if(!processParseErrors()){validationDone(false);return;}if(!processSyncValidators()){validationDone(false);return;}processAsyncValidators();function processParseErrors(){var errorKey=ctrl.$$parserName || 'parse';if(parserValid === undefined){setValidity(errorKey,null);}else {if(!parserValid){forEach(ctrl.$validators,function(v,name){setValidity(name,null);});forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});}setValidity(errorKey,parserValid);return parserValid;}return true;}function processSyncValidators(){var syncValidatorsValid=true;forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid = syncValidatorsValid && result;setValidity(name,result);});if(!syncValidatorsValid){forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});return false;}return true;}function processAsyncValidators(){var validatorPromises=[];var allValid=true;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise)){throw $ngModelMinErr('$asyncValidators','Expected asynchronous validator to return a promise but got \'{0}\' instead.',promise);}setValidity(name,undefined);validatorPromises.push(promise.then(function(){setValidity(name,true);},function(error){allValid = false;setValidity(name,false);}));});if(!validatorPromises.length){validationDone(true);}else {$q.all(validatorPromises).then(function(){validationDone(allValid);},noop);}}function setValidity(name,isValid){if(localValidationRunId === currentValidationRunId){ctrl.$setValidity(name,isValid);}}function validationDone(allValid){if(localValidationRunId === currentValidationRunId){doneCallback(allValid);}}};this.$commitViewValue = function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce);if(ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)){return;}ctrl.$$lastCommittedViewValue = viewValue;if(ctrl.$pristine){this.$setDirty();}this.$$parseAndValidate();};this.$$parseAndValidate = function(){var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=viewValue;parserValid = isUndefined(modelValue)?undefined:true;if(parserValid){for(var i=0;i < ctrl.$parsers.length;i++) {modelValue = ctrl.$parsers[i](modelValue);if(isUndefined(modelValue)){parserValid = false;break;}}}if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){ctrl.$modelValue = ngModelGet($scope);}var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$rawModelValue = modelValue;if(allowInvalid){ctrl.$modelValue = modelValue;writeToModelIfNeeded();}ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){if(!allowInvalid){ctrl.$modelValue = allValid?modelValue:undefined;writeToModelIfNeeded();}});function writeToModelIfNeeded(){if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}};this.$$writeModelToScope = function(){ngModelSet($scope,ctrl.$modelValue);forEach(ctrl.$viewChangeListeners,function(listener){try{listener();}catch(e) {$exceptionHandler(e);}});};this.$setViewValue = function(value,trigger){ctrl.$viewValue = value;if(!ctrl.$options || ctrl.$options.updateOnDefault){ctrl.$$debounceViewValueCommit(trigger);}};this.$$debounceViewValueCommit = function(trigger){var debounceDelay=0,options=ctrl.$options,debounce;if(options && isDefined(options.debounce)){debounce = options.debounce;if(isNumber(debounce)){debounceDelay = debounce;}else if(isNumber(debounce[trigger])){debounceDelay = debounce[trigger];}else if(isNumber(debounce['default'])){debounceDelay = debounce['default'];}}$timeout.cancel(pendingDebounce);if(debounceDelay){pendingDebounce = $timeout(function(){ctrl.$commitViewValue();},debounceDelay);}else if($rootScope.$$phase){ctrl.$commitViewValue();}else {$scope.$apply(function(){ctrl.$commitViewValue();});}};$scope.$watch(function ngModelWatch(){var modelValue=ngModelGet($scope);if(modelValue !== ctrl.$modelValue){ctrl.$modelValue = ctrl.$$rawModelValue = modelValue;parserValid = undefined;var formatters=ctrl.$formatters,idx=formatters.length;var viewValue=modelValue;while(idx--) {viewValue = formatters[idx](viewValue);}if(ctrl.$viewValue !== viewValue){ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue;ctrl.$render();ctrl.$$runValidators(modelValue,viewValue,noop);}}return modelValue;});}];var ngModelDirective=['$rootScope',function($rootScope){return {restrict:'A',require:['ngModel','^?form','^?ngModelOptions'],controller:NgModelController,priority:1,compile:function ngModelCompile(element){element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);return {pre:function ngModelPreLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1] || nullFormCtrl;modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options);formCtrl.$addControl(modelCtrl);attr.$observe('name',function(newValue){if(modelCtrl.$name !== newValue){formCtrl.$$renameControl(modelCtrl,newValue);}});scope.$on('$destroy',function(){formCtrl.$removeControl(modelCtrl);});},post:function ngModelPostLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0];if(modelCtrl.$options && modelCtrl.$options.updateOn){element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev && ev.type);});}element.on('blur',function(ev){if(modelCtrl.$touched)return;if($rootScope.$$phase){scope.$evalAsync(modelCtrl.$setTouched);}else {scope.$apply(modelCtrl.$setTouched);}});}};}};}];var DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/;var ngModelOptionsDirective=function ngModelOptionsDirective(){return {restrict:'A',controller:['$scope','$attrs',function($scope,$attrs){var that=this;this.$options = $scope.$eval($attrs.ngModelOptions);if(this.$options.updateOn !== undefined){this.$options.updateOnDefault = false;this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){that.$options.updateOnDefault = true;return ' ';}));}else {this.$options.updateOnDefault = true;}}]};};function addSetValidityMethod(context){var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,parentForm=context.parentForm,$animate=context.$animate;classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS));ctrl.$setValidity = setValidity;function setValidity(validationErrorKey,state,controller){if(state === undefined){createAndSet('$pending',validationErrorKey,controller);}else {unsetAndCleanup('$pending',validationErrorKey,controller);}if(!isBoolean(state)){unset(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}else {if(state){unset(ctrl.$error,validationErrorKey,controller);set(ctrl.$$success,validationErrorKey,controller);}else {set(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}}if(ctrl.$pending){cachedToggleClass(PENDING_CLASS,true);ctrl.$valid = ctrl.$invalid = undefined;toggleValidationCss('',null);}else {cachedToggleClass(PENDING_CLASS,false);ctrl.$valid = isObjectEmpty(ctrl.$error);ctrl.$invalid = !ctrl.$valid;toggleValidationCss('',ctrl.$valid);}var combinedState;if(ctrl.$pending && ctrl.$pending[validationErrorKey]){combinedState = undefined;}else if(ctrl.$error[validationErrorKey]){combinedState = false;}else if(ctrl.$$success[validationErrorKey]){combinedState = true;}else {combinedState = null;}toggleValidationCss(validationErrorKey,combinedState);parentForm.$setValidity(validationErrorKey,combinedState,ctrl);}function createAndSet(name,value,controller){if(!ctrl[name]){ctrl[name] = {};}set(ctrl[name],value,controller);}function unsetAndCleanup(name,value,controller){if(ctrl[name]){unset(ctrl[name],value,controller);}if(isObjectEmpty(ctrl[name])){ctrl[name] = undefined;}}function cachedToggleClass(className,switchValue){if(switchValue && !classCache[className]){$animate.addClass($element,className);classCache[className] = true;}else if(!switchValue && classCache[className]){$animate.removeClass($element,className);classCache[className] = false;}}function toggleValidationCss(validationErrorKey,isValid){validationErrorKey = validationErrorKey?'-' + snake_case(validationErrorKey,'-'):'';cachedToggleClass(VALID_CLASS + validationErrorKey,isValid === true);cachedToggleClass(INVALID_CLASS + validationErrorKey,isValid === false);}}function isObjectEmpty(obj){if(obj){for(var prop in obj) {return false;}}return true;}var ngNonBindableDirective=ngDirective({terminal:true,priority:1000});var ngPluralizeDirective=['$locale','$interpolate',function($locale,$interpolate){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return {restrict:'EA',link:function link(scope,element,attr){var numberExp=attr.count,whenExp=attr.$attr.when && element.attr(attr.$attr.when),offset=attr.offset || 0,whens=scope.$eval(whenExp) || {},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol + numberExp + '-' + offset + endSymbol,watchRemover=angular.noop,lastCount;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?'-':'') + lowercase(tmpMatch[2]);whens[whenKey] = element.attr(attr.$attr[attributeName]);}});forEach(whens,function(expression,key){whensExpFns[key] = $interpolate(expression.replace(BRACE,braceReplacement));});scope.$watch(numberExp,function ngPluralizeWatchAction(newVal){var count=parseFloat(newVal);var countIsNaN=isNaN(count);if(!countIsNaN && !(count in whens)){count = $locale.pluralCat(count - offset);}if(count !== lastCount && !(countIsNaN && isNaN(lastCount))){watchRemover();watchRemover = scope.$watch(whensExpFns[count],updateElementText);lastCount = count;}});function updateElementText(newText){element.text(newText || '');}}};}];var ngRepeatDirective=['$parse','$animate',function($parse,$animate){var NG_REMOVED='$$NG_REMOVED';var ngRepeatMinErr=minErr('ngRepeat');var updateScope=function updateScope(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier] = value;if(keyIdentifier)scope[keyIdentifier] = key;scope.$index = index;scope.$first = index === 0;scope.$last = index === arrayLength - 1;scope.$middle = !(scope.$first || scope.$last);scope.$odd = !(scope.$even = (index & 1) === 0);};var getBlockStart=function getBlockStart(block){return block.clone[0];};var getBlockEnd=function getBlockEnd(block){return block.clone[block.clone.length - 1];};return {restrict:'A',multiElement:true,transclude:'element',priority:1000,terminal:true,$$tlb:true,compile:function ngRepeatCompile($element,$attr){var expression=$attr.ngRepeat;var ngRepeatEndComment=document.createComment(' end ngRepeat: ' + expression + ' ');var match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match){throw ngRepeatMinErr('iexp','Expected expression in form of \'_item_ in _collection_[ track by _id_]\' but got \'{0}\'.',expression);}var lhs=match[1];var rhs=match[2];var aliasAs=match[3];var trackByExp=match[4];match = lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!match){throw ngRepeatMinErr('iidexp','\'_item_\' in \'_item_ in _collection_\' should be an identifier or \'(_key_, _value_)\' expression, but got \'{0}\'.',lhs);}var valueIdentifier=match[3] || match[1];var keyIdentifier=match[2];if(aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))){throw ngRepeatMinErr('badident','alias \'{0}\' is invalid --- must be a valid JS identifier which is not a reserved name.',aliasAs);}var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn;var hashFnLocals={$id:hashKey};if(trackByExp){trackByExpGetter = $parse(trackByExp);}else {trackByIdArrayFn = function(key,value){return hashKey(value);};trackByIdObjFn = function(key){return key;};}return function ngRepeatLink($scope,$element,$attr,ctrl,$transclude){if(trackByExpGetter){trackByIdExpFn = function(key,value,index){if(keyIdentifier)hashFnLocals[keyIdentifier] = key;hashFnLocals[valueIdentifier] = value;hashFnLocals.$index = index;return trackByExpGetter($scope,hashFnLocals);};}var lastBlockMap=createMap();$scope.$watchCollection(rhs,function ngRepeatAction(collection){var index,length,previousNode=$element[0],nextNode,nextBlockMap=createMap(),collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove;if(aliasAs){$scope[aliasAs] = collection;}if(isArrayLike(collection)){collectionKeys = collection;trackByIdFn = trackByIdExpFn || trackByIdArrayFn;}else {trackByIdFn = trackByIdExpFn || trackByIdObjFn;collectionKeys = [];for(var itemKey in collection) {if(collection.hasOwnProperty(itemKey) && itemKey.charAt(0) != '$'){collectionKeys.push(itemKey);}}collectionKeys.sort();}collectionLength = collectionKeys.length;nextBlockOrder = new Array(collectionLength);for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];trackById = trackByIdFn(key,value,index);if(lastBlockMap[trackById]){block = lastBlockMap[trackById];delete lastBlockMap[trackById];nextBlockMap[trackById] = block;nextBlockOrder[index] = block;}else if(nextBlockMap[trackById]){forEach(nextBlockOrder,function(block){if(block && block.scope)lastBlockMap[block.id] = block;});throw ngRepeatMinErr('dupes','Duplicates in a repeater are not allowed. Use \'track by\' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}',expression,trackById,value);}else {nextBlockOrder[index] = {id:trackById,scope:undefined,clone:undefined};nextBlockMap[trackById] = true;}}for(var blockKey in lastBlockMap) {block = lastBlockMap[blockKey];elementsToRemove = getBlockNodes(block.clone);$animate.leave(elementsToRemove);if(elementsToRemove[0].parentNode){for(index = 0,length = elementsToRemove.length;index < length;index++) {elementsToRemove[index][NG_REMOVED] = true;}}block.scope.$destroy();}for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];block = nextBlockOrder[index];if(block.scope){nextNode = previousNode;do {nextNode = nextNode.nextSibling;}while(nextNode && nextNode[NG_REMOVED]);if(getBlockStart(block) != nextNode){$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode));}previousNode = getBlockEnd(block);updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);}else {$transclude(function ngRepeatTransclude(clone,scope){block.scope = scope;var endNode=ngRepeatEndComment.cloneNode(false);clone[clone.length++] = endNode;$animate.enter(clone,null,jqLite(previousNode));previousNode = endNode;block.clone = clone;nextBlockMap[block.id] = block;updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);});}}lastBlockMap = nextBlockMap;});};}};}];var NG_HIDE_CLASS='ng-hide';var NG_HIDE_IN_PROGRESS_CLASS='ng-hide-animate';var ngShowDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngShow,function ngShowWatchAction(value){$animate[value?'removeClass':'addClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngHideDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngHide,function ngHideWatchAction(value){$animate[value?'addClass':'removeClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watchCollection(attr.ngStyle,function ngStyleWatchAction(newStyles,oldStyles){if(oldStyles && newStyles !== oldStyles){forEach(oldStyles,function(val,style){element.css(style,'');});}if(newStyles)element.css(newStyles);});});var ngSwitchDirective=['$animate',function($animate){return {restrict:'EA',require:'ngSwitch',controller:['$scope',function ngSwitchController(){this.cases = {};}],link:function link(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch || attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[];var spliceFactory=function spliceFactory(array,index){return function(){array.splice(index,1);};};scope.$watch(watchExpr,function ngSwitchWatchAction(value){var i,ii;for(i = 0,ii = previousLeaveAnimations.length;i < ii;++i) {$animate.cancel(previousLeaveAnimations[i]);}previousLeaveAnimations.length = 0;for(i = 0,ii = selectedScopes.length;i < ii;++i) {var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i] = $animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i));}selectedElements.length = 0;selectedScopes.length = 0;if(selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?']){forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: ');var block={clone:caseElement};selectedElements.push(block);$animate.enter(caseElement,anchor.parent(),anchor);});});}});}};}];var ngSwitchWhenDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attrs,ctrl,$transclude){ctrl.cases['!' + attrs.ngSwitchWhen] = ctrl.cases['!' + attrs.ngSwitchWhen] || [];ctrl.cases['!' + attrs.ngSwitchWhen].push({transclude:$transclude,element:element});}});var ngSwitchDefaultDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attr,ctrl,$transclude){ctrl.cases['?'] = ctrl.cases['?'] || [];ctrl.cases['?'].push({transclude:$transclude,element:element});}});var ngTranscludeDirective=ngDirective({restrict:'EAC',link:function link($scope,$element,$attrs,controller,$transclude){if(!$transclude){throw minErr('ngTransclude')('orphan','Illegal use of ngTransclude directive in the template! ' + 'No parent directive that requires a transclusion found. ' + 'Element: {0}',startingTag($element));}$transclude(function(clone){$element.empty();$element.append(clone);});}});var scriptDirective=['$templateCache',function($templateCache){return {restrict:'E',terminal:true,compile:function compile(element,attr){if(attr.type == 'text/ng-template'){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text);}}};}];var ngOptionsMinErr=minErr('ngOptions');var ngOptionsDirective=valueFn({restrict:'A',terminal:true});var selectDirective=['$compile','$parse',function($compile,$parse){var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nullModelCtrl={$setViewValue:noop};return {restrict:'E',require:['select','?ngModel'],controller:['$element','$scope','$attrs',function($element,$scope,$attrs){var self=this,optionsMap={},ngModelCtrl=nullModelCtrl,nullOption,unknownOption;self.databound = $attrs.ngModel;self.init = function(ngModelCtrl_,nullOption_,unknownOption_){ngModelCtrl = ngModelCtrl_;nullOption = nullOption_;unknownOption = unknownOption_;};self.addOption = function(value,element){assertNotHasOwnProperty(value,'"option value"');optionsMap[value] = true;if(ngModelCtrl.$viewValue == value){$element.val(value);if(unknownOption.parent())unknownOption.remove();}if(element && element[0].hasAttribute('selected')){element[0].selected = true;}};self.removeOption = function(value){if(this.hasOption(value)){delete optionsMap[value];if(ngModelCtrl.$viewValue === value){this.renderUnknownOption(value);}}};self.renderUnknownOption = function(val){var unknownVal='? ' + hashKey(val) + ' ?';unknownOption.val(unknownVal);$element.prepend(unknownOption);$element.val(unknownVal);unknownOption.prop('selected',true);};self.hasOption = function(value){return optionsMap.hasOwnProperty(value);};$scope.$on('$destroy',function(){self.renderUnknownOption = noop;});}],link:function link(scope,element,attr,ctrls){if(!ctrls[1])return;var selectCtrl=ctrls[0],ngModelCtrl=ctrls[1],multiple=attr.multiple,optionsExp=attr.ngOptions,nullOption=false,emptyOption,renderScheduled=false,optionTemplate=jqLite(document.createElement('option')),optGroupTemplate=jqLite(document.createElement('optgroup')),unknownOption=optionTemplate.clone();for(var i=0,children=element.children(),ii=children.length;i < ii;i++) {if(children[i].value === ''){emptyOption = nullOption = children.eq(i);break;}}selectCtrl.init(ngModelCtrl,nullOption,unknownOption);if(multiple){ngModelCtrl.$isEmpty = function(value){return !value || value.length === 0;};}if(optionsExp)setupAsOptions(scope,element,ngModelCtrl);else if(multiple)setupAsMultiple(scope,element,ngModelCtrl);else setupAsSingle(scope,element,ngModelCtrl,selectCtrl);function setupAsSingle(scope,selectElement,ngModelCtrl,selectCtrl){ngModelCtrl.$render = function(){var viewValue=ngModelCtrl.$viewValue;if(selectCtrl.hasOption(viewValue)){if(unknownOption.parent())unknownOption.remove();selectElement.val(viewValue);if(viewValue === '')emptyOption.prop('selected',true);}else {if(isUndefined(viewValue) && emptyOption){selectElement.val('');}else {selectCtrl.renderUnknownOption(viewValue);}}};selectElement.on('change',function(){scope.$apply(function(){if(unknownOption.parent())unknownOption.remove();ngModelCtrl.$setViewValue(selectElement.val());});});}function setupAsMultiple(scope,selectElement,ctrl){var lastView;ctrl.$render = function(){var items=new HashMap(ctrl.$viewValue);forEach(selectElement.find('option'),function(option){option.selected = isDefined(items.get(option.value));});};scope.$watch(function selectMultipleWatch(){if(!equals(lastView,ctrl.$viewValue)){lastView = shallowCopy(ctrl.$viewValue);ctrl.$render();}});selectElement.on('change',function(){scope.$apply(function(){var array=[];forEach(selectElement.find('option'),function(option){if(option.selected){array.push(option.value);}});ctrl.$setViewValue(array);});});}function setupAsOptions(scope,selectElement,ctrl){var match;if(!(match = optionsExp.match(NG_OPTIONS_REGEXP))){throw ngOptionsMinErr('iexp','Expected expression in form of ' + '\'_select_ (as _label_)? for (_key_,)?_value_ in _collection_\'' + ' but got \'{0}\'. Element: {1}',optionsExp,startingTag(selectElement));}var displayFn=$parse(match[2] || match[1]),valueName=match[4] || match[6],selectAs=/ as /.test(match[0]) && match[1],selectAsFn=selectAs?$parse(selectAs):null,keyName=match[5],groupByFn=$parse(match[3] || ''),valueFn=$parse(match[2]?match[1]:valueName),valuesFn=$parse(match[7]),track=match[8],trackFn=track?$parse(match[8]):null,trackKeysCache={},optionGroupsCache=[[{element:selectElement,label:''}]],locals={};if(nullOption){$compile(nullOption)(scope);nullOption.removeClass('ng-scope');nullOption.remove();}selectElement.empty();selectElement.on('change',selectionChanged);ctrl.$render = render;scope.$watchCollection(valuesFn,scheduleRendering);scope.$watchCollection(getLabels,scheduleRendering);if(multiple){scope.$watchCollection(function(){return ctrl.$modelValue;},scheduleRendering);}function callExpression(exprFn,key,value){locals[valueName] = value;if(keyName)locals[keyName] = key;return exprFn(scope,locals);}function selectionChanged(){scope.$apply(function(){var collection=valuesFn(scope) || [];var viewValue;if(multiple){viewValue = [];forEach(selectElement.val(),function(selectedKey){selectedKey = trackFn?trackKeysCache[selectedKey]:selectedKey;viewValue.push(getViewValue(selectedKey,collection[selectedKey]));});}else {var selectedKey=trackFn?trackKeysCache[selectElement.val()]:selectElement.val();viewValue = getViewValue(selectedKey,collection[selectedKey]);}ctrl.$setViewValue(viewValue);render();});}function getViewValue(key,value){if(key === '?'){return undefined;}else if(key === ''){return null;}else {var viewValueFn=selectAsFn?selectAsFn:valueFn;return callExpression(viewValueFn,key,value);}}function getLabels(){var values=valuesFn(scope);var toDisplay;if(values && isArray(values)){toDisplay = new Array(values.length);for(var i=0,ii=values.length;i < ii;i++) {toDisplay[i] = callExpression(displayFn,i,values[i]);}return toDisplay;}else if(values){toDisplay = {};for(var prop in values) {if(values.hasOwnProperty(prop)){toDisplay[prop] = callExpression(displayFn,prop,values[prop]);}}}return toDisplay;}function createIsSelectedFn(viewValue){var selectedSet;if(multiple){if(trackFn && isArray(viewValue)){selectedSet = new HashMap([]);for(var trackIndex=0;trackIndex < viewValue.length;trackIndex++) {selectedSet.put(callExpression(trackFn,null,viewValue[trackIndex]),true);}}else {selectedSet = new HashMap(viewValue);}}else if(trackFn){viewValue = callExpression(trackFn,null,viewValue);}return function isSelected(key,value){var compareValueFn;if(trackFn){compareValueFn = trackFn;}else if(selectAsFn){compareValueFn = selectAsFn;}else {compareValueFn = valueFn;}if(multiple){return isDefined(selectedSet.remove(callExpression(compareValueFn,key,value)));}else {return viewValue === callExpression(compareValueFn,key,value);}};}function scheduleRendering(){if(!renderScheduled){scope.$$postDigest(render);renderScheduled = true;}}function updateLabelMap(labelMap,label,added){labelMap[label] = labelMap[label] || 0;labelMap[label] += added?1:-1;}function render(){renderScheduled = false;var optionGroups={'':[]},optionGroupNames=[''],optionGroupName,optionGroup,option,existingParent,existingOptions,existingOption,viewValue=ctrl.$viewValue,values=valuesFn(scope) || [],keys=keyName?sortedKeys(values):values,key,value,groupLength,length,groupIndex,index,labelMap={},selected,isSelected=createIsSelectedFn(viewValue),anySelected=false,lastElement,element,label,optionId;trackKeysCache = {};for(index = 0;length = keys.length,index < length;index++) {key = index;if(keyName){key = keys[index];if(key.charAt(0) === '$')continue;}value = values[key];optionGroupName = callExpression(groupByFn,key,value) || '';if(!(optionGroup = optionGroups[optionGroupName])){optionGroup = optionGroups[optionGroupName] = [];optionGroupNames.push(optionGroupName);}selected = isSelected(key,value);anySelected = anySelected || selected;label = callExpression(displayFn,key,value);label = isDefined(label)?label:'';optionId = trackFn?trackFn(scope,locals):keyName?keys[index]:index;if(trackFn){trackKeysCache[optionId] = key;}optionGroup.push({id:optionId,label:label,selected:selected});}if(!multiple){if(nullOption || viewValue === null){optionGroups[''].unshift({id:'',label:'',selected:!anySelected});}else if(!anySelected){optionGroups[''].unshift({id:'?',label:'',selected:true});}}for(groupIndex = 0,groupLength = optionGroupNames.length;groupIndex < groupLength;groupIndex++) {optionGroupName = optionGroupNames[groupIndex];optionGroup = optionGroups[optionGroupName];if(optionGroupsCache.length <= groupIndex){existingParent = {element:optGroupTemplate.clone().attr('label',optionGroupName),label:optionGroup.label};existingOptions = [existingParent];optionGroupsCache.push(existingOptions);selectElement.append(existingParent.element);}else {existingOptions = optionGroupsCache[groupIndex];existingParent = existingOptions[0];if(existingParent.label != optionGroupName){existingParent.element.attr('label',existingParent.label = optionGroupName);}}lastElement = null;for(index = 0,length = optionGroup.length;index < length;index++) {option = optionGroup[index];if(existingOption = existingOptions[index + 1]){lastElement = existingOption.element;if(existingOption.label !== option.label){updateLabelMap(labelMap,existingOption.label,false);updateLabelMap(labelMap,option.label,true);lastElement.text(existingOption.label = option.label);lastElement.prop('label',existingOption.label);}if(existingOption.id !== option.id){lastElement.val(existingOption.id = option.id);}if(lastElement[0].selected !== option.selected){lastElement.prop('selected',existingOption.selected = option.selected);if(msie){lastElement.prop('selected',existingOption.selected);}}}else {if(option.id === '' && nullOption){element = nullOption;}else {(element = optionTemplate.clone()).val(option.id).prop('selected',option.selected).attr('selected',option.selected).prop('label',option.label).text(option.label);}existingOptions.push(existingOption = {element:element,label:option.label,id:option.id,selected:option.selected});updateLabelMap(labelMap,option.label,true);if(lastElement){lastElement.after(element);}else {existingParent.element.append(element);}lastElement = element;}}index++;while(existingOptions.length > index) {option = existingOptions.pop();updateLabelMap(labelMap,option.label,false);option.element.remove();}}while(optionGroupsCache.length > groupIndex) {optionGroup = optionGroupsCache.pop();for(index = 1;index < optionGroup.length;++index) {updateLabelMap(labelMap,optionGroup[index].label,false);}optionGroup[0].element.remove();}forEach(labelMap,function(count,label){if(count > 0){selectCtrl.addOption(label);}else if(count < 0){selectCtrl.removeOption(label);}});}}}};}];var optionDirective=['$interpolate',function($interpolate){var nullSelectCtrl={addOption:noop,removeOption:noop};return {restrict:'E',priority:100,compile:function compile(element,attr){if(isUndefined(attr.value)){var interpolateFn=$interpolate(element.text(),true);if(!interpolateFn){attr.$set('value',element.text());}}return function(scope,element,attr){var selectCtrlName='$selectController',parent=element.parent(),selectCtrl=parent.data(selectCtrlName) || parent.parent().data(selectCtrlName);if(!selectCtrl || !selectCtrl.databound){selectCtrl = nullSelectCtrl;}if(interpolateFn){scope.$watch(interpolateFn,function interpolateWatchAction(newVal,oldVal){attr.$set('value',newVal);if(oldVal !== newVal){selectCtrl.removeOption(oldVal);}selectCtrl.addOption(newVal,element);});}else {selectCtrl.addOption(attr.value,element);}element.on('$destroy',function(){selectCtrl.removeOption(attr.value);});};}};}];var styleDirective=valueFn({restrict:'E',terminal:false});var requiredDirective=function requiredDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;attr.required = true;ctrl.$validators.required = function(modelValue,viewValue){return !attr.required || !ctrl.$isEmpty(viewValue);};attr.$observe('required',function(){ctrl.$validate();});}};};var patternDirective=function patternDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var regexp,patternExp=attr.ngPattern || attr.pattern;attr.$observe('pattern',function(regex){if(isString(regex) && regex.length > 0){regex = new RegExp('^' + regex + '$');}if(regex && !regex.test){throw minErr('ngPattern')('noregexp','Expected {0} to be a RegExp but was {1}. Element: {2}',patternExp,regex,startingTag(elm));}regexp = regex || undefined;ctrl.$validate();});ctrl.$validators.pattern = function(value){return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value);};}};};var maxlengthDirective=function maxlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var maxlength=-1;attr.$observe('maxlength',function(value){var intVal=int(value);maxlength = isNaN(intVal)?-1:intVal;ctrl.$validate();});ctrl.$validators.maxlength = function(modelValue,viewValue){return maxlength < 0 || ctrl.$isEmpty(viewValue) || viewValue.length <= maxlength;};}};};var minlengthDirective=function minlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var minlength=0;attr.$observe('minlength',function(value){minlength = int(value) || 0;ctrl.$validate();});ctrl.$validators.minlength = function(modelValue,viewValue){return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength;};}};};if(window.angular.bootstrap){console.log('WARNING: Tried to load angular more than once.');return;}bindJQuery();publishExternalAPI(angular);jqLite(document).ready(function(){angularInit(document,bootstrap);});})(window,document);!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'); - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - (function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define(factory);else if(typeof exports === 'object')exports['JSData'] = factory();else root['JSData'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _datastoreIndex=__webpack_require__(1);var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);module.exports = {DS:_datastoreIndex['default'],DSUtils:_utils['default'],DSErrors:_errors['default'],createStore:function createStore(options){return new _datastoreIndex['default'](options);},version:{full:'2.0.0-rc.1',major:parseInt('2',10),minor:parseInt('0',10),patch:parseInt('0',10),alpha:true?'false':false,beta:true?'false':false}};},function(module,exports,__webpack_require__){var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _sync_methodsIndex=__webpack_require__(4);var _async_methodsIndex=__webpack_require__(5);function lifecycleNoopCb(resource,attrs,cb){cb(null,attrs);}function lifecycleNoop(resource,attrs){return attrs;}function compare(_x,_x2,_x3,_x4){var _again=true;_function: while(_again) {var orderBy=_x,index=_x2,a=_x3,b=_x4;def = cA = cB = undefined;_again = false;var def=orderBy[index];var cA=_utils['default'].get(a,def[0]),cB=_utils['default'].get(b,def[0]);if(_utils['default']._s(cA)){cA = _utils['default'].upperCase(cA);}if(_utils['default']._s(cB)){cB = _utils['default'].upperCase(cB);}if(def[1] === 'DESC'){if(cB < cA){return -1;}else if(cB > cA){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}else {if(cA < cB){return -1;}else if(cA > cB){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}}}var Defaults=(function(){function Defaults(){_classCallCheck(this,Defaults);}_createClass(Defaults,[{key:'errorFn',value:function errorFn(a,b){if(this.error && typeof this.error === 'function'){try{if(typeof a === 'string'){throw new Error(a);}else {throw a;}}catch(err) {a = err;}this.error(this.name || null,a || null,b || null);}}}]);return Defaults;})();var defaultsPrototype=Defaults.prototype;defaultsPrototype.actions = {};defaultsPrototype.afterCreate = lifecycleNoopCb;defaultsPrototype.afterCreateCollection = lifecycleNoop;defaultsPrototype.afterCreateInstance = lifecycleNoop;defaultsPrototype.afterDestroy = lifecycleNoopCb;defaultsPrototype.afterEject = lifecycleNoop;defaultsPrototype.afterInject = lifecycleNoop;defaultsPrototype.afterReap = lifecycleNoop;defaultsPrototype.afterUpdate = lifecycleNoopCb;defaultsPrototype.afterValidate = lifecycleNoopCb;defaultsPrototype.allowSimpleWhere = true;defaultsPrototype.basePath = '';defaultsPrototype.beforeCreate = lifecycleNoopCb;defaultsPrototype.beforeCreateCollection = lifecycleNoop;defaultsPrototype.beforeCreateInstance = lifecycleNoop;defaultsPrototype.beforeDestroy = lifecycleNoopCb;defaultsPrototype.beforeEject = lifecycleNoop;defaultsPrototype.beforeInject = lifecycleNoop;defaultsPrototype.beforeReap = lifecycleNoop;defaultsPrototype.beforeUpdate = lifecycleNoopCb;defaultsPrototype.beforeValidate = lifecycleNoopCb;defaultsPrototype.bypassCache = false;defaultsPrototype.cacheResponse = !!_utils['default'].w;defaultsPrototype.clearEmptyQueries = true;defaultsPrototype.computed = {};defaultsPrototype.defaultAdapter = 'http';defaultsPrototype.debug = false;defaultsPrototype.defaultValues = {};defaultsPrototype.eagerEject = false;defaultsPrototype.eagerInject = false;defaultsPrototype.endpoint = '';defaultsPrototype.error = console?function(a,b,c){return console[typeof console.error === 'function'?'error':'log'](a,b,c);}:false;defaultsPrototype.instanceEvents = !!_utils['default'].w;defaultsPrototype.fallbackAdapters = ['http'];defaultsPrototype.findStrictCache = false;defaultsPrototype.idAttribute = 'id';defaultsPrototype.ignoredChanges = [/\$/];defaultsPrototype.ignoreMissing = false;defaultsPrototype.keepChangeHistory = false;defaultsPrototype.linkRelations = true;defaultsPrototype.log = console?function(a,b,c,d,e){return console[typeof console.info === 'function'?'info':'log'](a,b,c,d,e);}:false;defaultsPrototype.logFn = function(a,b,c,d){var _this=this;if(_this.debug && _this.log && typeof _this.log === 'function'){_this.log(_this.name || null,a || null,b || null,c || null,d || null);}};defaultsPrototype.maxAge = false;defaultsPrototype.methods = {};defaultsPrototype.notify = !!_utils['default'].w;defaultsPrototype.omit = [];defaultsPrototype.onConflict = 'merge';defaultsPrototype.reapAction = !!_utils['default'].w?'inject':'none';defaultsPrototype.reapInterval = !!_utils['default'].w?30000:false;defaultsPrototype.relationsEnumerable = false;defaultsPrototype.returnMeta = false;defaultsPrototype.resetHistoryOnInject = true;defaultsPrototype.strategy = 'single';defaultsPrototype.upsert = !!_utils['default'].w;defaultsPrototype.useClass = true;defaultsPrototype.useFilter = false;defaultsPrototype.validate = lifecycleNoopCb;defaultsPrototype.defaultFilter = function(collection,resourceName,params,options){var filtered=collection;var where=null;var reserved={skip:'',offset:'',where:'',limit:'',orderBy:'',sort:''};params = params || {};options = options || {};if(_utils['default']._o(params.where)){where = params.where;}else {where = {};}if(options.allowSimpleWhere){_utils['default'].forOwn(params,function(value,key){if(!(key in reserved) && !(key in where)){where[key] = {'==':value};}});}if(_utils['default'].isEmpty(where)){where = null;}if(where){filtered = _utils['default'].filter(filtered,function(attrs){var first=true;var keep=true;_utils['default'].forOwn(where,function(clause,field){if(!_utils['default']._o(clause)){clause = {'==':clause};}_utils['default'].forOwn(clause,function(term,op){var expr=undefined;var isOr=op[0] === '|';var val=_utils['default'].get(attrs,field);op = isOr?op.substr(1):op;if(op === '=='){expr = val == term;}else if(op === '==='){expr = val === term;}else if(op === '!='){expr = val != term;}else if(op === '!=='){expr = val !== term;}else if(op === '>'){expr = val > term;}else if(op === '>='){expr = val >= term;}else if(op === '<'){expr = val < term;}else if(op === '<='){expr = val <= term;}else if(op === 'isectEmpty'){expr = !_utils['default'].intersection(val || [],term || []).length;}else if(op === 'isectNotEmpty'){expr = _utils['default'].intersection(val || [],term || []).length;}else if(op === 'in'){if(_utils['default']._s(term)){expr = term.indexOf(val) !== -1;}else {expr = _utils['default'].contains(term,val);}}else if(op === 'notIn'){if(_utils['default']._s(term)){expr = term.indexOf(val) === -1;}else {expr = !_utils['default'].contains(term,val);}}else if(op === 'contains'){if(_utils['default']._s(val)){expr = val.indexOf(term) !== -1;}else {expr = _utils['default'].contains(val,term);}}else if(op === 'notContains'){if(_utils['default']._s(val)){expr = val.indexOf(term) === -1;}else {expr = !_utils['default'].contains(val,term);}}if(expr !== undefined){keep = first?expr:isOr?keep || expr:keep && expr;}first = false;});});return keep;});}var orderBy=null;if(_utils['default']._s(params.orderBy)){orderBy = [[params.orderBy,'ASC']];}else if(_utils['default']._a(params.orderBy)){orderBy = params.orderBy;}if(!orderBy && _utils['default']._s(params.sort)){orderBy = [[params.sort,'ASC']];}else if(!orderBy && _utils['default']._a(params.sort)){orderBy = params.sort;}if(orderBy){(function(){var index=0;_utils['default'].forEach(orderBy,function(def,i){if(_utils['default']._s(def)){orderBy[i] = [def,'ASC'];}else if(!_utils['default']._a(def)){throw new _errors['default'].IA('DS.filter("' + resourceName + '"[, params][, options]): ' + _utils['default'].toJson(def) + ': Must be a string or an array!',{params:{'orderBy[i]':{actual:typeof def,expected:'string|array'}}});}});filtered = _utils['default'].sort(filtered,function(a,b){return compare(orderBy,index,a,b);});})();}var limit=_utils['default']._n(params.limit)?params.limit:null;var skip=null;if(_utils['default']._n(params.skip)){skip = params.skip;}else if(_utils['default']._n(params.offset)){skip = params.offset;}if(limit && skip){filtered = _utils['default'].slice(filtered,skip,Math.min(filtered.length,skip + limit));}else if(_utils['default']._n(limit)){filtered = _utils['default'].slice(filtered,0,Math.min(filtered.length,limit));}else if(_utils['default']._n(skip)){if(skip < filtered.length){filtered = _utils['default'].slice(filtered,skip);}else {filtered = [];}}return filtered;};var DS=(function(){function DS(options){_classCallCheck(this,DS);var _this=this;options = options || {};_this.store = {};_this.s = _this.store;_this.definitions = {};_this.defs = _this.definitions;_this.adapters = {};_this.defaults = new Defaults();_this.observe = _utils['default'].observe;_utils['default'].forOwn(options,function(v,k){if(k === 'omit'){_this.defaults.omit = v.concat(Defaults.prototype.omit);}else {_this.defaults[k] = v;}});_this.defaults.logFn('new data store created',_this.defaults);var P=_utils['default'].Promise;if(P && !P.prototype.spread){P.prototype.spread = function(cb){return this.then(function(arr){return cb.apply(this,arr);});};}}_createClass(DS,[{key:'getAdapterName',value:function getAdapterName(options){var errorIfNotExist=false;options = options || {};this.defaults.logFn('getAdapterName',options);if(_utils['default']._s(options)){errorIfNotExist = true;options = {adapter:options};}if(this.adapters[options.adapter]){return options.adapter;}else if(errorIfNotExist){throw new Error(options.adapter + ' is not a registered adapter!');}else {return options.defaultAdapter;}}},{key:'getAdapter',value:function getAdapter(options){options = options || {};this.defaults.logFn('getAdapter',options);return this.adapters[this.getAdapterName(options)];}},{key:'registerAdapter',value:function registerAdapter(name,Adapter,options){var _this=this;options = options || {};_this.defaults.logFn('registerAdapter',name,Adapter,options);if(_utils['default'].isFunction(Adapter)){_this.adapters[name] = new Adapter(options);}else {_this.adapters[name] = Adapter;}if(options['default']){_this.defaults.defaultAdapter = name;}_this.defaults.logFn('default adapter is ' + _this.defaults.defaultAdapter);}},{key:'is',value:function is(resourceName,instance){var definition=this.defs[resourceName];if(!definition){throw new _errors['default'].NER(resourceName);}return instance instanceof definition[definition['class']];}}]);return DS;})();var dsPrototype=DS.prototype;dsPrototype.getAdapterName.shorthand = false;dsPrototype.getAdapter.shorthand = false;dsPrototype.registerAdapter.shorthand = false;dsPrototype.errors = _errors['default'];dsPrototype.utils = _utils['default'];function addMethods(target,obj){_utils['default'].forOwn(obj,function(v,k){target[k] = v;target[k].before = function(fn){var orig=target[k];target[k] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}return orig.apply(this,fn.apply(this,args) || args);};};});}addMethods(dsPrototype,_sync_methodsIndex['default']);addMethods(dsPrototype,_async_methodsIndex['default']);exports['default'] = DS;},function(module,exports,__webpack_require__){function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}var _errors=__webpack_require__(3);var BinaryHeap=__webpack_require__(7);var forEach=__webpack_require__(8);var slice=__webpack_require__(9);var forOwn=__webpack_require__(13);var contains=__webpack_require__(10);var deepMixIn=__webpack_require__(14);var pascalCase=__webpack_require__(18);var remove=__webpack_require__(11);var pick=__webpack_require__(15);var sort=__webpack_require__(12);var upperCase=__webpack_require__(19);var get=__webpack_require__(16);var set=__webpack_require__(17);var observe=__webpack_require__(6);var w=undefined;var objectProto=Object.prototype;var toString=objectProto.toString;var P=undefined;try{P = Promise;}catch(err) {console.error('js-data requires a global Promise constructor!');}var isArray=Array.isArray || function isArray(value){return toString.call(value) == '[object Array]' || false;};var isRegExp=function isRegExp(value){return toString.call(value) == '[object RegExp]' || false;};var isString=function isString(value){return typeof value == 'string' || value && typeof value == 'object' && toString.call(value) == '[object String]' || false;};var isObject=function isObject(value){return toString.call(value) == '[object Object]' || false;};var isDate=function isDate(value){return value && typeof value == 'object' && toString.call(value) == '[object Date]' || false;};var isNumber=function isNumber(value){var type=typeof value;return type == 'number' || value && type == 'object' && toString.call(value) == '[object Number]' || false;};var isFunction=function isFunction(value){return typeof value == 'function' || value && toString.call(value) === '[object Function]' || false;};var isStringOrNumber=function isStringOrNumber(value){return isString(value) || isNumber(value);};var isStringOrNumberErr=function isStringOrNumberErr(field){return new _errors['default'].IA('"' + field + '" must be a string or a number!');};var isObjectErr=function isObjectErr(field){return new _errors['default'].IA('"' + field + '" must be an object!');};var isArrayErr=function isArrayErr(field){return new _errors['default'].IA('"' + field + '" must be an array!');};var isEmpty=function isEmpty(val){if(val == null){return true;}else if(typeof val === 'string' || isArray(val)){return !val.length;}else if(typeof val === 'object'){var result=true;forOwn(val,function(){result = false;return false;});return result;}else {return true;}};var intersection=function intersection(array1,array2){if(!array1 || !array2){return [];}var result=[];var item=undefined;for(var i=0,_length=array1.length;i < _length;i++) {item = array1[i];if(contains(result,item)){continue;}if(contains(array2,item)){result.push(item);}}return result;};var filter=function filter(array,cb,thisObj){var results=[];forEach(array,function(value,key,arr){if(cb(value,key,arr)){results.push(value);}},thisObj);return results;};try{w = window;w = {};}catch(e) {w = null;}function Events(target){var events={};target = target || this;target.on = function(type,func,ctx){events[type] = events[type] || [];events[type].push({f:func,c:ctx});};target.off = function(type,func){var listeners=events[type];if(!listeners){events = {};}else if(func){for(var i=0;i < listeners.length;i++) {if(listeners[i] === func){listeners.splice(i,1);break;}}}else {listeners.splice(0,listeners.length);}};target.emit = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}var listeners=events[args.shift()] || [];if(listeners){for(var i=0;i < listeners.length;i++) {listeners[i].f.apply(listeners[i].c,args);}}};}var toPromisify=['beforeValidate','validate','afterValidate','beforeCreate','afterCreate','beforeUpdate','afterUpdate','beforeDestroy','afterDestroy'];var isBlacklisted=observe.isBlacklisted;var copy=function copy(source,destination,stackSource,stackDest,blacklist){if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest,blacklist);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){destination = copy(source,Object.create(Object.getPrototypeOf(source)),stackSource,stackDest,blacklist);}}}else {if(source === destination){throw new Error('Cannot copy! Source and destination are identical.');}stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1){return stackDest[index];}stackSource.push(source);stackDest.push(destination);}var result=undefined;if(isArray(source)){var i=undefined;destination.length = 0;for(i = 0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest,blacklist);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){if(isBlacklisted(key,blacklist)){continue;}result = copy(source[key],null,stackSource,stackDest,blacklist);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}}}return destination;};var equals=function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2){return true;}if(o1 === null || o2 === null){return false;}if(o1 !== o1 && o2 !== o2){return true;}var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2)){return false;}if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key])){return false;}}return true;}}else if(isDate(o1)){if(!isDate(o2)){return false;}_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1) && isRegExp(o2)){return o1.toString() == o2.toString();}else {if(isArray(o2)){return false;}keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key])){continue;}if(!equals(o1[key],o2[key])){return false;}keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key])){return false;}}return true;}}}return false;}};var resolveId=function resolveId(definition,idOrInstance){if(isString(idOrInstance) || isNumber(idOrInstance)){return idOrInstance;}else if(idOrInstance && definition){return idOrInstance[definition.idAttribute] || idOrInstance;}else {return idOrInstance;}};var resolveItem=function resolveItem(resource,idOrInstance){if(resource && (isString(idOrInstance) || isNumber(idOrInstance))){return resource.index[idOrInstance] || idOrInstance;}else {return idOrInstance;}};var isValidString=function isValidString(val){return val != null && val !== '';};var join=function join(items,separator){separator = separator || '';return filter(items,isValidString).join(separator);};var makePath=function makePath(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}var result=join(args,'/');return result.replace(/([^:\/]|^)\/{2,}/g,'$1/');};exports['default'] = {Promise:P,_:function _(parent,options){var _this=this;options = options || {};if(options && options.constructor === parent.constructor){return options;}else if(!isObject(options)){throw new _errors['default'].IA('"options" must be an object!');}forEach(toPromisify,function(name){if(typeof options[name] === 'function' && options[name].toString().indexOf('for (var _len = arg') === -1){options[name] = _this.promisify(options[name]);}});var O=function Options(attrs){var self=this;forOwn(attrs,function(value,key){self[key] = value;});};O.prototype = parent;O.prototype.orig = function(){var orig={};forOwn(this,function(value,key){orig[key] = value;});return orig;};return new O(options);},_n:isNumber,_s:isString,_sn:isStringOrNumber,_snErr:isStringOrNumberErr,_o:isObject,_oErr:isObjectErr,_a:isArray,_aErr:isArrayErr,compute:function compute(fn,field){var _this=this;var args=[];forEach(fn.deps,function(dep){args.push(get(_this,dep));});set(_this,field,fn[fn.length - 1].apply(_this,args));},contains:contains,copy:copy,deepMixIn:deepMixIn,diffObjectFromOldObject:observe.diffObjectFromOldObject,BinaryHeap:BinaryHeap,equals:equals,Events:Events,filter:filter,fillIn:function fillIn(target,obj){forOwn(obj,function(v,k){if(!(k in target)){target[k] = v;}});return target;},forEach:forEach,forOwn:forOwn,fromJson:function fromJson(json){return isString(json)?JSON.parse(json):json;},get:get,intersection:intersection,isArray:isArray,isBlacklisted:isBlacklisted,isEmpty:isEmpty,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isString:isString,makePath:makePath,observe:observe,omit:function omit(obj,bl){var toRemove=[];forOwn(obj,function(v,k){if(isBlacklisted(k,bl)){toRemove.push(k);}});forEach(toRemove,function(k){delete obj[k];});return obj;},pascalCase:pascalCase,pick:pick,promisify:function promisify(fn,target){var _this=this;if(!fn){return;}else if(typeof fn !== 'function'){throw new Error('Can only promisify functions!');}return function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}return new _this.Promise(function(resolve,reject){args.push(function(err,result){if(err){reject(err);}else {resolve(result);}});try{var promise=fn.apply(target || this,args);if(promise && promise.then){promise.then(resolve,reject);}}catch(err) {reject(err);}});};},remove:remove,set:set,slice:slice,sort:sort,toJson:JSON.stringify,updateTimestamp:function updateTimestamp(timestamp){var newTimestamp=typeof Date.now === 'function'?Date.now():new Date().getTime();if(timestamp && newTimestamp <= timestamp){return timestamp + 1;}else {return newTimestamp;}},upperCase:upperCase,removeCircular:function removeCircular(object){return (function rmCirc(value,ctx){var i=undefined;var nu=undefined;if(typeof value === 'object' && value !== null && !(value instanceof Boolean) && !(value instanceof Date) && !(value instanceof Number) && !(value instanceof RegExp) && !(value instanceof String)){var cur=ctx.cur;var parent=ctx.ctx;while(parent) {if(parent.cur === cur){return undefined;}parent = parent.ctx;}if(isArray(value)){nu = [];for(i = 0;i < value.length;i += 1) {nu[i] = rmCirc(value[i],{ctx:ctx,cur:value[i]});}}else {nu = {};forOwn(value,function(v,k){nu[k] = rmCirc(value[k],{ctx:ctx,cur:value[k]});});}return nu;}return value;})(object,{ctx:null,cur:object});},resolveItem:resolveItem,resolveId:resolveId,respond:function respond(response,meta,options){if(options.returnMeta === 'array'){return [response,meta];}else if(options.returnMeta === 'object'){return {response:response,meta:meta};}else {return response;}},w:w,applyRelationGettersToTarget:function applyRelationGettersToTarget(store,definition,target){this.forEach(definition.relationList,function(def){var relationName=def.relation;var enumerable=typeof def.enumerable === 'boolean'?def.enumerable:!!definition.relationsEnumerable;if(typeof def.link === 'boolean'?def.link:!!definition.linkRelations){delete target[def.localField];if(def.type === 'belongsTo'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else if(def.type === 'hasMany'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};if(def.foreignKey){params[def.foreignKey] = this[definition.idAttribute];return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true});}else if(def.localKeys){params.where = _defineProperty({},definition.getResource(relationName).idAttribute,{'in':this[def.localKeys]});return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params);}return undefined;},set:function set(){}});}else if(def.type === 'hasOne'){if(def.localKey){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else {Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};params[def.foreignKey] = this[definition.idAttribute];var items=params[def.foreignKey]?definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true}):[];if(items.length){return items[0];}return undefined;},set:function set(){}});}}}});}};},function(module,exports,__webpack_require__){var _get=function get(_x,_x2,_x3){var _again=true;_function: while(_again) {var object=_x,property=_x2,receiver=_x3;desc = parent = getter = undefined;_again = false;if(object === null)object = Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc === undefined){var parent=Object.getPrototypeOf(object);if(parent === null){return undefined;}else {_x = parent;_x2 = property;_x3 = receiver;_again = true;continue _function;}}else if('value' in desc){return desc.value;}else {var getter=desc.get;if(getter === undefined){return undefined;}return getter.call(receiver);}}};function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}function _inherits(subClass,superClass){if(typeof superClass !== 'function' && superClass !== null){throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__ = superClass;}var IllegalArgumentError=(function(_Error){function IllegalArgumentError(message){_classCallCheck(this,IllegalArgumentError);_get(Object.getPrototypeOf(IllegalArgumentError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(IllegalArgumentError,_Error);return IllegalArgumentError;})(Error);var RuntimeError=(function(_Error2){function RuntimeError(message){_classCallCheck(this,RuntimeError);_get(Object.getPrototypeOf(RuntimeError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(RuntimeError,_Error2);return RuntimeError;})(Error);var NonexistentResourceError=(function(_Error3){function NonexistentResourceError(resourceName){_classCallCheck(this,NonexistentResourceError);_get(Object.getPrototypeOf(NonexistentResourceError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = resourceName + ' is not a registered resource!';}_inherits(NonexistentResourceError,_Error3);return NonexistentResourceError;})(Error);exports['default'] = {IllegalArgumentError:IllegalArgumentError,IA:IllegalArgumentError,RuntimeError:RuntimeError,R:RuntimeError,NonexistentResourceError:NonexistentResourceError,NER:NonexistentResourceError};},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _defineResource=__webpack_require__(28);var _eject=__webpack_require__(29);var _ejectAll=__webpack_require__(30);var _filter=__webpack_require__(31);var _inject=__webpack_require__(32);var NER=_errors['default'].NER;var IA=_errors['default'].IA;var R=_errors['default'].R;function diffIsEmpty(diff){return !(_utils['default'].isEmpty(diff.added) && _utils['default'].isEmpty(diff.removed) && _utils['default'].isEmpty(diff.changed));}exports['default'] = {changes:function changes(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];options = options || {};id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('changes',id,options);var item=definition.get(id);if(item){var _ret=(function(){if(_utils['default'].w){_this.s[resourceName].observers[id].deliver();}var ignoredChanges=options.ignoredChanges || [];_utils['default'].forEach(definition.relationFields,function(field){if(!_utils['default'].contains(ignoredChanges,field)){ignoredChanges.push(field);}});var diff=_utils['default'].diffObjectFromOldObject(item,_this.s[resourceName].previousAttributes[id],_utils['default'].equals,ignoredChanges);_utils['default'].forOwn(diff,function(changeset,name){var toKeep=[];_utils['default'].forOwn(changeset,function(value,field){if(!_utils['default'].isFunction(value)){toKeep.push(field);}});diff[name] = _utils['default'].pick(diff[name],toKeep);});_utils['default'].forEach(definition.relationFields,function(field){delete diff.added[field];delete diff.removed[field];delete diff.changed[field];});return {v:diff};})();if(typeof _ret === 'object')return _ret.v;}},changeHistory:function changeHistory(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(resourceName && !_this.defs[resourceName]){throw new NER(resourceName);}else if(id && !_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('changeHistory',id);if(!definition.keepChangeHistory){definition.errorFn('changeHistory is disabled for this resource!');}else {if(resourceName){var item=definition.get(id);if(item){return resource.changeHistories[id];}}else {return resource.changeHistory;}}},compute:function compute(resourceName,instance){var _this=this;var definition=_this.defs[resourceName];instance = _utils['default'].resolveItem(_this.s[resourceName],instance);if(!definition){throw new NER(resourceName);}else if(!instance){throw new R('Item not in the store!');}else if(!_utils['default']._o(instance) && !_utils['default']._sn(instance)){throw new IA('"instance" must be an object, string or number!');}definition.logFn('compute',instance);_utils['default'].forOwn(definition.computed,function(fn,field){_utils['default'].compute.call(instance,fn,field);});return instance;},createInstance:function createInstance(resourceName,attrs,options){var definition=this.defs[resourceName];var item=undefined;attrs = attrs || {};if(!definition){throw new NER(resourceName);}else if(attrs && !_utils['default'].isObject(attrs)){throw new IA('"attrs" must be an object!');}options = _utils['default']._(definition,options);options.logFn('createInstance',attrs,options);options.beforeCreateInstance(options,attrs);var Constructor=definition[definition['class']];item = new Constructor();if(options.defaultValues){_utils['default'].deepMixIn(item,options.defaultValues);}_utils['default'].deepMixIn(item,attrs);if(definition.computed){definition.compute(item);}options.afterCreateInstance(options,item);return item;},createCollection:function createCollection(resourceName,arr,params,options){var _this=this;var definition=_this.defs[resourceName];arr = arr || [];params = params || {};if(!definition){throw new NER(resourceName);}else if(arr && !_utils['default'].isArray(arr)){throw new IA('"arr" must be an array!');}options = _utils['default']._(definition,options);options.logFn('createCollection',arr,options);options.beforeCreateCollection(options,arr);Object.defineProperties(arr,{fetch:{value:function value(params,options){var __this=this;__this.params = params || __this.params;return definition.findAll(__this.params,options).then(function(data){if(data === __this){return __this;}data.unshift(__this.length);data.unshift(0);__this.splice.apply(__this,data);data.shift();data.shift();if(data.$$injected){_this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this;__this.$$injected = true;}return __this;});}},params:{value:params,writable:true},resourceName:{value:resourceName}});options.afterCreateCollection(options,arr);return arr;},defineResource:_defineResource['default'],digest:function digest(){this.observe.Platform.performMicrotaskCheckpoint();},eject:_eject['default'],ejectAll:_ejectAll['default'],filter:_filter['default'],get:function get(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('get',id,options);return _this.s[resourceName].index[id];},getAll:function getAll(resourceName,ids){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var collection=[];if(!definition){throw new NER(resourceName);}else if(ids && !_utils['default']._a(ids)){throw _utils['default']._aErr('ids');}definition.logFn('getAll',ids);if(_utils['default']._a(ids)){var _length=ids.length;for(var i=0;i < _length;i++) {if(resource.index[ids[i]]){collection.push(resource.index[ids[i]]);}}}else {collection = resource.collection.slice();}return collection;},hasChanges:function hasChanges(resourceName,id){var _this=this;var definition=_this.defs[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('hasChanges',id);return definition.get(id)?diffIsEmpty(definition.changes(id)):false;},inject:_inject['default'],lastModified:function lastModified(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastModified',id);if(id){if(!(id in resource.modified)){resource.modified[id] = 0;}return resource.modified[id];}return resource.collectionModified;},lastSaved:function lastSaved(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastSaved',id);if(!(id in resource.saved)){resource.saved[id] = 0;}return resource.saved[id];},previous:function previous(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('previous',id);return resource.previousAttributes[id]?_utils['default'].copy(resource.previousAttributes[id]):undefined;}};},function(module,exports,__webpack_require__){var _create=__webpack_require__(33);var _destroy=__webpack_require__(34);var _destroyAll=__webpack_require__(35);var _find=__webpack_require__(36);var _findAll=__webpack_require__(37);var _loadRelations=__webpack_require__(38);var _reap=__webpack_require__(39);var _save=__webpack_require__(40);var _update=__webpack_require__(41);var _updateAll=__webpack_require__(42);exports['default'] = {create:_create['default'],destroy:_destroy['default'],destroyAll:_destroyAll['default'],find:_find['default'],findAll:_findAll['default'],loadRelations:_loadRelations['default'],reap:_reap['default'],refresh:function refresh(resourceName,id,options){var _this=this;var DSUtils=_this.utils;return new DSUtils.Promise(function(resolve,reject){var definition=_this.defs[resourceName];id = DSUtils.resolveId(_this.defs[resourceName],id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refresh',id,options);resolve(_this.get(resourceName,id));}}).then(function(item){return item?_this.find(resourceName,id,options):item;});},refreshAll:function refreshAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refreshAll',params,options);resolve(_this.filter(resourceName,params,options));}}).then(function(existing){options.bypassCache = true;return _this.findAll(resourceName,params,options).then(function(found){DSUtils.forEach(existing,function(item){if(found.indexOf(item) === -1){definition.eject(item);}});return found;});});},save:_save['default'],update:_update['default'],updateAll:_updateAll['default']};},function(module,exports,__webpack_require__){(function(global){var testingExposeCycleCount=global.testingExposeCycleCount;function detectObjectObserve(){if(typeof Object.observe !== 'function' || typeof Array.observe !== 'function'){return false;}var records=[];function callback(recs){records = recs;}var test={};var arr=[];Object.observe(test,callback);Array.observe(arr,callback);test.id = 1;test.id = 2;delete test.id;arr.push(1,2);arr.length = 0;Object.deliverChangeRecords(callback);if(records.length !== 5)return false;if(records[0].type != 'add' || records[1].type != 'update' || records[2].type != 'delete' || records[3].type != 'splice' || records[4].type != 'splice'){return false;}Object.unobserve(test,callback);Array.unobserve(arr,callback);return true;}var hasObserve=detectObjectObserve();var createObject='__proto__' in {}?function(obj){return obj;}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name));});return newObject;};var MAX_DIRTY_CHECK_CYCLES=1000;function dirtyCheck(observer){var cycles=0;while(cycles < MAX_DIRTY_CHECK_CYCLES && observer.check_()) {cycles++;}if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;return cycles > 0;}function objectIsEmpty(object){for(var prop in object) return false;return true;}function diffIsEmpty(diff){return objectIsEmpty(diff.added) && objectIsEmpty(diff.removed) && objectIsEmpty(diff.changed);}function isBlacklisted(prop,bl){if(!bl || !bl.length){return false;}var matches;for(var i=0;i < bl.length;i++) {if(Object.prototype.toString.call(bl[i]) === '[object RegExp]' && bl[i].test(prop) || bl[i] === prop){return matches = prop;}}return !!matches;}function diffObjectFromOldObject(object,oldObject,equals,bl){var added={};var removed={};var changed={};for(var prop in oldObject) {var newValue=object[prop];if(isBlacklisted(prop,bl))continue;if(newValue !== undefined && (equals?equals(newValue,oldObject[prop]):newValue === oldObject[prop]))continue;if(!(prop in object)){removed[prop] = undefined;continue;}if(equals?!equals(newValue,oldObject[prop]):newValue !== oldObject[prop])changed[prop] = newValue;}for(var prop in object) {if(prop in oldObject)continue;if(isBlacklisted(prop,bl))continue;added[prop] = object[prop];}if(Array.isArray(object) && object.length !== oldObject.length)changed.length = object.length;return {added:added,removed:removed,changed:changed};}var eomTasks=[];function runEOMTasks(){if(!eomTasks.length)return false;for(var i=0;i < eomTasks.length;i++) {eomTasks[i]();}eomTasks.length = 0;return true;}var runEOM=hasObserve?(function(){return function(fn){return Promise.resolve().then(fn);};})():(function(){return function(fn){eomTasks.push(fn);};})();var observedObjectCache=[];function newObservedObject(){var observer;var object;var discardRecords=false;var first=true;function callback(records){if(observer && observer.state_ === OPENED && !discardRecords)observer.check_(records);}return {open:function open(obs){if(observer)throw Error('ObservedObject in use');if(!first)Object.deliverChangeRecords(callback);observer = obs;first = false;},observe:function observe(obj,arrayObserve){object = obj;if(arrayObserve)Array.observe(object,callback);else Object.observe(object,callback);},deliver:function deliver(discard){discardRecords = discard;Object.deliverChangeRecords(callback);discardRecords = false;},close:function close(){observer = undefined;Object.unobserve(object,callback);observedObjectCache.push(this);}};}function getObservedObject(observer,object,arrayObserve){var dir=observedObjectCache.pop() || newObservedObject();dir.open(observer);dir.observe(object,arrayObserve);return dir;}var UNOPENED=0;var OPENED=1;var CLOSED=2;var nextObserverId=1;function Observer(){this.state_ = UNOPENED;this.callback_ = undefined;this.target_ = undefined;this.directObserver_ = undefined;this.value_ = undefined;this.id_ = nextObserverId++;}Observer.prototype = {open:function open(callback,target){if(this.state_ != UNOPENED)throw Error('Observer has already been opened.');addToAll(this);this.callback_ = callback;this.target_ = target;this.connect_();this.state_ = OPENED;return this.value_;},close:function close(){if(this.state_ != OPENED)return;removeFromAll(this);this.disconnect_();this.value_ = undefined;this.callback_ = undefined;this.target_ = undefined;this.state_ = CLOSED;},deliver:function deliver(){if(this.state_ != OPENED)return;dirtyCheck(this);},report_:function report_(changes){try{this.callback_.apply(this.target_,changes);}catch(ex) {Observer._errorThrownDuringCallback = true;console.error('Exception caught during observer callback: ' + (ex.stack || ex));}},discardChanges:function discardChanges(){this.check_(undefined,true);return this.value_;}};var collectObservers=!hasObserve;var allObservers;Observer._allObserversCount = 0;if(collectObservers){allObservers = [];}function addToAll(observer){Observer._allObserversCount++;if(!collectObservers)return;allObservers.push(observer);}function removeFromAll(observer){Observer._allObserversCount--;}var runningMicrotaskCheckpoint=false;global.Platform = global.Platform || {};global.Platform.performMicrotaskCheckpoint = function(){if(runningMicrotaskCheckpoint)return;if(!collectObservers)return;runningMicrotaskCheckpoint = true;var cycles=0;var anyChanged,toCheck;do {cycles++;toCheck = allObservers;allObservers = [];anyChanged = false;for(var i=0;i < toCheck.length;i++) {var observer=toCheck[i];if(observer.state_ != OPENED)continue;if(observer.check_())anyChanged = true;allObservers.push(observer);}if(runEOMTasks())anyChanged = true;}while(cycles < MAX_DIRTY_CHECK_CYCLES && anyChanged);if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;runningMicrotaskCheckpoint = false;};if(collectObservers){global.Platform.clearObservers = function(){allObservers = [];};}function ObjectObserver(object){Observer.call(this);this.value_ = object;this.oldObject_ = undefined;}ObjectObserver.prototype = createObject({__proto__:Observer.prototype,arrayObserve:false,connect_:function connect_(callback,target){if(hasObserve){this.directObserver_ = getObservedObject(this,this.value_,this.arrayObserve);}else {this.oldObject_ = this.copyObject(this.value_);}},copyObject:function copyObject(object){var copy=Array.isArray(object)?[]:{};for(var prop in object) {copy[prop] = object[prop];};if(Array.isArray(object))copy.length = object.length;return copy;},check_:function check_(changeRecords,skipChanges){var diff;var oldValues;if(hasObserve){if(!changeRecords)return false;oldValues = {};diff = diffObjectFromChangeRecords(this.value_,changeRecords,oldValues);}else {oldValues = this.oldObject_;diff = diffObjectFromOldObject(this.value_,this.oldObject_);}if(diffIsEmpty(diff))return false;if(!hasObserve)this.oldObject_ = this.copyObject(this.value_);this.report_([diff.added || {},diff.removed || {},diff.changed || {},function(property){return oldValues[property];}]);return true;},disconnect_:function disconnect_(){if(hasObserve){this.directObserver_.close();this.directObserver_ = undefined;}else {this.oldObject_ = undefined;}},deliver:function deliver(){if(this.state_ != OPENED)return;if(hasObserve)this.directObserver_.deliver(false);else dirtyCheck(this);},discardChanges:function discardChanges(){if(this.directObserver_)this.directObserver_.deliver(true);else this.oldObject_ = this.copyObject(this.value_);return this.value_;}});var observerSentinel={};var expectedRecordTypes={add:true,update:true,'delete':true};function diffObjectFromChangeRecords(object,changeRecords,oldValues){var added={};var removed={};for(var i=0;i < changeRecords.length;i++) {var record=changeRecords[i];if(!expectedRecordTypes[record.type]){console.error('Unknown changeRecord type: ' + record.type);console.error(record);continue;}if(!(record.name in oldValues))oldValues[record.name] = record.oldValue;if(record.type == 'update')continue;if(record.type == 'add'){if(record.name in removed)delete removed[record.name];else added[record.name] = true;continue;}if(record.name in added){delete added[record.name];delete oldValues[record.name];}else {removed[record.name] = true;}}for(var prop in added) added[prop] = object[prop];for(var prop in removed) removed[prop] = undefined;var changed={};for(var prop in oldValues) {if(prop in added || prop in removed)continue;var newValue=object[prop];if(oldValues[prop] !== newValue)changed[prop] = newValue;}return {added:added,removed:removed,changed:changed};}global.Observer = Observer;global.isBlacklisted = isBlacklisted;global.Observer.runEOM_ = runEOM;global.Observer.observerSentinel_ = observerSentinel;global.Observer.hasObjectObserve = hasObserve;global.diffObjectFromOldObject = diffObjectFromOldObject;global.ObjectObserver = ObjectObserver;})(exports);},function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define('yabh',factory);else if(typeof exports === 'object')exports['BinaryHeap'] = factory();else root['BinaryHeap'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _classCallCheck=function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}};var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();Object.defineProperty(exports,'__esModule',{value:true});function bubbleUp(heap,weightFunc,n){var element=heap[n];var weight=weightFunc(element);while(n > 0) {var parentN=Math.floor((n + 1) / 2) - 1;var _parent=heap[parentN];if(weight >= weightFunc(_parent)){break;}else {heap[parentN] = element;heap[n] = _parent;n = parentN;}}}var bubbleDown=function bubbleDown(heap,weightFunc,n){var length=heap.length;var node=heap[n];var nodeWeight=weightFunc(node);while(true) {var child2N=(n + 1) * 2,child1N=child2N - 1;var swap=null;if(child1N < length){var child1=heap[child1N],child1Weight=weightFunc(child1);if(child1Weight < nodeWeight){swap = child1N;}}if(child2N < length){var child2=heap[child2N],child2Weight=weightFunc(child2);if(child2Weight < (swap === null?nodeWeight:weightFunc(heap[child1N]))){swap = child2N;}}if(swap === null){break;}else {heap[n] = heap[swap];heap[swap] = node;n = swap;}}};var BinaryHeap=(function(){function BinaryHeap(weightFunc,compareFunc){_classCallCheck(this,BinaryHeap);if(!weightFunc){weightFunc = function(x){return x;};}if(!compareFunc){compareFunc = function(x,y){return x === y;};}if(typeof weightFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');}if(typeof compareFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');}this.weightFunc = weightFunc;this.compareFunc = compareFunc;this.heap = [];}_createClass(BinaryHeap,[{key:'push',value:function push(node){this.heap.push(node);bubbleUp(this.heap,this.weightFunc,this.heap.length - 1);}},{key:'peek',value:function peek(){return this.heap[0];}},{key:'pop',value:function pop(){var front=this.heap[0];var end=this.heap.pop();if(this.heap.length > 0){this.heap[0] = end;bubbleDown(this.heap,this.weightFunc,0);}return front;}},{key:'remove',value:function remove(node){var length=this.heap.length;for(var i=0;i < length;i++) {if(this.compareFunc(this.heap[i],node)){var removed=this.heap[i];var end=this.heap.pop();if(i !== length - 1){this.heap[i] = end;bubbleUp(this.heap,this.weightFunc,i);bubbleDown(this.heap,this.weightFunc,i);}return removed;}}return null;}},{key:'removeAll',value:function removeAll(){this.heap = [];}},{key:'size',value:function size(){return this.heap.length;}}]);return BinaryHeap;})();exports['default'] = BinaryHeap;module.exports = exports['default'];}]));});;},function(module,exports,__webpack_require__){function forEach(arr,callback,thisObj){if(arr == null){return;}var i=-1,len=arr.length;while(++i < len) {if(callback.call(thisObj,arr[i],i,arr) === false){break;}}}module.exports = forEach;},function(module,exports,__webpack_require__){function slice(arr,start,end){var len=arr.length;if(start == null){start = 0;}else if(start < 0){start = Math.max(len + start,0);}else {start = Math.min(start,len);}if(end == null){end = len;}else if(end < 0){end = Math.max(len + end,0);}else {end = Math.min(end,len);}var result=[];while(start < end) {result.push(arr[start++]);}return result;}module.exports = slice;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function contains(arr,val){return indexOf(arr,val) !== -1;}module.exports = contains;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function remove(arr,item){var idx=indexOf(arr,item);if(idx !== -1)arr.splice(idx,1);}module.exports = remove;},function(module,exports,__webpack_require__){function mergeSort(arr,compareFn){if(arr == null){return [];}else if(arr.length < 2){return arr;}if(compareFn == null){compareFn = defaultCompare;}var mid,left,right;mid = ~ ~(arr.length / 2);left = mergeSort(arr.slice(0,mid),compareFn);right = mergeSort(arr.slice(mid,arr.length),compareFn);return merge(left,right,compareFn);}function defaultCompare(a,b){return a < b?-1:a > b?1:0;}function merge(left,right,compareFn){var result=[];while(left.length && right.length) {if(compareFn(left[0],right[0]) <= 0){result.push(left.shift());}else {result.push(right.shift());}}if(left.length){result.push.apply(result,left);}if(right.length){result.push.apply(result,right);}return result;}module.exports = mergeSort;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var forIn=__webpack_require__(22);function forOwn(obj,fn,thisObj){forIn(obj,function(val,key){if(hasOwn(obj,key)){return fn.call(thisObj,obj[key],key,obj);}});}module.exports = forOwn;},function(module,exports,__webpack_require__){var forOwn=__webpack_require__(13);var isPlainObject=__webpack_require__(23);function deepMixIn(target,objects){var i=0,n=arguments.length,obj;while(++i < n) {obj = arguments[i];if(obj){forOwn(obj,copyProp,target);}}return target;}function copyProp(val,key){var existing=this[key];if(isPlainObject(val) && isPlainObject(existing)){deepMixIn(existing,val);}else {this[key] = val;}}module.exports = deepMixIn;},function(module,exports,__webpack_require__){var slice=__webpack_require__(9);function pick(obj,var_keys){var keys=typeof arguments[1] !== 'string'?arguments[1]:slice(arguments,1),out={},i=0,key;while(key = keys[i++]) {out[key] = obj[key];}return out;}module.exports = pick;},function(module,exports,__webpack_require__){var isPrimitive=__webpack_require__(24);function get(obj,prop){var parts=prop.split('.'),last=parts.pop();while(prop = parts.shift()) {obj = obj[prop];if(obj == null)return;}return obj[last];}module.exports = get;},function(module,exports,__webpack_require__){var namespace=__webpack_require__(25);function set(obj,prop,val){var parts=/^(.+)\.(.+)$/.exec(prop);if(parts){namespace(obj,parts[1])[parts[2]] = val;}else {obj[prop] = val;}}module.exports = set;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var camelCase=__webpack_require__(27);var upperCase=__webpack_require__(19);function pascalCase(str){str = toString(str);return camelCase(str).replace(/^[a-z]/,upperCase);}module.exports = pascalCase;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function upperCase(str){str = toString(str);return str.toUpperCase();}module.exports = upperCase;},function(module,exports,__webpack_require__){function indexOf(arr,item,fromIndex){fromIndex = fromIndex || 0;if(arr == null){return -1;}var len=arr.length,i=fromIndex < 0?len + fromIndex:fromIndex;while(i < len) {if(arr[i] === item){return i;}i++;}return -1;}module.exports = indexOf;},function(module,exports,__webpack_require__){function hasOwn(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports = hasOwn;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var _hasDontEnumBug,_dontEnums;function checkDontEnum(){_dontEnums = ['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'];_hasDontEnumBug = true;for(var key in {'toString':null}) {_hasDontEnumBug = false;}}function forIn(obj,fn,thisObj){var key,i=0;if(_hasDontEnumBug == null)checkDontEnum();for(key in obj) {if(exec(fn,obj,key,thisObj) === false){break;}}if(_hasDontEnumBug){var ctor=obj.constructor,isProto=!!ctor && obj === ctor.prototype;while(key = _dontEnums[i++]) {if((key !== 'constructor' || !isProto && hasOwn(obj,key)) && obj[key] !== Object.prototype[key]){if(exec(fn,obj,key,thisObj) === false){break;}}}}}function exec(fn,obj,key,thisObj){return fn.call(thisObj,obj[key],key,obj);}module.exports = forIn;},function(module,exports,__webpack_require__){function isPlainObject(value){return !!value && typeof value === 'object' && value.constructor === Object;}module.exports = isPlainObject;},function(module,exports,__webpack_require__){function isPrimitive(value){switch(typeof value){case 'string':case 'number':case 'boolean':return true;}return value == null;}module.exports = isPrimitive;},function(module,exports,__webpack_require__){var forEach=__webpack_require__(8);function namespace(obj,path){if(!path)return obj;forEach(path.split('.'),function(key){if(!obj[key]){obj[key] = {};}obj = obj[key];});return obj;}module.exports = namespace;},function(module,exports,__webpack_require__){function toString(val){return val == null?'':val.toString();}module.exports = toString;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var replaceAccents=__webpack_require__(43);var removeNonWord=__webpack_require__(44);var upperCase=__webpack_require__(19);var lowerCase=__webpack_require__(45);function camelCase(str){str = toString(str);str = replaceAccents(str);str = removeNonWord(str).replace(/[\-_]/g,' ').replace(/\s[a-z]/g,upperCase).replace(/\s+/g,'').replace(/^[A-Z]/g,lowerCase);return str;}module.exports = camelCase;},function(module,exports,__webpack_require__){exports['default'] = defineResource;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var instanceMethods=['compute','eject','refresh','save','update','destroy','loadRelations','changeHistory','changes','hasChanges','lastModified','lastSaved','previous'];function defineResource(definition){var _this=this;var definitions=_this.defs;if(_utils['default']._s(definition)){definition = {name:definition.replace(/\s/gi,'')};}if(!_utils['default']._o(definition)){throw _utils['default']._oErr('definition');}else if(!_utils['default']._s(definition.name)){throw new _errors['default'].IA('"name" must be a string!');}else if(definitions[definition.name]){throw new _errors['default'].R(definition.name + ' is already registered!');}function Resource(options){this.defaultValues = {};this.methods = {};this.computed = {};_utils['default'].deepMixIn(this,options);var parent=_this.defaults;if(definition['extends'] && definitions[definition['extends']]){parent = definitions[definition['extends']];}_utils['default'].fillIn(this.defaultValues,parent.defaultValues);_utils['default'].fillIn(this.methods,parent.methods);_utils['default'].fillIn(this.computed,parent.computed);this.endpoint = 'endpoint' in options?options.endpoint:this.name;}try{var def;var _class;var _ret=(function(){if(definition['extends'] && definitions[definition['extends']]){Resource.prototype = definitions[definition['extends']];}else {Resource.prototype = _this.defaults;}definitions[definition.name] = new Resource(definition);def = definitions[definition.name];def.getResource = function(resourceName){return _this.defs[resourceName];};def.logFn('Preparing resource.');if(!_utils['default']._s(def.idAttribute)){throw new _errors['default'].IA('"idAttribute" must be a string!');}if(def.relations){def.relationList = [];def.relationFields = [];_utils['default'].forOwn(def.relations,function(relatedModels,type){_utils['default'].forOwn(relatedModels,function(defs,relationName){if(!_utils['default']._a(defs)){relatedModels[relationName] = [defs];}_utils['default'].forEach(relatedModels[relationName],function(d){d.type = type;d.relation = relationName;d.name = def.name;def.relationList.push(d);if(d.localField){def.relationFields.push(d.localField);}});});});if(def.relations.belongsTo){_utils['default'].forOwn(def.relations.belongsTo,function(relatedModel,modelName){_utils['default'].forEach(relatedModel,function(relation){if(relation.parent){def.parent = modelName;def.parentKey = relation.localKey;def.parentField = relation.localField;}});});}if(typeof Object.freeze === 'function'){Object.freeze(def.relations);Object.freeze(def.relationList);}}_class = def['class'] = _utils['default'].pascalCase(def.name);try{if(typeof def.useClass === 'function'){eval('function ' + _class + '() { def.useClass.call(this); }');def[_class] = eval(_class);def[_class].prototype = (function(proto){function Ctor(){}Ctor.prototype = proto;return new Ctor();})(def.useClass.prototype);}else {eval('function ' + _class + '() {}');def[_class] = eval(_class);}}catch(e) {def[_class] = function(){};}_utils['default'].forOwn(def.methods,function(fn,m){def[_class].prototype[m] = fn;});def[_class].prototype.set = function(key,value){var _this2=this;_utils['default'].set(this,key,value);def.compute(this);if(def.instanceEvents){setTimeout(function(){_this2.emit('DS.change',def,_this2);},0);}def.handleChange(this);return this;};def[_class].prototype.get = function(key){return _utils['default'].get(this,key);};if(def.instanceEvents){_utils['default'].Events(def[_class].prototype);}_utils['default'].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;if(!def.hasOwnProperty('omit')){parentOmit = def.omit;def.omit = [];}else {parentOmit = _this.defaults.omit;}def.omit = def.omit.concat(parentOmit || []);_utils['default'].forOwn(def.computed,function(fn,field){if(_utils['default'].isFunction(fn)){def.computed[field] = [fn];fn = def.computed[field];}if(def.methods && field in def.methods){def.errorFn('Computed property "' + field + '" conflicts with previously defined prototype method!');}def.omit.push(field);var deps;if(fn.length === 1){var match=fn[0].toString().match(/function.*?\(([\s\S]*?)\)/);deps = match[1].split(',');def.computed[field] = deps.concat(fn);fn = def.computed[field];if(deps.length){def.errorFn('Use the computed property array syntax for compatibility with minified code!');}}deps = fn.slice(0,fn.length - 1);_utils['default'].forEach(deps,function(val,index){deps[index] = val.trim();});fn.deps = _utils['default'].filter(deps,function(dep){return !!dep;});});_utils['default'].forEach(instanceMethods,function(name){def[_class].prototype['DS' + _utils['default'].pascalCase(name)] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}args.unshift(this[def.idAttribute] || this);args.unshift(def.name);return _this[name].apply(_this,args);};});def[_class].prototype.DSCreate = function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}args.unshift(this);args.unshift(def.name);return _this.create.apply(_this,args);};_this.s[def.name] = {collection:[],expiresHeap:new _utils['default'].BinaryHeap(function(x){return x.expires;},function(x,y){return x.item === y;}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var resource=_this.s[def.name];if(def.reapInterval){setInterval(function(){return def.reap();},def.reapInterval);}var fns=['registerAdapter','getAdapterName','getAdapter','is'];for(var key in _this) {if(typeof _this[key] === 'function'){fns.push(key);}}_utils['default'].forEach(fns,function(key){var k=key;if(_this[k].shorthand !== false){def[k] = function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}args.unshift(def.name);return _this[k].apply(_this,args);};def[k].before = function(fn){var orig=def[k];def[k] = function(){for(var _len4=arguments.length,args=Array(_len4),_key4=0;_key4 < _len4;_key4++) {args[_key4] = arguments[_key4];}return orig.apply(def,fn.apply(def,args) || args);};};}else {def[k] = function(){for(var _len5=arguments.length,args=Array(_len5),_key5=0;_key5 < _len5;_key5++) {args[_key5] = arguments[_key5];}return _this[k].apply(_this,args);};}});def.beforeValidate = _utils['default'].promisify(def.beforeValidate);def.validate = _utils['default'].promisify(def.validate);def.afterValidate = _utils['default'].promisify(def.afterValidate);def.beforeCreate = _utils['default'].promisify(def.beforeCreate);def.afterCreate = _utils['default'].promisify(def.afterCreate);def.beforeUpdate = _utils['default'].promisify(def.beforeUpdate);def.afterUpdate = _utils['default'].promisify(def.afterUpdate);def.beforeDestroy = _utils['default'].promisify(def.beforeDestroy);def.afterDestroy = _utils['default'].promisify(def.afterDestroy);var defaultAdapter=undefined;if(def.hasOwnProperty('defaultAdapter')){defaultAdapter = def.defaultAdapter;}_utils['default'].forOwn(def.actions,function(action,name){if(def[name] && !def.actions[name]){throw new Error('Cannot override existing method "' + name + '"!');}action.request = action.request || function(config){return config;};action.response = action.response || function(response){return response;};action.responseError = action.responseError || function(err){return _utils['default'].Promise.reject(err);};def[name] = function(id,options){if(_utils['default']._o(id)){options = id;}options = options || {};var adapter=def.getAdapter(action.adapter || defaultAdapter || 'http');var config=_utils['default'].deepMixIn({},action);if(!options.hasOwnProperty('endpoint') && config.endpoint){options.endpoint = config.endpoint;}if(typeof options.getEndpoint === 'function'){config.url = options.getEndpoint(def,options);}else {var args=[options.basePath || adapter.defaults.basePath || def.basePath,adapter.getEndpoint(def,_utils['default']._sn(id)?id:null,options)];if(_utils['default']._sn(id)){args.push(id);}args.push(action.pathname || name);config.url = _utils['default'].makePath.apply(null,args);}config.method = config.method || 'GET';_utils['default'].deepMixIn(config,options);return new _utils['default'].Promise(function(r){return r(config);}).then(options.request || action.request).then(function(config){return adapter.HTTP(config);}).then(options.response || action.response,options.responseError || action.responseError);};});_utils['default'].Events(def);def.handleChange = function(data){resource.collectionModified = _utils['default'].updateTimestamp(resource.collectionModified);if(def.notify){setTimeout(function(){def.emit('DS.change',def,data);},0);}};def.logFn('Done preparing resource.');return {v:def};})();if(typeof _ret === 'object')return _ret.v;}catch(err) {_this.defaults.errorFn(err);delete definitions[definition.name];delete _this.s[definition.name];throw err;}}},function(module,exports,__webpack_require__){exports['default'] = eject;function eject(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined;var found=false;id = DSUtils.resolveId(definition,id);if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._sn(id)){throw DSUtils._snErr('id');}options = DSUtils._(definition,options);options.logFn('eject',id,options);for(var i=0;i < resource.collection.length;i++) {if(resource.collection[i][definition.idAttribute] == id){item = resource.collection[i];resource.expiresHeap.remove(item);found = true;break;}}if(found){var _ret=(function(){definition.beforeEject(options,item);if(options.notify){definition.emit('DS.beforeEject',definition,item);}var toRemove=[];DSUtils.forOwn(resource.queryData,function(items,queryHash){if(items.$$injected){DSUtils.remove(items,item);}if(!items.length && options.clearEmptyQueries){toRemove.push(queryHash);}});DSUtils.forEach(resource.changeHistories[id],function(changeRecord){DSUtils.remove(resource.changeHistory,changeRecord);});DSUtils.forEach(toRemove,function(queryHash){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];});if(DSUtils.w){resource.observers[id].close();}delete resource.observers[id];delete resource.index[id];delete resource.previousAttributes[id];delete resource.completedQueries[id];delete resource.pendingQueries[id];delete resource.changeHistories[id];delete resource.modified[id];delete resource.saved[id];resource.collection.splice(i,1);definition.handleChange(item);definition.afterEject(options,item);if(options.notify){definition.emit('DS.afterEject',definition,item);}return {v:item};})();if(typeof _ret === 'object')return _ret.v;}}},function(module,exports,__webpack_require__){exports['default'] = ejectAll;function ejectAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._o(params)){throw DSUtils._oErr('params');}definition.logFn('ejectAll',params,options);var resource=_this.s[resourceName];var queryHash=DSUtils.toJson(params);var items=definition.filter(params);var ids=[];if(DSUtils.isEmpty(params)){resource.completedQueries = {};}else {delete resource.completedQueries[queryHash];}DSUtils.forEach(items,function(item){if(item && item[definition.idAttribute]){ids.push(item[definition.idAttribute]);}});DSUtils.forEach(ids,function(id){definition.eject(id,options);});definition.handleChange(items);return items;}},function(module,exports,__webpack_require__){exports['default'] = filter;function filter(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];if(!definition){throw new _this.errors.NER(resourceName);}else if(params && !DSUtils._o(params)){throw DSUtils._oErr('params');}params = params || {};options = DSUtils._(definition,options);options.logFn('filter',params,options);return definition.defaultFilter.call(_this,_this.s[resourceName].collection,resourceName,params,options);}},function(module,exports,__webpack_require__){exports['default'] = inject;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);function makeObserverHandler(definition,resource){var DS=this;var name=definition.name;return function _react(added,removed,changed,oldValueFn,firstTime){var target=this;var item=undefined;var innerId=oldValueFn && oldValueFn(definition.idAttribute)?oldValueFn(definition.idAttribute):target[definition.idAttribute];_utils['default'].forEach(definition.relationFields,function(field){delete added[field];delete removed[field];delete changed[field];});if(!_utils['default'].isEmpty(added) || !_utils['default'].isEmpty(removed) || !_utils['default'].isEmpty(changed) || firstTime){item = DS.get(name,innerId);resource.modified[innerId] = _utils['default'].updateTimestamp(resource.modified[innerId]);if(item && definition.instanceEvents){setTimeout(function(){item.emit('DS.change',definition,item);},0);}definition.handleChange(item);if(definition.keepChangeHistory){var changeRecord={resourceName:name,target:item,added:added,removed:removed,changed:changed,timestamp:resource.modified[innerId]};resource.changeHistories[innerId].push(changeRecord);resource.changeHistory.push(changeRecord);}}if(definition.computed){item = item || DS.get(name,innerId);_utils['default'].forOwn(definition.computed,function(fn,field){var compute=false;_utils['default'].forEach(fn.deps,function(dep){if(dep in added || dep in removed || dep in changed || !(field in item)){compute = true;}});compute = compute || !fn.deps.length;if(compute){_utils['default'].compute.call(item,fn,field);}});}if(definition.idAttribute in changed){definition.errorFn('Doh! You just changed the primary key of an object! Your data for the "' + name + '" resource is now in an undefined (probably broken) state.');}};}function _inject(definition,resource,attrs,options){var _this=this;var injected=undefined;if(_utils['default']._a(attrs)){injected = [];for(var i=0;i < attrs.length;i++) {injected.push(_inject.call(_this,definition,resource,attrs[i],options));}}else {var _react=makeObserverHandler.call(_this,definition,resource);var c=definition.computed;var idA=definition.idAttribute;if(c && c[idA]){(function(){var args=[];_utils['default'].forEach(c[idA].deps,function(dep){args.push(attrs[dep]);});attrs[idA] = c[idA][c[idA].length - 1].apply(attrs,args);})();}if(!(idA in attrs)){var error=new _errors['default'].R(definition.name + '.inject: "attrs" must contain the property specified by "idAttribute"!');options.errorFn(error);throw error;}else {try{(function(){_utils['default'].forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=_this.defs[relationName];var toInject=attrs[def.localField];if(toInject){if(!relationDef){throw new _errors['default'].R(definition.name + ' relation is defined but the resource is not!');}if(_utils['default']._a(toInject)){(function(){var items=[];_utils['default'].forEach(toInject,function(toInjectItem){if(toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]){try{var injectedItem=relationDef.inject(toInjectItem,options.orig());if(def.foreignKey){injectedItem[def.foreignKey] = attrs[definition.idAttribute];}items.push(injectedItem);}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}});})();}else {if(toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]){try{var _injected=relationDef.inject(attrs[def.localField],options.orig());if(def.foreignKey){_injected[def.foreignKey] = attrs[definition.idAttribute];}}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}}}});var id=attrs[idA];var item=definition.get(id);var initialLastModified=item?resource.modified[id]:0;if(!item){if(attrs instanceof definition[definition['class']]){item = attrs;}else {item = new definition[definition['class']]();}_utils['default'].forEach(definition.relationList,function(def){delete attrs[def.localField];});_utils['default'].deepMixIn(item,attrs);resource.collection.push(item);resource.changeHistories[id] = [];if(_utils['default'].w){resource.observers[id] = new _this.observe.ObjectObserver(item);resource.observers[id].open(_react,item);}resource.index[id] = item;_react.call(item,{},{},{},null,true);resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);}else {if(options.onConflict === 'merge'){_utils['default'].deepMixIn(item,attrs);}else if(options.onConflict === 'replace'){_utils['default'].forOwn(item,function(v,k){if(k !== definition.idAttribute){if(!attrs.hasOwnProperty(k)){delete item[k];}}});_utils['default'].forOwn(attrs,function(v,k){if(k !== definition.idAttribute){item[k] = v;}});}if(definition.resetHistoryOnInject){resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);if(resource.changeHistories[id].length){_utils['default'].forEach(resource.changeHistories[id],function(changeRecord){_utils['default'].remove(resource.changeHistory,changeRecord);});resource.changeHistories[id].splice(0,resource.changeHistories[id].length);}}if(_utils['default'].w){resource.observers[id].deliver();}}resource.modified[id] = initialLastModified && resource.modified[id] === initialLastModified?_utils['default'].updateTimestamp(resource.modified[id]):resource.modified[id];resource.expiresHeap.remove(item);var timestamp=new Date().getTime();resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});injected = item;})();}catch(err) {options.errorFn(err,attrs);}}}return injected;}function inject(resourceName,attrs,options){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var injected=undefined;if(!definition){throw new _errors['default'].NER(resourceName);}else if(!_utils['default']._o(attrs) && !_utils['default']._a(attrs)){throw new _errors['default'].IA(resourceName + '.inject: "attrs" must be an object or an array!');}options = _utils['default']._(definition,options);options.logFn('inject',attrs,options);options.beforeInject(options,attrs);if(options.notify){definition.emit('DS.beforeInject',definition,attrs);}injected = _inject.call(_this,definition,resource,attrs,options);definition.handleChange(injected);options.afterInject(options,injected);if(options.notify){definition.emit('DS.afterInject',definition,injected);}return injected;}},function(module,exports,__webpack_require__){exports['default'] = create;function create(resourceName,attrs,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var adapter=undefined;options = options || {};attrs = attrs || {};var rejectionError=undefined;if(!definition){rejectionError = new _this.errors.NER(resourceName);}else if(!DSUtils._o(attrs)){rejectionError = DSUtils._oErr('attrs');}else {options = DSUtils._(definition,options);if(options.upsert && DSUtils._sn(attrs[definition.idAttribute])){return _this.update(resourceName,attrs[definition.idAttribute],attrs,options);}options.logFn('create',attrs,options);}return new DSUtils.Promise(function(resolve,reject){if(rejectionError){reject(rejectionError);}else {resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeCreate',definition,attrs);}adapter = _this.getAdapterName(options);return _this.adapters[adapter].create(definition,DSUtils.omit(attrs,options.omit),options);}).then(function(attrs){return options.afterCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.afterCreate',definition,attrs);}if(options.cacheResponse){var created=_this.inject(definition.name,attrs,options.orig());var id=created[definition.idAttribute];var resource=_this.s[resourceName];resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return created;}else {return _this.createInstance(resourceName,attrs,options);}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = destroy;function destroy(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var item=undefined;var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {item = definition.get(id) || {id:id};options = DSUtils._(definition,options);options.logFn('destroy',id,options);resolve(item);}}).then(function(attrs){return options.beforeDestroy.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeDestroy',definition,attrs);}if(options.eagerEject){definition.eject(id);}adapter = definition.getAdapter(options);return adapter.destroy(definition,id,options);}).then(function(){return options.afterDestroy.call(item,options,item);}).then(function(item){if(options.notify){definition.emit('DS.afterDestroy',definition,item);}definition.eject(id);return DSUtils.respond(id,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && item){definition.inject(item,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = destroyAll;function destroyAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var ejected=undefined,toEject=undefined,adapter=undefined;params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('attrs'));}else {options = DSUtils._(definition,options);options.logFn('destroyAll',params,options);resolve();}}).then(function(){toEject = definition.defaultFilter.call(_this,resourceName,params);return options.beforeDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.beforeDestroy',definition,toEject);}if(options.eagerEject){ejected = definition.ejectAll(params);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].destroyAll(definition,params,options);}).then(function(){return options.afterDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.afterDestroy',definition,toEject);}return ejected || definition.ejectAll(params);}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && ejected){definition.inject(ejected,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = find;function find(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('find',id,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[id];}if((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache){resolve(definition.get(id));}else {delete resource.completedQueries[id];resolve();}}}).then(function(item){if(!item){if(!(id in resource.pendingQueries)){var promise=undefined;var strategy=options.findStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].find(definition,id,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].find(definition,id,options);}resource.pendingQueries[id] = promise.then(function(data){delete resource.pendingQueries[id];if(options.cacheResponse){var injected=definition.inject(data,options.orig());resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return injected;}else {return definition.createInstance(data,options.orig());}});}return resource.pendingQueries[id];}else {return item;}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[id];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = findAll;function processResults(data,resourceName,queryHash,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var idAttribute=_this.defs[resourceName].idAttribute;var date=new Date().getTime();data = data || [];delete resource.pendingQueries[queryHash];resource.completedQueries[queryHash] = date;var injected=definition.inject(data,options.orig());if(DSUtils._a(injected)){DSUtils.forEach(injected,function(item){if(item){var id=item[idAttribute];if(id){resource.completedQueries[id] = date;resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);}}});}else {options.errorFn('response is expected to be an array!');resource.completedQueries[injected[idAttribute]] = date;}return injected;}function findAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var queryHash=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){params = params || {};if(!_this.defs[resourceName]){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);queryHash = DSUtils.toJson(params);options.logFn('findAll',params,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];}if(queryHash in resource.completedQueries){if(options.useFilter){resolve(definition.filter(params,options.orig()));}else {resolve(resource.queryData[queryHash]);}}else {resolve();}}}).then(function(items){if(!(queryHash in resource.completedQueries)){if(!(queryHash in resource.pendingQueries)){var promise=undefined;var strategy=options.findAllStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findAllFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].findAll(definition,params,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].findAll(definition,params,options);}resource.pendingQueries[queryHash] = promise.then(function(data){delete resource.pendingQueries[queryHash];if(options.cacheResponse){resource.queryData[queryHash] = processResults.call(_this,data,resourceName,queryHash,options);resource.queryData[queryHash].$$injected = true;return resource.queryData[queryHash];}else {DSUtils.forEach(data,function(item,i){data[i] = definition.createInstance(item,options.orig());});return data;}});}return resource.pendingQueries[queryHash];}else {return items;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[queryHash];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = loadRelations;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}function loadRelations(resourceName,instance,relations,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];return new DSUtils.Promise(function(resolve,reject){if(DSUtils._sn(instance)){instance = definition.get(instance);}if(DSUtils._s(relations)){relations = [relations];}relations = relations || [];if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._o(instance)){reject(new DSErrors.IA('"instance(id)" must be a string, number or object!'));}else if(!DSUtils._a(relations)){reject(new DSErrors.IA('"relations" must be a string or an array!'));}else {(function(){var _options=DSUtils._(definition,options);_options.logFn('loadRelations',instance,relations,_options);var tasks=[];DSUtils.forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=definition.getResource(relationName);var __options=DSUtils._(relationDef,options);if(!relations.length || DSUtils.contains(relations,relationName) || DSUtils.contains(relations,def.localField)){var task=undefined;var params={};if(__options.allowSimpleWhere){params[def.foreignKey] = instance[definition.idAttribute];}else {params.where = {};params.where[def.foreignKey] = {'==':instance[definition.idAttribute]};}if(def.type === 'hasMany'){if(def.localKeys){delete params[def.foreignKey];params.where = _defineProperty({},relationDef.idAttribute,{'in':instance[def.localKeys]});}task = relationDef.findAll(params,__options.orig());}else if(def.type === 'hasOne'){if(def.localKey && instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}else if(def.foreignKey){task = relationDef.findAll(params,__options.orig()).then(function(hasOnes){return hasOnes.length?hasOnes[0]:null;});}}else if(instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}if(task){tasks.push(task);}}});resolve(tasks);})();}}).then(function(tasks){return DSUtils.Promise.all(tasks);}).then(function(){return instance;});}},function(module,exports,__webpack_require__){exports['default'] = reap;function reap(resourceName,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else {options = DSUtils._(definition,options);if(!options.hasOwnProperty('notify')){options.notify = false;}options.logFn('reap',options);var items=[];var now=new Date().getTime();var expiredItem=undefined;while((expiredItem = resource.expiresHeap.peek()) && expiredItem.expires < now) {items.push(expiredItem.item);delete expiredItem.item;resource.expiresHeap.pop();}resolve(items);}}).then(function(items){if(items.length){definition.beforeReap(options,items);if(options.notify){definition.emit('DS.beforeReap',definition,items);}}if(options.reapAction === 'inject'){(function(){var timestamp=new Date().getTime();DSUtils.forEach(items,function(item){resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});});})();}else if(options.reapAction === 'eject'){DSUtils.forEach(items,function(item){definition.eject(item[definition.idAttribute]);});}else if(options.reapAction === 'refresh'){var _ret2=(function(){var tasks=[];DSUtils.forEach(items,function(item){tasks.push(definition.refresh(item[definition.idAttribute]));});return {v:DSUtils.Promise.all(tasks)};})();if(typeof _ret2 === 'object')return _ret2.v;}return items;}).then(function(items){if(items.length){definition.afterReap(options,items);if(options.notify){definition.emit('DS.afterReap',definition,items);}}return items;});}},function(module,exports,__webpack_require__){exports['default'] = save;function save(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined,noChanges=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else if(!definition.get(id)){reject(new DSErrors.R('id "' + id + '" not found in cache!'));}else {item = definition.get(id);options = DSUtils._(definition,options);options.logFn('save',id,options);resolve(item);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}if(options.changesOnly){if(DSUtils.w){resource.observers[id].deliver();}var toKeep=[];var changes=definition.changes(id);for(var key in changes.added) {toKeep.push(key);}for(key in changes.changed) {toKeep.push(key);}changes = DSUtils.pick(attrs,toKeep);if(DSUtils.isEmpty(changes)){options.logFn('save - no changes',id,options);noChanges = true;return attrs;}else {attrs = changes;}}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(noChanges){return attrs;}else if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = update;function update(resourceName,id,attrs,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('update',id,attrs,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var resource=_this.s[resourceName];var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = updateAll;function updateAll(resourceName,attrs,params,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new DSErrors.NER(resourceName));}else {options = DSUtils._(definition,options);options.logFn('updateAll',attrs,params,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].updateAll(definition,DSUtils.omit(attrs,options.omit),params,options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(data){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}var origOptions=options.orig();if(options.cacheResponse){var _ret=(function(){var injected=definition.inject(data,origOptions);var resource=_this.s[resourceName];DSUtils.forEach(injected,function(i){var id=i[definition.idAttribute];resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[id] = DSUtils.copy(i,null,null,null,definition.relationFields);}});return {v:injected};})();if(typeof _ret === 'object')return _ret.v;}else {var _ret2=(function(){var instances=[];DSUtils.forEach(data,function(item){instances.push(definition.createInstance(item,origOptions));});return {v:instances};})();if(typeof _ret2 === 'object')return _ret2.v;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function replaceAccents(str){str = toString(str);if(str.search(/[\xC0-\xFF]/g) > -1){str = str.replace(/[\xC0-\xC5]/g,'A').replace(/[\xC6]/g,'AE').replace(/[\xC7]/g,'C').replace(/[\xC8-\xCB]/g,'E').replace(/[\xCC-\xCF]/g,'I').replace(/[\xD0]/g,'D').replace(/[\xD1]/g,'N').replace(/[\xD2-\xD6\xD8]/g,'O').replace(/[\xD9-\xDC]/g,'U').replace(/[\xDD]/g,'Y').replace(/[\xDE]/g,'P').replace(/[\xE0-\xE5]/g,'a').replace(/[\xE6]/g,'ae').replace(/[\xE7]/g,'c').replace(/[\xE8-\xEB]/g,'e').replace(/[\xEC-\xEF]/g,'i').replace(/[\xF1]/g,'n').replace(/[\xF2-\xF6\xF8]/g,'o').replace(/[\xF9-\xFC]/g,'u').replace(/[\xFE]/g,'p').replace(/[\xFD\xFF]/g,'y');}return str;}module.exports = replaceAccents;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var PATTERN=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;function removeNonWord(str){str = toString(str);return str.replace(PATTERN,'');}module.exports = removeNonWord;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function lowerCase(str){str = toString(str);return str.toLowerCase();}module.exports = lowerCase;}]));}); - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/build_examples/webpack_es6_2/bundle.js b/build_examples/webpack_es6_2/bundle.js deleted file mode 100644 index 4198430..0000000 --- a/build_examples/webpack_es6_2/bundle.js +++ /dev/null @@ -1,804 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(2); - - __webpack_require__(1); - - angular.module('app', ['js-data']).run(function (DS, DSVersion, $rootScope) { - $rootScope.test = 'It works! Using js-data ' + DSVersion.full; - }); - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - /*! - * js-data-angular - * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> - * @author Jason Dobry <jason.dobry@gmail.com> - * @copyright (c) 2014-2015 Jason Dobry - * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> - * - * @overview Angular wrapper for js-data. - */ - (function webpackUniversalModuleDefinition(root, factory) { - if (true) module.exports = factory(__webpack_require__(5), __webpack_require__(2), (function webpackLoadOptionalExternalModule() { - try { - return __webpack_require__(3); - } catch (e) {} - })());else if (typeof define === 'function' && define.amd) define(['js-data', 'angular'], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { - return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root['axios']); - });else if (typeof exports === 'object') exports['jsDataAngularModuleName'] = factory(require('js-data'), require('angular'), (function webpackLoadOptionalExternalModule() { - try { - return require('axios'); - } catch (e) {} - })());else root['jsDataAngularModuleName'] = factory(root['JSData'], root['angular'], root['axios']); - })(this, function (__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { - return ( /******/(function (modules) { - // webpackBootstrap - /******/ // The module cache - /******/var installedModules = {}; - - /******/ // The require function - /******/function __webpack_require__(moduleId) { - - /******/ // Check if module is in cache - /******/if (installedModules[moduleId]) - /******/return installedModules[moduleId].exports; - - /******/ // Create a new module (and put it into the cache) - /******/var module = installedModules[moduleId] = { - /******/exports: {}, - /******/id: moduleId, - /******/loaded: false - /******/ }; - - /******/ // Execute the module function - /******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - - /******/ // Flag the module as loaded - /******/module.loaded = true; - - /******/ // Return the exports of the module - /******/return module.exports; - /******/ - } - - /******/ // expose the modules object (__webpack_modules__) - /******/__webpack_require__.m = modules; - - /******/ // expose the module cache - /******/__webpack_require__.c = installedModules; - - /******/ // __webpack_public_path__ - /******/__webpack_require__.p = ''; - - /******/ // Load entry module and return exports - /******/return __webpack_require__(0); - /******/ - })([ - /* 0 */ - /***/function (module, exports, __webpack_require__) { - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); - } - } - - /*jshint loopfunc:true*/ - var JSData = __webpack_require__(1); - var DSHttpAdapter = __webpack_require__(4); - var angular = __webpack_require__(2); - - var DSUtils = JSData.DSUtils; - var DSErrors = JSData.DSErrors; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; - var isObject = DSUtils.isObject; - var set = DSUtils.set; - var resolveId = DSUtils.resolveId; - - var adapters = [{ - project: 'js-data-localstorage', - name: 'localstorage', - 'class': 'DSLocalStorageAdapter' - }, { - project: 'js-data-localforage', - name: 'localforage', - 'class': 'DSLocalForageAdapter' - }, { - project: 'js-data-firebase', - name: 'firebase', - 'class': 'DSFirebaseAdapter' - }, { - project: 'js-data-sql', - name: 'sql', - 'class': 'DSSqlAdapter' - }]; - - var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; - - function registerAdapter(adapter) { - var Adapter = undefined; - - try { - Adapter = __webpack_require__(3)(adapter.project); - } catch (e) {} - - if (!Adapter) { - Adapter = window[adapter['class']]; - } - - if (Adapter) { - adapter.loaded = true; - angular.module('js-data').provider(adapter['class'], function () { - var _this = this; - _this.defaults = {}; - _this.$get = [function () { - return new Adapter(_this.defaults); - }]; - }); - } - } - - var DSHttpAdapterProvider = function DSHttpAdapterProvider() { - _classCallCheck(this, DSHttpAdapterProvider); - - var defaults = {}; - this.defaults = defaults; - - this.$get = ['$http', 'DS', function ($http, DS) { - defaults.http = defaults.http || $http; - var adapter = new DSHttpAdapter(defaults); - DS.registerAdapter('http', adapter, { 'default': true }); - return adapter; - }]; - }; - - var DSProvider = function DSProvider() { - _classCallCheck(this, DSProvider); - - var _this = this; - var deps = []; - - for (var i = 0; i < adapters.length; i++) { - if (adapters[i].loaded) { - deps.push(adapters[i]['class']); - } - } - - _this.defaults = {}; - - JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { - var _this = this; - - params = params || {}; - - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!isObject(params)) { - throw new DSErrors.IA('"params" must be an object!'); - } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName); - }, function () { - var items = _this.filter(resourceName, params); - set(scope, expr, items); - if (cb) { - cb(null, items); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { - var _this = this; - - id = resolveId(_this.definitions[resourceName], id); - if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); - } else if (!isString(id) && !isNumber(id)) { - throw new DSErrors.IA('"id" must be a string or a number!'); - } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); - } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); - } - - try { - return scope.$watch(function () { - return _this.lastModified(resourceName, id); - }, function () { - var item = _this.get(resourceName, id); - if (item) { - _this.compute(resourceName, id); - } - set(scope, expr, item); - if (cb) { - cb(null, item); - } - }); - } catch (err) { - if (cb) { - cb(err); - } else { - throw err; - } - } - }; - - function load() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var $rootScope = args[args.length - 2]; - var $q = args[args.length - 1]; - var store = new JSData.DS(_this.defaults); - var originals = {}; - - function QPromise(executor) { - var deferred = $q.defer(); - - try { - executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); - } catch (err) { - deferred.reject(err); - } - - return deferred.promise; - } - - QPromise.all = $q.all; - QPromise.when = $q.when; - QPromise.reject = $q.reject; - - DSUtils.Promise = QPromise; - - // Register any adapters that have been loaded - if (args.length) { - for (var i = 0; i < args.length; i++) { - for (var j = 0; j < adapters.length; j++) { - if (adapters[j].loaded && !adapters[j].registered) { - adapters[j].registered = true; - store.registerAdapter(adapters[j].name, args[i]); - break; - } - } - } - } - - var _loop = function _loop() { - var name = functionsToWrap[k]; - originals[name] = store[name]; - store[name] = function () { - for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args[_key2] = arguments[_key2]; - } - - if (!$rootScope.$$phase) { - return $rootScope.$apply(function () { - return originals[name].apply(store, args); - }); - } - return originals[name].apply(store, args); - }; - }; - - // Wrap certain sync functions with $apply - for (var k = 0; k < functionsToWrap.length; k++) { - _loop(); - } - - // Hook into the digest loop - if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { - $rootScope.$watch(function () { - return store.observe.Platform.performMicrotaskCheckpoint(); - }); - } - - return store; - } - - deps.push('$rootScope'); - deps.push('$q'); - deps.push(load); - - _this.$get = deps; - }; - - angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { - DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); - }]); - - for (var i = 0; i < adapters.length; i++) { - registerAdapter(adapters[i]); - } - - // return the module name - module.exports = 'js-data'; - module.exports.name = 'js-data'; - - /***/ - }, - /* 1 */ - /***/function (module, exports, __webpack_require__) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_1__; - - /***/ - }, - /* 2 */ - /***/function (module, exports, __webpack_require__) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_2__; - - /***/ - }, - /* 3 */ - /***/function (module, exports, __webpack_require__) { - - var map = {}; - function webpackContext(req) { - return __webpack_require__(webpackContextResolve(req)); - }; - function webpackContextResolve(req) { - return map[req] || (function () { - throw new Error('Cannot find module \'' + req + '\'.'); - })(); - }; - webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); - }; - webpackContext.resolve = webpackContextResolve; - module.exports = webpackContext; - webpackContext.id = 3; - - /***/ - }, - /* 4 */ - /***/function (module, exports, __webpack_require__) { - - var _createClass = (function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); - } - }return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; - }; - })(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError('Cannot call a class as a function'); - } - } - - var JSData = __webpack_require__(1); - var axios = null; - - try { - axios = __webpack_require__(5); - } catch (e) {} - - var DSUtils = JSData.DSUtils; - var deepMixIn = DSUtils.deepMixIn; - var removeCircular = DSUtils.removeCircular; - var copy = DSUtils.copy; - var makePath = DSUtils.makePath; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; - - var Defaults = (function () { - function Defaults() { - _classCallCheck(this, Defaults); - } - - _createClass(Defaults, [{ - key: 'queryTransform', - value: function queryTransform(resourceConfig, params) { - return params; - } - }, { - key: 'deserialize', - value: function deserialize(resourceConfig, data) { - return data ? 'data' in data ? data.data : data : data; - } - }, { - key: 'serialize', - value: function serialize(resourceConfig, data) { - return data; - } - }, { - key: 'log', - value: function log() {} - }, { - key: 'error', - value: function error() {} - }]); - - return Defaults; - })(); - - var defaultsPrototype = Defaults.prototype; - - defaultsPrototype.basePath = ''; - - defaultsPrototype.forceTrailingSlash = ''; - - defaultsPrototype.httpConfig = {}; - - var DSHttpAdapter = (function () { - function DSHttpAdapter(options) { - _classCallCheck(this, DSHttpAdapter); - - this.defaults = new Defaults(); - if (console) { - this.defaults.log = function (a, b) { - return console[typeof console.info === 'function' ? 'info' : 'log'](a, b); - }; - } - if (console) { - this.defaults.error = function (a, b) { - return console[typeof console.error === 'function' ? 'error' : 'log'](a, b); - }; - } - deepMixIn(this.defaults, options); - this.http = options.http || axios; - } - - _createClass(DSHttpAdapter, [{ - key: 'getEndpoint', - value: function getEndpoint(resourceConfig, id, options) { - var _this2 = this; - - options = options || {}; - options.params = options.params || {}; - - var item = undefined; - var parentKey = resourceConfig.parentKey; - var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; - var parentField = resourceConfig.parentField; - var parentDef = resourceConfig.getResource(resourceConfig.parent); - var parentId = options.params[parentKey]; - - if (parentId === false || !parentKey || !parentDef) { - if (parentId === false) { - delete options.params[parentKey]; - } - return endpoint; - } else { - delete options.params[parentKey]; - - if (DSUtils._sn(id)) { - item = resourceConfig.get(id); - } else if (DSUtils._o(id)) { - item = id; - } - - if (item) { - parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); - } - - if (parentId) { - var _ret = (function () { - delete options.endpoint; - var _options = {}; - DSUtils.forOwn(options, function (value, key) { - _options[key] = value; - }); - return { - v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) - }; - })(); - - if (typeof _ret === 'object') return _ret.v; - } else { - return endpoint; - } - } - } - }, { - key: 'getPath', - value: function getPath(method, resourceConfig, id, options) { - var _this = this; - options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); - } - return makePath.apply(DSUtils, args); - } - }, { - key: 'HTTP', - value: function HTTP(config) { - var _this = this; - var start = new Date(); - config = copy(config); - config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { - config.url += '/'; - } - if (typeof config.data === 'object') { - config.data = removeCircular(config.data); - } - config.method = config.method.toUpperCase(); - var suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { - config.url += suffix; - } - - function logResponse(data) { - var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); - } - return data; - } else { - if (_this.defaults.error) { - _this.defaults.error('\'FAILED: ' + str, data); - } - return DSUtils.Promise.reject(data); - } - } - - if (!this.http) { - throw new Error('You have not configured this adapter with an http library!'); - } - - return this.http(config).then(logResponse, logResponse); - } - }, { - key: 'GET', - value: function GET(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'POST', - value: function POST(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); - } - }, { - key: 'PUT', - value: function PUT(url, attrs, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); - } - }, { - key: 'DEL', - value: function DEL(url, config) { - config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); - } - }, { - key: 'find', - value: function find(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { - var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item; - }); - } - }, { - key: 'findAll', - value: function findAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return _this.GET(_this.getPath('findAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'create', - value: function create(resourceConfig, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'update', - value: function update(resourceConfig, id, attrs, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'updateAll', - value: function updateAll(resourceConfig, attrs, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.PUT(_this.getPath('updateAll', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroy', - value: function destroy(resourceConfig, id, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - options.params = _this.defaults.queryTransform(resourceConfig, options.params); - return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }, { - key: 'destroyAll', - value: function destroyAll(resourceConfig, params, options) { - var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; - if (params) { - params = _this.defaults.queryTransform(resourceConfig, params); - deepMixIn(options.params, params); - } - return this.DEL(_this.getPath('destroyAll', resourceConfig, params, options), options).then(function (data) { - return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); - }); - } - }]); - - return DSHttpAdapter; - })(); - - module.exports = DSHttpAdapter; - - /***/ - }, - /* 5 */ - /***/function (module, exports, __webpack_require__) { - - if (typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') { - var e = new Error('Cannot find module "axios"');e.code = 'MODULE_NOT_FOUND';throw e; - } - module.exports = __WEBPACK_EXTERNAL_MODULE_5__; - - /***/ - } - /******/]) - ); - }); - ; - - /************************************************************************/ - /******/ - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(4); - module.exports = angular; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - if(typeof axios === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} - module.exports = axios; - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - var require;(function(window,document,undefined){'use strict';function minErr(module,ErrorConstructor){ErrorConstructor = ErrorConstructor || Error;return function(){var code=arguments[0],prefix='[' + (module?module + ':':'') + code + '] ',template=arguments[1],templateArgs=arguments,message,i;message = prefix + template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1),arg;if(index + 2 < templateArgs.length){return toDebugString(templateArgs[index + 2]);}return match;});message = message + '\nhttp://errors.angularjs.org/1.3.15/' + (module?module + '/':'') + code;for(i = 2;i < arguments.length;i++) {message = message + (i == 2?'?':'&') + 'p' + (i - 2) + '=' + encodeURIComponent(toDebugString(arguments[i]));}return new ErrorConstructor(message);};}var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/;var VALIDITY_STATE_PROPERTY='validity';var lowercase=function lowercase(string){return isString(string)?string.toLowerCase():string;};var hasOwnProperty=Object.prototype.hasOwnProperty;var uppercase=function uppercase(string){return isString(string)?string.toUpperCase():string;};var manualLowercase=function manualLowercase(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) | 32);}):s;};var manualUppercase=function manualUppercase(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0) & ~32);}):s;};if('i' !== 'I'.toLowerCase()){lowercase = manualLowercase;uppercase = manualUppercase;}var msie,jqLite,jQuery,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,ngMinErr=minErr('ng'),angular=window.angular || (window.angular = {}),angularModule,uid=0;msie = document.documentMode;function isArrayLike(obj){if(obj == null || isWindow(obj)){return false;}var length=obj.length;if(obj.nodeType === NODE_TYPE_ELEMENT && length){return true;}return isString(obj) || isArray(obj) || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;}function forEach(obj,iterator,context){var key,length;if(obj){if(isFunction(obj)){for(key in obj) {if(key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))){iterator.call(context,obj[key],key,obj);}}}else if(isArray(obj) || isArrayLike(obj)){var isPrimitive=typeof obj !== 'object';for(key = 0,length = obj.length;key < length;key++) {if(isPrimitive || key in obj){iterator.call(context,obj[key],key,obj);}}}else if(obj.forEach && obj.forEach !== forEach){obj.forEach(iterator,context,obj);}else {for(key in obj) {if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key,obj);}}}}return obj;}function sortedKeys(obj){return Object.keys(obj).sort();}function forEachSorted(obj,iterator,context){var keys=sortedKeys(obj);for(var i=0;i < keys.length;i++) {iterator.call(context,obj[keys[i]],keys[i]);}return keys;}function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value);};}function nextUid(){return ++uid;}function setHashKey(obj,h){if(h){obj.$$hashKey = h;}else {delete obj.$$hashKey;}}function extend(dst){var h=dst.$$hashKey;for(var i=1,ii=arguments.length;i < ii;i++) {var obj=arguments[i];if(obj){var keys=Object.keys(obj);for(var j=0,jj=keys.length;j < jj;j++) {var key=keys[j];dst[key] = obj[key];}}}setHashKey(dst,h);return dst;}function int(str){return parseInt(str,10);}function inherit(parent,extra){return extend(Object.create(parent),extra);}function noop(){}noop.$inject = [];function identity($){return $;}identity.$inject = [];function valueFn(value){return function(){return value;};}function isUndefined(value){return typeof value === 'undefined';}function isDefined(value){return typeof value !== 'undefined';}function isObject(value){return value !== null && typeof value === 'object';}function isString(value){return typeof value === 'string';}function isNumber(value){return typeof value === 'number';}function isDate(value){return toString.call(value) === '[object Date]';}var isArray=Array.isArray;function isFunction(value){return typeof value === 'function';}function isRegExp(value){return toString.call(value) === '[object RegExp]';}function isWindow(obj){return obj && obj.window === obj;}function isScope(obj){return obj && obj.$evalAsync && obj.$watch;}function isFile(obj){return toString.call(obj) === '[object File]';}function isFormData(obj){return toString.call(obj) === '[object FormData]';}function isBlob(obj){return toString.call(obj) === '[object Blob]';}function isBoolean(value){return typeof value === 'boolean';}function isPromiseLike(obj){return obj && isFunction(obj.then);}var trim=function trim(value){return isString(value)?value.trim():value;};var escapeForRegexp=function escapeForRegexp(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,'\\$1').replace(/\x08/g,'\\x08');};function isElement(node){return !!(node && (node.nodeName || node.prop && node.attr && node.find));}function makeMap(str){var obj={},items=str.split(','),i;for(i = 0;i < items.length;i++) obj[items[i]] = true;return obj;}function nodeName_(element){return lowercase(element.nodeName || element[0] && element[0].nodeName);}function includes(array,obj){return Array.prototype.indexOf.call(array,obj) != -1;}function arrayRemove(array,value){var index=array.indexOf(value);if(index >= 0)array.splice(index,1);return value;}function copy(source,destination,stackSource,stackDest){if(isWindow(source) || isScope(source)){throw ngMinErr('cpws','Can\'t copy! Making copies of Window or Scope instances is not supported.');}if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){var emptyObject=Object.create(Object.getPrototypeOf(source));destination = copy(source,emptyObject,stackSource,stackDest);}}}else {if(source === destination)throw ngMinErr('cpi','Can\'t copy! Source and destination are identical.');stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1)return stackDest[index];stackSource.push(source);stackDest.push(destination);}var result;if(isArray(source)){destination.length = 0;for(var i=0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {var h=destination.$$hashKey;if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){result = copy(source[key],null,stackSource,stackDest);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}setHashKey(destination,h);}}return destination;}function shallowCopy(src,dst){if(isArray(src)){dst = dst || [];for(var i=0,ii=src.length;i < ii;i++) {dst[i] = src[i];}}else if(isObject(src)){dst = dst || {};for(var key in src) {if(!(key.charAt(0) === '$' && key.charAt(1) === '$')){dst[key] = src[key];}}}return dst || src;}function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2)return true;if(o1 === null || o2 === null)return false;if(o1 !== o1 && o2 !== o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2))return false;if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key]))return false;}return true;}}else if(isDate(o1)){if(!isDate(o2))return false;_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1)){return isRegExp(o2)?o1.toString() == o2.toString():false;}else {if(isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || isArray(o2) || isDate(o2) || isRegExp(o2))return false;keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key]))return false;}return true;}}}return false;}}var csp=function csp(){if(isDefined(csp.isActive_))return csp.isActive_;var active=!!(document.querySelector('[ng-csp]') || document.querySelector('[data-ng-csp]'));if(!active){try{new Function('');}catch(e) {active = true;}}return csp.isActive_ = active;};function concat(array1,array2,index){return array1.concat(slice.call(array2,index));}function sliceArgs(args,startIndex){return slice.call(args,startIndex || 0);}function bind(self,fn){var curryArgs=arguments.length > 2?sliceArgs(arguments,2):[];if(isFunction(fn) && !(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs);}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self);};}else {return fn;}}function toJsonReplacer(key,value){var val=value;if(typeof key === 'string' && key.charAt(0) === '$' && key.charAt(1) === '$'){val = undefined;}else if(isWindow(value)){val = '$WINDOW';}else if(value && document === value){val = '$DOCUMENT';}else if(isScope(value)){val = '$SCOPE';}return val;}function toJson(obj,pretty){if(typeof obj === 'undefined')return undefined;if(!isNumber(pretty)){pretty = pretty?2:null;}return JSON.stringify(obj,toJsonReplacer,pretty);}function fromJson(json){return isString(json)?JSON.parse(json):json;}function startingTag(element){element = jqLite(element).clone();try{element.empty();}catch(e) {}var elemHtml=jqLite('<div>').append(element).html();try{return element[0].nodeType === NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return '<' + lowercase(nodeName);});}catch(e) {return lowercase(elemHtml);}}function tryDecodeURIComponent(value){try{return decodeURIComponent(value);}catch(e) {}}function parseKeyValue(keyValue){var obj={},key_value,key;forEach((keyValue || '').split('&'),function(keyValue){if(keyValue){key_value = keyValue.replace(/\+/g,'%20').split('=');key = tryDecodeURIComponent(key_value[0]);if(isDefined(key)){var val=isDefined(key_value[1])?tryDecodeURIComponent(key_value[1]):true;if(!hasOwnProperty.call(obj,key)){obj[key] = val;}else if(isArray(obj[key])){obj[key].push(val);}else {obj[key] = [obj[key],val];}}}});return obj;}function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){if(isArray(value)){forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,true) + (arrayValue === true?'':'=' + encodeUriQuery(arrayValue,true)));});}else {parts.push(encodeUriQuery(key,true) + (value === true?'':'=' + encodeUriQuery(value,true)));}});return parts.length?parts.join('&'):'';}function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,'&').replace(/%3D/gi,'=').replace(/%2B/gi,'+');}function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,'@').replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%3B/gi,';').replace(/%20/g,pctEncodeSpaces?'%20':'+');}var ngAttrPrefixes=['ng-','data-ng-','ng:','x-ng-'];function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;element = jqLite(element);for(i = 0;i < ii;++i) {attr = ngAttrPrefixes[i] + ngAttr;if(isString(attr = element.attr(attr))){return attr;}}return null;}function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';if(!appElement && element.hasAttribute && element.hasAttribute(name)){appElement = element;module = element.getAttribute(name);}});forEach(ngAttrPrefixes,function(prefix){var name=prefix + 'app';var candidate;if(!appElement && (candidate = element.querySelector('[' + name.replace(':','\\:') + ']'))){appElement = candidate;module = candidate.getAttribute(name);}});if(appElement){config.strictDi = getNgAttribute(appElement,'strict-di') !== null;bootstrap(appElement,module?[module]:[],config);}}function bootstrap(element,modules,config){if(!isObject(config))config = {};var defaultConfig={strictDi:false};config = extend(defaultConfig,config);var doBootstrap=function doBootstrap(){element = jqLite(element);if(element.injector()){var tag=element[0] === document?'document':startingTag(element);throw ngMinErr('btstrpd','App Already Bootstrapped with this Element \'{0}\'',tag.replace(/</,'<').replace(/>/,'>'));}modules = modules || [];modules.unshift(['$provide',function($provide){$provide.value('$rootElement',element);}]);if(config.debugInfoEnabled){modules.push(['$compileProvider',function($compileProvider){$compileProvider.debugInfoEnabled(true);}]);}modules.unshift('ng');var injector=createInjector(modules,config.strictDi);injector.invoke(['$rootScope','$rootElement','$compile','$injector',function bootstrapApply(scope,element,compile,injector){scope.$apply(function(){element.data('$injector',injector);compile(element)(scope);});}]);return injector;};var NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/;var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window && NG_ENABLE_DEBUG_INFO.test(window.name)){config.debugInfoEnabled = true;window.name = window.name.replace(NG_ENABLE_DEBUG_INFO,'');}if(window && !NG_DEFER_BOOTSTRAP.test(window.name)){return doBootstrap();}window.name = window.name.replace(NG_DEFER_BOOTSTRAP,'');angular.resumeBootstrap = function(extraModules){forEach(extraModules,function(module){modules.push(module);});return doBootstrap();};if(isFunction(angular.resumeDeferredBootstrap)){angular.resumeDeferredBootstrap();}}function reloadWithDebugInfo(){window.name = 'NG_ENABLE_DEBUG_INFO!' + window.name;window.location.reload();}function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector){throw ngMinErr('test','no injector found for element argument to getTestability');}return injector.get('$$testability');}var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator = separator || '_';return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return (pos?separator:'') + letter.toLowerCase();});}var bindJQueryFired=false;var skipDestroyOnNextJQueryCleanData;function bindJQuery(){var originalCleanData;if(bindJQueryFired){return;}jQuery = window.jQuery;if(jQuery && jQuery.fn.on){jqLite = jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});originalCleanData = jQuery.cleanData;jQuery.cleanData = function(elems){var events;if(!skipDestroyOnNextJQueryCleanData){for(var i=0,elem;(elem = elems[i]) != null;i++) {events = jQuery._data(elem,'events');if(events && events.$destroy){jQuery(elem).triggerHandler('$destroy');}}}else {skipDestroyOnNextJQueryCleanData = false;}originalCleanData(elems);};}else {jqLite = JQLite;}angular.element = jqLite;bindJQueryFired = true;}function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq','Argument \'{0}\' is {1}',name || '?',reason || 'required');}return arg;}function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation && isArray(arg)){arg = arg[arg.length - 1];}assertArg(isFunction(arg),name,'not a function, got ' + (arg && typeof arg === 'object'?arg.constructor.name || 'Object':typeof arg));return arg;}function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}}function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split('.');var key;var lastInstance=obj;var len=keys.length;for(var i=0;i < len;i++) {key = keys[i];if(obj){obj = (lastInstance = obj)[key];}}if(!bindFnToScope && isFunction(obj)){return bind(lastInstance,obj);}return obj;}function getBlockNodes(nodes){var node=nodes[0];var endNode=nodes[nodes.length - 1];var blockNodes=[node];do {node = node.nextSibling;if(!node)break;blockNodes.push(node);}while(node !== endNode);return jqLite(blockNodes);}function createMap(){return Object.create(null);}var NODE_TYPE_ELEMENT=1;var NODE_TYPE_TEXT=3;var NODE_TYPE_COMMENT=8;var NODE_TYPE_DOCUMENT=9;var NODE_TYPE_DOCUMENT_FRAGMENT=11;function setupModuleLoader(window){var $injectorMinErr=minErr('$injector');var ngMinErr=minErr('ng');function ensure(obj,name,factory){return obj[name] || (obj[name] = factory());}var angular=ensure(window,'angular',Object);angular.$$minErr = angular.$$minErr || minErr;return ensure(angular,'module',function(){var modules={};return function module(name,requires,configFn){var assertNotHasOwnProperty=function assertNotHasOwnProperty(name,context){if(name === 'hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}};assertNotHasOwnProperty(name,'module');if(requires && modules.hasOwnProperty(name)){modules[name] = null;}return ensure(modules,name,function(){if(!requires){throw $injectorMinErr('nomod','Module \'{0}\' is not available! You either misspelled ' + 'the module name or forgot to load it. If registering a module ensure that you ' + 'specify the dependencies as the second argument.',name);}var invokeQueue=[];var configBlocks=[];var runBlocks=[];var config=invokeLater('$injector','invoke','push',configBlocks);var moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLater('$provide','provider'),factory:invokeLater('$provide','factory'),service:invokeLater('$provide','service'),value:invokeLater('$provide','value'),constant:invokeLater('$provide','constant','unshift'),animation:invokeLater('$animateProvider','register'),filter:invokeLater('$filterProvider','register'),controller:invokeLater('$controllerProvider','register'),directive:invokeLater('$compileProvider','directive'),config:config,run:function run(block){runBlocks.push(block);return this;}};if(configFn){config(configFn);}return moduleInstance;function invokeLater(provider,method,insertMethod,queue){if(!queue)queue = invokeQueue;return function(){queue[insertMethod || 'push']([provider,method,arguments]);return moduleInstance;};}});};});}function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){val = toJsonReplacer(key,val);if(isObject(val)){if(seen.indexOf(val) >= 0)return '<<already seen>>';seen.push(val);}return val;});}function toDebugString(obj){if(typeof obj === 'function'){return obj.toString().replace(/ \{[\s\S]*$/,'');}else if(typeof obj === 'undefined'){return 'undefined';}else if(typeof obj !== 'string'){return serializeObject(obj);}return obj;}var version={full:'1.3.15',major:1,minor:3,dot:15,codeName:'locality-filtration'};function publishExternalAPI(angular){extend(angular,{'bootstrap':bootstrap,'copy':copy,'extend':extend,'equals':equals,'element':jqLite,'forEach':forEach,'injector':createInjector,'noop':noop,'bind':bind,'toJson':toJson,'fromJson':fromJson,'identity':identity,'isUndefined':isUndefined,'isDefined':isDefined,'isString':isString,'isFunction':isFunction,'isObject':isObject,'isNumber':isNumber,'isElement':isElement,'isArray':isArray,'version':version,'isDate':isDate,'lowercase':lowercase,'uppercase':uppercase,'callbacks':{counter:0},'getTestability':getTestability,'$$minErr':minErr,'$$csp':csp,'reloadWithDebugInfo':reloadWithDebugInfo});angularModule = setupModuleLoader(window);try{angularModule('ngLocale');}catch(e) {angularModule('ngLocale',[]).provider('$locale',$LocaleProvider);}angularModule('ng',['ngLocale'],['$provide',function ngModule($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider});$provide.provider('$compile',$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpBackend:$HttpBackendProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$asyncCallback:$$AsyncCallbackProvider,$$jqLite:$$jqLiteProvider});}]);}JQLite.expando = 'ng339';var jqCache=JQLite.cache = {},jqId=1,addEventListenerFn=function addEventListenerFn(element,type,fn){element.addEventListener(type,fn,false);},removeEventListenerFn=function removeEventListenerFn(element,type,fn){element.removeEventListener(type,fn,false);};JQLite._data = function(node){return this.cache[node[this.expando]] || {};};function jqNextId(){return ++jqId;}var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;var MOUSE_EVENT_MAP={mouseleave:'mouseout',mouseenter:'mouseover'};var jqLiteMinErr=minErr('jqLite');function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter;}).replace(MOZ_HACK_REGEXP,'Moz$1');}var SINGLE_TAG_REGEXP=/^<(\w+)\s*\/?>(?:<\/\1>|)$/;var HTML_REGEXP=/<|&#?\w+;/;var TAG_NAME_REGEXP=/<([\w:]+)/;var XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;var wrapMap={'option':[1,'<select multiple="multiple">','</select>'],'thead':[1,'<table>','</table>'],'col':[2,'<table><colgroup>','</colgroup></table>'],'tr':[2,'<table><tbody>','</tbody></table>'],'td':[3,'<table><tbody><tr>','</tr></tbody></table>'],'_default':[0,'','']};wrapMap.optgroup = wrapMap.option;wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;wrapMap.th = wrapMap.td;function jqLiteIsTextNode(html){return !HTML_REGEXP.test(html);}function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;}function jqLiteBuildFragment(html,context){var tmp,tag,wrap,fragment=context.createDocumentFragment(),nodes=[],i;if(jqLiteIsTextNode(html)){nodes.push(context.createTextNode(html));}else {tmp = tmp || fragment.appendChild(context.createElement('div'));tag = (TAG_NAME_REGEXP.exec(html) || ['',''])[1].toLowerCase();wrap = wrapMap[tag] || wrapMap._default;tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP,'<$1></$2>') + wrap[2];i = wrap[0];while(i--) {tmp = tmp.lastChild;}nodes = concat(nodes,tmp.childNodes);tmp = fragment.firstChild;tmp.textContent = '';}fragment.textContent = '';fragment.innerHTML = '';forEach(nodes,function(node){fragment.appendChild(node);});return fragment;}function jqLiteParseHTML(html,context){context = context || document;var parsed;if(parsed = SINGLE_TAG_REGEXP.exec(html)){return [context.createElement(parsed[1])];}if(parsed = jqLiteBuildFragment(html,context)){return parsed.childNodes;}return [];}function JQLite(element){if(element instanceof JQLite){return element;}var argIsString;if(isString(element)){element = trim(element);argIsString = true;}if(!(this instanceof JQLite)){if(argIsString && element.charAt(0) != '<'){throw jqLiteMinErr('nosel','Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');}return new JQLite(element);}if(argIsString){jqLiteAddNodes(this,jqLiteParseHTML(element));}else {jqLiteAddNodes(this,element);}}function jqLiteClone(element){return element.cloneNode(true);}function jqLiteDealoc(element,onlyDescendants){if(!onlyDescendants)jqLiteRemoveData(element);if(element.querySelectorAll){var descendants=element.querySelectorAll('*');for(var i=0,l=descendants.length;i < l;i++) {jqLiteRemoveData(descendants[i]);}}}function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('offargs','jqLite#off() does not support the `selector` argument');var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var handle=expandoStore && expandoStore.handle;if(!handle)return;if(!type){for(type in events) {if(type !== '$destroy'){removeEventListenerFn(element,type,handle);}delete events[type];}}else {forEach(type.split(' '),function(type){if(isDefined(fn)){var listenerFns=events[type];arrayRemove(listenerFns || [],fn);if(listenerFns && listenerFns.length > 0){return;}}removeEventListenerFn(element,type,handle);delete events[type];});}}function jqLiteRemoveData(element,name){var expandoId=element.ng339;var expandoStore=expandoId && jqCache[expandoId];if(expandoStore){if(name){delete expandoStore.data[name];return;}if(expandoStore.handle){if(expandoStore.events.$destroy){expandoStore.handle({},'$destroy');}jqLiteOff(element);}delete jqCache[expandoId];element.ng339 = undefined;}}function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId && jqCache[expandoId];if(createIfNecessary && !expandoStore){element.ng339 = expandoId = jqNextId();expandoStore = jqCache[expandoId] = {events:{},data:{},handle:undefined};}return expandoStore;}function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value);var isSimpleGetter=!isSimpleSetter && key && !isObject(key);var massGetter=!key;var expandoStore=jqLiteExpandoStore(element,!isSimpleGetter);var data=expandoStore && expandoStore.data;if(isSimpleSetter){data[key] = value;}else {if(massGetter){return data;}else {if(isSimpleGetter){return data && data[key];}else {extend(data,key);}}}}}function jqLiteHasClass(element,selector){if(!element.getAttribute)return false;return (' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').indexOf(' ' + selector + ' ') > -1;}function jqLiteRemoveClass(element,cssClasses){if(cssClasses && element.setAttribute){forEach(cssClasses.split(' '),function(cssClass){element.setAttribute('class',trim((' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ').replace(' ' + trim(cssClass) + ' ',' ')));});}}function jqLiteAddClass(element,cssClasses){if(cssClasses && element.setAttribute){var existingClasses=(' ' + (element.getAttribute('class') || '') + ' ').replace(/[\n\t]/g,' ');forEach(cssClasses.split(' '),function(cssClass){cssClass = trim(cssClass);if(existingClasses.indexOf(' ' + cssClass + ' ') === -1){existingClasses += cssClass + ' ';}});element.setAttribute('class',trim(existingClasses));}}function jqLiteAddNodes(root,elements){if(elements){if(elements.nodeType){root[root.length++] = elements;}else {var length=elements.length;if(typeof length === 'number' && elements.window !== elements){if(length){for(var i=0;i < length;i++) {root[root.length++] = elements[i];}}}else {root[root.length++] = elements;}}}}function jqLiteController(element,name){return jqLiteInheritedData(element,'$' + (name || 'ngController') + 'Controller');}function jqLiteInheritedData(element,name,value){if(element.nodeType == NODE_TYPE_DOCUMENT){element = element.documentElement;}var names=isArray(name)?name:[name];while(element) {for(var i=0,ii=names.length;i < ii;i++) {if((value = jqLite.data(element,names[i])) !== undefined)return value;}element = element.parentNode || element.nodeType === NODE_TYPE_DOCUMENT_FRAGMENT && element.host;}}function jqLiteEmpty(element){jqLiteDealoc(element,true);while(element.firstChild) {element.removeChild(element.firstChild);}}function jqLiteRemove(element,keepData){if(!keepData)jqLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element);}function jqLiteDocumentLoaded(action,win){win = win || window;if(win.document.readyState === 'complete'){win.setTimeout(action);}else {jqLite(win).on('load',action);}}var JQLitePrototype=JQLite.prototype = {ready:function ready(fn){var fired=false;function trigger(){if(fired)return;fired = true;fn();}if(document.readyState === 'complete'){setTimeout(trigger);}else {this.on('DOMContentLoaded',trigger);JQLite(window).on('load',trigger);}},toString:function toString(){var value=[];forEach(this,function(e){value.push('' + e);});return '[' + value.join(', ') + ']';},eq:function eq(index){return index >= 0?jqLite(this[index]):jqLite(this[this.length + index]);},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','),function(value){BOOLEAN_ATTR[lowercase(value)] = value;});var BOOLEAN_ELEMENTS={};forEach('input,select,option,textarea,button,form,details'.split(','),function(value){BOOLEAN_ELEMENTS[value] = true;});var ALIASED_ATTR={'ngMinlength':'minlength','ngMaxlength':'maxlength','ngMin':'min','ngMax':'max','ngPattern':'pattern'};function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr && BOOLEAN_ELEMENTS[nodeName_(element)] && booleanAttr;}function getAliasedAttrName(element,name){var nodeName=element.nodeName;return (nodeName === 'INPUT' || nodeName === 'TEXTAREA') && ALIASED_ATTR[name];}forEach({data:jqLiteData,removeData:jqLiteRemoveData},function(fn,name){JQLite[name] = fn;});forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function scope(element){return jqLite.data(element,'$scope') || jqLiteInheritedData(element.parentNode || element,['$isolateScope','$scope']);},isolateScope:function isolateScope(element){return jqLite.data(element,'$isolateScope') || jqLite.data(element,'$isolateScopeNoTemplate');},controller:jqLiteController,injector:function injector(element){return jqLiteInheritedData(element,'$injector');},removeAttr:function removeAttr(element,name){element.removeAttribute(name);},hasClass:jqLiteHasClass,css:function css(element,name,value){name = camelCase(name);if(isDefined(value)){element.style[name] = value;}else {return element.style[name];}},attr:function attr(element,name,value){var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name] = true;element.setAttribute(name,lowercasedName);}else {element[name] = false;element.removeAttribute(lowercasedName);}}else {return element[name] || (element.attributes.getNamedItem(name) || noop).specified?lowercasedName:undefined;}}else if(isDefined(value)){element.setAttribute(name,value);}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret === null?undefined:ret;}},prop:function prop(element,name,value){if(isDefined(value)){element[name] = value;}else {return element[name];}},text:(function(){getText.$dv = '';return getText;function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return nodeType === NODE_TYPE_ELEMENT || nodeType === NODE_TYPE_TEXT?element.textContent:'';}element.textContent = value;}})(),val:function val(element,value){if(isUndefined(value)){if(element.multiple && nodeName_(element) === 'select'){var result=[];forEach(element.options,function(option){if(option.selected){result.push(option.value || option.text);}});return result.length === 0?null:result;}return element.value;}element.value = value;},html:function html(element,value){if(isUndefined(value)){return element.innerHTML;}jqLiteDealoc(element,true);element.innerHTML = value;},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name] = function(arg1,arg2){var i,key;var nodeCount=this.length;if(fn !== jqLiteEmpty && (fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)?arg1:arg2) === undefined){if(isObject(arg1)){for(i = 0;i < nodeCount;i++) {if(fn === jqLiteData){fn(this[i],arg1);}else {for(key in arg1) {fn(this[i],key,arg1[key]);}}}return this;}else {var value=fn.$dv;var jj=value === undefined?Math.min(nodeCount,1):nodeCount;for(var j=0;j < jj;j++) {var nodeValue=fn(this[j],arg1,arg2);value = value?value + nodeValue:nodeValue;}return value;}}else {for(i = 0;i < nodeCount;i++) {fn(this[i],arg1,arg2);}return this;}};});function createEventHandler(element,events){var eventHandler=function eventHandler(event,type){event.isDefaultPrevented = function(){return event.defaultPrevented;};var eventFns=events[type || event.type];var eventFnsLength=eventFns?eventFns.length:0;if(!eventFnsLength)return;if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation = function(){event.immediatePropagationStopped = true;if(event.stopPropagation){event.stopPropagation();}if(originalStopImmediatePropagation){originalStopImmediatePropagation.call(event);}};}event.isImmediatePropagationStopped = function(){return event.immediatePropagationStopped === true;};if(eventFnsLength > 1){eventFns = shallowCopy(eventFns);}for(var i=0;i < eventFnsLength;i++) {if(!event.isImmediatePropagationStopped()){eventFns[i].call(element,event);}}};eventHandler.elem = element;return eventHandler;}forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('onargs','jqLite#on() does not support the `selector` or `eventData` parameters');if(!jqLiteAcceptsData(element)){return;}var expandoStore=jqLiteExpandoStore(element,true);var events=expandoStore.events;var handle=expandoStore.handle;if(!handle){handle = expandoStore.handle = createEventHandler(element,events);}var types=type.indexOf(' ') >= 0?type.split(' '):[type];var i=types.length;while(i--) {type = types[i];var eventFns=events[type];if(!eventFns){events[type] = [];if(type === 'mouseenter' || type === 'mouseleave'){jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;if(!related || related !== target && !target.contains(related)){handle(event,type);}});}else {if(type !== '$destroy'){addEventListenerFn(element,type,handle);}}eventFns = events[type];}eventFns.push(fn);}},off:jqLiteOff,one:function one(element,type,fn){element = jqLite(element);element.on(type,function onFn(){element.off(type,fn);element.off(type,onFn);});element.on(type,fn);},replaceWith:function replaceWith(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling);}else {parent.replaceChild(node,element);}index = node;});},children:function children(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType === NODE_TYPE_ELEMENT)children.push(element);});return children;},contents:function contents(element){return element.contentDocument || element.childNodes || [];},append:function append(element,node){var nodeType=element.nodeType;if(nodeType !== NODE_TYPE_ELEMENT && nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT)return;node = new JQLite(node);for(var i=0,ii=node.length;i < ii;i++) {var child=node[i];element.appendChild(child);}},prepend:function prepend(element,node){if(element.nodeType === NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index);});}},wrap:function wrap(element,wrapNode){wrapNode = jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element);}wrapNode.appendChild(element);},remove:jqLiteRemove,detach:function detach(element){jqLiteRemove(element,true);},after:function after(element,newElement){var index=element,parent=element.parentNode;newElement = new JQLite(newElement);for(var i=0,ii=newElement.length;i < ii;i++) {var node=newElement[i];parent.insertBefore(node,index.nextSibling);index = node;}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function toggleClass(element,selector,condition){if(selector){forEach(selector.split(' '),function(className){var classCondition=condition;if(isUndefined(classCondition)){classCondition = !jqLiteHasClass(element,className);}(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className);});}},parent:function parent(element){var parent=element.parentNode;return parent && parent.nodeType !== NODE_TYPE_DOCUMENT_FRAGMENT?parent:null;},next:function next(element){return element.nextElementSibling;},find:function find(element,selector){if(element.getElementsByTagName){return element.getElementsByTagName(selector);}else {return [];}},clone:jqLiteClone,triggerHandler:function triggerHandler(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs;var eventName=event.type || event;var expandoStore=jqLiteExpandoStore(element);var events=expandoStore && expandoStore.events;var eventFns=events && events[eventName];if(eventFns){dummyEvent = {preventDefault:function preventDefault(){this.defaultPrevented = true;},isDefaultPrevented:function isDefaultPrevented(){return this.defaultPrevented === true;},stopImmediatePropagation:function stopImmediatePropagation(){this.immediatePropagationStopped = true;},isImmediatePropagationStopped:function isImmediatePropagationStopped(){return this.immediatePropagationStopped === true;},stopPropagation:noop,type:eventName,target:element};if(event.type){dummyEvent = extend(dummyEvent,event);}eventFnsCopy = shallowCopy(eventFns);handlerArgs = extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent];forEach(eventFnsCopy,function(fn){if(!dummyEvent.isImmediatePropagationStopped()){fn.apply(element,handlerArgs);}});}}},function(fn,name){JQLite.prototype[name] = function(arg1,arg2,arg3){var value;for(var i=0,ii=this.length;i < ii;i++) {if(isUndefined(value)){value = fn(this[i],arg1,arg2,arg3);if(isDefined(value)){value = jqLite(value);}}else {jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));}}return isDefined(value)?value:this;};JQLite.prototype.bind = JQLite.prototype.on;JQLite.prototype.unbind = JQLite.prototype.off;});function $$jqLiteProvider(){this.$get = function $$jqLite(){return extend(JQLite,{hasClass:function hasClass(node,classes){if(node.attr)node = node[0];return jqLiteHasClass(node,classes);},addClass:function addClass(node,classes){if(node.attr)node = node[0];return jqLiteAddClass(node,classes);},removeClass:function removeClass(node,classes){if(node.attr)node = node[0];return jqLiteRemoveClass(node,classes);}});};}function hashKey(obj,nextUidFn){var key=obj && obj.$$hashKey;if(key){if(typeof key === 'function'){key = obj.$$hashKey();}return key;}var objType=typeof obj;if(objType == 'function' || objType == 'object' && obj !== null){key = obj.$$hashKey = objType + ':' + (nextUidFn || nextUid)();}else {key = objType + ':' + obj;}return key;}function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid = function(){return ++uid;};}forEach(array,this.put,this);}HashMap.prototype = {put:function put(key,value){this[hashKey(key,this.nextUid)] = value;},get:function get(key){return this[hashKey(key,this.nextUid)];},remove:function remove(key){var value=this[key = hashKey(key,this.nextUid)];delete this[key];return value;}};var FN_ARGS=/^function\s*[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;var $injectorMinErr=minErr('$injector');function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,''),args=fnText.match(FN_ARGS);if(args){return 'function(' + (args[1] || '').replace(/[\s\r\n]+/,' ') + ')';}return 'fn';}function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if(typeof fn === 'function'){if(!($inject = fn.$inject)){$inject = [];if(fn.length){if(strictDi){if(!isString(name) || !name){name = fn.name || anonFn(fn);}throw $injectorMinErr('strictdi','{0} is not using explicit annotation and cannot be invoked in strict mode',name);}fnText = fn.toString().replace(STRIP_COMMENTS,'');argDecl = fnText.match(FN_ARGS);forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name);});});}fn.$inject = $inject;}}else if(isArray(fn)){last = fn.length - 1;assertArgFn(fn[last],'fn');$inject = fn.slice(0,last);}else {assertArgFn(fn,'fn',true);}return $inject;}function createInjector(modulesToLoad,strictDi){strictDi = strictDi === true;var INSTANTIATING={},providerSuffix='Provider',path=[],loadedModules=new HashMap([],true),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=providerCache.$injector = createInternalInjector(providerCache,function(serviceName,caller){if(angular.isString(caller)){path.push(caller);}throw $injectorMinErr('unpr','Unknown provider: {0}',path.join(' <- '));}),instanceCache={},instanceInjector=instanceCache.$injector = createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName + providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName);});forEach(loadModules(modulesToLoad),function(fn){instanceInjector.invoke(fn || noop);});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate));}else {return delegate(key,value);}};}function provider(name,provider_){assertNotHasOwnProperty(name,'service');if(isFunction(provider_) || isArray(provider_)){provider_ = providerInjector.instantiate(provider_);}if(!provider_.$get){throw $injectorMinErr('pget','Provider \'{0}\' must define $get factory method.',name);}return providerCache[name + providerSuffix] = provider_;}function enforceReturnValue(name,factory){return function enforcedReturnValue(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result)){throw $injectorMinErr('undef','Provider \'{0}\' must return a value from $get factory method.',name);}return result;};}function factory(name,factoryFn,enforce){return provider(name,{$get:enforce !== false?enforceReturnValue(name,factoryFn):factoryFn});}function service(name,constructor){return factory(name,['$injector',function($injector){return $injector.instantiate(constructor);}]);}function value(name,val){return factory(name,valueFn(val),false);}function constant(name,value){assertNotHasOwnProperty(name,'constant');providerCache[name] = value;instanceCache[name] = value;}function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName + providerSuffix),orig$get=origProvider.$get;origProvider.$get = function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance});};}function loadModules(modulesToLoad){var runBlocks=[],moduleFn;forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);function runInvokeQueue(queue){var i,ii;for(i = 0,ii = queue.length;i < ii;i++) {var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2]);}}try{if(isString(module)){moduleFn = angularModule(module);runBlocks = runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);runInvokeQueue(moduleFn._invokeQueue);runInvokeQueue(moduleFn._configBlocks);}else if(isFunction(module)){runBlocks.push(providerInjector.invoke(module));}else if(isArray(module)){runBlocks.push(providerInjector.invoke(module));}else {assertArgFn(module,'module');}}catch(e) {if(isArray(module)){module = module[module.length - 1];}if(e.message && e.stack && e.stack.indexOf(e.message) == -1){e = e.message + '\n' + e.stack;}throw $injectorMinErr('modulerr','Failed to instantiate module {0} due to:\n{1}',module,e.stack || e.message || e);}});return runBlocks;}function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName] === INSTANTIATING){throw $injectorMinErr('cdep','Circular dependency found: {0}',serviceName + ' <- ' + path.join(' <- '));}return cache[serviceName];}else {try{path.unshift(serviceName);cache[serviceName] = INSTANTIATING;return cache[serviceName] = factory(serviceName,caller);}catch(err) {if(cache[serviceName] === INSTANTIATING){delete cache[serviceName];}throw err;}finally {path.shift();}}}function invoke(fn,self,locals,serviceName){if(typeof locals === 'string'){serviceName = locals;locals = null;}var args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName),length,i,key;for(i = 0,length = $inject.length;i < length;i++) {key = $inject[i];if(typeof key !== 'string'){throw $injectorMinErr('itkn','Incorrect injection token! Expected service name as string, got {0}',key);}args.push(locals && locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName));}if(isArray(fn)){fn = fn[length];}return fn.apply(self,args);}function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length - 1]:Type).prototype || null);var returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue) || isFunction(returnedValue)?returnedValue:instance;}return {invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function has(name){return providerCache.hasOwnProperty(name + providerSuffix) || cache.hasOwnProperty(name);}};}}createInjector.$$annotate = annotate;function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling = function(){autoScrollingEnabled = false;};this.$get = ['$window','$location','$rootScope',function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=null;Array.prototype.some.call(list,function(element){if(nodeName_(element) === 'a'){result = element;return true;}});return result;}function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset)){offset = offset();}else if(isElement(offset)){var elem=offset[0];var style=$window.getComputedStyle(elem);if(style.position !== 'fixed'){offset = 0;}else {offset = elem.getBoundingClientRect().bottom;}}else if(!isNumber(offset)){offset = 0;}return offset;}function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop - offset);}}else {$window.scrollTo(0,0);}}function scroll(){var hash=$location.hash(),elm;if(!hash)scrollTo(null);else if(elm = document.getElementById(hash))scrollTo(elm);else if(elm = getFirstAnchor(document.getElementsByName(hash)))scrollTo(elm);else if(hash === 'top')scrollTo(null);}if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash();},function autoScrollWatchAction(newVal,oldVal){if(newVal === oldVal && newVal === '')return;jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll);});});}return scroll;}];}var $animateMinErr=minErr('$animate');var $AnimateProvider=['$provide',function($provide){this.$$selectors = {};this.register = function(name,factory){var key=name + '-animation';if(name && name.charAt(0) != '.')throw $animateMinErr('notcsel','Expecting class selector starting with \'.\' got \'{0}\'.',name);this.$$selectors[name.substr(1)] = key;$provide.factory(key,factory);};this.classNameFilter = function(expression){if(arguments.length === 1){this.$$classNameFilter = expression instanceof RegExp?expression:null;}return this.$$classNameFilter;};this.$get = ['$$q','$$asyncCallback','$rootScope',function($$q,$$asyncCallback,$rootScope){var currentDefer;function runAnimationPostDigest(fn){var cancelFn,defer=$$q.defer();defer.promise.$$cancelFn = function ngAnimateMaybeCancel(){cancelFn && cancelFn();};$rootScope.$$postDigest(function ngAnimatePostDigest(){cancelFn = fn(function ngAnimateNotifyComplete(){defer.resolve();});});return defer.promise;}function resolveElementClasses(element,classes){var toAdd=[],toRemove=[];var hasClasses=createMap();forEach((element.attr('class') || '').split(/\s+/),function(className){hasClasses[className] = true;});forEach(classes,function(status,className){var hasClass=hasClasses[className];if(status === false && hasClass){toRemove.push(className);}else if(status === true && !hasClass){toAdd.push(className);}});return toAdd.length + toRemove.length > 0 && [toAdd.length?toAdd:null,toRemove.length?toRemove:null];}function cachedClassManipulation(cache,classes,op){for(var i=0,ii=classes.length;i < ii;++i) {var className=classes[i];cache[className] = op;}}function asyncPromise(){if(!currentDefer){currentDefer = $$q.defer();$$asyncCallback(function(){currentDefer.resolve();currentDefer = null;});}return currentDefer.promise;}function applyStyles(element,options){if(angular.isObject(options)){var styles=extend(options.from || {},options.to || {});element.css(styles);}}return {animate:function animate(element,from,to){applyStyles(element,{from:from,to:to});return asyncPromise();},enter:function enter(element,parent,after,options){applyStyles(element,options);after?after.after(element):parent.prepend(element);return asyncPromise();},leave:function leave(element,options){applyStyles(element,options);element.remove();return asyncPromise();},move:function move(element,parent,after,options){return this.enter(element,parent,after,options);},addClass:function addClass(element,className,options){return this.setClass(element,className,[],options);},$$addClassImmediately:function $$addClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteAddClass(element,className);});applyStyles(element,options);return asyncPromise();},removeClass:function removeClass(element,className,options){return this.setClass(element,[],className,options);},$$removeClassImmediately:function $$removeClassImmediately(element,className,options){element = jqLite(element);className = !isString(className)?isArray(className)?className.join(' '):'':className;forEach(element,function(element){jqLiteRemoveClass(element,className);});applyStyles(element,options);return asyncPromise();},setClass:function setClass(element,add,remove,options){var self=this;var STORAGE_KEY='$$animateClasses';var createdCache=false;element = jqLite(element);var cache=element.data(STORAGE_KEY);if(!cache){cache = {classes:{},options:options};createdCache = true;}else if(options && cache.options){cache.options = angular.extend(cache.options || {},options);}var classes=cache.classes;add = isArray(add)?add:add.split(' ');remove = isArray(remove)?remove:remove.split(' ');cachedClassManipulation(classes,add,true);cachedClassManipulation(classes,remove,false);if(createdCache){cache.promise = runAnimationPostDigest(function(done){var cache=element.data(STORAGE_KEY);element.removeData(STORAGE_KEY);if(cache){var classes=resolveElementClasses(element,cache.classes);if(classes){self.$$setClassImmediately(element,classes[0],classes[1],cache.options);}}done();});element.data(STORAGE_KEY,cache);}return cache.promise;},$$setClassImmediately:function $$setClassImmediately(element,add,remove,options){add && this.$$addClassImmediately(element,add);remove && this.$$removeClassImmediately(element,remove);applyStyles(element,options);return asyncPromise();},enabled:noop,cancel:noop};}];}];function $$AsyncCallbackProvider(){this.$get = ['$$rAF','$timeout',function($$rAF,$timeout){return $$rAF.supported?function(fn){return $$rAF(fn);}:function(fn){return $timeout(fn,0,false);};}];}function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock = false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest = completeOutstandingRequest;self.$$incOutstandingRequestCount = function(){outstandingRequestCount++;};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1));}finally {outstandingRequestCount--;if(outstandingRequestCount === 0){while(outstandingRequestCallbacks.length) {try{outstandingRequestCallbacks.pop()();}catch(e) {$log.error(e);}}}}}function getHash(url){var index=url.indexOf('#');return index === -1?'':url.substr(index + 1);}self.notifyWhenNoOutstandingRequests = function(callback){forEach(pollFns,function(pollFn){pollFn();});if(outstandingRequestCount === 0){callback();}else {outstandingRequestCallbacks.push(callback);}};var pollFns=[],pollTimeout;self.addPollFn = function(fn){if(isUndefined(pollTimeout))startPoller(100,setTimeout);pollFns.push(fn);return fn;};function startPoller(interval,setTimeout){(function check(){forEach(pollFns,function(pollFn){pollFn();});pollTimeout = setTimeout(check,interval);})();}var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find('base'),reloadLocation=null;cacheState();lastHistoryState = cachedState;self.url = function(url,replace,state){if(isUndefined(state)){state = null;}if(location !== window.location)location = window.location;if(history !== window.history)history = window.history;if(url){var sameState=lastHistoryState === state;if(lastBrowserUrl === url && (!$sniffer.history || sameState)){return self;}var sameBase=lastBrowserUrl && stripHash(lastBrowserUrl) === stripHash(url);lastBrowserUrl = url;lastHistoryState = state;if($sniffer.history && (!sameBase || !sameState)){history[replace?'replaceState':'pushState'](state,'',url);cacheState();lastHistoryState = cachedState;}else {if(!sameBase){reloadLocation = url;}if(replace){location.replace(url);}else if(!sameBase){location.href = url;}else {location.hash = getHash(url);}}return self;}else {return reloadLocation || location.href.replace(/%27/g,'\'');}};self.state = function(){return cachedState;};var urlChangeListeners=[],urlChangeInit=false;function cacheStateAndFireUrlChange(){cacheState();fireUrlChange();}function getCurrentState(){try{return history.state;}catch(e) {}}var lastCachedState=null;function cacheState(){cachedState = getCurrentState();cachedState = isUndefined(cachedState)?null:cachedState;if(equals(cachedState,lastCachedState)){cachedState = lastCachedState;}lastCachedState = cachedState;}function fireUrlChange(){if(lastBrowserUrl === self.url() && lastHistoryState === cachedState){return;}lastBrowserUrl = self.url();lastHistoryState = cachedState;forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState);});}self.onUrlChange = function(callback){if(!urlChangeInit){if($sniffer.history)jqLite(window).on('popstate',cacheStateAndFireUrlChange);jqLite(window).on('hashchange',cacheStateAndFireUrlChange);urlChangeInit = true;}urlChangeListeners.push(callback);return callback;};self.$$checkUrlChange = fireUrlChange;self.baseHref = function(){var href=baseElement.attr('href');return href?href.replace(/^(https?\:)?\/\/[^\/]*/,''):'';};var lastCookies={};var lastCookieString='';var cookiePath=self.baseHref();function safeDecodeURIComponent(str){try{return decodeURIComponent(str);}catch(e) {return str;}}self.cookies = function(name,value){var cookieLength,cookieArray,cookie,i,index;if(name){if(value === undefined){rawDocument.cookie = encodeURIComponent(name) + '=;path=' + cookiePath + ';expires=Thu, 01 Jan 1970 00:00:00 GMT';}else {if(isString(value)){cookieLength = (rawDocument.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';path=' + cookiePath).length + 1;if(cookieLength > 4096){$log.warn('Cookie \'' + name + '\' possibly not set or overflowed because it was too large (' + cookieLength + ' > 4096 bytes)!');}}}}else {if(rawDocument.cookie !== lastCookieString){lastCookieString = rawDocument.cookie;cookieArray = lastCookieString.split('; ');lastCookies = {};for(i = 0;i < cookieArray.length;i++) {cookie = cookieArray[i];index = cookie.indexOf('=');if(index > 0){name = safeDecodeURIComponent(cookie.substring(0,index));if(lastCookies[name] === undefined){lastCookies[name] = safeDecodeURIComponent(cookie.substring(index + 1));}}}}return lastCookies;}};self.defer = function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId = setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn);},delay || 0);pendingDeferIds[timeoutId] = true;return timeoutId;};self.defer.cancel = function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true;}return false;};}function $BrowserProvider(){this.$get = ['$window','$log','$sniffer','$document',function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer);}];}function $CacheFactoryProvider(){this.$get = function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw minErr('$cacheFactory')('iid','CacheId \'{0}\' is already taken!',cacheId);}var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=options && options.capacity || Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId] = {put:function put(key,value){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key] || (lruHash[key] = {key:key});refresh(lruEntry);}if(isUndefined(value))return;if(!(key in data))size++;data[key] = value;if(size > capacity){this.remove(staleEnd.key);}return value;},get:function get(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);}return data[key];},remove:function remove(key){if(capacity < Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry == freshEnd)freshEnd = lruEntry.p;if(lruEntry == staleEnd)staleEnd = lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];}delete data[key];size--;},removeAll:function removeAll(){data = {};size = 0;lruHash = {};freshEnd = staleEnd = null;},destroy:function destroy(){data = null;stats = null;lruHash = null;delete caches[cacheId];},info:function info(){return extend({},stats,{size:size});}};function refresh(entry){if(entry != freshEnd){if(!staleEnd){staleEnd = entry;}else if(staleEnd == entry){staleEnd = entry.n;}link(entry.n,entry.p);link(entry,freshEnd);freshEnd = entry;freshEnd.n = null;}}function link(nextEntry,prevEntry){if(nextEntry != prevEntry){if(nextEntry)nextEntry.p = prevEntry;if(prevEntry)prevEntry.n = nextEntry;}}}cacheFactory.info = function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId] = cache.info();});return info;};cacheFactory.get = function(cacheId){return caches[cacheId];};return cacheFactory;};}function $TemplateCacheProvider(){this.$get = ['$cacheFactory',function($cacheFactory){return $cacheFactory('templates');}];}var $compileMinErr=minErr('$compile');$CompileProvider.$inject = ['$provide','$$sanitizeUriProvider'];function $CompileProvider($provide,$$sanitizeUriProvider){var hasDirectives={},Suffix='Directive',COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap('ngSrc,ngSrcset,src,srcset'),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/;var EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;function parseIsolateBindings(scope,directiveName){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;var bindings={};forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match){throw $compileMinErr('iscp','Invalid isolate scope definition for directive \'{0}\'.' + ' Definition: {... {1}: \'{2}\' ...}',directiveName,scopeName,definition);}bindings[scopeName] = {mode:match[1][0],collection:match[2] === '*',optional:match[3] === '?',attrName:match[4] || scopeName};});return bindings;}this.directive = function registerDirective(name,directiveFactory){assertNotHasOwnProperty(name,'directive');if(isString(name)){assertArg(directiveFactory,'directiveFactory');if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name] = [];$provide.factory(name + Suffix,['$injector','$exceptionHandler',function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive = {compile:valueFn(directive)};}else if(!directive.compile && directive.link){directive.compile = valueFn(directive.link);}directive.priority = directive.priority || 0;directive.index = index;directive.name = directive.name || name;directive.require = directive.require || directive.controller && directive.name;directive.restrict = directive.restrict || 'EA';if(isObject(directive.scope)){directive.$$isolateBindings = parseIsolateBindings(directive.scope,directive.name);}directives.push(directive);}catch(e) {$exceptionHandler(e);}});return directives;}]);}hasDirectives[name].push(directiveFactory);}else {forEach(name,reverseParams(registerDirective));}return this;};this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.aHrefSanitizationWhitelist();}};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);return this;}else {return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();}};var debugInfoEnabled=true;this.debugInfoEnabled = function(enabled){if(isDefined(enabled)){debugInfoEnabled = enabled;return this;}return debugInfoEnabled;};this.$get = ['$injector','$interpolate','$exceptionHandler','$templateRequest','$parse','$controller','$rootScope','$document','$sce','$animate','$$sanitizeUri',function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){var Attributes=function Attributes(element,attributesToCopy){if(attributesToCopy){var keys=Object.keys(attributesToCopy);var i,l,key;for(i = 0,l = keys.length;i < l;i++) {key = keys[i];this[key] = attributesToCopy[key];}}else {this.$attr = {};}this.$$element = element;};Attributes.prototype = {$normalize:directiveNormalize,$addClass:function $addClass(classVal){if(classVal && classVal.length > 0){$animate.addClass(this.$$element,classVal);}},$removeClass:function $removeClass(classVal){if(classVal && classVal.length > 0){$animate.removeClass(this.$$element,classVal);}},$updateClass:function $updateClass(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);if(toAdd && toAdd.length){$animate.addClass(this.$$element,toAdd);}var toRemove=tokenDifference(oldClasses,newClasses);if(toRemove && toRemove.length){$animate.removeClass(this.$$element,toRemove);}},$set:function $set(key,value,writeAttr,attrName){var node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(node,key),observer=key,nodeName;if(booleanKey){this.$$element.prop(key,value);attrName = booleanKey;}else if(aliasedKey){this[aliasedKey] = value;observer = aliasedKey;}this[key] = value;if(attrName){this.$attr[key] = attrName;}else {attrName = this.$attr[key];if(!attrName){this.$attr[key] = attrName = snake_case(key,'-');}}nodeName = nodeName_(this.$$element);if(nodeName === 'a' && key === 'href' || nodeName === 'img' && key === 'src'){this[key] = value = $$sanitizeUri(value,key === 'src');}else if(nodeName === 'img' && key === 'srcset'){var result='';var trimmedSrcset=trim(value);var srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/;var pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/;var rawUris=trimmedSrcset.split(pattern);var nbrUrisWith2parts=Math.floor(rawUris.length / 2);for(var i=0;i < nbrUrisWith2parts;i++) {var innerIdx=i * 2;result += $$sanitizeUri(trim(rawUris[innerIdx]),true);result += ' ' + trim(rawUris[innerIdx + 1]);}var lastTuple=trim(rawUris[i * 2]).split(/\s/);result += $$sanitizeUri(trim(lastTuple[0]),true);if(lastTuple.length === 2){result += ' ' + trim(lastTuple[1]);}this[key] = value = result;}if(writeAttr !== false){if(value === null || value === undefined){this.$$element.removeAttr(attrName);}else {this.$$element.attr(attrName,value);}}var $$observers=this.$$observers;$$observers && forEach($$observers[observer],function(fn){try{fn(value);}catch(e) {$exceptionHandler(e);}});},$observe:function $observe(key,fn){var attrs=this,$$observers=attrs.$$observers || (attrs.$$observers = createMap()),listeners=$$observers[key] || ($$observers[key] = []);listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter && attrs.hasOwnProperty(key)){fn(attrs[key]);}});return function(){arrayRemove(listeners,fn);};}};function safeAddClass($element,className){try{$element.addClass(className);}catch(e) {}}var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=startSymbol == '{{' || endSymbol == '}}'?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol);},NG_ATTR_BINDING=/^ngAttr[A-Z]/;compile.$$addBindingInfo = debugInfoEnabled?function $$addBindingInfo($element,binding){var bindings=$element.data('$binding') || [];if(isArray(binding)){bindings = bindings.concat(binding);}else {bindings.push(binding);}$element.data('$binding',bindings);}:noop;compile.$$addBindingClass = debugInfoEnabled?function $$addBindingClass($element){safeAddClass($element,'ng-binding');}:noop;compile.$$addScopeInfo = debugInfoEnabled?function $$addScopeInfo($element,scope,isolated,noTemplate){var dataName=isolated?noTemplate?'$isolateScopeNoTemplate':'$isolateScope':'$scope';$element.data(dataName,scope);}:noop;compile.$$addScopeClass = debugInfoEnabled?function $$addScopeClass($element,isolated){safeAddClass($element,isolated?'ng-isolate-scope':'ng-scope');}:noop;return compile;function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){if(!($compileNodes instanceof jqLite)){$compileNodes = jqLite($compileNodes);}forEach($compileNodes,function(node,index){if(node.nodeType == NODE_TYPE_TEXT && node.nodeValue.match(/\S+/)){$compileNodes[index] = jqLite(node).wrap('<span></span>').parent()[0];}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function publicLinkFn(scope,cloneConnectFn,options){assertArg(scope,'scope');options = options || {};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;if(parentBoundTranscludeFn && parentBoundTranscludeFn.$$boundTransclude){parentBoundTranscludeFn = parentBoundTranscludeFn.$$boundTransclude;}if(!namespace){namespace = detectNamespaceForChildElements(futureParentElement);}var $linkNode;if(namespace !== 'html'){$linkNode = jqLite(wrapTemplate(namespace,jqLite('<div>').append($compileNodes).html()));}else if(cloneConnectFn){$linkNode = JQLitePrototype.clone.call($compileNodes);}else {$linkNode = $compileNodes;}if(transcludeControllers){for(var controllerName in transcludeControllers) {$linkNode.data('$' + controllerName + 'Controller',transcludeControllers[controllerName].instance);}}compile.$$addScopeInfo($linkNode,scope);if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn);return $linkNode;};}function detectNamespaceForChildElements(parentElement){var node=parentElement && parentElement[0];if(!node){return 'html';}else {return nodeName_(node) !== 'foreignobject' && node.toString().match(/SVG/)?'svg':'html';}}function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){var linkFns=[],attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound;for(var i=0;i < nodeList.length;i++) {attrs = new Attributes();directives = collectDirectives(nodeList[i],[],attrs,i === 0?maxPriority:undefined,ignoreDirective);nodeLinkFn = directives.length?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null;if(nodeLinkFn && nodeLinkFn.scope){compile.$$addScopeClass(attrs.$$element);}childLinkFn = nodeLinkFn && nodeLinkFn.terminal || !(childNodes = nodeList[i].childNodes) || !childNodes.length?null:compileNodes(childNodes,nodeLinkFn?(nodeLinkFn.transcludeOnThisElement || !nodeLinkFn.templateOnThisElement) && nodeLinkFn.transclude:transcludeFn);if(nodeLinkFn || childLinkFn){linkFns.push(i,nodeLinkFn,childLinkFn);linkFnFound = true;nodeLinkFnFound = nodeLinkFnFound || nodeLinkFn;}previousCompileContext = null;}return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn;var stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;stableNodeList = new Array(nodeListLength);for(i = 0;i < linkFns.length;i += 3) {idx = linkFns[i];stableNodeList[idx] = nodeList[idx];}}else {stableNodeList = nodeList;}for(i = 0,ii = linkFns.length;i < ii;) {node = stableNodeList[linkFns[i++]];nodeLinkFn = linkFns[i++];childLinkFn = linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope = scope.$new();compile.$$addScopeInfo(jqLite(node),childScope);}else {childScope = scope;}if(nodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn,nodeLinkFn.elementTranscludeOnThisElement);}else if(!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn){childBoundTranscludeFn = parentBoundTranscludeFn;}else if(!parentBoundTranscludeFn && transcludeFn){childBoundTranscludeFn = createBoundTranscludeFn(scope,transcludeFn);}else {childBoundTranscludeFn = null;}nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn);}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn);}}}}function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn,elementTransclusion){var boundTranscludeFn=function boundTranscludeFn(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){if(!transcludedScope){transcludedScope = scope.$new(false,containingScope);transcludedScope.$$transcluded = true;}return transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement});};return boundTranscludeFn;}function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),'E',maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs && nAttrs.length;j < jj;j++) {var attrStartName=false;var attrEndName=false;attr = nAttrs[j];name = attr.name;value = trim(attr.value);ngAttrName = directiveNormalize(name);if(isNgAttr = NG_ATTR_BINDING.test(ngAttrName)){name = name.replace(PREFIX_REGEXP,'').substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase();});}var directiveNName=ngAttrName.replace(/(Start|End)$/,'');if(directiveIsMultiElement(directiveNName)){if(ngAttrName === directiveNName + 'Start'){attrStartName = name;attrEndName = name.substr(0,name.length - 5) + 'end';name = name.substr(0,name.length - 6);}}nName = directiveNormalize(name.toLowerCase());attrsMap[nName] = name;if(isNgAttr || !attrs.hasOwnProperty(nName)){attrs[nName] = value;if(getBooleanAttrName(node,nName)){attrs[nName] = true;}}addAttrInterpolateDirective(node,directives,value,nName,isNgAttr);addDirective(directives,nName,'A',maxPriority,ignoreDirective,attrStartName,attrEndName);}className = node.className;if(isObject(className)){className = className.animVal;}if(isString(className) && className !== ''){while(match = CLASS_DIRECTIVE_REGEXP.exec(className)) {nName = directiveNormalize(match[2]);if(addDirective(directives,nName,'C',maxPriority,ignoreDirective)){attrs[nName] = trim(match[3]);}className = className.substr(match.index + match[0].length);}}break;case NODE_TYPE_TEXT:addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match = COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);if(match){nName = directiveNormalize(match[1]);if(addDirective(directives,nName,'M',maxPriority,ignoreDirective)){attrs[nName] = trim(match[2]);}}}catch(e) {}break;}directives.sort(byPriority);return directives;}function groupScan(node,attrStart,attrEnd){var nodes=[];var depth=0;if(attrStart && node.hasAttribute && node.hasAttribute(attrStart)){do {if(!node){throw $compileMinErr('uterdir','Unterminated attribute, found \'{0}\' but no matching \'{1}\' found.',attrStart,attrEnd);}if(node.nodeType == NODE_TYPE_ELEMENT){if(node.hasAttribute(attrStart))depth++;if(node.hasAttribute(attrEnd))depth--;}nodes.push(node);node = node.nextSibling;}while(depth > 0);}else {nodes.push(node);}return jqLite(nodes);}function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){element = groupScan(element[0],attrStart,attrEnd);return linkFn(scope,element,attrs,controllers,transcludeFn);};}function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){previousCompileContext = previousCompileContext || {};var terminalPriority=-Number.MAX_VALUE,newScopeDirective,controllerDirectives=previousCompileContext.controllerDirectives,controllers,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=false,hasTemplate=false,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element = jqLite(compileNode),directive,directiveName,$template,replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,linkFn,directiveValue;for(var i=0,ii=directives.length;i < ii;i++) {directive = directives[i];var attrStart=directive.$$start;var attrEnd=directive.$$end;if(attrStart){$compileNode = groupScan(compileNode,attrStart,attrEnd);}$template = undefined;if(terminalPriority > directive.priority){break;}if(directiveValue = directive.scope){if(!directive.templateUrl){if(isObject(directiveValue)){assertNoDuplicate('new/isolated scope',newIsolateScopeDirective || newScopeDirective,directive,$compileNode);newIsolateScopeDirective = directive;}else {assertNoDuplicate('new/isolated scope',newIsolateScopeDirective,directive,$compileNode);}}newScopeDirective = newScopeDirective || directive;}directiveName = directive.name;if(!directive.templateUrl && directive.controller){directiveValue = directive.controller;controllerDirectives = controllerDirectives || {};assertNoDuplicate('\'' + directiveName + '\' controller',controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName] = directive;}if(directiveValue = directive.transclude){hasTranscludeDirective = true;if(!directive.$$tlb){assertNoDuplicate('transclusion',nonTlbTranscludeDirective,directive,$compileNode);nonTlbTranscludeDirective = directive;}if(directiveValue == 'element'){hasElementTranscludeDirective = true;terminalPriority = directive.priority;$template = $compileNode;$compileNode = templateAttrs.$$element = jqLite(document.createComment(' ' + directiveName + ': ' + templateAttrs[directiveName] + ' '));compileNode = $compileNode[0];replaceWith(jqCollection,sliceArgs($template),compileNode);childTranscludeFn = compile($template,transcludeFn,terminalPriority,replaceDirective && replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective});}else {$template = jqLite(jqLiteClone(compileNode)).contents();$compileNode.empty();childTranscludeFn = compile($template,transcludeFn);}}if(directive.template){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;directiveValue = isFunction(directive.template)?directive.template($compileNode,templateAttrs):directive.template;directiveValue = denormalizeTemplate(directiveValue);if(directive.replace){replaceDirective = directive;if(jqLiteIsTextNode(directiveValue)){$template = [];}else {$template = removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',directiveName,'');}replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};var templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs);var unprocessedDirectives=directives.splice(i + 1,directives.length - (i + 1));if(newIsolateScopeDirective){markDirectivesAsIsolate(templateDirectives);}directives = directives.concat(templateDirectives).concat(unprocessedDirectives);mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii = directives.length;}else {$compileNode.html(directiveValue);}}if(directive.templateUrl){hasTemplate = true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective = directive;if(directive.replace){replaceDirective = directive;}nodeLinkFn = compileTemplateUrl(directives.splice(i,directives.length - i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective && childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective});ii = directives.length;}else if(directive.compile){try{linkFn = directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn,attrStart,attrEnd);}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd);}}catch(e) {$exceptionHandler(e,startingTag($compileNode));}}if(directive.terminal){nodeLinkFn.terminal = true;terminalPriority = Math.max(terminalPriority,directive.priority);}}nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;nodeLinkFn.templateOnThisElement = hasTemplate;nodeLinkFn.transclude = childTranscludeFn;previousCompileContext.hasElementTranscludeDirective = hasElementTranscludeDirective;return nodeLinkFn;function addLinkFns(pre,post,attrStart,attrEnd){if(pre){if(attrStart)pre = groupElementsLinkFnWrapper(pre,attrStart,attrEnd);pre.require = directive.require;pre.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){pre = cloneAndAnnotateFn(pre,{isolateScope:true});}preLinkFns.push(pre);}if(post){if(attrStart)post = groupElementsLinkFnWrapper(post,attrStart,attrEnd);post.require = directive.require;post.directiveName = directiveName;if(newIsolateScopeDirective === directive || directive.$$isolateScope){post = cloneAndAnnotateFn(post,{isolateScope:true});}postLinkFns.push(post);}}function getControllers(directiveName,require,$element,elementControllers){var value,retrievalMethod='data',optional=false;var $searchElement=$element;var match;if(isString(require)){match = require.match(REQUIRE_PREFIX_REGEXP);require = require.substring(match[0].length);if(match[3]){if(match[1])match[3] = null;else match[1] = match[3];}if(match[1] === '^'){retrievalMethod = 'inheritedData';}else if(match[1] === '^^'){retrievalMethod = 'inheritedData';$searchElement = $element.parent();}if(match[2] === '?'){optional = true;}value = null;if(elementControllers && retrievalMethod === 'data'){if(value = elementControllers[require]){value = value.instance;}}value = value || $searchElement[retrievalMethod]('$' + require + 'Controller');if(!value && !optional){throw $compileMinErr('ctreq','Controller \'{0}\', required by directive \'{1}\', can\'t be found!',require,directiveName);}return value || null;}else if(isArray(require)){value = [];forEach(require,function(require){value.push(getControllers(directiveName,require,$element,elementControllers));});}return value;}function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn){var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode === linkNode){attrs = templateAttrs;$element = templateAttrs.$$element;}else {$element = jqLite(linkNode);attrs = new Attributes($element,templateAttrs);}if(newIsolateScopeDirective){isolateScope = scope.$new(true);}if(boundTranscludeFn){transcludeFn = controllersBoundTransclude;transcludeFn.$$boundTransclude = boundTranscludeFn;}if(controllerDirectives){controllers = {};elementControllers = {};forEach(controllerDirectives,function(directive){var locals={$scope:directive === newIsolateScopeDirective || directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn},controllerInstance;controller = directive.controller;if(controller == '@'){controller = attrs[directive.name];}controllerInstance = $controller(controller,locals,true,directive.controllerAs);elementControllers[directive.name] = controllerInstance;if(!hasElementTranscludeDirective){$element.data('$' + directive.name + 'Controller',controllerInstance.instance);}controllers[directive.name] = controllerInstance;});}if(newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,true,!(templateDirective && (templateDirective === newIsolateScopeDirective || templateDirective === newIsolateScopeDirective.$$originalDirective)));compile.$$addScopeClass($element,true);var isolateScopeController=controllers && controllers[newIsolateScopeDirective.name];var isolateBindingContext=isolateScope;if(isolateScopeController && isolateScopeController.identifier && newIsolateScopeDirective.bindToController === true){isolateBindingContext = isolateScopeController.instance;}forEach(isolateScope.$$isolateBindings = newIsolateScopeDirective.$$isolateBindings,function(definition,scopeName){var attrName=definition.attrName,optional=definition.optional,mode=definition.mode,lastValue,parentGet,parentSet,compare;switch(mode){case '@':attrs.$observe(attrName,function(value){isolateBindingContext[scopeName] = value;});attrs.$$observers[attrName].$$scope = scope;if(attrs[attrName]){isolateBindingContext[scopeName] = $interpolate(attrs[attrName])(scope);}break;case '=':if(optional && !attrs[attrName]){return;}parentGet = $parse(attrs[attrName]);if(parentGet.literal){compare = equals;}else {compare = function(a,b){return a === b || a !== a && b !== b;};}parentSet = parentGet.assign || function(){lastValue = isolateBindingContext[scopeName] = parentGet(scope);throw $compileMinErr('nonassign','Expression \'{0}\' used with directive \'{1}\' is non-assignable!',attrs[attrName],newIsolateScopeDirective.name);};lastValue = isolateBindingContext[scopeName] = parentGet(scope);var parentValueWatch=function parentValueWatch(parentValue){if(!compare(parentValue,isolateBindingContext[scopeName])){if(!compare(parentValue,lastValue)){isolateBindingContext[scopeName] = parentValue;}else {parentSet(scope,parentValue = isolateBindingContext[scopeName]);}}return lastValue = parentValue;};parentValueWatch.$stateful = true;var unwatch;if(definition.collection){unwatch = scope.$watchCollection(attrs[attrName],parentValueWatch);}else {unwatch = scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal);}isolateScope.$on('$destroy',unwatch);break;case '&':parentGet = $parse(attrs[attrName]);isolateBindingContext[scopeName] = function(locals){return parentGet(scope,locals);};break;}});}if(controllers){forEach(controllers,function(controller){controller();});controllers = null;}for(i = 0,ii = preLinkFns.length;i < ii;i++) {linkFn = preLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}var scopeToChild=scope;if(newIsolateScopeDirective && (newIsolateScopeDirective.template || newIsolateScopeDirective.templateUrl === null)){scopeToChild = isolateScope;}childLinkFn && childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn);for(i = postLinkFns.length - 1;i >= 0;i--) {linkFn = postLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require && getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;if(!isScope(scope)){futureParentElement = cloneAttachFn;cloneAttachFn = scope;scope = undefined;}if(hasElementTranscludeDirective){transcludeControllers = elementControllers;}if(!futureParentElement){futureParentElement = hasElementTranscludeDirective?$element.parent():$element;}return boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild);}}}function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;j < jj;j++) {directives[j] = inherit(directives[j],{$$isolateScope:true});}}function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name === ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {try{directive = directives[i];if((maxPriority === undefined || maxPriority > directive.priority) && directive.restrict.indexOf(location) != -1){if(startAttrName){directive = inherit(directive,{$$start:startAttrName,$$end:endAttrName});}tDirectives.push(directive);match = directive;}}catch(e) {$exceptionHandler(e);}}}return match;}function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name + Suffix),i=0,ii=directives.length;i < ii;i++) {directive = directives[i];if(directive.multiElement){return true;}}}return false;}function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0) != '$'){if(src[key] && src[key] !== value){value += (key === 'style'?';':' ') + src[key];}dst.$set(key,value,true,srcAttr[key]);}});forEach(src,function(value,key){if(key == 'class'){safeAddClass($element,value);dst['class'] = (dst['class']?dst['class'] + ' ':'') + value;}else if(key == 'style'){$element.attr('style',$element.attr('style') + ';' + value);dst['style'] = (dst['style']?dst['style'] + ';':'') + value;}else if(key.charAt(0) != '$' && !dst.hasOwnProperty(key)){dst[key] = value;dstAttr[key] = srcAttr[key];}});}function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var linkQueue=[],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=isFunction(origAsyncDirective.templateUrl)?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;$compileNode.empty();$templateRequest($sce.getTrustedResourceUrl(templateUrl)).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;content = denormalizeTemplate(content);if(origAsyncDirective.replace){if(jqLiteIsTextNode(content)){$template = [];}else {$template = removeComments(wrapTemplate(templateNamespace,trim(content)));}compileNode = $template[0];if($template.length != 1 || compileNode.nodeType !== NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt','Template for directive \'{0}\' must have exactly one root element. {1}',origAsyncDirective.name,templateUrl);}tempTemplateAttrs = {$attr:{}};replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);if(isObject(origAsyncDirective.scope)){markDirectivesAsIsolate(templateDirectives);}directives = templateDirectives.concat(directives);mergeTemplateAttributes(tAttrs,tempTemplateAttrs);}else {compileNode = beforeTemplateCompileNode;$compileNode.html(content);}directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn = applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext);forEach($rootElement,function(node,i){if(node == compileNode){$rootElement[i] = $compileNode[0];}});afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length) {var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];if(scope.$$destroyed)continue;if(beforeTemplateLinkNode !== beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;if(!(previousCompileContext.hasElementTranscludeDirective && origAsyncDirective.replace)){linkNode = jqLiteClone(compileNode);}replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode);safeAddClass(jqLite(linkNode),oldClasses);}if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}else {childBoundTranscludeFn = boundTranscludeFn;}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn);}linkQueue = null;});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;if(scope.$$destroyed)return;if(linkQueue){linkQueue.push(scope,node,rootElement,childBoundTranscludeFn);}else {if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn = createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn);}};}function byPriority(a,b){var diff=b.priority - a.priority;if(diff !== 0)return diff;if(a.name !== b.name)return a.name < b.name?-1:1;return a.index - b.index;}function assertNoDuplicate(what,previousDirective,directive,element){if(previousDirective){throw $compileMinErr('multidir','Multiple directives [{0}, {1}] asking for {2} on: {3}',previousDirective.name,directive.name,what,startingTag(element));}}function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:function textInterpolateCompileFn(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;if(hasCompileParent)compile.$$addBindingClass(templateNodeParent);return function textInterpolateLinkFn(scope,node){var parent=node.parent();if(!hasCompileParent)compile.$$addBindingClass(parent);compile.$$addBindingInfo(parent,interpolateFn.expressions);scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue = value;});};}});}}function wrapTemplate(type,template){type = lowercase(type || 'html');switch(type){case 'svg':case 'math':var wrapper=document.createElement('div');wrapper.innerHTML = '<' + type + '>' + template + '</' + type + '>';return wrapper.childNodes[0].childNodes;default:return template;}}function getTrustedContext(node,attrNormalizedName){if(attrNormalizedName == 'srcdoc'){return $sce.HTML;}var tag=nodeName_(node);if(attrNormalizedName == 'xlinkHref' || tag == 'form' && attrNormalizedName == 'action' || tag != 'img' && (attrNormalizedName == 'src' || attrNormalizedName == 'ngSrc')){return $sce.RESOURCE_URL;}}function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing = ALL_OR_NOTHING_ATTRS[name] || allOrNothing;var interpolateFn=$interpolate(value,true,trustedContext,allOrNothing);if(!interpolateFn)return;if(name === 'multiple' && nodeName_(node) === 'select'){throw $compileMinErr('selmulti','Binding to the \'multiple\' attribute is not supported. Element: {0}',startingTag(node));}directives.push({priority:100,compile:function compile(){return {pre:function attrInterpolatePreLinkFn(scope,element,attr){var $$observers=attr.$$observers || (attr.$$observers = {});if(EVENT_HANDLER_ATTR_REGEXP.test(name)){throw $compileMinErr('nodomevents','Interpolations for HTML DOM event attributes are disallowed. Please use the ' + 'ng- versions (such as ng-click instead of onclick) instead.');}var newValue=attr[name];if(newValue !== value){interpolateFn = newValue && $interpolate(newValue,true,trustedContext,allOrNothing);value = newValue;}if(!interpolateFn)return;attr[name] = interpolateFn(scope);($$observers[name] || ($$observers[name] = [])).$$inter = true;(attr.$$observers && attr.$$observers[name].$$scope || scope).$watch(interpolateFn,function interpolateFnWatchAction(newValue,oldValue){if(name === 'class' && newValue != oldValue){attr.$updateClass(newValue,oldValue);}else {attr.$set(name,newValue);}});}};}});}function replaceWith($rootElement,elementsToRemove,newNode){var firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode,i,ii;if($rootElement){for(i = 0,ii = $rootElement.length;i < ii;i++) {if($rootElement[i] == firstElementToRemove){$rootElement[i++] = newNode;for(var j=i,j2=j + removeCount - 1,jj=$rootElement.length;j < jj;j++,j2++) {if(j2 < jj){$rootElement[j] = $rootElement[j2];}else {delete $rootElement[j];}}$rootElement.length -= removeCount - 1;if($rootElement.context === firstElementToRemove){$rootElement.context = newNode;}break;}}}if(parent){parent.replaceChild(newNode,firstElementToRemove);}var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove);jqLite(newNode).data(jqLite(firstElementToRemove).data());if(!jQuery){delete jqLite.cache[firstElementToRemove[jqLite.expando]];}else {skipDestroyOnNextJQueryCleanData = true;jQuery.cleanData([firstElementToRemove]);}for(var k=1,kk=elementsToRemove.length;k < kk;k++) {var element=elementsToRemove[k];jqLite(element).remove();fragment.appendChild(element);delete elementsToRemove[k];}elementsToRemove[0] = newNode;elementsToRemove.length = 1;}function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments);},fn,annotation);}function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn);}catch(e) {$exceptionHandler(e,startingTag($element));}}}];}var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,''));}function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}function tokenDifference(str1,str2){var values='',tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values += (values.length > 0?' ':'') + token;}return values;}function removeComments(jqNodes){jqNodes = jqLite(jqNodes);var i=jqNodes.length;if(i <= 1){return jqNodes;}while(i--) {var node=jqNodes[i];if(node.nodeType === NODE_TYPE_COMMENT){splice.call(jqNodes,i,1);}}return jqNodes;}var $controllerMinErr=minErr('$controller');function $ControllerProvider(){var controllers={},globals=false,CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;this.register = function(name,constructor){assertNotHasOwnProperty(name,'controller');if(isObject(name)){extend(controllers,name);}else {controllers[name] = constructor;}};this.allowGlobals = function(){globals = true;};this.$get = ['$injector','$window',function($injector,$window){return function(expression,locals,later,ident){var instance,match,constructor,identifier;later = later === true;if(ident && isString(ident)){identifier = ident;}if(isString(expression)){match = expression.match(CNTRL_REG);if(!match){throw $controllerMinErr('ctrlfmt','Badly formed controller string \'{0}\'. ' + 'Must match `__name__ as __id__` or `__name__`.',expression);}constructor = match[1],identifier = identifier || match[3];expression = controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true) || (globals?getter($window,constructor,true):undefined);assertArgFn(expression,constructor,true);}if(later){var controllerPrototype=(isArray(expression)?expression[expression.length - 1]:expression).prototype;instance = Object.create(controllerPrototype || null);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return extend(function(){$injector.invoke(expression,instance,locals,constructor);return instance;},{instance:instance,identifier:identifier});}instance = $injector.instantiate(expression,locals,constructor);if(identifier){addIdentifier(locals,identifier,instance,constructor || expression.name);}return instance;};function addIdentifier(locals,identifier,instance,name){if(!(locals && isObject(locals.$scope))){throw minErr('$controller')('noscp','Cannot export controller \'{0}\' as \'{1}\'! No $scope object provided via `locals`.',name,identifier);}locals.$scope[identifier] = instance;}}];}function $DocumentProvider(){this.$get = ['$window',function(window){return jqLite(window.document);}];}function $ExceptionHandlerProvider(){this.$get = ['$log',function($log){return function(exception,cause){$log.error.apply($log,arguments);};}];}var APPLICATION_JSON='application/json';var CONTENT_TYPE_APPLICATION_JSON={'Content-Type':APPLICATION_JSON + ';charset=utf-8'};var JSON_START=/^\[|^\{(?!\{)/;var JSON_ENDS={'[':/]$/,'{':/}$/};var JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/;function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,'').trim();if(tempData){var contentType=headers('Content-Type');if(contentType && contentType.indexOf(APPLICATION_JSON) === 0 || isJsonLike(tempData)){data = fromJson(tempData);}}}return data;}function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart && JSON_ENDS[jsonStart[0]].test(str);}function parseHeaders(headers){var parsed=createMap(),key,val,i;if(!headers)return parsed;forEach(headers.split('\n'),function(line){i = line.indexOf(':');key = lowercase(trim(line.substr(0,i)));val = trim(line.substr(i + 1));if(key){parsed[key] = parsed[key]?parsed[key] + ', ' + val:val;}});return parsed;}function headersGetter(headers){var headersObj=isObject(headers)?headers:undefined;return function(name){if(!headersObj)headersObj = parseHeaders(headers);if(name){var value=headersObj[lowercase(name)];if(value === void 0){value = null;}return value;}return headersObj;};}function transformData(data,headers,status,fns){if(isFunction(fns))return fns(data,headers,status);forEach(fns,function(fn){data = fn(data,headers,status);});return data;}function isSuccess(status){return 200 <= status && status < 300;}function $HttpProvider(){var defaults=this.defaults = {transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return isObject(d) && !isFile(d) && !isBlob(d) && !isFormData(d)?toJson(d):d;}],headers:{common:{'Accept':'application/json, text/plain, */*'},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:'XSRF-TOKEN',xsrfHeaderName:'X-XSRF-TOKEN'};var useApplyAsync=false;this.useApplyAsync = function(value){if(isDefined(value)){useApplyAsync = !!value;return this;}return useApplyAsync;};var interceptorFactories=this.interceptors = [];this.$get = ['$httpBackend','$browser','$cacheFactory','$rootScope','$q','$injector',function($httpBackend,$browser,$cacheFactory,$rootScope,$q,$injector){var defaultCache=$cacheFactory('$http');var reversedInterceptors=[];forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory));});function $http(requestConfig){if(!angular.isObject(requestConfig)){throw minErr('$http')('badreq','Http request configuration must be an object. Received: {0}',requestConfig);}var config=extend({method:'get',transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse},requestConfig);config.headers = mergeHeaders(requestConfig);config.method = uppercase(config.method);var serverRequest=function serverRequest(config){var headers=config.headers;var reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);if(isUndefined(reqData)){forEach(headers,function(value,header){if(lowercase(header) === 'content-type'){delete headers[header];}});}if(isUndefined(config.withCredentials) && !isUndefined(defaults.withCredentials)){config.withCredentials = defaults.withCredentials;}return sendReq(config,reqData).then(transformResponse,transformResponse);};var chain=[serverRequest,undefined];var promise=$q.when(config);forEach(reversedInterceptors,function(interceptor){if(interceptor.request || interceptor.requestError){chain.unshift(interceptor.request,interceptor.requestError);}if(interceptor.response || interceptor.responseError){chain.push(interceptor.response,interceptor.responseError);}});while(chain.length) {var thenFn=chain.shift();var rejectFn=chain.shift();promise = promise.then(thenFn,rejectFn);}promise.success = function(fn){promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error = function(fn){promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};return promise;function transformResponse(response){var resp=extend({},response);if(!response.data){resp.data = response.data;}else {resp.data = transformData(response.data,response.headers,response.status,config.transformResponse);}return isSuccess(response.status)?resp:$q.reject(resp);}function executeHeaderFns(headers){var headerContent,processedHeaders={};forEach(headers,function(headerFn,header){if(isFunction(headerFn)){headerContent = headerFn();if(headerContent != null){processedHeaders[header] = headerContent;}}else {processedHeaders[header] = headerFn;}});return processedHeaders;}function mergeHeaders(config){var defHeaders=defaults.headers,reqHeaders=extend({},config.headers),defHeaderName,lowercaseDefHeaderName,reqHeaderName;defHeaders = extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration: for(defHeaderName in defHeaders) {lowercaseDefHeaderName = lowercase(defHeaderName);for(reqHeaderName in reqHeaders) {if(lowercase(reqHeaderName) === lowercaseDefHeaderName){continue defaultHeadersIteration;}}reqHeaders[defHeaderName] = defHeaders[defHeaderName];}return executeHeaderFns(reqHeaders);}}$http.pendingRequests = [];createShortMethods('get','delete','head','jsonp');createShortMethodsWithData('post','put','patch');$http.defaults = defaults;return $http;function createShortMethods(names){forEach(arguments,function(name){$http[name] = function(url,config){return $http(extend(config || {},{method:name,url:url}));};});}function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name] = function(url,data,config){return $http(extend(config || {},{method:name,url:url,data:data}));};});}function sendReq(config,reqData){var deferred=$q.defer(),promise=deferred.promise,cache,cachedResp,reqHeaders=config.headers,url=buildUrl(config.url,config.params);$http.pendingRequests.push(config);promise.then(removePendingReq,removePendingReq);if((config.cache || defaults.cache) && config.cache !== false && (config.method === 'GET' || config.method === 'JSONP')){cache = isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache;}if(cache){cachedResp = cache.get(url);if(isDefined(cachedResp)){if(isPromiseLike(cachedResp)){cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult);}else {if(isArray(cachedResp)){resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]);}else {resolvePromise(cachedResp,200,{},'OK');}}}else {cache.put(url,promise);}}if(isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$browser.cookies()[config.xsrfCookieName || defaults.xsrfCookieName]:undefined;if(xsrfValue){reqHeaders[config.xsrfHeaderName || defaults.xsrfHeaderName] = xsrfValue;}$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType);}return promise;function done(status,response,headersString,statusText){if(cache){if(isSuccess(status)){cache.put(url,[status,response,parseHeaders(headersString),statusText]);}else {cache.remove(url);}}function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText);}if(useApplyAsync){$rootScope.$applyAsync(resolveHttpPromise);}else {resolveHttpPromise();if(!$rootScope.$$phase)$rootScope.$apply();}}function resolvePromise(response,status,headers,statusText){status = Math.max(status,0);(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText});}function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText);}function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);if(idx !== -1)$http.pendingRequests.splice(idx,1);}}function buildUrl(url,params){if(!params)return url;var parts=[];forEachSorted(params,function(value,key){if(value === null || isUndefined(value))return;if(!isArray(value))value = [value];forEach(value,function(v){if(isObject(v)){if(isDate(v)){v = v.toISOString();}else {v = toJson(v);}}parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(v));});});if(parts.length > 0){url += (url.indexOf('?') == -1?'?':'&') + parts.join('&');}return url;}}];}function createXhr(){return new window.XMLHttpRequest();}function $HttpBackendProvider(){this.$get = ['$browser','$window','$document',function($browser,$window,$document){return createHttpBackend($browser,createXhr,$browser.defer,$window.angular.callbacks,$document[0]);}];}function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){return function(method,url,post,callback,headers,timeout,withCredentials,responseType){$browser.$$incOutstandingRequestCount();url = url || $browser.url();if(lowercase(method) == 'jsonp'){var callbackId='_' + (callbacks.counter++).toString(36);callbacks[callbackId] = function(data){callbacks[callbackId].data = data;callbacks[callbackId].called = true;};var jsonpDone=jsonpReq(url.replace('JSON_CALLBACK','angular.callbacks.' + callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,'',text);callbacks[callbackId] = noop;});}else {var xhr=createXhr();xhr.open(method,url,true);forEach(headers,function(value,key){if(isDefined(value)){xhr.setRequestHeader(key,value);}});xhr.onload = function requestLoaded(){var statusText=xhr.statusText || '';var response='response' in xhr?xhr.response:xhr.responseText;var status=xhr.status === 1223?204:xhr.status;if(status === 0){status = response?200:urlResolve(url).protocol == 'file'?404:0;}completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText);};var requestError=function requestError(){completeRequest(callback,-1,null,null,'');};xhr.onerror = requestError;xhr.onabort = requestError;if(withCredentials){xhr.withCredentials = true;}if(responseType){try{xhr.responseType = responseType;}catch(e) {if(responseType !== 'json'){throw e;}}}xhr.send(post || null);}if(timeout > 0){var timeoutId=$browserDefer(timeoutRequest,timeout);}else if(isPromiseLike(timeout)){timeout.then(timeoutRequest);}function timeoutRequest(){jsonpDone && jsonpDone();xhr && xhr.abort();}function completeRequest(callback,status,response,headersString,statusText){if(timeoutId !== undefined){$browserDefer.cancel(timeoutId);}jsonpDone = xhr = null;callback(status,response,headersString,statusText);$browser.$$completeOutstandingRequest(noop);}};function jsonpReq(url,callbackId,done){var script=rawDocument.createElement('script'),callback=null;script.type = 'text/javascript';script.src = url;script.async = true;callback = function(event){removeEventListenerFn(script,'load',callback);removeEventListenerFn(script,'error',callback);rawDocument.body.removeChild(script);script = null;var status=-1;var text='unknown';if(event){if(event.type === 'load' && !callbacks[callbackId].called){event = {type:'error'};}text = event.type;status = event.type === 'error'?404:200;}if(done){done(status,text);}};addEventListenerFn(script,'load',callback);addEventListenerFn(script,'error',callback);rawDocument.body.appendChild(script);return callback;}}var $interpolateMinErr=minErr('$interpolate');function $InterpolateProvider(){var startSymbol='{{';var endSymbol='}}';this.startSymbol = function(value){if(value){startSymbol = value;return this;}else {return startSymbol;}};this.endSymbol = function(value){if(value){endSymbol = value;return this;}else {return endSymbol;}};this.$get = ['$parse','$exceptionHandler','$sce',function($parse,$exceptionHandler,$sce){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),'g'),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),'g');function escape(ch){return '\\\\\\' + ch;}function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){allOrNothing = !!allOrNothing;var startIndex,endIndex,index=0,expressions=[],parseFns=[],textLength=text.length,exp,concat=[],expressionPositions=[];while(index < textLength) {if((startIndex = text.indexOf(startSymbol,index)) != -1 && (endIndex = text.indexOf(endSymbol,startIndex + startSymbolLength)) != -1){if(index !== startIndex){concat.push(unescapeText(text.substring(index,startIndex)));}exp = text.substring(startIndex + startSymbolLength,endIndex);expressions.push(exp);parseFns.push($parse(exp,parseStringifyInterceptor));index = endIndex + endSymbolLength;expressionPositions.push(concat.length);concat.push('');}else {if(index !== textLength){concat.push(unescapeText(text.substring(index)));}break;}}if(trustedContext && concat.length > 1){throw $interpolateMinErr('noconcat','Error while interpolating: {0}\nStrict Contextual Escaping disallows ' + 'interpolations that concatenate multiple expressions when a trusted value is ' + 'required. See http://docs.angularjs.org/api/ng.$sce',text);}if(!mustHaveExpression || expressions.length){var compute=function compute(values){for(var i=0,ii=expressions.length;i < ii;i++) {if(allOrNothing && isUndefined(values[i]))return;concat[expressionPositions[i]] = values[i];}return concat.join('');};var getValue=function getValue(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value);};var stringify=function stringify(value){if(value == null){return '';}switch(typeof value){case 'string':break;case 'number':value = '' + value;break;default:value = toJson(value);}return value;};return extend(function interpolationFn(context){var i=0;var ii=expressions.length;var values=new Array(ii);try{for(;i < ii;i++) {values[i] = parseFns[i](context);}return compute(values);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}},{exp:text,expressions:expressions,$$watchDelegate:function $$watchDelegate(scope,listener,objectEquality){var lastValue;return scope.$watchGroup(parseFns,function interpolateFnWatcher(values,oldValues){var currValue=compute(values);if(isFunction(listener)){listener.call(this,currValue,values !== oldValues?lastValue:currValue,scope);}lastValue = currValue;},objectEquality);}});}function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol);}function parseStringifyInterceptor(value){try{value = getValue(value);return allOrNothing && !isDefined(value)?value:stringify(value);}catch(err) {var newErr=$interpolateMinErr('interr','Can\'t interpolate: {0}\n{1}',text,err.toString());$exceptionHandler(newErr);}}}$interpolate.startSymbol = function(){return startSymbol;};$interpolate.endSymbol = function(){return endSymbol;};return $interpolate;}];}function $IntervalProvider(){this.$get = ['$rootScope','$window','$q','$$q',function($rootScope,$window,$q,$$q){var intervals={};function interval(fn,delay,count,invokeApply){var setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;count = isDefined(count)?count:0;promise.then(null,null,fn);promise.$$intervalId = setInterval(function tick(){deferred.notify(iteration++);if(count > 0 && iteration >= count){deferred.resolve(iteration);clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];}if(!skipApply)$rootScope.$apply();},delay);intervals[promise.$$intervalId] = deferred;return promise;}interval.cancel = function(promise){if(promise && promise.$$intervalId in intervals){intervals[promise.$$intervalId].reject('canceled');$window.clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];return true;}return false;};return interval;}];}function $LocaleProvider(){this.$get = function(){return {id:'en-us',NUMBER_FORMATS:{DECIMAL_SEP:'.',GROUP_SEP:',',PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:'',posSuf:'',negPre:'-',negSuf:'',gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:'¤',posSuf:'',negPre:'(¤',negSuf:')',gSize:3,lgSize:3}],CURRENCY_SYM:'$'},DATETIME_FORMATS:{MONTH:'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),SHORTMONTH:'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),DAY:'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),SHORTDAY:'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','),AMPMS:['AM','PM'],medium:'MMM d, y h:mm:ss a','short':'M/d/yy h:mm a',fullDate:'EEEE, MMMM d, y',longDate:'MMMM d, y',mediumDate:'MMM d, y',shortDate:'M/d/yy',mediumTime:'h:mm:ss a',shortTime:'h:mm a',ERANAMES:['Before Christ','Anno Domini'],ERAS:['BC','AD']},pluralCat:function pluralCat(num){if(num === 1){return 'one';}return 'other';}};};}var PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={'http':80,'https':443,'ftp':21};var $locationMinErr=minErr('$location');function encodePath(path){var segments=path.split('/'),i=segments.length;while(i--) {segments[i] = encodeUriSegment(segments[i]);}return segments.join('/');}function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol = parsedUrl.protocol;locationObj.$$host = parsedUrl.hostname;locationObj.$$port = int(parsedUrl.port) || DEFAULT_PORTS[parsedUrl.protocol] || null;}function parseAppUrl(relativeUrl,locationObj){var prefixed=relativeUrl.charAt(0) !== '/';if(prefixed){relativeUrl = '/' + relativeUrl;}var match=urlResolve(relativeUrl);locationObj.$$path = decodeURIComponent(prefixed && match.pathname.charAt(0) === '/'?match.pathname.substring(1):match.pathname);locationObj.$$search = parseKeyValue(match.search);locationObj.$$hash = decodeURIComponent(match.hash);if(locationObj.$$path && locationObj.$$path.charAt(0) != '/'){locationObj.$$path = '/' + locationObj.$$path;}}function beginsWith(begin,whole){if(whole.indexOf(begin) === 0){return whole.substr(begin.length);}}function stripHash(url){var index=url.indexOf('#');return index == -1?url:url.substr(0,index);}function trimEmptyHash(url){return url.replace(/(#.+)|#$/,'$1');}function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf('/') + 1);}function serverBase(url){return url.substring(0,url.indexOf('/',url.indexOf('//') + 2));}function LocationHtml5Url(appBase,basePrefix){this.$$html5 = true;basePrefix = basePrefix || '';var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw $locationMinErr('ipthprfx','Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);}parseAppUrl(pathUrl,this);if(!this.$$path){this.$$path = '/';}this.$$compose();};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBaseNoFile + this.$$url.substr(1);};this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var appUrl,prevAppUrl;var rewrittenUrl;if((appUrl = beginsWith(appBase,url)) !== undefined){prevAppUrl = appUrl;if((appUrl = beginsWith(basePrefix,appUrl)) !== undefined){rewrittenUrl = appBaseNoFile + (beginsWith('/',appUrl) || appUrl);}else {rewrittenUrl = appBase + prevAppUrl;}}else if((appUrl = beginsWith(appBaseNoFile,url)) !== undefined){rewrittenUrl = appBaseNoFile + appUrl;}else if(appBaseNoFile == url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};}function LocationHashbangUrl(appBase,hashPrefix){var appBaseNoFile=stripFile(appBase);parseAbsoluteUrl(appBase,this);this.$$parse = function(url){var withoutBaseUrl=beginsWith(appBase,url) || beginsWith(appBaseNoFile,url);var withoutHashUrl;if(withoutBaseUrl.charAt(0) === '#'){withoutHashUrl = beginsWith(hashPrefix,withoutBaseUrl);if(isUndefined(withoutHashUrl)){withoutHashUrl = withoutBaseUrl;}}else {withoutHashUrl = this.$$html5?withoutBaseUrl:'';}parseAppUrl(withoutHashUrl,this);this.$$path = removeWindowsDriveName(this.$$path,withoutHashUrl,appBase);this.$$compose();function removeWindowsDriveName(path,url,base){var windowsFilePathExp=/^\/[A-Z]:(\/.*)/;var firstPathSegmentMatch;if(url.indexOf(base) === 0){url = url.replace(base,'');}if(windowsFilePathExp.exec(url)){return path;}firstPathSegmentMatch = windowsFilePathExp.exec(path);return firstPathSegmentMatch?firstPathSegmentMatch[1]:path;}};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + (this.$$url?hashPrefix + this.$$url:'');};this.$$parseLinkUrl = function(url,relHref){if(stripHash(appBase) == stripHash(url)){this.$$parse(url);return true;}return false;};}function LocationHashbangInHtml5Url(appBase,hashPrefix){this.$$html5 = true;LocationHashbangUrl.apply(this,arguments);var appBaseNoFile=stripFile(appBase);this.$$parseLinkUrl = function(url,relHref){if(relHref && relHref[0] === '#'){this.hash(relHref.slice(1));return true;}var rewrittenUrl;var appUrl;if(appBase == stripHash(url)){rewrittenUrl = url;}else if(appUrl = beginsWith(appBaseNoFile,url)){rewrittenUrl = appBase + hashPrefix + appUrl;}else if(appBaseNoFile === url + '/'){rewrittenUrl = appBaseNoFile;}if(rewrittenUrl){this.$$parse(rewrittenUrl);}return !!rewrittenUrl;};this.$$compose = function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#' + encodeUriSegment(this.$$hash):'';this.$$url = encodePath(this.$$path) + (search?'?' + search:'') + hash;this.$$absUrl = appBase + hashPrefix + this.$$url;};}var locationPrototype={$$html5:false,$$replace:false,absUrl:locationGetter('$$absUrl'),url:function url(_url){if(isUndefined(_url))return this.$$url;var match=PATH_MATCH.exec(_url);if(match[1] || _url === '')this.path(decodeURIComponent(match[1]));if(match[2] || match[1] || _url === '')this.search(match[3] || '');this.hash(match[5] || '');return this;},protocol:locationGetter('$$protocol'),host:locationGetter('$$host'),port:locationGetter('$$port'),path:locationGetterSetter('$$path',function(path){path = path !== null?path.toString():'';return path.charAt(0) == '/'?path:'/' + path;}),search:function search(_search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(_search) || isNumber(_search)){_search = _search.toString();this.$$search = parseKeyValue(_search);}else if(isObject(_search)){_search = copy(_search,{});forEach(_search,function(value,key){if(value == null)delete _search[key];});this.$$search = _search;}else {throw $locationMinErr('isrcharg','The first argument of the `$location#search()` call must be a string or an object.');}break;default:if(isUndefined(paramValue) || paramValue === null){delete this.$$search[_search];}else {this.$$search[_search] = paramValue;}}this.$$compose();return this;},hash:locationGetterSetter('$$hash',function(hash){return hash !== null?hash.toString():'';}),replace:function replace(){this.$$replace = true;return this;}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype = Object.create(locationPrototype);Location.prototype.state = function(state){if(!arguments.length)return this.$$state;if(Location !== LocationHtml5Url || !this.$$html5){throw $locationMinErr('nostate','History API state support is available only ' + 'in HTML5 mode and only in browsers supporting HTML5 History API');}this.$$state = isUndefined(state)?null:state;return this;};});function locationGetter(property){return function(){return this[property];};}function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value))return this[property];this[property] = preprocess(value);this.$$compose();return this;};}function $LocationProvider(){var hashPrefix='',html5Mode={enabled:false,requireBase:true,rewriteLinks:true};this.hashPrefix = function(prefix){if(isDefined(prefix)){hashPrefix = prefix;return this;}else {return hashPrefix;}};this.html5Mode = function(mode){if(isBoolean(mode)){html5Mode.enabled = mode;return this;}else if(isObject(mode)){if(isBoolean(mode.enabled)){html5Mode.enabled = mode.enabled;}if(isBoolean(mode.requireBase)){html5Mode.requireBase = mode.requireBase;}if(isBoolean(mode.rewriteLinks)){html5Mode.rewriteLinks = mode.rewriteLinks;}return this;}else {return html5Mode;}};this.$get = ['$rootScope','$browser','$sniffer','$rootElement','$window',function($rootScope,$browser,$sniffer,$rootElement,$window){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode.enabled){if(!baseHref && html5Mode.requireBase){throw $locationMinErr('nobase','$location in HTML5 mode requires a <base> tag to be present!');}appBase = serverBase(initialUrl) + (baseHref || '/');LocationMode = $sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url;}else {appBase = stripHash(initialUrl);LocationMode = LocationHashbangUrl;}$location = new LocationMode(appBase,'#' + hashPrefix);$location.$$parseLinkUrl(initialUrl,initialUrl);$location.$$state = $browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url();var oldState=$location.$$state;try{$browser.url(url,replace,state);$location.$$state = $browser.state();}catch(e) {$location.url(oldUrl);$location.$$state = oldState;throw e;}}$rootElement.on('click',function(event){if(!html5Mode.rewriteLinks || event.ctrlKey || event.metaKey || event.shiftKey || event.which == 2 || event.button == 2)return;var elm=jqLite(event.target);while(nodeName_(elm[0]) !== 'a') {if(elm[0] === $rootElement[0] || !(elm = elm.parent())[0])return;}var absHref=elm.prop('href');var relHref=elm.attr('href') || elm.attr('xlink:href');if(isObject(absHref) && absHref.toString() === '[object SVGAnimatedString]'){absHref = urlResolve(absHref.animVal).href;}if(IGNORE_URI_REGEXP.test(absHref))return;if(absHref && !elm.attr('target') && !event.isDefaultPrevented()){if($location.$$parseLinkUrl(absHref,relHref)){event.preventDefault();if($location.absUrl() != $browser.url()){$rootScope.$apply();$window.angular['ff-684208-preventDefault'] = true;}}}});if(trimEmptyHash($location.absUrl()) != trimEmptyHash(initialUrl)){$browser.url($location.absUrl(),true);}var initializing=true;$browser.onUrlChange(function(newUrl,newState){$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();var oldState=$location.$$state;var defaultPrevented;$location.$$parse(newUrl);$location.$$state = newState;defaultPrevented = $rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,newState,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;setBrowserUrlWithFallback(oldUrl,false,oldState);}else {initializing = false;afterLocationChange(oldUrl,oldState);}});if(!$rootScope.$$phase)$rootScope.$digest();});$rootScope.$watch(function $locationWatch(){var oldUrl=trimEmptyHash($browser.url());var newUrl=trimEmptyHash($location.absUrl());var oldState=$browser.state();var currentReplace=$location.$$replace;var urlOrStateChanged=oldUrl !== newUrl || $location.$$html5 && $sniffer.history && oldState !== $location.$$state;if(initializing || urlOrStateChanged){initializing = false;$rootScope.$evalAsync(function(){var newUrl=$location.absUrl();var defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;if($location.absUrl() !== newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state = oldState;}else {if(urlOrStateChanged){setBrowserUrlWithFallback(newUrl,currentReplace,oldState === $location.$$state?null:$location.$$state);}afterLocationChange(oldUrl,oldState);}});}$location.$$replace = false;});return $location;function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast('$locationChangeSuccess',$location.absUrl(),oldUrl,$location.$$state,oldState);}}];}function $LogProvider(){var debug=true,self=this;this.debugEnabled = function(flag){if(isDefined(flag)){debug = flag;return this;}else {return debug;}};this.$get = ['$window',function($window){return {log:consoleLog('log'),info:consoleLog('info'),warn:consoleLog('warn'),error:consoleLog('error'),debug:(function(){var fn=consoleLog('debug');return function(){if(debug){fn.apply(self,arguments);}};})()};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg = arg.message && arg.stack.indexOf(arg.message) === -1?'Error: ' + arg.message + '\n' + arg.stack:arg.stack;}else if(arg.sourceURL){arg = arg.message + '\n' + arg.sourceURL + ':' + arg.line;}}return arg;}function consoleLog(type){var console=$window.console || {},logFn=console[type] || console.log || noop,hasApply=false;try{hasApply = !!logFn.apply;}catch(e) {}if(hasApply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg));});return logFn.apply(console,args);};}return function(arg1,arg2){logFn(arg1,arg2 == null?'':arg2);};}}];}var $parseMinErr=minErr('$parse');function ensureSafeMemberName(name,fullExpression){if(name === '__defineGetter__' || name === '__defineSetter__' || name === '__lookupGetter__' || name === '__lookupSetter__' || name === '__proto__'){throw $parseMinErr('isecfld','Attempting to access a disallowed field in Angular expressions! ' + 'Expression: {0}',fullExpression);}return name;}function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.window === obj){throw $parseMinErr('isecwindow','Referencing the Window in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.children && (obj.nodeName || obj.prop && obj.attr && obj.find)){throw $parseMinErr('isecdom','Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === Object){throw $parseMinErr('isecobj','Referencing Object in Angular expressions is disallowed! Expression: {0}',fullExpression);}}return obj;}var CALL=Function.prototype.call;var APPLY=Function.prototype.apply;var BIND=Function.prototype.bind;function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor === obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj === CALL || obj === APPLY || obj === BIND){throw $parseMinErr('isecff','Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',fullExpression);}}}var CONSTANTS=createMap();forEach({'null':function _null(){return null;},'true':function _true(){return true;},'false':function _false(){return false;},'undefined':function undefined(){}},function(constantGetter,name){constantGetter.constant = constantGetter.literal = constantGetter.sharedGetter = true;CONSTANTS[name] = constantGetter;});CONSTANTS['this'] = function(self){return self;};CONSTANTS['this'].sharedGetter = true;var OPERATORS=extend(createMap(),{'+':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);if(isDefined(a)){if(isDefined(b)){return a + b;}return a;}return isDefined(b)?b:undefined;},'-':function _(self,locals,a,b){a = a(self,locals);b = b(self,locals);return (isDefined(a)?a:0) - (isDefined(b)?b:0);},'*':function _(self,locals,a,b){return a(self,locals) * b(self,locals);},'/':function _(self,locals,a,b){return a(self,locals) / b(self,locals);},'%':function _(self,locals,a,b){return a(self,locals) % b(self,locals);},'===':function _(self,locals,a,b){return a(self,locals) === b(self,locals);},'!==':function _(self,locals,a,b){return a(self,locals) !== b(self,locals);},'==':function _(self,locals,a,b){return a(self,locals) == b(self,locals);},'!=':function _(self,locals,a,b){return a(self,locals) != b(self,locals);},'<':function _(self,locals,a,b){return a(self,locals) < b(self,locals);},'>':function _(self,locals,a,b){return a(self,locals) > b(self,locals);},'<=':function _(self,locals,a,b){return a(self,locals) <= b(self,locals);},'>=':function _(self,locals,a,b){return a(self,locals) >= b(self,locals);},'&&':function _(self,locals,a,b){return a(self,locals) && b(self,locals);},'||':function _(self,locals,a,b){return a(self,locals) || b(self,locals);},'!':function _(self,locals,a){return !a(self,locals);},'=':true,'|':true});var ESCAPE={'n':'\n','f':'\f','r':'\r','t':'\t','v':'\u000b','\'':'\'','"':'"'};var Lexer=function Lexer(options){this.options = options;};Lexer.prototype = {constructor:Lexer,lex:function lex(text){this.text = text;this.index = 0;this.tokens = [];while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(ch === '"' || ch === '\''){this.readString(ch);}else if(this.isNumber(ch) || ch === '.' && this.isNumber(this.peek())){this.readNumber();}else if(this.isIdent(ch)){this.readIdent();}else if(this.is(ch,'(){}[].,;:?')){this.tokens.push({index:this.index,text:ch});this.index++;}else if(this.isWhitespace(ch)){this.index++;}else {var ch2=ch + this.peek();var ch3=ch2 + this.peek(2);var op1=OPERATORS[ch];var op2=OPERATORS[ch2];var op3=OPERATORS[ch3];if(op1 || op2 || op3){var token=op3?ch3:op2?ch2:ch;this.tokens.push({index:this.index,text:token,operator:true});this.index += token.length;}else {this.throwError('Unexpected next character ',this.index,this.index + 1);}}}return this.tokens;},is:function is(ch,chars){return chars.indexOf(ch) !== -1;},peek:function peek(i){var num=i || 1;return this.index + num < this.text.length?this.text.charAt(this.index + num):false;},isNumber:function isNumber(ch){return '0' <= ch && ch <= '9' && typeof ch === 'string';},isWhitespace:function isWhitespace(ch){return ch === ' ' || ch === '\r' || ch === '\t' || ch === '\n' || ch === '\u000b' || ch === ' ';},isIdent:function isIdent(ch){return 'a' <= ch && ch <= 'z' || 'A' <= ch && ch <= 'Z' || '_' === ch || ch === '$';},isExpOperator:function isExpOperator(ch){return ch === '-' || ch === '+' || this.isNumber(ch);},throwError:function throwError(error,start,end){end = end || this.index;var colStr=isDefined(start)?'s ' + start + '-' + this.index + ' [' + this.text.substring(start,end) + ']':' ' + end;throw $parseMinErr('lexerr','Lexer Error: {0} at column{1} in expression [{2}].',error,colStr,this.text);},readNumber:function readNumber(){var number='';var start=this.index;while(this.index < this.text.length) {var ch=lowercase(this.text.charAt(this.index));if(ch == '.' || this.isNumber(ch)){number += ch;}else {var peekCh=this.peek();if(ch == 'e' && this.isExpOperator(peekCh)){number += ch;}else if(this.isExpOperator(ch) && peekCh && this.isNumber(peekCh) && number.charAt(number.length - 1) == 'e'){number += ch;}else if(this.isExpOperator(ch) && (!peekCh || !this.isNumber(peekCh)) && number.charAt(number.length - 1) == 'e'){this.throwError('Invalid exponent');}else {break;}}this.index++;}this.tokens.push({index:start,text:number,constant:true,value:Number(number)});},readIdent:function readIdent(){var start=this.index;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);if(!(this.isIdent(ch) || this.isNumber(ch))){break;}this.index++;}this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:true});},readString:function readString(quote){var start=this.index;this.index++;var string='';var rawString=quote;var escape=false;while(this.index < this.text.length) {var ch=this.text.charAt(this.index);rawString += ch;if(escape){if(ch === 'u'){var hex=this.text.substring(this.index + 1,this.index + 5);if(!hex.match(/[\da-f]{4}/i))this.throwError('Invalid unicode escape [\\u' + hex + ']');this.index += 4;string += String.fromCharCode(parseInt(hex,16));}else {var rep=ESCAPE[ch];string = string + (rep || ch);}escape = false;}else if(ch === '\\'){escape = true;}else if(ch === quote){this.index++;this.tokens.push({index:start,text:rawString,constant:true,value:string});return;}else {string += ch;}this.index++;}this.throwError('Unterminated quote',start);}};function isConstant(exp){return exp.constant;}var Parser=function Parser(lexer,$filter,options){this.lexer = lexer;this.$filter = $filter;this.options = options;};Parser.ZERO = extend(function(){return 0;},{sharedGetter:true,constant:true});Parser.prototype = {constructor:Parser,parse:function parse(text){this.text = text;this.tokens = this.lexer.lex(text);var value=this.statements();if(this.tokens.length !== 0){this.throwError('is an unexpected token',this.tokens[0]);}value.literal = !!value.literal;value.constant = !!value.constant;return value;},primary:function primary(){var primary;if(this.expect('(')){primary = this.filterChain();this.consume(')');}else if(this.expect('[')){primary = this.arrayDeclaration();}else if(this.expect('{')){primary = this.object();}else if(this.peek().identifier && this.peek().text in CONSTANTS){primary = CONSTANTS[this.consume().text];}else if(this.peek().identifier){primary = this.identifier();}else if(this.peek().constant){primary = this.constant();}else {this.throwError('not a primary expression',this.peek());}var next,context;while(next = this.expect('(','[','.')) {if(next.text === '('){primary = this.functionCall(primary,context);context = null;}else if(next.text === '['){context = primary;primary = this.objectIndex(primary);}else if(next.text === '.'){context = primary;primary = this.fieldAccess(primary);}else {this.throwError('IMPOSSIBLE');}}return primary;},throwError:function throwError(msg,token){throw $parseMinErr('syntax','Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].',token.text,msg,token.index + 1,this.text,this.text.substring(token.index));},peekToken:function peekToken(){if(this.tokens.length === 0)throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);return this.tokens[0];},peek:function peek(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4);},peekAhead:function peekAhead(i,e1,e2,e3,e4){if(this.tokens.length > i){var token=this.tokens[i];var t=token.text;if(t === e1 || t === e2 || t === e3 || t === e4 || !e1 && !e2 && !e3 && !e4){return token;}}return false;},expect:function expect(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);if(token){this.tokens.shift();return token;}return false;},consume:function consume(e1){if(this.tokens.length === 0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}var token=this.expect(e1);if(!token){this.throwError('is unexpected, expecting [' + e1 + ']',this.peek());}return token;},unaryFn:function unaryFn(op,right){var fn=OPERATORS[op];return extend(function $parseUnaryFn(self,locals){return fn(self,locals,right);},{constant:right.constant,inputs:[right]});},binaryFn:function binaryFn(left,op,right,isBranching){var fn=OPERATORS[op];return extend(function $parseBinaryFn(self,locals){return fn(self,locals,left,right);},{constant:left.constant && right.constant,inputs:!isBranching && [left,right]});},identifier:function identifier(){var id=this.consume().text;while(this.peek('.') && this.peekAhead(1).identifier && !this.peekAhead(2,'(')) {id += this.consume().text + this.consume().text;}return getterFn(id,this.options,this.text);},constant:function constant(){var value=this.consume().value;return extend(function $parseConstant(){return value;},{constant:true,literal:true});},statements:function statements(){var statements=[];while(true) {if(this.tokens.length > 0 && !this.peek('}',')',';',']'))statements.push(this.filterChain());if(!this.expect(';')){return statements.length === 1?statements[0]:function $parseStatements(self,locals){var value;for(var i=0,ii=statements.length;i < ii;i++) {value = statements[i](self,locals);}return value;};}}},filterChain:function filterChain(){var left=this.expression();var token;while(token = this.expect('|')) {left = this.filter(left);}return left;},filter:function filter(inputFn){var fn=this.$filter(this.consume().text);var argsFn;var args;if(this.peek(':')){argsFn = [];args = [];while(this.expect(':')) {argsFn.push(this.expression());}}var inputs=[inputFn].concat(argsFn || []);return extend(function $parseFilter(self,locals){var input=inputFn(self,locals);if(args){args[0] = input;var i=argsFn.length;while(i--) {args[i + 1] = argsFn[i](self,locals);}return fn.apply(undefined,args);}return fn(input);},{constant:!fn.$stateful && inputs.every(isConstant),inputs:!fn.$stateful && inputs});},expression:function expression(){return this.assignment();},assignment:function assignment(){var left=this.ternary();var right;var token;if(token = this.expect('=')){if(!left.assign){this.throwError('implies assignment but [' + this.text.substring(0,token.index) + '] can not be assigned to',token);}right = this.ternary();return extend(function $parseAssignment(scope,locals){return left.assign(scope,right(scope,locals),locals);},{inputs:[left,right]});}return left;},ternary:function ternary(){var left=this.logicalOR();var middle;var token;if(token = this.expect('?')){middle = this.assignment();if(this.consume(':')){var right=this.assignment();return extend(function $parseTernary(self,locals){return left(self,locals)?middle(self,locals):right(self,locals);},{constant:left.constant && middle.constant && right.constant});}}return left;},logicalOR:function logicalOR(){var left=this.logicalAND();var token;while(token = this.expect('||')) {left = this.binaryFn(left,token.text,this.logicalAND(),true);}return left;},logicalAND:function logicalAND(){var left=this.equality();var token;while(token = this.expect('&&')) {left = this.binaryFn(left,token.text,this.equality(),true);}return left;},equality:function equality(){var left=this.relational();var token;while(token = this.expect('==','!=','===','!==')) {left = this.binaryFn(left,token.text,this.relational());}return left;},relational:function relational(){var left=this.additive();var token;while(token = this.expect('<','>','<=','>=')) {left = this.binaryFn(left,token.text,this.additive());}return left;},additive:function additive(){var left=this.multiplicative();var token;while(token = this.expect('+','-')) {left = this.binaryFn(left,token.text,this.multiplicative());}return left;},multiplicative:function multiplicative(){var left=this.unary();var token;while(token = this.expect('*','/','%')) {left = this.binaryFn(left,token.text,this.unary());}return left;},unary:function unary(){var token;if(this.expect('+')){return this.primary();}else if(token = this.expect('-')){return this.binaryFn(Parser.ZERO,token.text,this.unary());}else if(token = this.expect('!')){return this.unaryFn(token.text,this.unary());}else {return this.primary();}},fieldAccess:function fieldAccess(object){var getter=this.identifier();return extend(function $parseFieldAccess(scope,locals,self){var o=self || object(scope,locals);return o == null?undefined:getter(o);},{assign:function assign(scope,value,locals){var o=object(scope,locals);if(!o)object.assign(scope,o = {},locals);return getter.assign(o,value);}});},objectIndex:function objectIndex(obj){var expression=this.text;var indexFn=this.expression();this.consume(']');return extend(function $parseObjectIndex(self,locals){var o=obj(self,locals),i=indexFn(self,locals),v;ensureSafeMemberName(i,expression);if(!o)return undefined;v = ensureSafeObject(o[i],expression);return v;},{assign:function assign(self,value,locals){var key=ensureSafeMemberName(indexFn(self,locals),expression);var o=ensureSafeObject(obj(self,locals),expression);if(!o)obj.assign(self,o = {},locals);return o[key] = value;}});},functionCall:function functionCall(fnGetter,contextGetter){var argsFn=[];if(this.peekToken().text !== ')'){do {argsFn.push(this.expression());}while(this.expect(','));}this.consume(')');var expressionText=this.text;var args=argsFn.length?[]:null;return function $parseFunctionCall(scope,locals){var context=contextGetter?contextGetter(scope,locals):isDefined(contextGetter)?undefined:scope;var fn=fnGetter(scope,locals,context) || noop;if(args){var i=argsFn.length;while(i--) {args[i] = ensureSafeObject(argsFn[i](scope,locals),expressionText);}}ensureSafeObject(context,expressionText);ensureSafeFunction(fn,expressionText);var v=fn.apply?fn.apply(context,args):fn(args[0],args[1],args[2],args[3],args[4]);if(args){args.length = 0;}return ensureSafeObject(v,expressionText);};},arrayDeclaration:function arrayDeclaration(){var elementFns=[];if(this.peekToken().text !== ']'){do {if(this.peek(']')){break;}elementFns.push(this.expression());}while(this.expect(','));}this.consume(']');return extend(function $parseArrayLiteral(self,locals){var array=[];for(var i=0,ii=elementFns.length;i < ii;i++) {array.push(elementFns[i](self,locals));}return array;},{literal:true,constant:elementFns.every(isConstant),inputs:elementFns});},object:function object(){var keys=[],valueFns=[];if(this.peekToken().text !== '}'){do {if(this.peek('}')){break;}var token=this.consume();if(token.constant){keys.push(token.value);}else if(token.identifier){keys.push(token.text);}else {this.throwError('invalid key',token);}this.consume(':');valueFns.push(this.expression());}while(this.expect(','));}this.consume('}');return extend(function $parseObjectLiteral(self,locals){var object={};for(var i=0,ii=valueFns.length;i < ii;i++) {object[keys[i]] = valueFns[i](self,locals);}return object;},{literal:true,constant:valueFns.every(isConstant),inputs:valueFns});}};function setter(obj,locals,path,setValue,fullExp){ensureSafeObject(obj,fullExp);ensureSafeObject(locals,fullExp);var element=path.split('.'),key;for(var i=0;element.length > 1;i++) {key = ensureSafeMemberName(element.shift(),fullExp);var propertyObj=i === 0 && locals && locals[key] || obj[key];if(!propertyObj){propertyObj = {};obj[key] = propertyObj;}obj = ensureSafeObject(propertyObj,fullExp);}key = ensureSafeMemberName(element.shift(),fullExp);ensureSafeObject(obj[key],fullExp);obj[key] = setValue;return setValue;}var getterFnCacheDefault=createMap();var getterFnCacheExpensive=createMap();function isPossiblyDangerousMemberName(name){return name == 'constructor';}function cspSafeGetterFn(key0,key1,key2,key3,key4,fullExp,expensiveChecks){ensureSafeMemberName(key0,fullExp);ensureSafeMemberName(key1,fullExp);ensureSafeMemberName(key2,fullExp);ensureSafeMemberName(key3,fullExp);ensureSafeMemberName(key4,fullExp);var eso=function eso(o){return ensureSafeObject(o,fullExp);};var eso0=expensiveChecks || isPossiblyDangerousMemberName(key0)?eso:identity;var eso1=expensiveChecks || isPossiblyDangerousMemberName(key1)?eso:identity;var eso2=expensiveChecks || isPossiblyDangerousMemberName(key2)?eso:identity;var eso3=expensiveChecks || isPossiblyDangerousMemberName(key3)?eso:identity;var eso4=expensiveChecks || isPossiblyDangerousMemberName(key4)?eso:identity;return function cspSafeGetter(scope,locals){var pathVal=locals && locals.hasOwnProperty(key0)?locals:scope;if(pathVal == null)return pathVal;pathVal = eso0(pathVal[key0]);if(!key1)return pathVal;if(pathVal == null)return undefined;pathVal = eso1(pathVal[key1]);if(!key2)return pathVal;if(pathVal == null)return undefined;pathVal = eso2(pathVal[key2]);if(!key3)return pathVal;if(pathVal == null)return undefined;pathVal = eso3(pathVal[key3]);if(!key4)return pathVal;if(pathVal == null)return undefined;pathVal = eso4(pathVal[key4]);return pathVal;};}function getterFnWithEnsureSafeObject(fn,fullExpression){return function(s,l){return fn(s,l,ensureSafeObject,fullExpression);};}function getterFn(path,options,fullExp){var expensiveChecks=options.expensiveChecks;var getterFnCache=expensiveChecks?getterFnCacheExpensive:getterFnCacheDefault;var fn=getterFnCache[path];if(fn)return fn;var pathKeys=path.split('.'),pathKeysLength=pathKeys.length;if(options.csp){if(pathKeysLength < 6){fn = cspSafeGetterFn(pathKeys[0],pathKeys[1],pathKeys[2],pathKeys[3],pathKeys[4],fullExp,expensiveChecks);}else {fn = function cspSafeGetter(scope,locals){var i=0,val;do {val = cspSafeGetterFn(pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],pathKeys[i++],fullExp,expensiveChecks)(scope,locals);locals = undefined;scope = val;}while(i < pathKeysLength);return val;};}}else {var code='';if(expensiveChecks){code += 's = eso(s, fe);\nl = eso(l, fe);\n';}var needsEnsureSafeObject=expensiveChecks;forEach(pathKeys,function(key,index){ensureSafeMemberName(key,fullExp);var lookupJs=(index?'s':'((l&&l.hasOwnProperty("' + key + '"))?l:s)') + '.' + key;if(expensiveChecks || isPossiblyDangerousMemberName(key)){lookupJs = 'eso(' + lookupJs + ', fe)';needsEnsureSafeObject = true;}code += 'if(s == null) return undefined;\n' + 's=' + lookupJs + ';\n';});code += 'return s;';var evaledFnGetter=new Function('s','l','eso','fe',code);evaledFnGetter.toString = valueFn(code);if(needsEnsureSafeObject){evaledFnGetter = getterFnWithEnsureSafeObject(evaledFnGetter,fullExp);}fn = evaledFnGetter;}fn.sharedGetter = true;fn.assign = function(self,value,locals){return setter(self,locals,path,value,path);};getterFnCache[path] = fn;return fn;}var objectValueOf=Object.prototype.valueOf;function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value);}function $ParseProvider(){var cacheDefault=createMap();var cacheExpensive=createMap();this.$get = ['$filter','$sniffer',function($filter,$sniffer){var $parseOptions={csp:$sniffer.csp,expensiveChecks:false},$parseOptionsExpensive={csp:$sniffer.csp,expensiveChecks:true};function wrapSharedExpression(exp){var wrapped=exp;if(exp.sharedGetter){wrapped = function $parseWrapper(self,locals){return exp(self,locals);};wrapped.literal = exp.literal;wrapped.constant = exp.constant;wrapped.assign = exp.assign;}return wrapped;}return function $parse(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case 'string':cacheKey = exp = exp.trim();var cache=expensiveChecks?cacheExpensive:cacheDefault;parsedExpression = cache[cacheKey];if(!parsedExpression){if(exp.charAt(0) === ':' && exp.charAt(1) === ':'){oneTime = true;exp = exp.substring(2);}var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions;var lexer=new Lexer(parseOptions);var parser=new Parser(lexer,$filter,parseOptions);parsedExpression = parser.parse(exp);if(parsedExpression.constant){parsedExpression.$$watchDelegate = constantWatchDelegate;}else if(oneTime){parsedExpression = wrapSharedExpression(parsedExpression);parsedExpression.$$watchDelegate = parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate;}else if(parsedExpression.inputs){parsedExpression.$$watchDelegate = inputsWatchDelegate;}cache[cacheKey] = parsedExpression;}return addInterceptor(parsedExpression,interceptorFn);case 'function':return addInterceptor(exp,interceptorFn);default:return addInterceptor(noop,interceptorFn);}};function collectExpressionInputs(inputs,list){for(var i=0,ii=inputs.length;i < ii;i++) {var input=inputs[i];if(!input.constant){if(input.inputs){collectExpressionInputs(input.inputs,list);}else if(list.indexOf(input) === -1){list.push(input);}}}return list;}function expressionInputDirtyCheck(newValue,oldValueOfValue){if(newValue == null || oldValueOfValue == null){return newValue === oldValueOfValue;}if(typeof newValue === 'object'){newValue = getValueOf(newValue);if(typeof newValue === 'object'){return false;}}return newValue === oldValueOfValue || newValue !== newValue && oldValueOfValue !== oldValueOfValue;}function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression){var inputExpressions=parsedExpression.$$inputs || (parsedExpression.$$inputs = collectExpressionInputs(parsedExpression.inputs,[]));var lastResult;if(inputExpressions.length === 1){var oldInputValue=expressionInputDirtyCheck;inputExpressions = inputExpressions[0];return scope.$watch(function expressionInputWatch(scope){var newInputValue=inputExpressions(scope);if(!expressionInputDirtyCheck(newInputValue,oldInputValue)){lastResult = parsedExpression(scope);oldInputValue = newInputValue && getValueOf(newInputValue);}return lastResult;},listener,objectEquality);}var oldInputValueOfValues=[];for(var i=0,ii=inputExpressions.length;i < ii;i++) {oldInputValueOfValues[i] = expressionInputDirtyCheck;}return scope.$watch(function expressionInputsWatch(scope){var changed=false;for(var i=0,ii=inputExpressions.length;i < ii;i++) {var newInputValue=inputExpressions[i](scope);if(changed || (changed = !expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i]))){oldInputValueOfValues[i] = newInputValue && getValueOf(newInputValue);}}if(changed){lastResult = parsedExpression(scope);}return lastResult;},listener,objectEquality);}function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.apply(this,arguments);}if(isDefined(value)){scope.$$postDigest(function(){if(isDefined(lastValue)){unwatch();}});}},objectEquality);}function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch = scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue = value;if(isFunction(listener)){listener.call(this,value,old,scope);}if(isAllDefined(value)){scope.$$postDigest(function(){if(isAllDefined(lastValue))unwatch();});}},objectEquality);function isAllDefined(value){var allDefined=true;forEach(value,function(val){if(!isDefined(val))allDefined = false;});return allDefined;}}function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch = scope.$watch(function constantWatch(scope){return parsedExpression(scope);},function constantListener(value,old,scope){if(isFunction(listener)){listener.apply(this,arguments);}unwatch();},objectEquality);}function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate;var regularWatch=watchDelegate !== oneTimeLiteralWatchDelegate && watchDelegate !== oneTimeWatchDelegate;var fn=regularWatch?function regularInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);return interceptorFn(value,scope,locals);}:function oneTimeInterceptedExpression(scope,locals){var value=parsedExpression(scope,locals);var result=interceptorFn(value,scope,locals);return isDefined(value)?result:value;};if(parsedExpression.$$watchDelegate && parsedExpression.$$watchDelegate !== inputsWatchDelegate){fn.$$watchDelegate = parsedExpression.$$watchDelegate;}else if(!interceptorFn.$stateful){fn.$$watchDelegate = inputsWatchDelegate;fn.inputs = [parsedExpression];}return fn;}}];}function $QProvider(){this.$get = ['$rootScope','$exceptionHandler',function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback);},$exceptionHandler);}];}function $$QProvider(){this.$get = ['$browser','$exceptionHandler',function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback);},$exceptionHandler);}];}function qFactory(nextTick,exceptionHandler){var $qMinErr=minErr('$q',TypeError);function callOnce(self,resolveFn,rejectFn){var called=false;function wrap(fn){return function(value){if(called)return;called = true;fn.call(self,value);};}return [wrap(resolveFn),wrap(rejectFn)];}var defer=function defer(){return new Deferred();};function Promise(){this.$$state = {status:0};}Promise.prototype = {then:function then(onFulfilled,onRejected,progressBack){var result=new Deferred();this.$$state.pending = this.$$state.pending || [];this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]);if(this.$$state.status > 0)scheduleProcessQueue(this.$$state);return result.promise;},'catch':function _catch(callback){return this.then(null,callback);},'finally':function _finally(callback,progressBack){return this.then(function(value){return handleCallback(value,true,callback);},function(error){return handleCallback(error,false,callback);},progressBack);}};function simpleBind(context,fn){return function(value){fn.call(context,value);};}function processQueue(state){var fn,promise,pending;pending = state.pending;state.processScheduled = false;state.pending = undefined;for(var i=0,ii=pending.length;i < ii;++i) {promise = pending[i][0];fn = pending[i][state.status];try{if(isFunction(fn)){promise.resolve(fn(state.value));}else if(state.status === 1){promise.resolve(state.value);}else {promise.reject(state.value);}}catch(e) {promise.reject(e);exceptionHandler(e);}}}function scheduleProcessQueue(state){if(state.processScheduled || !state.pending)return;state.processScheduled = true;nextTick(function(){processQueue(state);});}function Deferred(){this.promise = new Promise();this.resolve = simpleBind(this,this.resolve);this.reject = simpleBind(this,this.reject);this.notify = simpleBind(this,this.notify);}Deferred.prototype = {resolve:function resolve(val){if(this.promise.$$state.status)return;if(val === this.promise){this.$$reject($qMinErr('qcycle','Expected promise to be resolved with value other than itself \'{0}\'',val));}else {this.$$resolve(val);}},$$resolve:function $$resolve(val){var then,fns;fns = callOnce(this,this.$$resolve,this.$$reject);try{if(isObject(val) || isFunction(val))then = val && val.then;if(isFunction(then)){this.promise.$$state.status = -1;then.call(val,fns[0],fns[1],this.notify);}else {this.promise.$$state.value = val;this.promise.$$state.status = 1;scheduleProcessQueue(this.promise.$$state);}}catch(e) {fns[1](e);exceptionHandler(e);}},reject:function reject(reason){if(this.promise.$$state.status)return;this.$$reject(reason);},$$reject:function $$reject(reason){this.promise.$$state.value = reason;this.promise.$$state.status = 2;scheduleProcessQueue(this.promise.$$state);},notify:function notify(progress){var callbacks=this.promise.$$state.pending;if(this.promise.$$state.status <= 0 && callbacks && callbacks.length){nextTick(function(){var callback,result;for(var i=0,ii=callbacks.length;i < ii;i++) {result = callbacks[i][0];callback = callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress);}catch(e) {exceptionHandler(e);}}});}}};var reject=function reject(reason){var result=new Deferred();result.reject(reason);return result.promise;};var makePromise=function makePromise(value,resolved){var result=new Deferred();if(resolved){result.resolve(value);}else {result.reject(value);}return result.promise;};var handleCallback=function handleCallback(value,isResolved,callback){var callbackOutput=null;try{if(isFunction(callback))callbackOutput = callback();}catch(e) {return makePromise(e,false);}if(isPromiseLike(callbackOutput)){return callbackOutput.then(function(){return makePromise(value,isResolved);},function(error){return makePromise(error,false);});}else {return makePromise(value,isResolved);}};var when=function when(value,callback,errback,progressBack){var result=new Deferred();result.resolve(value);return result.promise.then(callback,errback,progressBack);};function all(promises){var deferred=new Deferred(),counter=0,results=isArray(promises)?[]:{};forEach(promises,function(promise,key){counter++;when(promise).then(function(value){if(results.hasOwnProperty(key))return;results[key] = value;if(! --counter)deferred.resolve(results);},function(reason){if(results.hasOwnProperty(key))return;deferred.reject(reason);});});if(counter === 0){deferred.resolve(results);}return deferred.promise;}var $Q=function Q(resolver){if(!isFunction(resolver)){throw $qMinErr('norslvr','Expected resolverFn, got \'{0}\'',resolver);}if(!(this instanceof Q)){return new Q(resolver);}var deferred=new Deferred();function resolveFn(value){deferred.resolve(value);}function rejectFn(reason){deferred.reject(reason);}resolver(resolveFn,rejectFn);return deferred.promise;};$Q.defer = defer;$Q.reject = reject;$Q.when = when;$Q.all = all;return $Q;}function $$RAFProvider(){this.$get = ['$window','$timeout',function($window,$timeout){var requestAnimationFrame=$window.requestAnimationFrame || $window.webkitRequestAnimationFrame;var cancelAnimationFrame=$window.cancelAnimationFrame || $window.webkitCancelAnimationFrame || $window.webkitCancelRequestAnimationFrame;var rafSupported=!!requestAnimationFrame;var raf=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id);};}:function(fn){var timer=$timeout(fn,16.66,false);return function(){$timeout.cancel(timer);};};raf.supported = rafSupported;return raf;}];}function $RootScopeProvider(){var TTL=10;var $rootScopeMinErr=minErr('$rootScope');var lastDirtyWatch=null;var applyAsyncId=null;this.digestTtl = function(value){if(arguments.length){TTL = value;}return TTL;};function createChildScopeClass(parent){function ChildScope(){this.$$watchers = this.$$nextSibling = this.$$childHead = this.$$childTail = null;this.$$listeners = {};this.$$listenerCount = {};this.$$watchersCount = 0;this.$id = nextUid();this.$$ChildScope = null;}ChildScope.prototype = parent;return ChildScope;}this.$get = ['$injector','$exceptionHandler','$parse','$browser',function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed = true;}function Scope(){this.$id = nextUid();this.$$phase = this.$parent = this.$$watchers = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = null;this.$root = this;this.$$destroyed = false;this.$$listeners = {};this.$$listenerCount = {};this.$$isolateBindings = null;}Scope.prototype = {constructor:Scope,$new:function $new(isolate,parent){var child;parent = parent || this;if(isolate){child = new Scope();child.$root = this.$root;}else {if(!this.$$ChildScope){this.$$ChildScope = createChildScopeClass(this);}child = new this.$$ChildScope();}child.$parent = parent;child.$$prevSibling = parent.$$childTail;if(parent.$$childHead){parent.$$childTail.$$nextSibling = child;parent.$$childTail = child;}else {parent.$$childHead = parent.$$childTail = child;}if(isolate || parent != this)child.$on('$destroy',destroyChildScope);return child;},$watch:function $watch(watchExp,listener,objectEquality){var get=$parse(watchExp);if(get.$$watchDelegate){return get.$$watchDelegate(this,listener,objectEquality,get);}var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:watchExp,eq:!!objectEquality};lastDirtyWatch = null;if(!isFunction(listener)){watcher.fn = noop;}if(!array){array = scope.$$watchers = [];}array.unshift(watcher);return function deregisterWatch(){arrayRemove(array,watcher);lastDirtyWatch = null;};},$watchGroup:function $watchGroup(watchExpressions,listener){var oldValues=new Array(watchExpressions.length);var newValues=new Array(watchExpressions.length);var deregisterFns=[];var self=this;var changeReactionScheduled=false;var firstRun=true;if(!watchExpressions.length){var shouldCall=true;self.$evalAsync(function(){if(shouldCall)listener(newValues,newValues,self);});return function deregisterWatchGroup(){shouldCall = false;};}if(watchExpressions.length === 1){return this.$watch(watchExpressions[0],function watchGroupAction(value,oldValue,scope){newValues[0] = value;oldValues[0] = oldValue;listener(newValues,value === oldValue?newValues:oldValues,scope);});}forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function watchGroupSubAction(value,oldValue){newValues[i] = value;oldValues[i] = oldValue;if(!changeReactionScheduled){changeReactionScheduled = true;self.$evalAsync(watchGroupAction);}});deregisterFns.push(unwatchFn);});function watchGroupAction(){changeReactionScheduled = false;if(firstRun){firstRun = false;listener(newValues,newValues,self);}else {listener(newValues,oldValues,self);}}return function deregisterWatchGroup(){while(deregisterFns.length) {deregisterFns.shift()();}};},$watchCollection:function $watchCollection(obj,listener){$watchCollectionInterceptor.$stateful = true;var self=this;var newValue;var oldValue;var veryOldValue;var trackVeryOldValue=listener.length > 1;var changeDetected=0;var changeDetector=$parse(obj,$watchCollectionInterceptor);var internalArray=[];var internalObject={};var initRun=true;var oldLength=0;function $watchCollectionInterceptor(_value){newValue = _value;var newLength,key,bothNaN,newItem,oldItem;if(isUndefined(newValue))return;if(!isObject(newValue)){if(oldValue !== newValue){oldValue = newValue;changeDetected++;}}else if(isArrayLike(newValue)){if(oldValue !== internalArray){oldValue = internalArray;oldLength = oldValue.length = 0;changeDetected++;}newLength = newValue.length;if(oldLength !== newLength){changeDetected++;oldValue.length = oldLength = newLength;}for(var i=0;i < newLength;i++) {oldItem = oldValue[i];newItem = newValue[i];bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[i] = newItem;}}}else {if(oldValue !== internalObject){oldValue = internalObject = {};oldLength = 0;changeDetected++;}newLength = 0;for(key in newValue) {if(newValue.hasOwnProperty(key)){newLength++;newItem = newValue[key];oldItem = oldValue[key];if(key in oldValue){bothNaN = oldItem !== oldItem && newItem !== newItem;if(!bothNaN && oldItem !== newItem){changeDetected++;oldValue[key] = newItem;}}else {oldLength++;oldValue[key] = newItem;changeDetected++;}}}if(oldLength > newLength){changeDetected++;for(key in oldValue) {if(!newValue.hasOwnProperty(key)){oldLength--;delete oldValue[key];}}}}return changeDetected;}function $watchCollectionAction(){if(initRun){initRun = false;listener(newValue,newValue,self);}else {listener(newValue,veryOldValue,self);}if(trackVeryOldValue){if(!isObject(newValue)){veryOldValue = newValue;}else if(isArrayLike(newValue)){veryOldValue = new Array(newValue.length);for(var i=0;i < newValue.length;i++) {veryOldValue[i] = newValue[i];}}else {veryOldValue = {};for(var key in newValue) {if(hasOwnProperty.call(newValue,key)){veryOldValue[key] = newValue[key];}}}}}return this.$watch(changeDetector,$watchCollectionAction);},$digest:function $digest(){var watch,value,last,watchers,length,dirty,ttl=TTL,next,current,target=this,watchLog=[],logIdx,logMsg,asyncTask;beginPhase('$digest');$browser.$$checkUrlChange();if(this === $rootScope && applyAsyncId !== null){$browser.defer.cancel(applyAsyncId);flushApplyAsync();}lastDirtyWatch = null;do {dirty = false;current = target;while(asyncQueue.length) {try{asyncTask = asyncQueue.shift();asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals);}catch(e) {$exceptionHandler(e);}lastDirtyWatch = null;}traverseScopesLoop: do {if(watchers = current.$$watchers){length = watchers.length;while(length--) {try{watch = watchers[length];if(watch){if((value = watch.get(current)) !== (last = watch.last) && !(watch.eq?equals(value,last):typeof value === 'number' && typeof last === 'number' && isNaN(value) && isNaN(last))){dirty = true;lastDirtyWatch = watch;watch.last = watch.eq?copy(value,null):value;watch.fn(value,last === initWatchVal?value:last,current);if(ttl < 5){logIdx = 4 - ttl;if(!watchLog[logIdx])watchLog[logIdx] = [];watchLog[logIdx].push({msg:isFunction(watch.exp)?'fn: ' + (watch.exp.name || watch.exp.toString()):watch.exp,newVal:value,oldVal:last});}}else if(watch === lastDirtyWatch){dirty = false;break traverseScopesLoop;}}}catch(e) {$exceptionHandler(e);}}}if(!(next = current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}while(current = next);if((dirty || asyncQueue.length) && ! ttl--){clearPhase();throw $rootScopeMinErr('infdig','{0} $digest() iterations reached. Aborting!\n' + 'Watchers fired in the last 5 iterations: {1}',TTL,watchLog);}}while(dirty || asyncQueue.length);clearPhase();while(postDigestQueue.length) {try{postDigestQueue.shift()();}catch(e) {$exceptionHandler(e);}}},$destroy:function $destroy(){if(this.$$destroyed)return;var parent=this.$parent;this.$broadcast('$destroy');this.$$destroyed = true;if(this === $rootScope)return;for(var eventName in this.$$listenerCount) {decrementListenerCount(this,this.$$listenerCount[eventName],eventName);}if(parent.$$childHead == this)parent.$$childHead = this.$$nextSibling;if(parent.$$childTail == this)parent.$$childTail = this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling = this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling = this.$$prevSibling;this.$destroy = this.$digest = this.$apply = this.$evalAsync = this.$applyAsync = noop;this.$on = this.$watch = this.$watchGroup = function(){return noop;};this.$$listeners = {};this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead = this.$$childTail = this.$root = this.$$watchers = null;},$eval:function $eval(expr,locals){return $parse(expr)(this,locals);},$evalAsync:function $evalAsync(expr,locals){if(!$rootScope.$$phase && !asyncQueue.length){$browser.defer(function(){if(asyncQueue.length){$rootScope.$digest();}});}asyncQueue.push({scope:this,expression:expr,locals:locals});},$$postDigest:function $$postDigest(fn){postDigestQueue.push(fn);},$apply:function $apply(expr){try{beginPhase('$apply');return this.$eval(expr);}catch(e) {$exceptionHandler(e);}finally {clearPhase();try{$rootScope.$digest();}catch(e) {$exceptionHandler(e);throw e;}}},$applyAsync:function $applyAsync(expr){var scope=this;expr && applyAsyncQueue.push($applyAsyncExpression);scheduleApplyAsync();function $applyAsyncExpression(){scope.$eval(expr);}},$on:function $on(name,listener){var namedListeners=this.$$listeners[name];if(!namedListeners){this.$$listeners[name] = namedListeners = [];}namedListeners.push(listener);var current=this;do {if(!current.$$listenerCount[name]){current.$$listenerCount[name] = 0;}current.$$listenerCount[name]++;}while(current = current.$parent);var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);if(indexOfListener !== -1){namedListeners[indexOfListener] = null;decrementListenerCount(self,1,name);}};},$emit:function $emit(name,args){var empty=[],namedListeners,scope=this,_stopPropagation=false,event={name:name,targetScope:scope,stopPropagation:function stopPropagation(){_stopPropagation = true;},preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false},listenerArgs=concat([event],arguments,1),i,length;do {namedListeners = scope.$$listeners[name] || empty;event.currentScope = scope;for(i = 0,length = namedListeners.length;i < length;i++) {if(!namedListeners[i]){namedListeners.splice(i,1);i--;length--;continue;}try{namedListeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(_stopPropagation){event.currentScope = null;return event;}scope = scope.$parent;}while(scope);event.currentScope = null;return event;},$broadcast:function $broadcast(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function preventDefault(){event.defaultPrevented = true;},defaultPrevented:false};if(!target.$$listenerCount[name])return event;var listenerArgs=concat([event],arguments,1),listeners,i,length;while(current = next) {event.currentScope = current;listeners = current.$$listeners[name] || [];for(i = 0,length = listeners.length;i < length;i++) {if(!listeners[i]){listeners.splice(i,1);i--;length--;continue;}try{listeners[i].apply(null,listenerArgs);}catch(e) {$exceptionHandler(e);}}if(!(next = current.$$listenerCount[name] && current.$$childHead || current !== target && current.$$nextSibling)){while(current !== target && !(next = current.$$nextSibling)) {current = current.$parent;}}}event.currentScope = null;return event;}};var $rootScope=new Scope();var asyncQueue=$rootScope.$$asyncQueue = [];var postDigestQueue=$rootScope.$$postDigestQueue = [];var applyAsyncQueue=$rootScope.$$applyAsyncQueue = [];return $rootScope;function beginPhase(phase){if($rootScope.$$phase){throw $rootScopeMinErr('inprog','{0} already in progress',$rootScope.$$phase);}$rootScope.$$phase = phase;}function clearPhase(){$rootScope.$$phase = null;}function decrementListenerCount(current,count,name){do {current.$$listenerCount[name] -= count;if(current.$$listenerCount[name] === 0){delete current.$$listenerCount[name];}}while(current = current.$parent);}function initWatchVal(){}function flushApplyAsync(){while(applyAsyncQueue.length) {try{applyAsyncQueue.shift()();}catch(e) {$exceptionHandler(e);}}applyAsyncId = null;}function scheduleApplyAsync(){if(applyAsyncId === null){applyAsyncId = $browser.defer(function(){$rootScope.$apply(flushApplyAsync);});}}}];}function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist = function(regexp){if(isDefined(regexp)){aHrefSanitizationWhitelist = regexp;return this;}return aHrefSanitizationWhitelist;};this.imgSrcSanitizationWhitelist = function(regexp){if(isDefined(regexp)){imgSrcSanitizationWhitelist = regexp;return this;}return imgSrcSanitizationWhitelist;};this.$get = function(){return function sanitizeUri(uri,isImage){var regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;var normalizedVal;normalizedVal = urlResolve(uri).href;if(normalizedVal !== '' && !normalizedVal.match(regex)){return 'unsafe:' + normalizedVal;}return uri;};};}var $sceMinErr=minErr('$sce');var SCE_CONTEXTS={HTML:'html',CSS:'css',URL:'url',RESOURCE_URL:'resourceUrl',JS:'js'};function adjustMatcher(matcher){if(matcher === 'self'){return matcher;}else if(isString(matcher)){if(matcher.indexOf('***') > -1){throw $sceMinErr('iwcard','Illegal sequence *** in string matcher. String: {0}',matcher);}matcher = escapeForRegexp(matcher).replace('\\*\\*','.*').replace('\\*','[^:/.?&;]*');return new RegExp('^' + matcher + '$');}else if(isRegExp(matcher)){return new RegExp('^' + matcher.source + '$');}else {throw $sceMinErr('imatcher','Matchers may only be "self", string patterns or RegExp objects');}}function adjustMatchers(matchers){var adjustedMatchers=[];if(isDefined(matchers)){forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher));});}return adjustedMatchers;}function $SceDelegateProvider(){this.SCE_CONTEXTS = SCE_CONTEXTS;var resourceUrlWhitelist=['self'],resourceUrlBlacklist=[];this.resourceUrlWhitelist = function(value){if(arguments.length){resourceUrlWhitelist = adjustMatchers(value);}return resourceUrlWhitelist;};this.resourceUrlBlacklist = function(value){if(arguments.length){resourceUrlBlacklist = adjustMatchers(value);}return resourceUrlBlacklist;};this.$get = ['$injector',function($injector){var htmlSanitizer=function htmlSanitizer(html){throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');};if($injector.has('$sanitize')){htmlSanitizer = $injector.get('$sanitize');}function matchUrl(matcher,parsedUrl){if(matcher === 'self'){return urlIsSameOrigin(parsedUrl);}else {return !!matcher.exec(parsedUrl.href);}}function isResourceUrlAllowedByPolicy(url){var parsedUrl=urlResolve(url.toString());var i,n,allowed=false;for(i = 0,n = resourceUrlWhitelist.length;i < n;i++) {if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed = true;break;}}if(allowed){for(i = 0,n = resourceUrlBlacklist.length;i < n;i++) {if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed = false;break;}}}return allowed;}function generateHolderType(Base){var holderType=function TrustedValueHolderType(trustedValue){this.$$unwrapTrustedValue = function(){return trustedValue;};};if(Base){holderType.prototype = new Base();}holderType.prototype.valueOf = function sceValueOf(){return this.$$unwrapTrustedValue();};holderType.prototype.toString = function sceToString(){return this.$$unwrapTrustedValue().toString();};return holderType;}var trustedValueHolderBase=generateHolderType(),byType={};byType[SCE_CONTEXTS.HTML] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.CSS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.URL] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.JS] = generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.RESOURCE_URL] = generateHolderType(byType[SCE_CONTEXTS.URL]);function trustAs(type,trustedValue){var Constructor=byType.hasOwnProperty(type)?byType[type]:null;if(!Constructor){throw $sceMinErr('icontext','Attempted to trust a value in invalid context. Context: {0}; Value: {1}',type,trustedValue);}if(trustedValue === null || trustedValue === undefined || trustedValue === ''){return trustedValue;}if(typeof trustedValue !== 'string'){throw $sceMinErr('itype','Attempted to trust a non-string value in a content requiring a string: Context: {0}',type);}return new Constructor(trustedValue);}function valueOf(maybeTrusted){if(maybeTrusted instanceof trustedValueHolderBase){return maybeTrusted.$$unwrapTrustedValue();}else {return maybeTrusted;}}function getTrusted(type,maybeTrusted){if(maybeTrusted === null || maybeTrusted === undefined || maybeTrusted === ''){return maybeTrusted;}var constructor=byType.hasOwnProperty(type)?byType[type]:null;if(constructor && maybeTrusted instanceof constructor){return maybeTrusted.$$unwrapTrustedValue();}if(type === SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted)){return maybeTrusted;}else {throw $sceMinErr('insecurl','Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}',maybeTrusted.toString());}}else if(type === SCE_CONTEXTS.HTML){return htmlSanitizer(maybeTrusted);}throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');}return {trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf};}];}function $SceProvider(){var enabled=true;this.enabled = function(value){if(arguments.length){enabled = !!value;}return enabled;};this.$get = ['$parse','$sceDelegate',function($parse,$sceDelegate){if(enabled && msie < 8){throw $sceMinErr('iequirks','Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks ' + 'mode. You can fix this by adding the text <!doctype html> to the top of your HTML ' + 'document. See http://docs.angularjs.org/api/ng.$sce for more information.');}var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled = function(){return enabled;};sce.trustAs = $sceDelegate.trustAs;sce.getTrusted = $sceDelegate.getTrusted;sce.valueOf = $sceDelegate.valueOf;if(!enabled){sce.trustAs = sce.getTrusted = function(type,value){return value;};sce.valueOf = identity;}sce.parseAs = function sceParseAs(type,expr){var parsed=$parse(expr);if(parsed.literal && parsed.constant){return parsed;}else {return $parse(expr,function(value){return sce.getTrusted(type,value);});}};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase('parse_as_' + lName)] = function(expr){return parse(enumValue,expr);};sce[camelCase('get_trusted_' + lName)] = function(value){return getTrusted(enumValue,value);};sce[camelCase('trust_as_' + lName)] = function(value){return trustAs(enumValue,value);};});return sce;}];}function $SnifferProvider(){this.$get = ['$window','$document',function($window,$document){var eventSupport={},android=int((/android (\d+)/.exec(lowercase(($window.navigator || {}).userAgent)) || [])[1]),boxee=/Boxee/i.test(($window.navigator || {}).userAgent),document=$document[0] || {},vendorPrefix,vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body && document.body.style,transitions=false,animations=false,match;if(bodyStyle){for(var prop in bodyStyle) {if(match = vendorRegex.exec(prop)){vendorPrefix = match[0];vendorPrefix = vendorPrefix.substr(0,1).toUpperCase() + vendorPrefix.substr(1);break;}}if(!vendorPrefix){vendorPrefix = 'WebkitOpacity' in bodyStyle && 'webkit';}transitions = !!('transition' in bodyStyle || vendorPrefix + 'Transition' in bodyStyle);animations = !!('animation' in bodyStyle || vendorPrefix + 'Animation' in bodyStyle);if(android && (!transitions || !animations)){transitions = isString(document.body.style.webkitTransition);animations = isString(document.body.style.webkitAnimation);}}return {history:!!($window.history && $window.history.pushState && !(android < 4) && !boxee),hasEvent:function hasEvent(event){if(event === 'input' && msie <= 11)return false;if(isUndefined(eventSupport[event])){var divElm=document.createElement('div');eventSupport[event] = 'on' + event in divElm;}return eventSupport[event];},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android};}];}var $compileMinErr=minErr('$compile');function $TemplateRequestProvider(){this.$get = ['$templateCache','$http','$q',function($templateCache,$http,$q){function handleRequestFn(tpl,ignoreRequestError){handleRequestFn.totalPendingRequests++;var transformResponse=$http.defaults && $http.defaults.transformResponse;if(isArray(transformResponse)){transformResponse = transformResponse.filter(function(transformer){return transformer !== defaultHttpResponseTransform;});}else if(transformResponse === defaultHttpResponseTransform){transformResponse = null;}var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)['finally'](function(){handleRequestFn.totalPendingRequests--;}).then(function(response){return response.data;},handleError);function handleError(resp){if(!ignoreRequestError){throw $compileMinErr('tpload','Failed to load template: {0}',tpl);}return $q.reject(resp);}}handleRequestFn.totalPendingRequests = 0;return handleRequestFn;}];}function $$TestabilityProvider(){this.$get = ['$rootScope','$browser','$location',function($rootScope,$browser,$location){var testability={};testability.findBindings = function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName('ng-binding');var matches=[];forEach(bindings,function(binding){var dataBinding=angular.element(binding).data('$binding');if(dataBinding){forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp('(^|\\s)' + escapeForRegexp(expression) + '(\\s|\\||$)');if(matcher.test(bindingName)){matches.push(binding);}}else {if(bindingName.indexOf(expression) != -1){matches.push(binding);}}});}});return matches;};testability.findModels = function(element,expression,opt_exactMatch){var prefixes=['ng-','data-ng-','ng\\:'];for(var p=0;p < prefixes.length;++p) {var attributeEquals=opt_exactMatch?'=':'*=';var selector='[' + prefixes[p] + 'model' + attributeEquals + '"' + expression + '"]';var elements=element.querySelectorAll(selector);if(elements.length){return elements;}}};testability.getLocation = function(){return $location.url();};testability.setLocation = function(url){if(url !== $location.url()){$location.url(url);$rootScope.$digest();}};testability.whenStable = function(callback){$browser.notifyWhenNoOutstandingRequests(callback);};return testability;}];}function $TimeoutProvider(){this.$get = ['$rootScope','$browser','$q','$$q','$exceptionHandler',function($rootScope,$browser,$q,$$q,$exceptionHandler){var deferreds={};function timeout(fn,delay,invokeApply){var skipApply=isDefined(invokeApply) && !invokeApply,deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise,timeoutId;timeoutId = $browser.defer(function(){try{deferred.resolve(fn());}catch(e) {deferred.reject(e);$exceptionHandler(e);}finally {delete deferreds[promise.$$timeoutId];}if(!skipApply)$rootScope.$apply();},delay);promise.$$timeoutId = timeoutId;deferreds[timeoutId] = deferred;return promise;}timeout.cancel = function(promise){if(promise && promise.$$timeoutId in deferreds){deferreds[promise.$$timeoutId].reject('canceled');delete deferreds[promise.$$timeoutId];return $browser.defer.cancel(promise.$$timeoutId);}return false;};return timeout;}];}var urlParsingNode=document.createElement('a');var originUrl=urlResolve(window.location.href);function urlResolve(url){var href=url;if(msie){urlParsingNode.setAttribute('href',href);href = urlParsingNode.href;}urlParsingNode.setAttribute('href',href);return {href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,''):'',host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,''):'',hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,''):'',hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:urlParsingNode.pathname.charAt(0) === '/'?urlParsingNode.pathname:'/' + urlParsingNode.pathname};}function urlIsSameOrigin(requestUrl){var parsed=isString(requestUrl)?urlResolve(requestUrl):requestUrl;return parsed.protocol === originUrl.protocol && parsed.host === originUrl.host;}function $WindowProvider(){this.$get = valueFn(window);}$FilterProvider.$inject = ['$provide'];function $FilterProvider($provide){var suffix='Filter';function register(name,factory){if(isObject(name)){var filters={};forEach(name,function(filter,key){filters[key] = register(key,filter);});return filters;}else {return $provide.factory(name + suffix,factory);}}this.register = register;this.$get = ['$injector',function($injector){return function(name){return $injector.get(name + suffix);};}];register('currency',currencyFilter);register('date',dateFilter);register('filter',filterFilter);register('json',jsonFilter);register('limitTo',limitToFilter);register('lowercase',lowercaseFilter);register('number',numberFilter);register('orderBy',orderByFilter);register('uppercase',uppercaseFilter);}function filterFilter(){return function(array,expression,comparator){if(!isArray(array))return array;var predicateFn;var matchAgainstAnyProp;switch(typeof expression){case 'function':predicateFn = expression;break;case 'boolean':case 'number':case 'string':matchAgainstAnyProp = true;case 'object':predicateFn = createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array;}return array.filter(predicateFn);};}function createPredicateFn(expression,comparator,matchAgainstAnyProp){var shouldMatchPrimitives=isObject(expression) && '$' in expression;var predicateFn;if(comparator === true){comparator = equals;}else if(!isFunction(comparator)){comparator = function(actual,expected){if(isObject(actual) || isObject(expected)){return false;}actual = lowercase('' + actual);expected = lowercase('' + expected);return actual.indexOf(expected) !== -1;};}predicateFn = function(item){if(shouldMatchPrimitives && !isObject(item)){return deepCompare(item,expression.$,comparator,false);}return deepCompare(item,expression,comparator,matchAgainstAnyProp);};return predicateFn;}function deepCompare(_x3,_x4,_x5,_x6,_x7){var _again2=true;_function2: while(_again2) {var actual=_x3,expected=_x4,comparator=_x5,matchAgainstAnyProp=_x6,dontMatchWholeObject=_x7;actualType = expectedType = key = expectedVal = matchAnyProperty = actualVal = undefined;_again2 = false;var actualType=actual !== null?typeof actual:'null';var expectedType=expected !== null?typeof expected:'null';if(expectedType === 'string' && expected.charAt(0) === '!'){return !deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);}else if(isArray(actual)){return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp);});}switch(actualType){case 'object':var key;if(matchAgainstAnyProp){for(key in actual) {if(key.charAt(0) !== '$' && deepCompare(actual[key],expected,comparator,true)){return true;}}if(dontMatchWholeObject){return false;}else {_x3 = actual;_x4 = expected;_x5 = comparator;_x6 = false;_again2 = true;continue _function2;}}else if(expectedType === 'object'){for(key in expected) {var expectedVal=expected[key];if(isFunction(expectedVal) || isUndefined(expectedVal)){continue;}var matchAnyProperty=key === '$';var actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty)){return false;}}return true;}else {return comparator(actual,expected);}break;case 'function':return false;default:return comparator(actual,expected);}}}currencyFilter.$inject = ['$locale'];function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){if(isUndefined(currencySymbol)){currencySymbol = formats.CURRENCY_SYM;}if(isUndefined(fractionSize)){fractionSize = formats.PATTERNS[1].maxFrac;}return amount == null?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol);};}numberFilter.$inject = ['$locale'];function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return number == null?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize);};}var DECIMAL_SEP='.';function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(!isFinite(number) || isObject(number))return '';var isNegative=number < 0;number = Math.abs(number);var numStr=number + '',formatedText='',parts=[];var hasExponent=false;if(numStr.indexOf('e') !== -1){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);if(match && match[2] == '-' && match[3] > fractionSize + 1){number = 0;}else {formatedText = numStr;hasExponent = true;}}if(!hasExponent){var fractionLen=(numStr.split(DECIMAL_SEP)[1] || '').length;if(isUndefined(fractionSize)){fractionSize = Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac);}number = +(Math.round(+(number.toString() + 'e' + fractionSize)).toString() + 'e' + -fractionSize);var fraction=('' + number).split(DECIMAL_SEP);var whole=fraction[0];fraction = fraction[1] || '';var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length >= lgroup + group){pos = whole.length - lgroup;for(i = 0;i < pos;i++) {if((pos - i) % group === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}}for(i = pos;i < whole.length;i++) {if((whole.length - i) % lgroup === 0 && i !== 0){formatedText += groupSep;}formatedText += whole.charAt(i);}while(fraction.length < fractionSize) {fraction += '0';}if(fractionSize && fractionSize !== '0')formatedText += decimalSep + fraction.substr(0,fractionSize);}else {if(fractionSize > 0 && number < 1){formatedText = number.toFixed(fractionSize);number = parseFloat(formatedText);}}if(number === 0){isNegative = false;}parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf);return parts.join('');}function padNumber(num,digits,trim){var neg='';if(num < 0){neg = '-';num = -num;}num = '' + num;while(num.length < digits) num = '0' + num;if(trim)num = num.substr(num.length - digits);return neg + num;}function dateGetter(name,size,offset,trim){offset = offset || 0;return function(date){var value=date['get' + name]();if(offset > 0 || value > -offset)value += offset;if(value === 0 && offset == -12)value = 12;return padNumber(value,size,trim);};}function dateStrGetter(name,shortForm){return function(date,formats){var value=date['get' + name]();var get=uppercase(shortForm?'SHORT' + name:name);return formats[get][value];};}function timeZoneGetter(date){var zone=-1 * date.getTimezoneOffset();var paddedZone=zone >= 0?'+':'';paddedZone += padNumber(Math[zone > 0?'floor':'ceil'](zone / 60),2) + padNumber(Math.abs(zone % 60),2);return paddedZone;}function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=new Date(year,0,1).getDay();return new Date(year,0,(dayOfWeekOnFirst <= 4?5:12) - dayOfWeekOnFirst);}function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate() + (4 - datetime.getDay()));}function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date);var diff=+thisThurs - +firstThurs,result=1 + Math.round(diff / 6.048e8);return padNumber(result,size);};}function ampmGetter(date,formats){return date.getHours() < 12?formats.AMPMS[0]:formats.AMPMS[1];}function eraGetter(date,formats){return date.getFullYear() <= 0?formats.ERAS[0]:formats.ERAS[1];}function longEraGetter(date,formats){return date.getFullYear() <= 0?formats.ERANAMES[0]:formats.ERANAMES[1];}var DATE_FORMATS={yyyy:dateGetter('FullYear',4),yy:dateGetter('FullYear',2,0,true),y:dateGetter('FullYear',1),MMMM:dateStrGetter('Month'),MMM:dateStrGetter('Month',true),MM:dateGetter('Month',2,1),M:dateGetter('Month',1,1),dd:dateGetter('Date',2),d:dateGetter('Date',1),HH:dateGetter('Hours',2),H:dateGetter('Hours',1),hh:dateGetter('Hours',2,-12),h:dateGetter('Hours',1,-12),mm:dateGetter('Minutes',2),m:dateGetter('Minutes',1),ss:dateGetter('Seconds',2),s:dateGetter('Seconds',1),sss:dateGetter('Milliseconds',3),EEEE:dateStrGetter('Day'),EEE:dateStrGetter('Day',true),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter};var DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject = ['$locale'];function dateFilter($locale){var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function jsonStringToDate(string){var match;if(match = string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;if(match[9]){tzHour = int(match[9] + match[10]);tzMin = int(match[9] + match[11]);}dateSetter.call(date,int(match[1]),int(match[2]) - 1,int(match[3]));var h=int(match[4] || 0) - tzHour;var m=int(match[5] || 0) - tzMin;var s=int(match[6] || 0);var ms=Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);timeSetter.call(date,h,m,s,ms);return date;}return string;}return function(date,format,timezone){var text='',parts=[],fn,match;format = format || 'mediumDate';format = $locale.DATETIME_FORMATS[format] || format;if(isString(date)){date = NUMBER_STRING.test(date)?int(date):jsonStringToDate(date);}if(isNumber(date)){date = new Date(date);}if(!isDate(date)){return date;}while(format) {match = DATE_FORMATS_SPLIT.exec(format);if(match){parts = concat(parts,match,1);format = parts.pop();}else {parts.push(format);format = null;}}if(timezone && timezone === 'UTC'){date = new Date(date.getTime());date.setMinutes(date.getMinutes() + date.getTimezoneOffset());}forEach(parts,function(value){fn = DATE_FORMATS[value];text += fn?fn(date,$locale.DATETIME_FORMATS):value.replace(/(^'|'$)/g,'').replace(/''/g,'\'');});return text;};}function jsonFilter(){return function(object,spacing){if(isUndefined(spacing)){spacing = 2;}return toJson(object,spacing);};}var lowercaseFilter=valueFn(lowercase);var uppercaseFilter=valueFn(uppercase);function limitToFilter(){return function(input,limit){if(isNumber(input))input = input.toString();if(!isArray(input) && !isString(input))return input;if(Math.abs(Number(limit)) === Infinity){limit = Number(limit);}else {limit = int(limit);}if(limit){return limit > 0?input.slice(0,limit):input.slice(limit);}else {return isString(input)?'':[];}};}orderByFilter.$inject = ['$parse'];function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){if(!isArrayLike(array))return array;sortPredicate = isArray(sortPredicate)?sortPredicate:[sortPredicate];if(sortPredicate.length === 0){sortPredicate = ['+'];}sortPredicate = sortPredicate.map(function(predicate){var descending=false,get=predicate || identity;if(isString(predicate)){if(predicate.charAt(0) == '+' || predicate.charAt(0) == '-'){descending = predicate.charAt(0) == '-';predicate = predicate.substring(1);}if(predicate === ''){return reverseComparator(compare,descending);}get = $parse(predicate);if(get.constant){var key=get();return reverseComparator(function(a,b){return compare(a[key],b[key]);},descending);}}return reverseComparator(function(a,b){return compare(get(a),get(b));},descending);});return slice.call(array).sort(reverseComparator(comparator,reverseOrder));function comparator(o1,o2){for(var i=0;i < sortPredicate.length;i++) {var comp=sortPredicate[i](o1,o2);if(comp !== 0)return comp;}return 0;}function reverseComparator(comp,descending){return descending?function(a,b){return comp(b,a);}:comp;}function isPrimitive(value){switch(typeof value){case 'number':case 'boolean':case 'string':return true;default:return false;}}function objectToString(value){if(value === null)return 'null';if(typeof value.valueOf === 'function'){value = value.valueOf();if(isPrimitive(value))return value;}if(typeof value.toString === 'function'){value = value.toString();if(isPrimitive(value))return value;}return '';}function compare(v1,v2){var t1=typeof v1;var t2=typeof v2;if(t1 === t2 && t1 === 'object'){v1 = objectToString(v1);v2 = objectToString(v2);}if(t1 === t2){if(t1 === 'string'){v1 = v1.toLowerCase();v2 = v2.toLowerCase();}if(v1 === v2)return 0;return v1 < v2?-1:1;}else {return t1 < t2?-1:1;}}};}function ngDirective(directive){if(isFunction(directive)){directive = {link:directive};}directive.restrict = directive.restrict || 'AC';return valueFn(directive);}var htmlAnchorDirective=valueFn({restrict:'E',compile:function compile(element,attr){if(!attr.href && !attr.xlinkHref && !attr.name){return function(scope,element){if(element[0].nodeName.toLowerCase() !== 'a')return;var href=toString.call(element.prop('href')) === '[object SVGAnimatedString]'?'xlink:href':'href';element.on('click',function(event){if(!element.attr(href)){event.preventDefault();}});};}}});var ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if(propName == 'multiple')return;var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {restrict:'A',priority:100,link:function link(scope,element,attr){scope.$watch(attr[normalized],function ngBooleanAttrWatchAction(value){attr.$set(attrName,!!value);});}};};});forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr] = function(){return {priority:100,link:function link(scope,element,attr){if(ngAttr === 'ngPattern' && attr.ngPattern.charAt(0) == '/'){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match){attr.$set('ngPattern',new RegExp(match[1],match[2]));return;}}scope.$watch(attr[ngAttr],function ngAttrAliasWatchAction(value){attr.$set(ngAttr,value);});}};};});forEach(['src','srcset','href'],function(attrName){var normalized=directiveNormalize('ng-' + attrName);ngAttributeAliasDirectives[normalized] = function(){return {priority:99,link:function link(scope,element,attr){var propName=attrName,name=attrName;if(attrName === 'href' && toString.call(element.prop('href')) === '[object SVGAnimatedString]'){name = 'xlinkHref';attr.$attr[name] = 'xlink:href';propName = null;}attr.$observe(normalized,function(value){if(!value){if(attrName === 'href'){attr.$set(name,null);}return;}attr.$set(name,value);if(msie && propName)element.prop(propName,attr[name]);});}};};});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS='ng-submitted';function nullFormRenameControl(control,name){control.$name = name;}FormController.$inject = ['$element','$attrs','$scope','$animate','$interpolate'];function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[];var parentForm=form.$$parentForm = element.parent().controller('form') || nullFormCtrl;form.$error = {};form.$$success = {};form.$pending = undefined;form.$name = $interpolate(attrs.name || attrs.ngForm || '')($scope);form.$dirty = false;form.$pristine = true;form.$valid = true;form.$invalid = false;form.$submitted = false;parentForm.$addControl(form);form.$rollbackViewValue = function(){forEach(controls,function(control){control.$rollbackViewValue();});};form.$commitViewValue = function(){forEach(controls,function(control){control.$commitViewValue();});};form.$addControl = function(control){assertNotHasOwnProperty(control.$name,'input');controls.push(control);if(control.$name){form[control.$name] = control;}};form.$$renameControl = function(control,newName){var oldName=control.$name;if(form[oldName] === control){delete form[oldName];}form[newName] = control;control.$name = newName;};form.$removeControl = function(control){if(control.$name && form[control.$name] === control){delete form[control.$name];}forEach(form.$pending,function(value,name){form.$setValidity(name,null,control);});forEach(form.$error,function(value,name){form.$setValidity(name,null,control);});forEach(form.$$success,function(value,name){form.$setValidity(name,null,control);});arrayRemove(controls,control);};addSetValidityMethod({ctrl:this,$element:element,set:function set(object,property,controller){var list=object[property];if(!list){object[property] = [controller];}else {var index=list.indexOf(controller);if(index === -1){list.push(controller);}}},unset:function unset(object,property,controller){var list=object[property];if(!list){return;}arrayRemove(list,controller);if(list.length === 0){delete object[property];}},parentForm:parentForm,$animate:$animate});form.$setDirty = function(){$animate.removeClass(element,PRISTINE_CLASS);$animate.addClass(element,DIRTY_CLASS);form.$dirty = true;form.$pristine = false;parentForm.$setDirty();};form.$setPristine = function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS + ' ' + SUBMITTED_CLASS);form.$dirty = false;form.$pristine = true;form.$submitted = false;forEach(controls,function(control){control.$setPristine();});};form.$setUntouched = function(){forEach(controls,function(control){control.$setUntouched();});};form.$setSubmitted = function(){$animate.addClass(element,SUBMITTED_CLASS);form.$submitted = true;parentForm.$setSubmitted();};}var formDirectiveFactory=function formDirectiveFactory(isNgForm){return ['$timeout',function($timeout){var formDirective={name:'form',restrict:isNgForm?'EAC':'E',controller:FormController,compile:function ngFormCompile(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?'name':isNgForm && attr.ngForm?'ngForm':false;return {pre:function ngFormPreLink(scope,formElement,attr,controller){if(!('action' in attr)){var handleFormSubmission=function handleFormSubmission(event){scope.$apply(function(){controller.$commitViewValue();controller.$setSubmitted();});event.preventDefault();};addEventListenerFn(formElement[0],'submit',handleFormSubmission);formElement.on('$destroy',function(){$timeout(function(){removeEventListenerFn(formElement[0],'submit',handleFormSubmission);},0,false);});}var parentFormCtrl=controller.$$parentForm;if(nameAttr){setter(scope,null,controller.$name,controller,controller.$name);attr.$observe(nameAttr,function(newValue){if(controller.$name === newValue)return;setter(scope,null,controller.$name,undefined,controller.$name);parentFormCtrl.$$renameControl(controller,newValue);setter(scope,null,controller.$name,controller,controller.$name);});}formElement.on('$destroy',function(){parentFormCtrl.$removeControl(controller);if(nameAttr){setter(scope,null,attr[nameAttr],undefined,controller.$name);}extend(controller,nullFormCtrl);});}};}};return formDirective;}];};var formDirective=formDirectiveFactory();var ngFormDirective=formDirectiveFactory(true);var ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;var URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;var EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;var NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;var DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var WEEK_REGEXP=/^(\d{4})-W(\d\d)$/;var MONTH_REGEXP=/^(\d{4})-(\d\d)$/;var TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var inputType={'text':textInputType,'date':createDateInputType('date',DATE_REGEXP,createDateParser(DATE_REGEXP,['yyyy','MM','dd']),'yyyy-MM-dd'),'datetime-local':createDateInputType('datetimelocal',DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,['yyyy','MM','dd','HH','mm','ss','sss']),'yyyy-MM-ddTHH:mm:ss.sss'),'time':createDateInputType('time',TIME_REGEXP,createDateParser(TIME_REGEXP,['HH','mm','ss','sss']),'HH:mm:ss.sss'),'week':createDateInputType('week',WEEK_REGEXP,weekParser,'yyyy-Www'),'month':createDateInputType('month',MONTH_REGEXP,createDateParser(MONTH_REGEXP,['yyyy','MM']),'yyyy-MM'),'number':numberInputType,'url':urlInputType,'email':emailInputType,'radio':radioInputType,'checkbox':checkboxInputType,'hidden':noop,'button':noop,'submit':noop,'reset':noop,'file':noop};function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString();});}function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);}function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=false;element.on('compositionstart',function(data){composing = true;});element.on('compositionend',function(){composing = false;listener();});}var listener=function listener(ev){if(timeout){$browser.defer.cancel(timeout);timeout = null;}if(composing)return;var value=element.val(),event=ev && ev.type;if(type !== 'password' && (!attr.ngTrim || attr.ngTrim !== 'false')){value = trim(value);}if(ctrl.$viewValue !== value || value === '' && ctrl.$$hasNativeValidators){ctrl.$setViewValue(value,event);}};if($sniffer.hasEvent('input')){element.on('input',listener);}else {var timeout;var deferListener=function deferListener(ev,input,origValue){if(!timeout){timeout = $browser.defer(function(){timeout = null;if(!input || input.value !== origValue){listener(ev);}});}};element.on('keydown',function(event){var key=event.keyCode;if(key === 91 || 15 < key && key < 19 || 37 <= key && key <= 40)return;deferListener(event,this,this.value);});if($sniffer.hasEvent('paste')){element.on('paste cut',deferListener);}}element.on('change',listener);ctrl.$render = function(){element.val(ctrl.$isEmpty(ctrl.$viewValue)?'':ctrl.$viewValue);};}function weekParser(isoWeek,existingDate){if(isDate(isoWeek)){return isoWeek;}if(isString(isoWeek)){WEEK_REGEXP.lastIndex = 0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=(week - 1) * 7;if(existingDate){hours = existingDate.getHours();minutes = existingDate.getMinutes();seconds = existingDate.getSeconds();milliseconds = existingDate.getMilliseconds();}return new Date(year,0,firstThurs.getDate() + addDays,hours,minutes,seconds,milliseconds);}}return NaN;}function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso)){return iso;}if(isString(iso)){if(iso.charAt(0) == '"' && iso.charAt(iso.length - 1) == '"'){iso = iso.substring(1,iso.length - 1);}if(ISO_DATE_REGEXP.test(iso)){return new Date(iso);}regexp.lastIndex = 0;parts = regexp.exec(iso);if(parts){parts.shift();if(date){map = {yyyy:date.getFullYear(),MM:date.getMonth() + 1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds() / 1000};}else {map = {yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0};}forEach(parts,function(part,index){if(index < mapping.length){map[mapping[index]] = +part;}});return new Date(map.yyyy,map.MM - 1,map.dd,map.HH,map.mm,map.ss || 0,map.sss * 1000 || 0);}}return NaN;};}function createDateInputType(type,regexp,parseDate,format){return function dynamicDateInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var timezone=ctrl && ctrl.$options && ctrl.$options.timezone;var previousDate;ctrl.$$parserName = type;ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);if(timezone === 'UTC'){parsedDate.setMinutes(parsedDate.getMinutes() - parsedDate.getTimezoneOffset());}return parsedDate;}return undefined;});ctrl.$formatters.push(function(value){if(value && !isDate(value)){throw $ngModelMinErr('datefmt','Expected `{0}` to be a date',value);}if(isValidDate(value)){previousDate = value;if(previousDate && timezone === 'UTC'){var timezoneOffset=60000 * previousDate.getTimezoneOffset();previousDate = new Date(previousDate.getTime() + timezoneOffset);}return $filter('date')(value,format,timezone);}else {previousDate = null;return '';}});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return !isValidDate(value) || isUndefined(minVal) || parseDate(value) >= minVal;};attr.$observe('min',function(val){minVal = parseObservedDateValue(val);ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return !isValidDate(value) || isUndefined(maxVal) || parseDate(value) <= maxVal;};attr.$observe('max',function(val){maxVal = parseObservedDateValue(val);ctrl.$validate();});}function isValidDate(value){return value && !(value.getTime && value.getTime() !== value.getTime());}function parseObservedDateValue(val){return isDefined(val)?isDate(val)?val:parseDate(val):undefined;}};}function badInputChecker(scope,element,attr,ctrl){var node=element[0];var nativeValidation=ctrl.$$hasNativeValidators = isObject(node.validity);if(nativeValidation){ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY) || {};return validity.badInput && !validity.typeMismatch?undefined:value;});}}function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);ctrl.$$parserName = 'number';ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(NUMBER_REGEXP.test(value))return parseFloat(value);return undefined;});ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value)){throw $ngModelMinErr('numfmt','Expected `{0}` to be a number',value);}value = value.toString();}return value;});if(isDefined(attr.min) || attr.ngMin){var minVal;ctrl.$validators.min = function(value){return ctrl.$isEmpty(value) || isUndefined(minVal) || value >= minVal;};attr.$observe('min',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}minVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}if(isDefined(attr.max) || attr.ngMax){var maxVal;ctrl.$validators.max = function(value){return ctrl.$isEmpty(value) || isUndefined(maxVal) || value <= maxVal;};attr.$observe('max',function(val){if(isDefined(val) && !isNumber(val)){val = parseFloat(val,10);}maxVal = isNumber(val) && !isNaN(val)?val:undefined;ctrl.$validate();});}}function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'url';ctrl.$validators.url = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || URL_REGEXP.test(value);};}function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName = 'email';ctrl.$validators.email = function(modelValue,viewValue){var value=modelValue || viewValue;return ctrl.$isEmpty(value) || EMAIL_REGEXP.test(value);};}function radioInputType(scope,element,attr,ctrl){if(isUndefined(attr.name)){element.attr('name',nextUid());}var listener=function listener(ev){if(element[0].checked){ctrl.$setViewValue(attr.value,ev && ev.type);}};element.on('click',listener);ctrl.$render = function(){var value=attr.value;element[0].checked = value == ctrl.$viewValue;};attr.$observe('value',ctrl.$render);}function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){parseFn = $parse(expression);if(!parseFn.constant){throw minErr('ngModel')('constexpr','Expected constant expression for `{0}`, but saw ' + '`{1}`.',name,expression);}return parseFn(context);}return fallback;}function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,'ngTrueValue',attr.ngTrueValue,true);var falseValue=parseConstantExpr($parse,scope,'ngFalseValue',attr.ngFalseValue,false);var listener=function listener(ev){ctrl.$setViewValue(element[0].checked,ev && ev.type);};element.on('click',listener);ctrl.$render = function(){element[0].checked = ctrl.$viewValue;};ctrl.$isEmpty = function(value){return value === false;};ctrl.$formatters.push(function(value){return equals(value,trueValue);});ctrl.$parsers.push(function(value){return value?trueValue:falseValue;});}var inputDirective=['$browser','$sniffer','$filter','$parse',function($browser,$sniffer,$filter,$parse){return {restrict:'E',require:['?ngModel'],link:{pre:function pre(scope,element,attr,ctrls){if(ctrls[0]){(inputType[lowercase(attr.type)] || inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse);}}}};}];var CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/;var ngValueDirective=function ngValueDirective(){return {restrict:'A',priority:100,compile:function compile(tpl,tplAttr){if(CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)){return function ngValueConstantLink(scope,elm,attr){attr.$set('value',scope.$eval(attr.ngValue));};}else {return function ngValueLink(scope,elm,attr){scope.$watch(attr.ngValue,function valueWatchAction(value){attr.$set('value',value);});};}}};};var ngBindDirective=['$compile',function($compile){return {restrict:'AC',compile:function ngBindCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind);element = element[0];scope.$watch(attr.ngBind,function ngBindWatchAction(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindTemplateDirective=['$interpolate','$compile',function($interpolate,$compile){return {compile:function ngBindTemplateCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindTemplateLink(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions);element = element[0];attr.$observe('ngBindTemplate',function(value){element.textContent = value === undefined?'':value;});};}};}];var ngBindHtmlDirective=['$sce','$parse','$compile',function($sce,$parse,$compile){return {restrict:'A',compile:function ngBindHtmlCompile(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml);var ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function getStringValue(value){return (value || '').toString();});$compile.$$addBindingClass(tElement);return function ngBindHtmlLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml);scope.$watch(ngBindHtmlWatch,function ngBindHtmlWatchAction(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope)) || '');});};}};}];var ngChangeDirective=valueFn({restrict:'A',require:'ngModel',link:function link(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange);});}});function classDirective(name,selector){name = 'ngClass' + name;return ['$animate',function($animate){return {restrict:'AC',link:function link(scope,element,attr){var oldVal;scope.$watch(attr[name],ngClassWatchAction,true);attr.$observe('class',function(value){ngClassWatchAction(scope.$eval(attr[name]));});if(name !== 'ngClass'){scope.$watch('$index',function($index,old$index){var mod=$index & 1;if(mod !== (old$index & 1)){var classes=arrayClasses(scope.$eval(attr[name]));mod === selector?addClasses(classes):removeClasses(classes);}});}function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses);}function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses);}function digestClassCounts(classes,count){var classCounts=element.data('$classCounts') || {};var classesToUpdate=[];forEach(classes,function(className){if(count > 0 || classCounts[className]){classCounts[className] = (classCounts[className] || 0) + count;if(classCounts[className] === +(count > 0)){classesToUpdate.push(className);}}});element.data('$classCounts',classCounts);return classesToUpdate.join(' ');}function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses);var toRemove=arrayDifference(oldClasses,newClasses);toAdd = digestClassCounts(toAdd,1);toRemove = digestClassCounts(toRemove,-1);if(toAdd && toAdd.length){$animate.addClass(element,toAdd);}if(toRemove && toRemove.length){$animate.removeClass(element,toRemove);}}function ngClassWatchAction(newVal){if(selector === true || scope.$index % 2 === selector){var newClasses=arrayClasses(newVal || []);if(!oldVal){addClasses(newClasses);}else if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses);}}oldVal = shallowCopy(newVal);}}};function arrayDifference(tokens1,tokens2){var values=[];outer: for(var i=0;i < tokens1.length;i++) {var token=tokens1[i];for(var j=0;j < tokens2.length;j++) {if(token == tokens2[j])continue outer;}values.push(token);}return values;}function arrayClasses(classVal){if(isArray(classVal)){return classVal;}else if(isString(classVal)){return classVal.split(' ');}else if(isObject(classVal)){var classes=[];forEach(classVal,function(v,k){if(v){classes = classes.concat(k.split(' '));}});return classes;}return classVal;}}];}var ngClassDirective=classDirective('',true);var ngClassOddDirective=classDirective('Odd',0);var ngClassEvenDirective=classDirective('Even',1);var ngCloakDirective=ngDirective({compile:function compile(element,attr){attr.$set('ngCloak',undefined);element.removeClass('ng-cloak');}});var ngControllerDirective=[function(){return {restrict:'A',scope:true,controller:'@',priority:500};}];var ngEventDirectives={};var forceAsyncEvents={'blur':true,'focus':true};forEach('click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(eventName){var directiveName=directiveNormalize('ng-' + eventName);ngEventDirectives[directiveName] = ['$parse','$rootScope',function($parse,$rootScope){return {restrict:'A',compile:function compile($element,attr){var fn=$parse(attr[directiveName],null,true);return function ngEventHandler(scope,element){element.on(eventName,function(event){var callback=function callback(){fn(scope,{$event:event});};if(forceAsyncEvents[eventName] && $rootScope.$$phase){scope.$evalAsync(callback);}else {scope.$apply(callback);}});};}};}];});var ngIfDirective=['$animate',function($animate){return {multiElement:true,transclude:'element',priority:600,terminal:true,restrict:'A',$$tlb:true,link:function link($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function ngIfWatchAction(value){if(value){if(!childScope){$transclude(function(clone,newScope){childScope = newScope;clone[clone.length++] = document.createComment(' end ngIf: ' + $attr.ngIf + ' ');block = {clone:clone};$animate.enter(clone,$element.parent(),$element);});}}else {if(previousElements){previousElements.remove();previousElements = null;}if(childScope){childScope.$destroy();childScope = null;}if(block){previousElements = getBlockNodes(block.clone);$animate.leave(previousElements).then(function(){previousElements = null;});block = null;}}});}};}];var ngIncludeDirective=['$templateRequest','$anchorScroll','$animate','$sce',function($templateRequest,$anchorScroll,$animate,$sce){return {restrict:'ECA',priority:400,terminal:true,transclude:'element',controller:angular.noop,compile:function compile(element,attr){var srcExp=attr.ngInclude || attr.src,onloadExp=attr.onload || '',autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function cleanupLastIncludeContent(){if(previousElement){previousElement.remove();previousElement = null;}if(currentScope){currentScope.$destroy();currentScope = null;}if(currentElement){$animate.leave(currentElement).then(function(){previousElement = null;});previousElement = currentElement;currentElement = null;}};scope.$watch($sce.parseAsResourceUrl(srcExp),function ngIncludeWatchAction(src){var afterAnimation=function afterAnimation(){if(isDefined(autoScrollExp) && (!autoScrollExp || scope.$eval(autoScrollExp))){$anchorScroll();}};var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId !== changeCounter)return;var newScope=scope.$new();ctrl.template = response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,null,$element).then(afterAnimation);});currentScope = newScope;currentElement = clone;currentScope.$emit('$includeContentLoaded',src);scope.$eval(onloadExp);},function(){if(thisChangeId === changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else {cleanupLastIncludeContent();ctrl.template = null;}});};}};}];var ngIncludeFillContentDirective=['$compile',function($compile){return {restrict:'ECA',priority:-400,require:'ngInclude',link:function link(scope,$element,$attr,ctrl){if(/SVG/.test($element[0].toString())){$element.empty();$compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function namespaceAdaptedClone(clone){$element.append(clone);},{futureParentElement:$element});return;}$element.html(ctrl.template);$compile($element.contents())(scope);}};}];var ngInitDirective=ngDirective({priority:450,compile:function compile(){return {pre:function pre(scope,element,attrs){scope.$eval(attrs.ngInit);}};}});var ngListDirective=function ngListDirective(){return {restrict:'A',priority:100,require:'ngModel',link:function link(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList) || ', ';var trimValues=attr.ngTrim !== 'false';var separator=trimValues?trim(ngList):ngList;var parse=function parse(viewValue){if(isUndefined(viewValue))return;var list=[];if(viewValue){forEach(viewValue.split(separator),function(value){if(value)list.push(trimValues?trim(value):value);});}return list;};ctrl.$parsers.push(parse);ctrl.$formatters.push(function(value){if(isArray(value)){return value.join(ngList);}return undefined;});ctrl.$isEmpty = function(value){return !value || !value.length;};}};};var VALID_CLASS='ng-valid',INVALID_CLASS='ng-invalid',PRISTINE_CLASS='ng-pristine',DIRTY_CLASS='ng-dirty',UNTOUCHED_CLASS='ng-untouched',TOUCHED_CLASS='ng-touched',PENDING_CLASS='ng-pending';var $ngModelMinErr=new minErr('ngModel');var NgModelController=['$scope','$exceptionHandler','$attrs','$element','$parse','$animate','$timeout','$rootScope','$q','$interpolate',function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue = Number.NaN;this.$modelValue = Number.NaN;this.$$rawModelValue = undefined;this.$validators = {};this.$asyncValidators = {};this.$parsers = [];this.$formatters = [];this.$viewChangeListeners = [];this.$untouched = true;this.$touched = false;this.$pristine = true;this.$dirty = false;this.$valid = true;this.$invalid = false;this.$error = {};this.$$success = {};this.$pending = undefined;this.$name = $interpolate($attr.name || '',false)($scope);var parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,parserValid,ctrl=this;this.$$setOptions = function(options){ctrl.$options = options;if(options && options.getterSetter){var invokeModelGetter=$parse($attr.ngModel + '()'),invokeModelSetter=$parse($attr.ngModel + '($$$p)');ngModelGet = function($scope){var modelValue=parsedNgModel($scope);if(isFunction(modelValue)){modelValue = invokeModelGetter($scope);}return modelValue;};ngModelSet = function($scope,newValue){if(isFunction(parsedNgModel($scope))){invokeModelSetter($scope,{$$$p:ctrl.$modelValue});}else {parsedNgModelAssign($scope,ctrl.$modelValue);}};}else if(!parsedNgModel.assign){throw $ngModelMinErr('nonassign','Expression \'{0}\' is non-assignable. Element: {1}',$attr.ngModel,startingTag($element));}};this.$render = noop;this.$isEmpty = function(value){return isUndefined(value) || value === '' || value === null || value !== value;};var parentForm=$element.inheritedData('$formController') || nullFormCtrl,currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function set(object,property){object[property] = true;},unset:function unset(object,property){delete object[property];},parentForm:parentForm,$animate:$animate});this.$setPristine = function(){ctrl.$dirty = false;ctrl.$pristine = true;$animate.removeClass($element,DIRTY_CLASS);$animate.addClass($element,PRISTINE_CLASS);};this.$setDirty = function(){ctrl.$dirty = true;ctrl.$pristine = false;$animate.removeClass($element,PRISTINE_CLASS);$animate.addClass($element,DIRTY_CLASS);parentForm.$setDirty();};this.$setUntouched = function(){ctrl.$touched = false;ctrl.$untouched = true;$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS);};this.$setTouched = function(){ctrl.$touched = true;ctrl.$untouched = false;$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS);};this.$rollbackViewValue = function(){$timeout.cancel(pendingDebounce);ctrl.$viewValue = ctrl.$$lastCommittedViewValue;ctrl.$render();};this.$validate = function(){if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){return;}var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=ctrl.$$rawModelValue;var prevValid=ctrl.$valid;var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){if(!allowInvalid && prevValid !== allValid){ctrl.$modelValue = allValid?modelValue:undefined;if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}});};this.$$runValidators = function(modelValue,viewValue,doneCallback){currentValidationRunId++;var localValidationRunId=currentValidationRunId;if(!processParseErrors()){validationDone(false);return;}if(!processSyncValidators()){validationDone(false);return;}processAsyncValidators();function processParseErrors(){var errorKey=ctrl.$$parserName || 'parse';if(parserValid === undefined){setValidity(errorKey,null);}else {if(!parserValid){forEach(ctrl.$validators,function(v,name){setValidity(name,null);});forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});}setValidity(errorKey,parserValid);return parserValid;}return true;}function processSyncValidators(){var syncValidatorsValid=true;forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid = syncValidatorsValid && result;setValidity(name,result);});if(!syncValidatorsValid){forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});return false;}return true;}function processAsyncValidators(){var validatorPromises=[];var allValid=true;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise)){throw $ngModelMinErr('$asyncValidators','Expected asynchronous validator to return a promise but got \'{0}\' instead.',promise);}setValidity(name,undefined);validatorPromises.push(promise.then(function(){setValidity(name,true);},function(error){allValid = false;setValidity(name,false);}));});if(!validatorPromises.length){validationDone(true);}else {$q.all(validatorPromises).then(function(){validationDone(allValid);},noop);}}function setValidity(name,isValid){if(localValidationRunId === currentValidationRunId){ctrl.$setValidity(name,isValid);}}function validationDone(allValid){if(localValidationRunId === currentValidationRunId){doneCallback(allValid);}}};this.$commitViewValue = function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce);if(ctrl.$$lastCommittedViewValue === viewValue && (viewValue !== '' || !ctrl.$$hasNativeValidators)){return;}ctrl.$$lastCommittedViewValue = viewValue;if(ctrl.$pristine){this.$setDirty();}this.$$parseAndValidate();};this.$$parseAndValidate = function(){var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=viewValue;parserValid = isUndefined(modelValue)?undefined:true;if(parserValid){for(var i=0;i < ctrl.$parsers.length;i++) {modelValue = ctrl.$parsers[i](modelValue);if(isUndefined(modelValue)){parserValid = false;break;}}}if(isNumber(ctrl.$modelValue) && isNaN(ctrl.$modelValue)){ctrl.$modelValue = ngModelGet($scope);}var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options && ctrl.$options.allowInvalid;ctrl.$$rawModelValue = modelValue;if(allowInvalid){ctrl.$modelValue = modelValue;writeToModelIfNeeded();}ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){if(!allowInvalid){ctrl.$modelValue = allValid?modelValue:undefined;writeToModelIfNeeded();}});function writeToModelIfNeeded(){if(ctrl.$modelValue !== prevModelValue){ctrl.$$writeModelToScope();}}};this.$$writeModelToScope = function(){ngModelSet($scope,ctrl.$modelValue);forEach(ctrl.$viewChangeListeners,function(listener){try{listener();}catch(e) {$exceptionHandler(e);}});};this.$setViewValue = function(value,trigger){ctrl.$viewValue = value;if(!ctrl.$options || ctrl.$options.updateOnDefault){ctrl.$$debounceViewValueCommit(trigger);}};this.$$debounceViewValueCommit = function(trigger){var debounceDelay=0,options=ctrl.$options,debounce;if(options && isDefined(options.debounce)){debounce = options.debounce;if(isNumber(debounce)){debounceDelay = debounce;}else if(isNumber(debounce[trigger])){debounceDelay = debounce[trigger];}else if(isNumber(debounce['default'])){debounceDelay = debounce['default'];}}$timeout.cancel(pendingDebounce);if(debounceDelay){pendingDebounce = $timeout(function(){ctrl.$commitViewValue();},debounceDelay);}else if($rootScope.$$phase){ctrl.$commitViewValue();}else {$scope.$apply(function(){ctrl.$commitViewValue();});}};$scope.$watch(function ngModelWatch(){var modelValue=ngModelGet($scope);if(modelValue !== ctrl.$modelValue){ctrl.$modelValue = ctrl.$$rawModelValue = modelValue;parserValid = undefined;var formatters=ctrl.$formatters,idx=formatters.length;var viewValue=modelValue;while(idx--) {viewValue = formatters[idx](viewValue);}if(ctrl.$viewValue !== viewValue){ctrl.$viewValue = ctrl.$$lastCommittedViewValue = viewValue;ctrl.$render();ctrl.$$runValidators(modelValue,viewValue,noop);}}return modelValue;});}];var ngModelDirective=['$rootScope',function($rootScope){return {restrict:'A',require:['ngModel','^?form','^?ngModelOptions'],controller:NgModelController,priority:1,compile:function ngModelCompile(element){element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);return {pre:function ngModelPreLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1] || nullFormCtrl;modelCtrl.$$setOptions(ctrls[2] && ctrls[2].$options);formCtrl.$addControl(modelCtrl);attr.$observe('name',function(newValue){if(modelCtrl.$name !== newValue){formCtrl.$$renameControl(modelCtrl,newValue);}});scope.$on('$destroy',function(){formCtrl.$removeControl(modelCtrl);});},post:function ngModelPostLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0];if(modelCtrl.$options && modelCtrl.$options.updateOn){element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev && ev.type);});}element.on('blur',function(ev){if(modelCtrl.$touched)return;if($rootScope.$$phase){scope.$evalAsync(modelCtrl.$setTouched);}else {scope.$apply(modelCtrl.$setTouched);}});}};}};}];var DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/;var ngModelOptionsDirective=function ngModelOptionsDirective(){return {restrict:'A',controller:['$scope','$attrs',function($scope,$attrs){var that=this;this.$options = $scope.$eval($attrs.ngModelOptions);if(this.$options.updateOn !== undefined){this.$options.updateOnDefault = false;this.$options.updateOn = trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){that.$options.updateOnDefault = true;return ' ';}));}else {this.$options.updateOnDefault = true;}}]};};function addSetValidityMethod(context){var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,parentForm=context.parentForm,$animate=context.$animate;classCache[INVALID_CLASS] = !(classCache[VALID_CLASS] = $element.hasClass(VALID_CLASS));ctrl.$setValidity = setValidity;function setValidity(validationErrorKey,state,controller){if(state === undefined){createAndSet('$pending',validationErrorKey,controller);}else {unsetAndCleanup('$pending',validationErrorKey,controller);}if(!isBoolean(state)){unset(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}else {if(state){unset(ctrl.$error,validationErrorKey,controller);set(ctrl.$$success,validationErrorKey,controller);}else {set(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}}if(ctrl.$pending){cachedToggleClass(PENDING_CLASS,true);ctrl.$valid = ctrl.$invalid = undefined;toggleValidationCss('',null);}else {cachedToggleClass(PENDING_CLASS,false);ctrl.$valid = isObjectEmpty(ctrl.$error);ctrl.$invalid = !ctrl.$valid;toggleValidationCss('',ctrl.$valid);}var combinedState;if(ctrl.$pending && ctrl.$pending[validationErrorKey]){combinedState = undefined;}else if(ctrl.$error[validationErrorKey]){combinedState = false;}else if(ctrl.$$success[validationErrorKey]){combinedState = true;}else {combinedState = null;}toggleValidationCss(validationErrorKey,combinedState);parentForm.$setValidity(validationErrorKey,combinedState,ctrl);}function createAndSet(name,value,controller){if(!ctrl[name]){ctrl[name] = {};}set(ctrl[name],value,controller);}function unsetAndCleanup(name,value,controller){if(ctrl[name]){unset(ctrl[name],value,controller);}if(isObjectEmpty(ctrl[name])){ctrl[name] = undefined;}}function cachedToggleClass(className,switchValue){if(switchValue && !classCache[className]){$animate.addClass($element,className);classCache[className] = true;}else if(!switchValue && classCache[className]){$animate.removeClass($element,className);classCache[className] = false;}}function toggleValidationCss(validationErrorKey,isValid){validationErrorKey = validationErrorKey?'-' + snake_case(validationErrorKey,'-'):'';cachedToggleClass(VALID_CLASS + validationErrorKey,isValid === true);cachedToggleClass(INVALID_CLASS + validationErrorKey,isValid === false);}}function isObjectEmpty(obj){if(obj){for(var prop in obj) {return false;}}return true;}var ngNonBindableDirective=ngDirective({terminal:true,priority:1000});var ngPluralizeDirective=['$locale','$interpolate',function($locale,$interpolate){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return {restrict:'EA',link:function link(scope,element,attr){var numberExp=attr.count,whenExp=attr.$attr.when && element.attr(attr.$attr.when),offset=attr.offset || 0,whens=scope.$eval(whenExp) || {},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol + numberExp + '-' + offset + endSymbol,watchRemover=angular.noop,lastCount;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?'-':'') + lowercase(tmpMatch[2]);whens[whenKey] = element.attr(attr.$attr[attributeName]);}});forEach(whens,function(expression,key){whensExpFns[key] = $interpolate(expression.replace(BRACE,braceReplacement));});scope.$watch(numberExp,function ngPluralizeWatchAction(newVal){var count=parseFloat(newVal);var countIsNaN=isNaN(count);if(!countIsNaN && !(count in whens)){count = $locale.pluralCat(count - offset);}if(count !== lastCount && !(countIsNaN && isNaN(lastCount))){watchRemover();watchRemover = scope.$watch(whensExpFns[count],updateElementText);lastCount = count;}});function updateElementText(newText){element.text(newText || '');}}};}];var ngRepeatDirective=['$parse','$animate',function($parse,$animate){var NG_REMOVED='$$NG_REMOVED';var ngRepeatMinErr=minErr('ngRepeat');var updateScope=function updateScope(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier] = value;if(keyIdentifier)scope[keyIdentifier] = key;scope.$index = index;scope.$first = index === 0;scope.$last = index === arrayLength - 1;scope.$middle = !(scope.$first || scope.$last);scope.$odd = !(scope.$even = (index & 1) === 0);};var getBlockStart=function getBlockStart(block){return block.clone[0];};var getBlockEnd=function getBlockEnd(block){return block.clone[block.clone.length - 1];};return {restrict:'A',multiElement:true,transclude:'element',priority:1000,terminal:true,$$tlb:true,compile:function ngRepeatCompile($element,$attr){var expression=$attr.ngRepeat;var ngRepeatEndComment=document.createComment(' end ngRepeat: ' + expression + ' ');var match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match){throw ngRepeatMinErr('iexp','Expected expression in form of \'_item_ in _collection_[ track by _id_]\' but got \'{0}\'.',expression);}var lhs=match[1];var rhs=match[2];var aliasAs=match[3];var trackByExp=match[4];match = lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!match){throw ngRepeatMinErr('iidexp','\'_item_\' in \'_item_ in _collection_\' should be an identifier or \'(_key_, _value_)\' expression, but got \'{0}\'.',lhs);}var valueIdentifier=match[3] || match[1];var keyIdentifier=match[2];if(aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) || /^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))){throw ngRepeatMinErr('badident','alias \'{0}\' is invalid --- must be a valid JS identifier which is not a reserved name.',aliasAs);}var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn;var hashFnLocals={$id:hashKey};if(trackByExp){trackByExpGetter = $parse(trackByExp);}else {trackByIdArrayFn = function(key,value){return hashKey(value);};trackByIdObjFn = function(key){return key;};}return function ngRepeatLink($scope,$element,$attr,ctrl,$transclude){if(trackByExpGetter){trackByIdExpFn = function(key,value,index){if(keyIdentifier)hashFnLocals[keyIdentifier] = key;hashFnLocals[valueIdentifier] = value;hashFnLocals.$index = index;return trackByExpGetter($scope,hashFnLocals);};}var lastBlockMap=createMap();$scope.$watchCollection(rhs,function ngRepeatAction(collection){var index,length,previousNode=$element[0],nextNode,nextBlockMap=createMap(),collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove;if(aliasAs){$scope[aliasAs] = collection;}if(isArrayLike(collection)){collectionKeys = collection;trackByIdFn = trackByIdExpFn || trackByIdArrayFn;}else {trackByIdFn = trackByIdExpFn || trackByIdObjFn;collectionKeys = [];for(var itemKey in collection) {if(collection.hasOwnProperty(itemKey) && itemKey.charAt(0) != '$'){collectionKeys.push(itemKey);}}collectionKeys.sort();}collectionLength = collectionKeys.length;nextBlockOrder = new Array(collectionLength);for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];trackById = trackByIdFn(key,value,index);if(lastBlockMap[trackById]){block = lastBlockMap[trackById];delete lastBlockMap[trackById];nextBlockMap[trackById] = block;nextBlockOrder[index] = block;}else if(nextBlockMap[trackById]){forEach(nextBlockOrder,function(block){if(block && block.scope)lastBlockMap[block.id] = block;});throw ngRepeatMinErr('dupes','Duplicates in a repeater are not allowed. Use \'track by\' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}',expression,trackById,value);}else {nextBlockOrder[index] = {id:trackById,scope:undefined,clone:undefined};nextBlockMap[trackById] = true;}}for(var blockKey in lastBlockMap) {block = lastBlockMap[blockKey];elementsToRemove = getBlockNodes(block.clone);$animate.leave(elementsToRemove);if(elementsToRemove[0].parentNode){for(index = 0,length = elementsToRemove.length;index < length;index++) {elementsToRemove[index][NG_REMOVED] = true;}}block.scope.$destroy();}for(index = 0;index < collectionLength;index++) {key = collection === collectionKeys?index:collectionKeys[index];value = collection[key];block = nextBlockOrder[index];if(block.scope){nextNode = previousNode;do {nextNode = nextNode.nextSibling;}while(nextNode && nextNode[NG_REMOVED]);if(getBlockStart(block) != nextNode){$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode));}previousNode = getBlockEnd(block);updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);}else {$transclude(function ngRepeatTransclude(clone,scope){block.scope = scope;var endNode=ngRepeatEndComment.cloneNode(false);clone[clone.length++] = endNode;$animate.enter(clone,null,jqLite(previousNode));previousNode = endNode;block.clone = clone;nextBlockMap[block.id] = block;updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);});}}lastBlockMap = nextBlockMap;});};}};}];var NG_HIDE_CLASS='ng-hide';var NG_HIDE_IN_PROGRESS_CLASS='ng-hide-animate';var ngShowDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngShow,function ngShowWatchAction(value){$animate[value?'removeClass':'addClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngHideDirective=['$animate',function($animate){return {restrict:'A',multiElement:true,link:function link(scope,element,attr){scope.$watch(attr.ngHide,function ngHideWatchAction(value){$animate[value?'addClass':'removeClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watchCollection(attr.ngStyle,function ngStyleWatchAction(newStyles,oldStyles){if(oldStyles && newStyles !== oldStyles){forEach(oldStyles,function(val,style){element.css(style,'');});}if(newStyles)element.css(newStyles);});});var ngSwitchDirective=['$animate',function($animate){return {restrict:'EA',require:'ngSwitch',controller:['$scope',function ngSwitchController(){this.cases = {};}],link:function link(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch || attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[];var spliceFactory=function spliceFactory(array,index){return function(){array.splice(index,1);};};scope.$watch(watchExpr,function ngSwitchWatchAction(value){var i,ii;for(i = 0,ii = previousLeaveAnimations.length;i < ii;++i) {$animate.cancel(previousLeaveAnimations[i]);}previousLeaveAnimations.length = 0;for(i = 0,ii = selectedScopes.length;i < ii;++i) {var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i] = $animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i));}selectedElements.length = 0;selectedScopes.length = 0;if(selectedTranscludes = ngSwitchController.cases['!' + value] || ngSwitchController.cases['?']){forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++] = document.createComment(' end ngSwitchWhen: ');var block={clone:caseElement};selectedElements.push(block);$animate.enter(caseElement,anchor.parent(),anchor);});});}});}};}];var ngSwitchWhenDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attrs,ctrl,$transclude){ctrl.cases['!' + attrs.ngSwitchWhen] = ctrl.cases['!' + attrs.ngSwitchWhen] || [];ctrl.cases['!' + attrs.ngSwitchWhen].push({transclude:$transclude,element:element});}});var ngSwitchDefaultDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function link(scope,element,attr,ctrl,$transclude){ctrl.cases['?'] = ctrl.cases['?'] || [];ctrl.cases['?'].push({transclude:$transclude,element:element});}});var ngTranscludeDirective=ngDirective({restrict:'EAC',link:function link($scope,$element,$attrs,controller,$transclude){if(!$transclude){throw minErr('ngTransclude')('orphan','Illegal use of ngTransclude directive in the template! ' + 'No parent directive that requires a transclusion found. ' + 'Element: {0}',startingTag($element));}$transclude(function(clone){$element.empty();$element.append(clone);});}});var scriptDirective=['$templateCache',function($templateCache){return {restrict:'E',terminal:true,compile:function compile(element,attr){if(attr.type == 'text/ng-template'){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text);}}};}];var ngOptionsMinErr=minErr('ngOptions');var ngOptionsDirective=valueFn({restrict:'A',terminal:true});var selectDirective=['$compile','$parse',function($compile,$parse){var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nullModelCtrl={$setViewValue:noop};return {restrict:'E',require:['select','?ngModel'],controller:['$element','$scope','$attrs',function($element,$scope,$attrs){var self=this,optionsMap={},ngModelCtrl=nullModelCtrl,nullOption,unknownOption;self.databound = $attrs.ngModel;self.init = function(ngModelCtrl_,nullOption_,unknownOption_){ngModelCtrl = ngModelCtrl_;nullOption = nullOption_;unknownOption = unknownOption_;};self.addOption = function(value,element){assertNotHasOwnProperty(value,'"option value"');optionsMap[value] = true;if(ngModelCtrl.$viewValue == value){$element.val(value);if(unknownOption.parent())unknownOption.remove();}if(element && element[0].hasAttribute('selected')){element[0].selected = true;}};self.removeOption = function(value){if(this.hasOption(value)){delete optionsMap[value];if(ngModelCtrl.$viewValue === value){this.renderUnknownOption(value);}}};self.renderUnknownOption = function(val){var unknownVal='? ' + hashKey(val) + ' ?';unknownOption.val(unknownVal);$element.prepend(unknownOption);$element.val(unknownVal);unknownOption.prop('selected',true);};self.hasOption = function(value){return optionsMap.hasOwnProperty(value);};$scope.$on('$destroy',function(){self.renderUnknownOption = noop;});}],link:function link(scope,element,attr,ctrls){if(!ctrls[1])return;var selectCtrl=ctrls[0],ngModelCtrl=ctrls[1],multiple=attr.multiple,optionsExp=attr.ngOptions,nullOption=false,emptyOption,renderScheduled=false,optionTemplate=jqLite(document.createElement('option')),optGroupTemplate=jqLite(document.createElement('optgroup')),unknownOption=optionTemplate.clone();for(var i=0,children=element.children(),ii=children.length;i < ii;i++) {if(children[i].value === ''){emptyOption = nullOption = children.eq(i);break;}}selectCtrl.init(ngModelCtrl,nullOption,unknownOption);if(multiple){ngModelCtrl.$isEmpty = function(value){return !value || value.length === 0;};}if(optionsExp)setupAsOptions(scope,element,ngModelCtrl);else if(multiple)setupAsMultiple(scope,element,ngModelCtrl);else setupAsSingle(scope,element,ngModelCtrl,selectCtrl);function setupAsSingle(scope,selectElement,ngModelCtrl,selectCtrl){ngModelCtrl.$render = function(){var viewValue=ngModelCtrl.$viewValue;if(selectCtrl.hasOption(viewValue)){if(unknownOption.parent())unknownOption.remove();selectElement.val(viewValue);if(viewValue === '')emptyOption.prop('selected',true);}else {if(isUndefined(viewValue) && emptyOption){selectElement.val('');}else {selectCtrl.renderUnknownOption(viewValue);}}};selectElement.on('change',function(){scope.$apply(function(){if(unknownOption.parent())unknownOption.remove();ngModelCtrl.$setViewValue(selectElement.val());});});}function setupAsMultiple(scope,selectElement,ctrl){var lastView;ctrl.$render = function(){var items=new HashMap(ctrl.$viewValue);forEach(selectElement.find('option'),function(option){option.selected = isDefined(items.get(option.value));});};scope.$watch(function selectMultipleWatch(){if(!equals(lastView,ctrl.$viewValue)){lastView = shallowCopy(ctrl.$viewValue);ctrl.$render();}});selectElement.on('change',function(){scope.$apply(function(){var array=[];forEach(selectElement.find('option'),function(option){if(option.selected){array.push(option.value);}});ctrl.$setViewValue(array);});});}function setupAsOptions(scope,selectElement,ctrl){var match;if(!(match = optionsExp.match(NG_OPTIONS_REGEXP))){throw ngOptionsMinErr('iexp','Expected expression in form of ' + '\'_select_ (as _label_)? for (_key_,)?_value_ in _collection_\'' + ' but got \'{0}\'. Element: {1}',optionsExp,startingTag(selectElement));}var displayFn=$parse(match[2] || match[1]),valueName=match[4] || match[6],selectAs=/ as /.test(match[0]) && match[1],selectAsFn=selectAs?$parse(selectAs):null,keyName=match[5],groupByFn=$parse(match[3] || ''),valueFn=$parse(match[2]?match[1]:valueName),valuesFn=$parse(match[7]),track=match[8],trackFn=track?$parse(match[8]):null,trackKeysCache={},optionGroupsCache=[[{element:selectElement,label:''}]],locals={};if(nullOption){$compile(nullOption)(scope);nullOption.removeClass('ng-scope');nullOption.remove();}selectElement.empty();selectElement.on('change',selectionChanged);ctrl.$render = render;scope.$watchCollection(valuesFn,scheduleRendering);scope.$watchCollection(getLabels,scheduleRendering);if(multiple){scope.$watchCollection(function(){return ctrl.$modelValue;},scheduleRendering);}function callExpression(exprFn,key,value){locals[valueName] = value;if(keyName)locals[keyName] = key;return exprFn(scope,locals);}function selectionChanged(){scope.$apply(function(){var collection=valuesFn(scope) || [];var viewValue;if(multiple){viewValue = [];forEach(selectElement.val(),function(selectedKey){selectedKey = trackFn?trackKeysCache[selectedKey]:selectedKey;viewValue.push(getViewValue(selectedKey,collection[selectedKey]));});}else {var selectedKey=trackFn?trackKeysCache[selectElement.val()]:selectElement.val();viewValue = getViewValue(selectedKey,collection[selectedKey]);}ctrl.$setViewValue(viewValue);render();});}function getViewValue(key,value){if(key === '?'){return undefined;}else if(key === ''){return null;}else {var viewValueFn=selectAsFn?selectAsFn:valueFn;return callExpression(viewValueFn,key,value);}}function getLabels(){var values=valuesFn(scope);var toDisplay;if(values && isArray(values)){toDisplay = new Array(values.length);for(var i=0,ii=values.length;i < ii;i++) {toDisplay[i] = callExpression(displayFn,i,values[i]);}return toDisplay;}else if(values){toDisplay = {};for(var prop in values) {if(values.hasOwnProperty(prop)){toDisplay[prop] = callExpression(displayFn,prop,values[prop]);}}}return toDisplay;}function createIsSelectedFn(viewValue){var selectedSet;if(multiple){if(trackFn && isArray(viewValue)){selectedSet = new HashMap([]);for(var trackIndex=0;trackIndex < viewValue.length;trackIndex++) {selectedSet.put(callExpression(trackFn,null,viewValue[trackIndex]),true);}}else {selectedSet = new HashMap(viewValue);}}else if(trackFn){viewValue = callExpression(trackFn,null,viewValue);}return function isSelected(key,value){var compareValueFn;if(trackFn){compareValueFn = trackFn;}else if(selectAsFn){compareValueFn = selectAsFn;}else {compareValueFn = valueFn;}if(multiple){return isDefined(selectedSet.remove(callExpression(compareValueFn,key,value)));}else {return viewValue === callExpression(compareValueFn,key,value);}};}function scheduleRendering(){if(!renderScheduled){scope.$$postDigest(render);renderScheduled = true;}}function updateLabelMap(labelMap,label,added){labelMap[label] = labelMap[label] || 0;labelMap[label] += added?1:-1;}function render(){renderScheduled = false;var optionGroups={'':[]},optionGroupNames=[''],optionGroupName,optionGroup,option,existingParent,existingOptions,existingOption,viewValue=ctrl.$viewValue,values=valuesFn(scope) || [],keys=keyName?sortedKeys(values):values,key,value,groupLength,length,groupIndex,index,labelMap={},selected,isSelected=createIsSelectedFn(viewValue),anySelected=false,lastElement,element,label,optionId;trackKeysCache = {};for(index = 0;length = keys.length,index < length;index++) {key = index;if(keyName){key = keys[index];if(key.charAt(0) === '$')continue;}value = values[key];optionGroupName = callExpression(groupByFn,key,value) || '';if(!(optionGroup = optionGroups[optionGroupName])){optionGroup = optionGroups[optionGroupName] = [];optionGroupNames.push(optionGroupName);}selected = isSelected(key,value);anySelected = anySelected || selected;label = callExpression(displayFn,key,value);label = isDefined(label)?label:'';optionId = trackFn?trackFn(scope,locals):keyName?keys[index]:index;if(trackFn){trackKeysCache[optionId] = key;}optionGroup.push({id:optionId,label:label,selected:selected});}if(!multiple){if(nullOption || viewValue === null){optionGroups[''].unshift({id:'',label:'',selected:!anySelected});}else if(!anySelected){optionGroups[''].unshift({id:'?',label:'',selected:true});}}for(groupIndex = 0,groupLength = optionGroupNames.length;groupIndex < groupLength;groupIndex++) {optionGroupName = optionGroupNames[groupIndex];optionGroup = optionGroups[optionGroupName];if(optionGroupsCache.length <= groupIndex){existingParent = {element:optGroupTemplate.clone().attr('label',optionGroupName),label:optionGroup.label};existingOptions = [existingParent];optionGroupsCache.push(existingOptions);selectElement.append(existingParent.element);}else {existingOptions = optionGroupsCache[groupIndex];existingParent = existingOptions[0];if(existingParent.label != optionGroupName){existingParent.element.attr('label',existingParent.label = optionGroupName);}}lastElement = null;for(index = 0,length = optionGroup.length;index < length;index++) {option = optionGroup[index];if(existingOption = existingOptions[index + 1]){lastElement = existingOption.element;if(existingOption.label !== option.label){updateLabelMap(labelMap,existingOption.label,false);updateLabelMap(labelMap,option.label,true);lastElement.text(existingOption.label = option.label);lastElement.prop('label',existingOption.label);}if(existingOption.id !== option.id){lastElement.val(existingOption.id = option.id);}if(lastElement[0].selected !== option.selected){lastElement.prop('selected',existingOption.selected = option.selected);if(msie){lastElement.prop('selected',existingOption.selected);}}}else {if(option.id === '' && nullOption){element = nullOption;}else {(element = optionTemplate.clone()).val(option.id).prop('selected',option.selected).attr('selected',option.selected).prop('label',option.label).text(option.label);}existingOptions.push(existingOption = {element:element,label:option.label,id:option.id,selected:option.selected});updateLabelMap(labelMap,option.label,true);if(lastElement){lastElement.after(element);}else {existingParent.element.append(element);}lastElement = element;}}index++;while(existingOptions.length > index) {option = existingOptions.pop();updateLabelMap(labelMap,option.label,false);option.element.remove();}}while(optionGroupsCache.length > groupIndex) {optionGroup = optionGroupsCache.pop();for(index = 1;index < optionGroup.length;++index) {updateLabelMap(labelMap,optionGroup[index].label,false);}optionGroup[0].element.remove();}forEach(labelMap,function(count,label){if(count > 0){selectCtrl.addOption(label);}else if(count < 0){selectCtrl.removeOption(label);}});}}}};}];var optionDirective=['$interpolate',function($interpolate){var nullSelectCtrl={addOption:noop,removeOption:noop};return {restrict:'E',priority:100,compile:function compile(element,attr){if(isUndefined(attr.value)){var interpolateFn=$interpolate(element.text(),true);if(!interpolateFn){attr.$set('value',element.text());}}return function(scope,element,attr){var selectCtrlName='$selectController',parent=element.parent(),selectCtrl=parent.data(selectCtrlName) || parent.parent().data(selectCtrlName);if(!selectCtrl || !selectCtrl.databound){selectCtrl = nullSelectCtrl;}if(interpolateFn){scope.$watch(interpolateFn,function interpolateWatchAction(newVal,oldVal){attr.$set('value',newVal);if(oldVal !== newVal){selectCtrl.removeOption(oldVal);}selectCtrl.addOption(newVal,element);});}else {selectCtrl.addOption(attr.value,element);}element.on('$destroy',function(){selectCtrl.removeOption(attr.value);});};}};}];var styleDirective=valueFn({restrict:'E',terminal:false});var requiredDirective=function requiredDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;attr.required = true;ctrl.$validators.required = function(modelValue,viewValue){return !attr.required || !ctrl.$isEmpty(viewValue);};attr.$observe('required',function(){ctrl.$validate();});}};};var patternDirective=function patternDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var regexp,patternExp=attr.ngPattern || attr.pattern;attr.$observe('pattern',function(regex){if(isString(regex) && regex.length > 0){regex = new RegExp('^' + regex + '$');}if(regex && !regex.test){throw minErr('ngPattern')('noregexp','Expected {0} to be a RegExp but was {1}. Element: {2}',patternExp,regex,startingTag(elm));}regexp = regex || undefined;ctrl.$validate();});ctrl.$validators.pattern = function(value){return ctrl.$isEmpty(value) || isUndefined(regexp) || regexp.test(value);};}};};var maxlengthDirective=function maxlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var maxlength=-1;attr.$observe('maxlength',function(value){var intVal=int(value);maxlength = isNaN(intVal)?-1:intVal;ctrl.$validate();});ctrl.$validators.maxlength = function(modelValue,viewValue){return maxlength < 0 || ctrl.$isEmpty(viewValue) || viewValue.length <= maxlength;};}};};var minlengthDirective=function minlengthDirective(){return {restrict:'A',require:'?ngModel',link:function link(scope,elm,attr,ctrl){if(!ctrl)return;var minlength=0;attr.$observe('minlength',function(value){minlength = int(value) || 0;ctrl.$validate();});ctrl.$validators.minlength = function(modelValue,viewValue){return ctrl.$isEmpty(viewValue) || viewValue.length >= minlength;};}};};if(window.angular.bootstrap){console.log('WARNING: Tried to load angular more than once.');return;}bindJQuery();publishExternalAPI(angular);jqLite(document).ready(function(){angularInit(document,bootstrap);});})(window,document);!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}</style>'); - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - (function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define(factory);else if(typeof exports === 'object')exports['JSData'] = factory();else root['JSData'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _datastoreIndex=__webpack_require__(1);var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);module.exports = {DS:_datastoreIndex['default'],DSUtils:_utils['default'],DSErrors:_errors['default'],createStore:function createStore(options){return new _datastoreIndex['default'](options);},version:{full:'2.0.0-rc.1',major:parseInt('2',10),minor:parseInt('0',10),patch:parseInt('0',10),alpha:true?'false':false,beta:true?'false':false}};},function(module,exports,__webpack_require__){var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _sync_methodsIndex=__webpack_require__(4);var _async_methodsIndex=__webpack_require__(5);function lifecycleNoopCb(resource,attrs,cb){cb(null,attrs);}function lifecycleNoop(resource,attrs){return attrs;}function compare(_x,_x2,_x3,_x4){var _again=true;_function: while(_again) {var orderBy=_x,index=_x2,a=_x3,b=_x4;def = cA = cB = undefined;_again = false;var def=orderBy[index];var cA=_utils['default'].get(a,def[0]),cB=_utils['default'].get(b,def[0]);if(_utils['default']._s(cA)){cA = _utils['default'].upperCase(cA);}if(_utils['default']._s(cB)){cB = _utils['default'].upperCase(cB);}if(def[1] === 'DESC'){if(cB < cA){return -1;}else if(cB > cA){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}else {if(cA < cB){return -1;}else if(cA > cB){return 1;}else {if(index < orderBy.length - 1){_x = orderBy;_x2 = index + 1;_x3 = a;_x4 = b;_again = true;continue _function;}else {return 0;}}}}}var Defaults=(function(){function Defaults(){_classCallCheck(this,Defaults);}_createClass(Defaults,[{key:'errorFn',value:function errorFn(a,b){if(this.error && typeof this.error === 'function'){try{if(typeof a === 'string'){throw new Error(a);}else {throw a;}}catch(err) {a = err;}this.error(this.name || null,a || null,b || null);}}}]);return Defaults;})();var defaultsPrototype=Defaults.prototype;defaultsPrototype.actions = {};defaultsPrototype.afterCreate = lifecycleNoopCb;defaultsPrototype.afterCreateCollection = lifecycleNoop;defaultsPrototype.afterCreateInstance = lifecycleNoop;defaultsPrototype.afterDestroy = lifecycleNoopCb;defaultsPrototype.afterEject = lifecycleNoop;defaultsPrototype.afterInject = lifecycleNoop;defaultsPrototype.afterReap = lifecycleNoop;defaultsPrototype.afterUpdate = lifecycleNoopCb;defaultsPrototype.afterValidate = lifecycleNoopCb;defaultsPrototype.allowSimpleWhere = true;defaultsPrototype.basePath = '';defaultsPrototype.beforeCreate = lifecycleNoopCb;defaultsPrototype.beforeCreateCollection = lifecycleNoop;defaultsPrototype.beforeCreateInstance = lifecycleNoop;defaultsPrototype.beforeDestroy = lifecycleNoopCb;defaultsPrototype.beforeEject = lifecycleNoop;defaultsPrototype.beforeInject = lifecycleNoop;defaultsPrototype.beforeReap = lifecycleNoop;defaultsPrototype.beforeUpdate = lifecycleNoopCb;defaultsPrototype.beforeValidate = lifecycleNoopCb;defaultsPrototype.bypassCache = false;defaultsPrototype.cacheResponse = !!_utils['default'].w;defaultsPrototype.clearEmptyQueries = true;defaultsPrototype.computed = {};defaultsPrototype.defaultAdapter = 'http';defaultsPrototype.debug = false;defaultsPrototype.defaultValues = {};defaultsPrototype.eagerEject = false;defaultsPrototype.eagerInject = false;defaultsPrototype.endpoint = '';defaultsPrototype.error = console?function(a,b,c){return console[typeof console.error === 'function'?'error':'log'](a,b,c);}:false;defaultsPrototype.instanceEvents = !!_utils['default'].w;defaultsPrototype.fallbackAdapters = ['http'];defaultsPrototype.findStrictCache = false;defaultsPrototype.idAttribute = 'id';defaultsPrototype.ignoredChanges = [/\$/];defaultsPrototype.ignoreMissing = false;defaultsPrototype.keepChangeHistory = false;defaultsPrototype.linkRelations = true;defaultsPrototype.log = console?function(a,b,c,d,e){return console[typeof console.info === 'function'?'info':'log'](a,b,c,d,e);}:false;defaultsPrototype.logFn = function(a,b,c,d){var _this=this;if(_this.debug && _this.log && typeof _this.log === 'function'){_this.log(_this.name || null,a || null,b || null,c || null,d || null);}};defaultsPrototype.maxAge = false;defaultsPrototype.methods = {};defaultsPrototype.notify = !!_utils['default'].w;defaultsPrototype.omit = [];defaultsPrototype.onConflict = 'merge';defaultsPrototype.reapAction = !!_utils['default'].w?'inject':'none';defaultsPrototype.reapInterval = !!_utils['default'].w?30000:false;defaultsPrototype.relationsEnumerable = false;defaultsPrototype.returnMeta = false;defaultsPrototype.resetHistoryOnInject = true;defaultsPrototype.strategy = 'single';defaultsPrototype.upsert = !!_utils['default'].w;defaultsPrototype.useClass = true;defaultsPrototype.useFilter = false;defaultsPrototype.validate = lifecycleNoopCb;defaultsPrototype.defaultFilter = function(collection,resourceName,params,options){var filtered=collection;var where=null;var reserved={skip:'',offset:'',where:'',limit:'',orderBy:'',sort:''};params = params || {};options = options || {};if(_utils['default']._o(params.where)){where = params.where;}else {where = {};}if(options.allowSimpleWhere){_utils['default'].forOwn(params,function(value,key){if(!(key in reserved) && !(key in where)){where[key] = {'==':value};}});}if(_utils['default'].isEmpty(where)){where = null;}if(where){filtered = _utils['default'].filter(filtered,function(attrs){var first=true;var keep=true;_utils['default'].forOwn(where,function(clause,field){if(!_utils['default']._o(clause)){clause = {'==':clause};}_utils['default'].forOwn(clause,function(term,op){var expr=undefined;var isOr=op[0] === '|';var val=_utils['default'].get(attrs,field);op = isOr?op.substr(1):op;if(op === '=='){expr = val == term;}else if(op === '==='){expr = val === term;}else if(op === '!='){expr = val != term;}else if(op === '!=='){expr = val !== term;}else if(op === '>'){expr = val > term;}else if(op === '>='){expr = val >= term;}else if(op === '<'){expr = val < term;}else if(op === '<='){expr = val <= term;}else if(op === 'isectEmpty'){expr = !_utils['default'].intersection(val || [],term || []).length;}else if(op === 'isectNotEmpty'){expr = _utils['default'].intersection(val || [],term || []).length;}else if(op === 'in'){if(_utils['default']._s(term)){expr = term.indexOf(val) !== -1;}else {expr = _utils['default'].contains(term,val);}}else if(op === 'notIn'){if(_utils['default']._s(term)){expr = term.indexOf(val) === -1;}else {expr = !_utils['default'].contains(term,val);}}else if(op === 'contains'){if(_utils['default']._s(val)){expr = val.indexOf(term) !== -1;}else {expr = _utils['default'].contains(val,term);}}else if(op === 'notContains'){if(_utils['default']._s(val)){expr = val.indexOf(term) === -1;}else {expr = !_utils['default'].contains(val,term);}}if(expr !== undefined){keep = first?expr:isOr?keep || expr:keep && expr;}first = false;});});return keep;});}var orderBy=null;if(_utils['default']._s(params.orderBy)){orderBy = [[params.orderBy,'ASC']];}else if(_utils['default']._a(params.orderBy)){orderBy = params.orderBy;}if(!orderBy && _utils['default']._s(params.sort)){orderBy = [[params.sort,'ASC']];}else if(!orderBy && _utils['default']._a(params.sort)){orderBy = params.sort;}if(orderBy){(function(){var index=0;_utils['default'].forEach(orderBy,function(def,i){if(_utils['default']._s(def)){orderBy[i] = [def,'ASC'];}else if(!_utils['default']._a(def)){throw new _errors['default'].IA('DS.filter("' + resourceName + '"[, params][, options]): ' + _utils['default'].toJson(def) + ': Must be a string or an array!',{params:{'orderBy[i]':{actual:typeof def,expected:'string|array'}}});}});filtered = _utils['default'].sort(filtered,function(a,b){return compare(orderBy,index,a,b);});})();}var limit=_utils['default']._n(params.limit)?params.limit:null;var skip=null;if(_utils['default']._n(params.skip)){skip = params.skip;}else if(_utils['default']._n(params.offset)){skip = params.offset;}if(limit && skip){filtered = _utils['default'].slice(filtered,skip,Math.min(filtered.length,skip + limit));}else if(_utils['default']._n(limit)){filtered = _utils['default'].slice(filtered,0,Math.min(filtered.length,limit));}else if(_utils['default']._n(skip)){if(skip < filtered.length){filtered = _utils['default'].slice(filtered,skip);}else {filtered = [];}}return filtered;};var DS=(function(){function DS(options){_classCallCheck(this,DS);var _this=this;options = options || {};_this.store = {};_this.s = _this.store;_this.definitions = {};_this.defs = _this.definitions;_this.adapters = {};_this.defaults = new Defaults();_this.observe = _utils['default'].observe;_utils['default'].forOwn(options,function(v,k){if(k === 'omit'){_this.defaults.omit = v.concat(Defaults.prototype.omit);}else {_this.defaults[k] = v;}});_this.defaults.logFn('new data store created',_this.defaults);var P=_utils['default'].Promise;if(P && !P.prototype.spread){P.prototype.spread = function(cb){return this.then(function(arr){return cb.apply(this,arr);});};}}_createClass(DS,[{key:'getAdapterName',value:function getAdapterName(options){var errorIfNotExist=false;options = options || {};this.defaults.logFn('getAdapterName',options);if(_utils['default']._s(options)){errorIfNotExist = true;options = {adapter:options};}if(this.adapters[options.adapter]){return options.adapter;}else if(errorIfNotExist){throw new Error(options.adapter + ' is not a registered adapter!');}else {return options.defaultAdapter;}}},{key:'getAdapter',value:function getAdapter(options){options = options || {};this.defaults.logFn('getAdapter',options);return this.adapters[this.getAdapterName(options)];}},{key:'registerAdapter',value:function registerAdapter(name,Adapter,options){var _this=this;options = options || {};_this.defaults.logFn('registerAdapter',name,Adapter,options);if(_utils['default'].isFunction(Adapter)){_this.adapters[name] = new Adapter(options);}else {_this.adapters[name] = Adapter;}if(options['default']){_this.defaults.defaultAdapter = name;}_this.defaults.logFn('default adapter is ' + _this.defaults.defaultAdapter);}},{key:'is',value:function is(resourceName,instance){var definition=this.defs[resourceName];if(!definition){throw new _errors['default'].NER(resourceName);}return instance instanceof definition[definition['class']];}}]);return DS;})();var dsPrototype=DS.prototype;dsPrototype.getAdapterName.shorthand = false;dsPrototype.getAdapter.shorthand = false;dsPrototype.registerAdapter.shorthand = false;dsPrototype.errors = _errors['default'];dsPrototype.utils = _utils['default'];function addMethods(target,obj){_utils['default'].forOwn(obj,function(v,k){target[k] = v;target[k].before = function(fn){var orig=target[k];target[k] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}return orig.apply(this,fn.apply(this,args) || args);};};});}addMethods(dsPrototype,_sync_methodsIndex['default']);addMethods(dsPrototype,_async_methodsIndex['default']);exports['default'] = DS;},function(module,exports,__webpack_require__){function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}var _errors=__webpack_require__(3);var BinaryHeap=__webpack_require__(7);var forEach=__webpack_require__(8);var slice=__webpack_require__(9);var forOwn=__webpack_require__(13);var contains=__webpack_require__(10);var deepMixIn=__webpack_require__(14);var pascalCase=__webpack_require__(18);var remove=__webpack_require__(11);var pick=__webpack_require__(15);var sort=__webpack_require__(12);var upperCase=__webpack_require__(19);var get=__webpack_require__(16);var set=__webpack_require__(17);var observe=__webpack_require__(6);var w=undefined;var objectProto=Object.prototype;var toString=objectProto.toString;var P=undefined;try{P = Promise;}catch(err) {console.error('js-data requires a global Promise constructor!');}var isArray=Array.isArray || function isArray(value){return toString.call(value) == '[object Array]' || false;};var isRegExp=function isRegExp(value){return toString.call(value) == '[object RegExp]' || false;};var isString=function isString(value){return typeof value == 'string' || value && typeof value == 'object' && toString.call(value) == '[object String]' || false;};var isObject=function isObject(value){return toString.call(value) == '[object Object]' || false;};var isDate=function isDate(value){return value && typeof value == 'object' && toString.call(value) == '[object Date]' || false;};var isNumber=function isNumber(value){var type=typeof value;return type == 'number' || value && type == 'object' && toString.call(value) == '[object Number]' || false;};var isFunction=function isFunction(value){return typeof value == 'function' || value && toString.call(value) === '[object Function]' || false;};var isStringOrNumber=function isStringOrNumber(value){return isString(value) || isNumber(value);};var isStringOrNumberErr=function isStringOrNumberErr(field){return new _errors['default'].IA('"' + field + '" must be a string or a number!');};var isObjectErr=function isObjectErr(field){return new _errors['default'].IA('"' + field + '" must be an object!');};var isArrayErr=function isArrayErr(field){return new _errors['default'].IA('"' + field + '" must be an array!');};var isEmpty=function isEmpty(val){if(val == null){return true;}else if(typeof val === 'string' || isArray(val)){return !val.length;}else if(typeof val === 'object'){var result=true;forOwn(val,function(){result = false;return false;});return result;}else {return true;}};var intersection=function intersection(array1,array2){if(!array1 || !array2){return [];}var result=[];var item=undefined;for(var i=0,_length=array1.length;i < _length;i++) {item = array1[i];if(contains(result,item)){continue;}if(contains(array2,item)){result.push(item);}}return result;};var filter=function filter(array,cb,thisObj){var results=[];forEach(array,function(value,key,arr){if(cb(value,key,arr)){results.push(value);}},thisObj);return results;};try{w = window;w = {};}catch(e) {w = null;}function Events(target){var events={};target = target || this;target.on = function(type,func,ctx){events[type] = events[type] || [];events[type].push({f:func,c:ctx});};target.off = function(type,func){var listeners=events[type];if(!listeners){events = {};}else if(func){for(var i=0;i < listeners.length;i++) {if(listeners[i] === func){listeners.splice(i,1);break;}}}else {listeners.splice(0,listeners.length);}};target.emit = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}var listeners=events[args.shift()] || [];if(listeners){for(var i=0;i < listeners.length;i++) {listeners[i].f.apply(listeners[i].c,args);}}};}var toPromisify=['beforeValidate','validate','afterValidate','beforeCreate','afterCreate','beforeUpdate','afterUpdate','beforeDestroy','afterDestroy'];var isBlacklisted=observe.isBlacklisted;var copy=function copy(source,destination,stackSource,stackDest,blacklist){if(!destination){destination = source;if(source){if(isArray(source)){destination = copy(source,[],stackSource,stackDest,blacklist);}else if(isDate(source)){destination = new Date(source.getTime());}else if(isRegExp(source)){destination = new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex = source.lastIndex;}else if(isObject(source)){destination = copy(source,Object.create(Object.getPrototypeOf(source)),stackSource,stackDest,blacklist);}}}else {if(source === destination){throw new Error('Cannot copy! Source and destination are identical.');}stackSource = stackSource || [];stackDest = stackDest || [];if(isObject(source)){var index=stackSource.indexOf(source);if(index !== -1){return stackDest[index];}stackSource.push(source);stackDest.push(destination);}var result=undefined;if(isArray(source)){var i=undefined;destination.length = 0;for(i = 0;i < source.length;i++) {result = copy(source[i],null,stackSource,stackDest,blacklist);if(isObject(source[i])){stackSource.push(source[i]);stackDest.push(result);}destination.push(result);}}else {if(isArray(destination)){destination.length = 0;}else {forEach(destination,function(value,key){delete destination[key];});}for(var key in source) {if(source.hasOwnProperty(key)){if(isBlacklisted(key,blacklist)){continue;}result = copy(source[key],null,stackSource,stackDest,blacklist);if(isObject(source[key])){stackSource.push(source[key]);stackDest.push(result);}destination[key] = result;}}}}return destination;};var equals=function equals(_x,_x2){var _again=true;_function: while(_again) {var o1=_x,o2=_x2;t1 = t2 = length = key = keySet = undefined;_again = false;if(o1 === o2){return true;}if(o1 === null || o2 === null){return false;}if(o1 !== o1 && o2 !== o2){return true;}var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1 == t2){if(t1 == 'object'){if(isArray(o1)){if(!isArray(o2)){return false;}if((length = o1.length) == o2.length){for(key = 0;key < length;key++) {if(!equals(o1[key],o2[key])){return false;}}return true;}}else if(isDate(o1)){if(!isDate(o2)){return false;}_x = o1.getTime();_x2 = o2.getTime();_again = true;continue _function;}else if(isRegExp(o1) && isRegExp(o2)){return o1.toString() == o2.toString();}else {if(isArray(o2)){return false;}keySet = {};for(key in o1) {if(key.charAt(0) === '$' || isFunction(o1[key])){continue;}if(!equals(o1[key],o2[key])){return false;}keySet[key] = true;}for(key in o2) {if(!keySet.hasOwnProperty(key) && key.charAt(0) !== '$' && o2[key] !== undefined && !isFunction(o2[key])){return false;}}return true;}}}return false;}};var resolveId=function resolveId(definition,idOrInstance){if(isString(idOrInstance) || isNumber(idOrInstance)){return idOrInstance;}else if(idOrInstance && definition){return idOrInstance[definition.idAttribute] || idOrInstance;}else {return idOrInstance;}};var resolveItem=function resolveItem(resource,idOrInstance){if(resource && (isString(idOrInstance) || isNumber(idOrInstance))){return resource.index[idOrInstance] || idOrInstance;}else {return idOrInstance;}};var isValidString=function isValidString(val){return val != null && val !== '';};var join=function join(items,separator){separator = separator || '';return filter(items,isValidString).join(separator);};var makePath=function makePath(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}var result=join(args,'/');return result.replace(/([^:\/]|^)\/{2,}/g,'$1/');};exports['default'] = {Promise:P,_:function _(parent,options){var _this=this;options = options || {};if(options && options.constructor === parent.constructor){return options;}else if(!isObject(options)){throw new _errors['default'].IA('"options" must be an object!');}forEach(toPromisify,function(name){if(typeof options[name] === 'function' && options[name].toString().indexOf('for (var _len = arg') === -1){options[name] = _this.promisify(options[name]);}});var O=function Options(attrs){var self=this;forOwn(attrs,function(value,key){self[key] = value;});};O.prototype = parent;O.prototype.orig = function(){var orig={};forOwn(this,function(value,key){orig[key] = value;});return orig;};return new O(options);},_n:isNumber,_s:isString,_sn:isStringOrNumber,_snErr:isStringOrNumberErr,_o:isObject,_oErr:isObjectErr,_a:isArray,_aErr:isArrayErr,compute:function compute(fn,field){var _this=this;var args=[];forEach(fn.deps,function(dep){args.push(get(_this,dep));});set(_this,field,fn[fn.length - 1].apply(_this,args));},contains:contains,copy:copy,deepMixIn:deepMixIn,diffObjectFromOldObject:observe.diffObjectFromOldObject,BinaryHeap:BinaryHeap,equals:equals,Events:Events,filter:filter,fillIn:function fillIn(target,obj){forOwn(obj,function(v,k){if(!(k in target)){target[k] = v;}});return target;},forEach:forEach,forOwn:forOwn,fromJson:function fromJson(json){return isString(json)?JSON.parse(json):json;},get:get,intersection:intersection,isArray:isArray,isBlacklisted:isBlacklisted,isEmpty:isEmpty,isFunction:isFunction,isObject:isObject,isNumber:isNumber,isString:isString,makePath:makePath,observe:observe,omit:function omit(obj,bl){var toRemove=[];forOwn(obj,function(v,k){if(isBlacklisted(k,bl)){toRemove.push(k);}});forEach(toRemove,function(k){delete obj[k];});return obj;},pascalCase:pascalCase,pick:pick,promisify:function promisify(fn,target){var _this=this;if(!fn){return;}else if(typeof fn !== 'function'){throw new Error('Can only promisify functions!');}return function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}return new _this.Promise(function(resolve,reject){args.push(function(err,result){if(err){reject(err);}else {resolve(result);}});try{var promise=fn.apply(target || this,args);if(promise && promise.then){promise.then(resolve,reject);}}catch(err) {reject(err);}});};},remove:remove,set:set,slice:slice,sort:sort,toJson:JSON.stringify,updateTimestamp:function updateTimestamp(timestamp){var newTimestamp=typeof Date.now === 'function'?Date.now():new Date().getTime();if(timestamp && newTimestamp <= timestamp){return timestamp + 1;}else {return newTimestamp;}},upperCase:upperCase,removeCircular:function removeCircular(object){return (function rmCirc(value,ctx){var i=undefined;var nu=undefined;if(typeof value === 'object' && value !== null && !(value instanceof Boolean) && !(value instanceof Date) && !(value instanceof Number) && !(value instanceof RegExp) && !(value instanceof String)){var cur=ctx.cur;var parent=ctx.ctx;while(parent) {if(parent.cur === cur){return undefined;}parent = parent.ctx;}if(isArray(value)){nu = [];for(i = 0;i < value.length;i += 1) {nu[i] = rmCirc(value[i],{ctx:ctx,cur:value[i]});}}else {nu = {};forOwn(value,function(v,k){nu[k] = rmCirc(value[k],{ctx:ctx,cur:value[k]});});}return nu;}return value;})(object,{ctx:null,cur:object});},resolveItem:resolveItem,resolveId:resolveId,respond:function respond(response,meta,options){if(options.returnMeta === 'array'){return [response,meta];}else if(options.returnMeta === 'object'){return {response:response,meta:meta};}else {return response;}},w:w,applyRelationGettersToTarget:function applyRelationGettersToTarget(store,definition,target){this.forEach(definition.relationList,function(def){var relationName=def.relation;var enumerable=typeof def.enumerable === 'boolean'?def.enumerable:!!definition.relationsEnumerable;if(typeof def.link === 'boolean'?def.link:!!definition.linkRelations){delete target[def.localField];if(def.type === 'belongsTo'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else if(def.type === 'hasMany'){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};if(def.foreignKey){params[def.foreignKey] = this[definition.idAttribute];return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true});}else if(def.localKeys){params.where = _defineProperty({},definition.getResource(relationName).idAttribute,{'in':this[def.localKeys]});return definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params);}return undefined;},set:function set(){}});}else if(def.type === 'hasOne'){if(def.localKey){Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){return this[def.localKey]?definition.getResource(relationName).get(this[def.localKey]):undefined;},set:function set(){}});}else {Object.defineProperty(target,def.localField,{enumerable:enumerable,get:function get(){var params={};params[def.foreignKey] = this[definition.idAttribute];var items=params[def.foreignKey]?definition.getResource(relationName).defaultFilter.call(store,store.s[relationName].collection,relationName,params,{allowSimpleWhere:true}):[];if(items.length){return items[0];}return undefined;},set:function set(){}});}}}});}};},function(module,exports,__webpack_require__){var _get=function get(_x,_x2,_x3){var _again=true;_function: while(_again) {var object=_x,property=_x2,receiver=_x3;desc = parent = getter = undefined;_again = false;if(object === null)object = Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc === undefined){var parent=Object.getPrototypeOf(object);if(parent === null){return undefined;}else {_x = parent;_x2 = property;_x3 = receiver;_again = true;continue _function;}}else if('value' in desc){return desc.value;}else {var getter=desc.get;if(getter === undefined){return undefined;}return getter.call(receiver);}}};function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}function _inherits(subClass,superClass){if(typeof superClass !== 'function' && superClass !== null){throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);}subClass.prototype = Object.create(superClass && superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)subClass.__proto__ = superClass;}var IllegalArgumentError=(function(_Error){function IllegalArgumentError(message){_classCallCheck(this,IllegalArgumentError);_get(Object.getPrototypeOf(IllegalArgumentError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(IllegalArgumentError,_Error);return IllegalArgumentError;})(Error);var RuntimeError=(function(_Error2){function RuntimeError(message){_classCallCheck(this,RuntimeError);_get(Object.getPrototypeOf(RuntimeError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = message;}_inherits(RuntimeError,_Error2);return RuntimeError;})(Error);var NonexistentResourceError=(function(_Error3){function NonexistentResourceError(resourceName){_classCallCheck(this,NonexistentResourceError);_get(Object.getPrototypeOf(NonexistentResourceError.prototype),'constructor',this).call(this);if(typeof Error.captureStackTrace === 'function'){Error.captureStackTrace(this,this.constructor);}this.type = this.constructor.name;this.message = resourceName + ' is not a registered resource!';}_inherits(NonexistentResourceError,_Error3);return NonexistentResourceError;})(Error);exports['default'] = {IllegalArgumentError:IllegalArgumentError,IA:IllegalArgumentError,RuntimeError:RuntimeError,R:RuntimeError,NonexistentResourceError:NonexistentResourceError,NER:NonexistentResourceError};},function(module,exports,__webpack_require__){var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var _defineResource=__webpack_require__(28);var _eject=__webpack_require__(29);var _ejectAll=__webpack_require__(30);var _filter=__webpack_require__(31);var _inject=__webpack_require__(32);var NER=_errors['default'].NER;var IA=_errors['default'].IA;var R=_errors['default'].R;function diffIsEmpty(diff){return !(_utils['default'].isEmpty(diff.added) && _utils['default'].isEmpty(diff.removed) && _utils['default'].isEmpty(diff.changed));}exports['default'] = {changes:function changes(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];options = options || {};id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('changes',id,options);var item=definition.get(id);if(item){var _ret=(function(){if(_utils['default'].w){_this.s[resourceName].observers[id].deliver();}var ignoredChanges=options.ignoredChanges || [];_utils['default'].forEach(definition.relationFields,function(field){if(!_utils['default'].contains(ignoredChanges,field)){ignoredChanges.push(field);}});var diff=_utils['default'].diffObjectFromOldObject(item,_this.s[resourceName].previousAttributes[id],_utils['default'].equals,ignoredChanges);_utils['default'].forOwn(diff,function(changeset,name){var toKeep=[];_utils['default'].forOwn(changeset,function(value,field){if(!_utils['default'].isFunction(value)){toKeep.push(field);}});diff[name] = _utils['default'].pick(diff[name],toKeep);});_utils['default'].forEach(definition.relationFields,function(field){delete diff.added[field];delete diff.removed[field];delete diff.changed[field];});return {v:diff};})();if(typeof _ret === 'object')return _ret.v;}},changeHistory:function changeHistory(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(resourceName && !_this.defs[resourceName]){throw new NER(resourceName);}else if(id && !_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('changeHistory',id);if(!definition.keepChangeHistory){definition.errorFn('changeHistory is disabled for this resource!');}else {if(resourceName){var item=definition.get(id);if(item){return resource.changeHistories[id];}}else {return resource.changeHistory;}}},compute:function compute(resourceName,instance){var _this=this;var definition=_this.defs[resourceName];instance = _utils['default'].resolveItem(_this.s[resourceName],instance);if(!definition){throw new NER(resourceName);}else if(!instance){throw new R('Item not in the store!');}else if(!_utils['default']._o(instance) && !_utils['default']._sn(instance)){throw new IA('"instance" must be an object, string or number!');}definition.logFn('compute',instance);_utils['default'].forOwn(definition.computed,function(fn,field){_utils['default'].compute.call(instance,fn,field);});return instance;},createInstance:function createInstance(resourceName,attrs,options){var definition=this.defs[resourceName];var item=undefined;attrs = attrs || {};if(!definition){throw new NER(resourceName);}else if(attrs && !_utils['default'].isObject(attrs)){throw new IA('"attrs" must be an object!');}options = _utils['default']._(definition,options);options.logFn('createInstance',attrs,options);options.beforeCreateInstance(options,attrs);var Constructor=definition[definition['class']];item = new Constructor();if(options.defaultValues){_utils['default'].deepMixIn(item,options.defaultValues);}_utils['default'].deepMixIn(item,attrs);if(definition.computed){definition.compute(item);}options.afterCreateInstance(options,item);return item;},createCollection:function createCollection(resourceName,arr,params,options){var _this=this;var definition=_this.defs[resourceName];arr = arr || [];params = params || {};if(!definition){throw new NER(resourceName);}else if(arr && !_utils['default'].isArray(arr)){throw new IA('"arr" must be an array!');}options = _utils['default']._(definition,options);options.logFn('createCollection',arr,options);options.beforeCreateCollection(options,arr);Object.defineProperties(arr,{fetch:{value:function value(params,options){var __this=this;__this.params = params || __this.params;return definition.findAll(__this.params,options).then(function(data){if(data === __this){return __this;}data.unshift(__this.length);data.unshift(0);__this.splice.apply(__this,data);data.shift();data.shift();if(data.$$injected){_this.s[resourceName].queryData[_utils['default'].toJson(__this.params)] = __this;__this.$$injected = true;}return __this;});}},params:{value:params,writable:true},resourceName:{value:resourceName}});options.afterCreateCollection(options,arr);return arr;},defineResource:_defineResource['default'],digest:function digest(){this.observe.Platform.performMicrotaskCheckpoint();},eject:_eject['default'],ejectAll:_ejectAll['default'],filter:_filter['default'],get:function get(resourceName,id,options){var _this=this;var definition=_this.defs[resourceName];if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}options = _utils['default']._(definition,options);options.logFn('get',id,options);return _this.s[resourceName].index[id];},getAll:function getAll(resourceName,ids){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var collection=[];if(!definition){throw new NER(resourceName);}else if(ids && !_utils['default']._a(ids)){throw _utils['default']._aErr('ids');}definition.logFn('getAll',ids);if(_utils['default']._a(ids)){var _length=ids.length;for(var i=0;i < _length;i++) {if(resource.index[ids[i]]){collection.push(resource.index[ids[i]]);}}}else {collection = resource.collection.slice();}return collection;},hasChanges:function hasChanges(resourceName,id){var _this=this;var definition=_this.defs[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('hasChanges',id);return definition.get(id)?diffIsEmpty(definition.changes(id)):false;},inject:_inject['default'],lastModified:function lastModified(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastModified',id);if(id){if(!(id in resource.modified)){resource.modified[id] = 0;}return resource.modified[id];}return resource.collectionModified;},lastSaved:function lastSaved(resourceName,id){var definition=this.defs[resourceName];var resource=this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}definition.logFn('lastSaved',id);if(!(id in resource.saved)){resource.saved[id] = 0;}return resource.saved[id];},previous:function previous(resourceName,id){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];id = _utils['default'].resolveId(definition,id);if(!definition){throw new NER(resourceName);}else if(!_utils['default']._sn(id)){throw _utils['default']._snErr('id');}definition.logFn('previous',id);return resource.previousAttributes[id]?_utils['default'].copy(resource.previousAttributes[id]):undefined;}};},function(module,exports,__webpack_require__){var _create=__webpack_require__(33);var _destroy=__webpack_require__(34);var _destroyAll=__webpack_require__(35);var _find=__webpack_require__(36);var _findAll=__webpack_require__(37);var _loadRelations=__webpack_require__(38);var _reap=__webpack_require__(39);var _save=__webpack_require__(40);var _update=__webpack_require__(41);var _updateAll=__webpack_require__(42);exports['default'] = {create:_create['default'],destroy:_destroy['default'],destroyAll:_destroyAll['default'],find:_find['default'],findAll:_findAll['default'],loadRelations:_loadRelations['default'],reap:_reap['default'],refresh:function refresh(resourceName,id,options){var _this=this;var DSUtils=_this.utils;return new DSUtils.Promise(function(resolve,reject){var definition=_this.defs[resourceName];id = DSUtils.resolveId(_this.defs[resourceName],id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refresh',id,options);resolve(_this.get(resourceName,id));}}).then(function(item){return item?_this.find(resourceName,id,options):item;});},refreshAll:function refreshAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);options.bypassCache = true;options.logFn('refreshAll',params,options);resolve(_this.filter(resourceName,params,options));}}).then(function(existing){options.bypassCache = true;return _this.findAll(resourceName,params,options).then(function(found){DSUtils.forEach(existing,function(item){if(found.indexOf(item) === -1){definition.eject(item);}});return found;});});},save:_save['default'],update:_update['default'],updateAll:_updateAll['default']};},function(module,exports,__webpack_require__){(function(global){var testingExposeCycleCount=global.testingExposeCycleCount;function detectObjectObserve(){if(typeof Object.observe !== 'function' || typeof Array.observe !== 'function'){return false;}var records=[];function callback(recs){records = recs;}var test={};var arr=[];Object.observe(test,callback);Array.observe(arr,callback);test.id = 1;test.id = 2;delete test.id;arr.push(1,2);arr.length = 0;Object.deliverChangeRecords(callback);if(records.length !== 5)return false;if(records[0].type != 'add' || records[1].type != 'update' || records[2].type != 'delete' || records[3].type != 'splice' || records[4].type != 'splice'){return false;}Object.unobserve(test,callback);Array.unobserve(arr,callback);return true;}var hasObserve=detectObjectObserve();var createObject='__proto__' in {}?function(obj){return obj;}:function(obj){var proto=obj.__proto__;if(!proto)return obj;var newObject=Object.create(proto);Object.getOwnPropertyNames(obj).forEach(function(name){Object.defineProperty(newObject,name,Object.getOwnPropertyDescriptor(obj,name));});return newObject;};var MAX_DIRTY_CHECK_CYCLES=1000;function dirtyCheck(observer){var cycles=0;while(cycles < MAX_DIRTY_CHECK_CYCLES && observer.check_()) {cycles++;}if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;return cycles > 0;}function objectIsEmpty(object){for(var prop in object) return false;return true;}function diffIsEmpty(diff){return objectIsEmpty(diff.added) && objectIsEmpty(diff.removed) && objectIsEmpty(diff.changed);}function isBlacklisted(prop,bl){if(!bl || !bl.length){return false;}var matches;for(var i=0;i < bl.length;i++) {if(Object.prototype.toString.call(bl[i]) === '[object RegExp]' && bl[i].test(prop) || bl[i] === prop){return matches = prop;}}return !!matches;}function diffObjectFromOldObject(object,oldObject,equals,bl){var added={};var removed={};var changed={};for(var prop in oldObject) {var newValue=object[prop];if(isBlacklisted(prop,bl))continue;if(newValue !== undefined && (equals?equals(newValue,oldObject[prop]):newValue === oldObject[prop]))continue;if(!(prop in object)){removed[prop] = undefined;continue;}if(equals?!equals(newValue,oldObject[prop]):newValue !== oldObject[prop])changed[prop] = newValue;}for(var prop in object) {if(prop in oldObject)continue;if(isBlacklisted(prop,bl))continue;added[prop] = object[prop];}if(Array.isArray(object) && object.length !== oldObject.length)changed.length = object.length;return {added:added,removed:removed,changed:changed};}var eomTasks=[];function runEOMTasks(){if(!eomTasks.length)return false;for(var i=0;i < eomTasks.length;i++) {eomTasks[i]();}eomTasks.length = 0;return true;}var runEOM=hasObserve?(function(){return function(fn){return Promise.resolve().then(fn);};})():(function(){return function(fn){eomTasks.push(fn);};})();var observedObjectCache=[];function newObservedObject(){var observer;var object;var discardRecords=false;var first=true;function callback(records){if(observer && observer.state_ === OPENED && !discardRecords)observer.check_(records);}return {open:function open(obs){if(observer)throw Error('ObservedObject in use');if(!first)Object.deliverChangeRecords(callback);observer = obs;first = false;},observe:function observe(obj,arrayObserve){object = obj;if(arrayObserve)Array.observe(object,callback);else Object.observe(object,callback);},deliver:function deliver(discard){discardRecords = discard;Object.deliverChangeRecords(callback);discardRecords = false;},close:function close(){observer = undefined;Object.unobserve(object,callback);observedObjectCache.push(this);}};}function getObservedObject(observer,object,arrayObserve){var dir=observedObjectCache.pop() || newObservedObject();dir.open(observer);dir.observe(object,arrayObserve);return dir;}var UNOPENED=0;var OPENED=1;var CLOSED=2;var nextObserverId=1;function Observer(){this.state_ = UNOPENED;this.callback_ = undefined;this.target_ = undefined;this.directObserver_ = undefined;this.value_ = undefined;this.id_ = nextObserverId++;}Observer.prototype = {open:function open(callback,target){if(this.state_ != UNOPENED)throw Error('Observer has already been opened.');addToAll(this);this.callback_ = callback;this.target_ = target;this.connect_();this.state_ = OPENED;return this.value_;},close:function close(){if(this.state_ != OPENED)return;removeFromAll(this);this.disconnect_();this.value_ = undefined;this.callback_ = undefined;this.target_ = undefined;this.state_ = CLOSED;},deliver:function deliver(){if(this.state_ != OPENED)return;dirtyCheck(this);},report_:function report_(changes){try{this.callback_.apply(this.target_,changes);}catch(ex) {Observer._errorThrownDuringCallback = true;console.error('Exception caught during observer callback: ' + (ex.stack || ex));}},discardChanges:function discardChanges(){this.check_(undefined,true);return this.value_;}};var collectObservers=!hasObserve;var allObservers;Observer._allObserversCount = 0;if(collectObservers){allObservers = [];}function addToAll(observer){Observer._allObserversCount++;if(!collectObservers)return;allObservers.push(observer);}function removeFromAll(observer){Observer._allObserversCount--;}var runningMicrotaskCheckpoint=false;global.Platform = global.Platform || {};global.Platform.performMicrotaskCheckpoint = function(){if(runningMicrotaskCheckpoint)return;if(!collectObservers)return;runningMicrotaskCheckpoint = true;var cycles=0;var anyChanged,toCheck;do {cycles++;toCheck = allObservers;allObservers = [];anyChanged = false;for(var i=0;i < toCheck.length;i++) {var observer=toCheck[i];if(observer.state_ != OPENED)continue;if(observer.check_())anyChanged = true;allObservers.push(observer);}if(runEOMTasks())anyChanged = true;}while(cycles < MAX_DIRTY_CHECK_CYCLES && anyChanged);if(testingExposeCycleCount)global.dirtyCheckCycleCount = cycles;runningMicrotaskCheckpoint = false;};if(collectObservers){global.Platform.clearObservers = function(){allObservers = [];};}function ObjectObserver(object){Observer.call(this);this.value_ = object;this.oldObject_ = undefined;}ObjectObserver.prototype = createObject({__proto__:Observer.prototype,arrayObserve:false,connect_:function connect_(callback,target){if(hasObserve){this.directObserver_ = getObservedObject(this,this.value_,this.arrayObserve);}else {this.oldObject_ = this.copyObject(this.value_);}},copyObject:function copyObject(object){var copy=Array.isArray(object)?[]:{};for(var prop in object) {copy[prop] = object[prop];};if(Array.isArray(object))copy.length = object.length;return copy;},check_:function check_(changeRecords,skipChanges){var diff;var oldValues;if(hasObserve){if(!changeRecords)return false;oldValues = {};diff = diffObjectFromChangeRecords(this.value_,changeRecords,oldValues);}else {oldValues = this.oldObject_;diff = diffObjectFromOldObject(this.value_,this.oldObject_);}if(diffIsEmpty(diff))return false;if(!hasObserve)this.oldObject_ = this.copyObject(this.value_);this.report_([diff.added || {},diff.removed || {},diff.changed || {},function(property){return oldValues[property];}]);return true;},disconnect_:function disconnect_(){if(hasObserve){this.directObserver_.close();this.directObserver_ = undefined;}else {this.oldObject_ = undefined;}},deliver:function deliver(){if(this.state_ != OPENED)return;if(hasObserve)this.directObserver_.deliver(false);else dirtyCheck(this);},discardChanges:function discardChanges(){if(this.directObserver_)this.directObserver_.deliver(true);else this.oldObject_ = this.copyObject(this.value_);return this.value_;}});var observerSentinel={};var expectedRecordTypes={add:true,update:true,'delete':true};function diffObjectFromChangeRecords(object,changeRecords,oldValues){var added={};var removed={};for(var i=0;i < changeRecords.length;i++) {var record=changeRecords[i];if(!expectedRecordTypes[record.type]){console.error('Unknown changeRecord type: ' + record.type);console.error(record);continue;}if(!(record.name in oldValues))oldValues[record.name] = record.oldValue;if(record.type == 'update')continue;if(record.type == 'add'){if(record.name in removed)delete removed[record.name];else added[record.name] = true;continue;}if(record.name in added){delete added[record.name];delete oldValues[record.name];}else {removed[record.name] = true;}}for(var prop in added) added[prop] = object[prop];for(var prop in removed) removed[prop] = undefined;var changed={};for(var prop in oldValues) {if(prop in added || prop in removed)continue;var newValue=object[prop];if(oldValues[prop] !== newValue)changed[prop] = newValue;}return {added:added,removed:removed,changed:changed};}global.Observer = Observer;global.isBlacklisted = isBlacklisted;global.Observer.runEOM_ = runEOM;global.Observer.observerSentinel_ = observerSentinel;global.Observer.hasObjectObserve = hasObserve;global.diffObjectFromOldObject = diffObjectFromOldObject;global.ObjectObserver = ObjectObserver;})(exports);},function(module,exports,__webpack_require__){(function webpackUniversalModuleDefinition(root,factory){if(true)module.exports = factory();else if(typeof define === 'function' && define.amd)define('yabh',factory);else if(typeof exports === 'object')exports['BinaryHeap'] = factory();else root['BinaryHeap'] = factory();})(this,function(){return ((function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId])return installedModules[moduleId].exports;var module=installedModules[moduleId] = {exports:{},id:moduleId,loaded:false};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.loaded = true;return module.exports;}__webpack_require__.m = modules;__webpack_require__.c = installedModules;__webpack_require__.p = '';return __webpack_require__(0);})([function(module,exports,__webpack_require__){var _classCallCheck=function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}};var _createClass=(function(){function defineProperties(target,props){for(var i=0;i < props.length;i++) {var descriptor=props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if('value' in descriptor)descriptor.writable = true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();Object.defineProperty(exports,'__esModule',{value:true});function bubbleUp(heap,weightFunc,n){var element=heap[n];var weight=weightFunc(element);while(n > 0) {var parentN=Math.floor((n + 1) / 2) - 1;var _parent=heap[parentN];if(weight >= weightFunc(_parent)){break;}else {heap[parentN] = element;heap[n] = _parent;n = parentN;}}}var bubbleDown=function bubbleDown(heap,weightFunc,n){var length=heap.length;var node=heap[n];var nodeWeight=weightFunc(node);while(true) {var child2N=(n + 1) * 2,child1N=child2N - 1;var swap=null;if(child1N < length){var child1=heap[child1N],child1Weight=weightFunc(child1);if(child1Weight < nodeWeight){swap = child1N;}}if(child2N < length){var child2=heap[child2N],child2Weight=weightFunc(child2);if(child2Weight < (swap === null?nodeWeight:weightFunc(heap[child1N]))){swap = child2N;}}if(swap === null){break;}else {heap[n] = heap[swap];heap[swap] = node;n = swap;}}};var BinaryHeap=(function(){function BinaryHeap(weightFunc,compareFunc){_classCallCheck(this,BinaryHeap);if(!weightFunc){weightFunc = function(x){return x;};}if(!compareFunc){compareFunc = function(x,y){return x === y;};}if(typeof weightFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "weightFunc" must be a function!');}if(typeof compareFunc !== 'function'){throw new Error('BinaryHeap([weightFunc][, compareFunc]): "compareFunc" must be a function!');}this.weightFunc = weightFunc;this.compareFunc = compareFunc;this.heap = [];}_createClass(BinaryHeap,[{key:'push',value:function push(node){this.heap.push(node);bubbleUp(this.heap,this.weightFunc,this.heap.length - 1);}},{key:'peek',value:function peek(){return this.heap[0];}},{key:'pop',value:function pop(){var front=this.heap[0];var end=this.heap.pop();if(this.heap.length > 0){this.heap[0] = end;bubbleDown(this.heap,this.weightFunc,0);}return front;}},{key:'remove',value:function remove(node){var length=this.heap.length;for(var i=0;i < length;i++) {if(this.compareFunc(this.heap[i],node)){var removed=this.heap[i];var end=this.heap.pop();if(i !== length - 1){this.heap[i] = end;bubbleUp(this.heap,this.weightFunc,i);bubbleDown(this.heap,this.weightFunc,i);}return removed;}}return null;}},{key:'removeAll',value:function removeAll(){this.heap = [];}},{key:'size',value:function size(){return this.heap.length;}}]);return BinaryHeap;})();exports['default'] = BinaryHeap;module.exports = exports['default'];}]));});;},function(module,exports,__webpack_require__){function forEach(arr,callback,thisObj){if(arr == null){return;}var i=-1,len=arr.length;while(++i < len) {if(callback.call(thisObj,arr[i],i,arr) === false){break;}}}module.exports = forEach;},function(module,exports,__webpack_require__){function slice(arr,start,end){var len=arr.length;if(start == null){start = 0;}else if(start < 0){start = Math.max(len + start,0);}else {start = Math.min(start,len);}if(end == null){end = len;}else if(end < 0){end = Math.max(len + end,0);}else {end = Math.min(end,len);}var result=[];while(start < end) {result.push(arr[start++]);}return result;}module.exports = slice;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function contains(arr,val){return indexOf(arr,val) !== -1;}module.exports = contains;},function(module,exports,__webpack_require__){var indexOf=__webpack_require__(20);function remove(arr,item){var idx=indexOf(arr,item);if(idx !== -1)arr.splice(idx,1);}module.exports = remove;},function(module,exports,__webpack_require__){function mergeSort(arr,compareFn){if(arr == null){return [];}else if(arr.length < 2){return arr;}if(compareFn == null){compareFn = defaultCompare;}var mid,left,right;mid = ~ ~(arr.length / 2);left = mergeSort(arr.slice(0,mid),compareFn);right = mergeSort(arr.slice(mid,arr.length),compareFn);return merge(left,right,compareFn);}function defaultCompare(a,b){return a < b?-1:a > b?1:0;}function merge(left,right,compareFn){var result=[];while(left.length && right.length) {if(compareFn(left[0],right[0]) <= 0){result.push(left.shift());}else {result.push(right.shift());}}if(left.length){result.push.apply(result,left);}if(right.length){result.push.apply(result,right);}return result;}module.exports = mergeSort;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var forIn=__webpack_require__(22);function forOwn(obj,fn,thisObj){forIn(obj,function(val,key){if(hasOwn(obj,key)){return fn.call(thisObj,obj[key],key,obj);}});}module.exports = forOwn;},function(module,exports,__webpack_require__){var forOwn=__webpack_require__(13);var isPlainObject=__webpack_require__(23);function deepMixIn(target,objects){var i=0,n=arguments.length,obj;while(++i < n) {obj = arguments[i];if(obj){forOwn(obj,copyProp,target);}}return target;}function copyProp(val,key){var existing=this[key];if(isPlainObject(val) && isPlainObject(existing)){deepMixIn(existing,val);}else {this[key] = val;}}module.exports = deepMixIn;},function(module,exports,__webpack_require__){var slice=__webpack_require__(9);function pick(obj,var_keys){var keys=typeof arguments[1] !== 'string'?arguments[1]:slice(arguments,1),out={},i=0,key;while(key = keys[i++]) {out[key] = obj[key];}return out;}module.exports = pick;},function(module,exports,__webpack_require__){var isPrimitive=__webpack_require__(24);function get(obj,prop){var parts=prop.split('.'),last=parts.pop();while(prop = parts.shift()) {obj = obj[prop];if(obj == null)return;}return obj[last];}module.exports = get;},function(module,exports,__webpack_require__){var namespace=__webpack_require__(25);function set(obj,prop,val){var parts=/^(.+)\.(.+)$/.exec(prop);if(parts){namespace(obj,parts[1])[parts[2]] = val;}else {obj[prop] = val;}}module.exports = set;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var camelCase=__webpack_require__(27);var upperCase=__webpack_require__(19);function pascalCase(str){str = toString(str);return camelCase(str).replace(/^[a-z]/,upperCase);}module.exports = pascalCase;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function upperCase(str){str = toString(str);return str.toUpperCase();}module.exports = upperCase;},function(module,exports,__webpack_require__){function indexOf(arr,item,fromIndex){fromIndex = fromIndex || 0;if(arr == null){return -1;}var len=arr.length,i=fromIndex < 0?len + fromIndex:fromIndex;while(i < len) {if(arr[i] === item){return i;}i++;}return -1;}module.exports = indexOf;},function(module,exports,__webpack_require__){function hasOwn(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop);}module.exports = hasOwn;},function(module,exports,__webpack_require__){var hasOwn=__webpack_require__(21);var _hasDontEnumBug,_dontEnums;function checkDontEnum(){_dontEnums = ['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'];_hasDontEnumBug = true;for(var key in {'toString':null}) {_hasDontEnumBug = false;}}function forIn(obj,fn,thisObj){var key,i=0;if(_hasDontEnumBug == null)checkDontEnum();for(key in obj) {if(exec(fn,obj,key,thisObj) === false){break;}}if(_hasDontEnumBug){var ctor=obj.constructor,isProto=!!ctor && obj === ctor.prototype;while(key = _dontEnums[i++]) {if((key !== 'constructor' || !isProto && hasOwn(obj,key)) && obj[key] !== Object.prototype[key]){if(exec(fn,obj,key,thisObj) === false){break;}}}}}function exec(fn,obj,key,thisObj){return fn.call(thisObj,obj[key],key,obj);}module.exports = forIn;},function(module,exports,__webpack_require__){function isPlainObject(value){return !!value && typeof value === 'object' && value.constructor === Object;}module.exports = isPlainObject;},function(module,exports,__webpack_require__){function isPrimitive(value){switch(typeof value){case 'string':case 'number':case 'boolean':return true;}return value == null;}module.exports = isPrimitive;},function(module,exports,__webpack_require__){var forEach=__webpack_require__(8);function namespace(obj,path){if(!path)return obj;forEach(path.split('.'),function(key){if(!obj[key]){obj[key] = {};}obj = obj[key];});return obj;}module.exports = namespace;},function(module,exports,__webpack_require__){function toString(val){return val == null?'':val.toString();}module.exports = toString;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var replaceAccents=__webpack_require__(43);var removeNonWord=__webpack_require__(44);var upperCase=__webpack_require__(19);var lowerCase=__webpack_require__(45);function camelCase(str){str = toString(str);str = replaceAccents(str);str = removeNonWord(str).replace(/[\-_]/g,' ').replace(/\s[a-z]/g,upperCase).replace(/\s+/g,'').replace(/^[A-Z]/g,lowerCase);return str;}module.exports = camelCase;},function(module,exports,__webpack_require__){exports['default'] = defineResource;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);var instanceMethods=['compute','eject','refresh','save','update','destroy','loadRelations','changeHistory','changes','hasChanges','lastModified','lastSaved','previous'];function defineResource(definition){var _this=this;var definitions=_this.defs;if(_utils['default']._s(definition)){definition = {name:definition.replace(/\s/gi,'')};}if(!_utils['default']._o(definition)){throw _utils['default']._oErr('definition');}else if(!_utils['default']._s(definition.name)){throw new _errors['default'].IA('"name" must be a string!');}else if(definitions[definition.name]){throw new _errors['default'].R(definition.name + ' is already registered!');}function Resource(options){this.defaultValues = {};this.methods = {};this.computed = {};_utils['default'].deepMixIn(this,options);var parent=_this.defaults;if(definition['extends'] && definitions[definition['extends']]){parent = definitions[definition['extends']];}_utils['default'].fillIn(this.defaultValues,parent.defaultValues);_utils['default'].fillIn(this.methods,parent.methods);_utils['default'].fillIn(this.computed,parent.computed);this.endpoint = 'endpoint' in options?options.endpoint:this.name;}try{var def;var _class;var _ret=(function(){if(definition['extends'] && definitions[definition['extends']]){Resource.prototype = definitions[definition['extends']];}else {Resource.prototype = _this.defaults;}definitions[definition.name] = new Resource(definition);def = definitions[definition.name];def.getResource = function(resourceName){return _this.defs[resourceName];};def.logFn('Preparing resource.');if(!_utils['default']._s(def.idAttribute)){throw new _errors['default'].IA('"idAttribute" must be a string!');}if(def.relations){def.relationList = [];def.relationFields = [];_utils['default'].forOwn(def.relations,function(relatedModels,type){_utils['default'].forOwn(relatedModels,function(defs,relationName){if(!_utils['default']._a(defs)){relatedModels[relationName] = [defs];}_utils['default'].forEach(relatedModels[relationName],function(d){d.type = type;d.relation = relationName;d.name = def.name;def.relationList.push(d);if(d.localField){def.relationFields.push(d.localField);}});});});if(def.relations.belongsTo){_utils['default'].forOwn(def.relations.belongsTo,function(relatedModel,modelName){_utils['default'].forEach(relatedModel,function(relation){if(relation.parent){def.parent = modelName;def.parentKey = relation.localKey;def.parentField = relation.localField;}});});}if(typeof Object.freeze === 'function'){Object.freeze(def.relations);Object.freeze(def.relationList);}}_class = def['class'] = _utils['default'].pascalCase(def.name);try{if(typeof def.useClass === 'function'){eval('function ' + _class + '() { def.useClass.call(this); }');def[_class] = eval(_class);def[_class].prototype = (function(proto){function Ctor(){}Ctor.prototype = proto;return new Ctor();})(def.useClass.prototype);}else {eval('function ' + _class + '() {}');def[_class] = eval(_class);}}catch(e) {def[_class] = function(){};}_utils['default'].forOwn(def.methods,function(fn,m){def[_class].prototype[m] = fn;});def[_class].prototype.set = function(key,value){var _this2=this;_utils['default'].set(this,key,value);def.compute(this);if(def.instanceEvents){setTimeout(function(){_this2.emit('DS.change',def,_this2);},0);}def.handleChange(this);return this;};def[_class].prototype.get = function(key){return _utils['default'].get(this,key);};if(def.instanceEvents){_utils['default'].Events(def[_class].prototype);}_utils['default'].applyRelationGettersToTarget(_this,def,def[_class].prototype);var parentOmit=null;if(!def.hasOwnProperty('omit')){parentOmit = def.omit;def.omit = [];}else {parentOmit = _this.defaults.omit;}def.omit = def.omit.concat(parentOmit || []);_utils['default'].forOwn(def.computed,function(fn,field){if(_utils['default'].isFunction(fn)){def.computed[field] = [fn];fn = def.computed[field];}if(def.methods && field in def.methods){def.errorFn('Computed property "' + field + '" conflicts with previously defined prototype method!');}def.omit.push(field);var deps;if(fn.length === 1){var match=fn[0].toString().match(/function.*?\(([\s\S]*?)\)/);deps = match[1].split(',');def.computed[field] = deps.concat(fn);fn = def.computed[field];if(deps.length){def.errorFn('Use the computed property array syntax for compatibility with minified code!');}}deps = fn.slice(0,fn.length - 1);_utils['default'].forEach(deps,function(val,index){deps[index] = val.trim();});fn.deps = _utils['default'].filter(deps,function(dep){return !!dep;});});_utils['default'].forEach(instanceMethods,function(name){def[_class].prototype['DS' + _utils['default'].pascalCase(name)] = function(){for(var _len=arguments.length,args=Array(_len),_key=0;_key < _len;_key++) {args[_key] = arguments[_key];}args.unshift(this[def.idAttribute] || this);args.unshift(def.name);return _this[name].apply(_this,args);};});def[_class].prototype.DSCreate = function(){for(var _len2=arguments.length,args=Array(_len2),_key2=0;_key2 < _len2;_key2++) {args[_key2] = arguments[_key2];}args.unshift(this);args.unshift(def.name);return _this.create.apply(_this,args);};_this.s[def.name] = {collection:[],expiresHeap:new _utils['default'].BinaryHeap(function(x){return x.expires;},function(x,y){return x.item === y;}),completedQueries:{},queryData:{},pendingQueries:{},index:{},modified:{},saved:{},previousAttributes:{},observers:{},changeHistories:{},changeHistory:[],collectionModified:0};var resource=_this.s[def.name];if(def.reapInterval){setInterval(function(){return def.reap();},def.reapInterval);}var fns=['registerAdapter','getAdapterName','getAdapter','is'];for(var key in _this) {if(typeof _this[key] === 'function'){fns.push(key);}}_utils['default'].forEach(fns,function(key){var k=key;if(_this[k].shorthand !== false){def[k] = function(){for(var _len3=arguments.length,args=Array(_len3),_key3=0;_key3 < _len3;_key3++) {args[_key3] = arguments[_key3];}args.unshift(def.name);return _this[k].apply(_this,args);};def[k].before = function(fn){var orig=def[k];def[k] = function(){for(var _len4=arguments.length,args=Array(_len4),_key4=0;_key4 < _len4;_key4++) {args[_key4] = arguments[_key4];}return orig.apply(def,fn.apply(def,args) || args);};};}else {def[k] = function(){for(var _len5=arguments.length,args=Array(_len5),_key5=0;_key5 < _len5;_key5++) {args[_key5] = arguments[_key5];}return _this[k].apply(_this,args);};}});def.beforeValidate = _utils['default'].promisify(def.beforeValidate);def.validate = _utils['default'].promisify(def.validate);def.afterValidate = _utils['default'].promisify(def.afterValidate);def.beforeCreate = _utils['default'].promisify(def.beforeCreate);def.afterCreate = _utils['default'].promisify(def.afterCreate);def.beforeUpdate = _utils['default'].promisify(def.beforeUpdate);def.afterUpdate = _utils['default'].promisify(def.afterUpdate);def.beforeDestroy = _utils['default'].promisify(def.beforeDestroy);def.afterDestroy = _utils['default'].promisify(def.afterDestroy);var defaultAdapter=undefined;if(def.hasOwnProperty('defaultAdapter')){defaultAdapter = def.defaultAdapter;}_utils['default'].forOwn(def.actions,function(action,name){if(def[name] && !def.actions[name]){throw new Error('Cannot override existing method "' + name + '"!');}action.request = action.request || function(config){return config;};action.response = action.response || function(response){return response;};action.responseError = action.responseError || function(err){return _utils['default'].Promise.reject(err);};def[name] = function(id,options){if(_utils['default']._o(id)){options = id;}options = options || {};var adapter=def.getAdapter(action.adapter || defaultAdapter || 'http');var config=_utils['default'].deepMixIn({},action);if(!options.hasOwnProperty('endpoint') && config.endpoint){options.endpoint = config.endpoint;}if(typeof options.getEndpoint === 'function'){config.url = options.getEndpoint(def,options);}else {var args=[options.basePath || adapter.defaults.basePath || def.basePath,adapter.getEndpoint(def,_utils['default']._sn(id)?id:null,options)];if(_utils['default']._sn(id)){args.push(id);}args.push(action.pathname || name);config.url = _utils['default'].makePath.apply(null,args);}config.method = config.method || 'GET';_utils['default'].deepMixIn(config,options);return new _utils['default'].Promise(function(r){return r(config);}).then(options.request || action.request).then(function(config){return adapter.HTTP(config);}).then(options.response || action.response,options.responseError || action.responseError);};});_utils['default'].Events(def);def.handleChange = function(data){resource.collectionModified = _utils['default'].updateTimestamp(resource.collectionModified);if(def.notify){setTimeout(function(){def.emit('DS.change',def,data);},0);}};def.logFn('Done preparing resource.');return {v:def};})();if(typeof _ret === 'object')return _ret.v;}catch(err) {_this.defaults.errorFn(err);delete definitions[definition.name];delete _this.s[definition.name];throw err;}}},function(module,exports,__webpack_require__){exports['default'] = eject;function eject(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined;var found=false;id = DSUtils.resolveId(definition,id);if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._sn(id)){throw DSUtils._snErr('id');}options = DSUtils._(definition,options);options.logFn('eject',id,options);for(var i=0;i < resource.collection.length;i++) {if(resource.collection[i][definition.idAttribute] == id){item = resource.collection[i];resource.expiresHeap.remove(item);found = true;break;}}if(found){var _ret=(function(){definition.beforeEject(options,item);if(options.notify){definition.emit('DS.beforeEject',definition,item);}var toRemove=[];DSUtils.forOwn(resource.queryData,function(items,queryHash){if(items.$$injected){DSUtils.remove(items,item);}if(!items.length && options.clearEmptyQueries){toRemove.push(queryHash);}});DSUtils.forEach(resource.changeHistories[id],function(changeRecord){DSUtils.remove(resource.changeHistory,changeRecord);});DSUtils.forEach(toRemove,function(queryHash){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];});if(DSUtils.w){resource.observers[id].close();}delete resource.observers[id];delete resource.index[id];delete resource.previousAttributes[id];delete resource.completedQueries[id];delete resource.pendingQueries[id];delete resource.changeHistories[id];delete resource.modified[id];delete resource.saved[id];resource.collection.splice(i,1);definition.handleChange(item);definition.afterEject(options,item);if(options.notify){definition.emit('DS.afterEject',definition,item);}return {v:item};})();if(typeof _ret === 'object')return _ret.v;}}},function(module,exports,__webpack_require__){exports['default'] = ejectAll;function ejectAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];params = params || {};if(!definition){throw new _this.errors.NER(resourceName);}else if(!DSUtils._o(params)){throw DSUtils._oErr('params');}definition.logFn('ejectAll',params,options);var resource=_this.s[resourceName];var queryHash=DSUtils.toJson(params);var items=definition.filter(params);var ids=[];if(DSUtils.isEmpty(params)){resource.completedQueries = {};}else {delete resource.completedQueries[queryHash];}DSUtils.forEach(items,function(item){if(item && item[definition.idAttribute]){ids.push(item[definition.idAttribute]);}});DSUtils.forEach(ids,function(id){definition.eject(id,options);});definition.handleChange(items);return items;}},function(module,exports,__webpack_require__){exports['default'] = filter;function filter(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];if(!definition){throw new _this.errors.NER(resourceName);}else if(params && !DSUtils._o(params)){throw DSUtils._oErr('params');}params = params || {};options = DSUtils._(definition,options);options.logFn('filter',params,options);return definition.defaultFilter.call(_this,_this.s[resourceName].collection,resourceName,params,options);}},function(module,exports,__webpack_require__){exports['default'] = inject;var _utils=__webpack_require__(2);var _errors=__webpack_require__(3);function makeObserverHandler(definition,resource){var DS=this;var name=definition.name;return function _react(added,removed,changed,oldValueFn,firstTime){var target=this;var item=undefined;var innerId=oldValueFn && oldValueFn(definition.idAttribute)?oldValueFn(definition.idAttribute):target[definition.idAttribute];_utils['default'].forEach(definition.relationFields,function(field){delete added[field];delete removed[field];delete changed[field];});if(!_utils['default'].isEmpty(added) || !_utils['default'].isEmpty(removed) || !_utils['default'].isEmpty(changed) || firstTime){item = DS.get(name,innerId);resource.modified[innerId] = _utils['default'].updateTimestamp(resource.modified[innerId]);if(item && definition.instanceEvents){setTimeout(function(){item.emit('DS.change',definition,item);},0);}definition.handleChange(item);if(definition.keepChangeHistory){var changeRecord={resourceName:name,target:item,added:added,removed:removed,changed:changed,timestamp:resource.modified[innerId]};resource.changeHistories[innerId].push(changeRecord);resource.changeHistory.push(changeRecord);}}if(definition.computed){item = item || DS.get(name,innerId);_utils['default'].forOwn(definition.computed,function(fn,field){var compute=false;_utils['default'].forEach(fn.deps,function(dep){if(dep in added || dep in removed || dep in changed || !(field in item)){compute = true;}});compute = compute || !fn.deps.length;if(compute){_utils['default'].compute.call(item,fn,field);}});}if(definition.idAttribute in changed){definition.errorFn('Doh! You just changed the primary key of an object! Your data for the "' + name + '" resource is now in an undefined (probably broken) state.');}};}function _inject(definition,resource,attrs,options){var _this=this;var injected=undefined;if(_utils['default']._a(attrs)){injected = [];for(var i=0;i < attrs.length;i++) {injected.push(_inject.call(_this,definition,resource,attrs[i],options));}}else {var _react=makeObserverHandler.call(_this,definition,resource);var c=definition.computed;var idA=definition.idAttribute;if(c && c[idA]){(function(){var args=[];_utils['default'].forEach(c[idA].deps,function(dep){args.push(attrs[dep]);});attrs[idA] = c[idA][c[idA].length - 1].apply(attrs,args);})();}if(!(idA in attrs)){var error=new _errors['default'].R(definition.name + '.inject: "attrs" must contain the property specified by "idAttribute"!');options.errorFn(error);throw error;}else {try{(function(){_utils['default'].forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=_this.defs[relationName];var toInject=attrs[def.localField];if(toInject){if(!relationDef){throw new _errors['default'].R(definition.name + ' relation is defined but the resource is not!');}if(_utils['default']._a(toInject)){(function(){var items=[];_utils['default'].forEach(toInject,function(toInjectItem){if(toInjectItem !== _this.s[relationName].index[toInjectItem[relationDef.idAttribute]]){try{var injectedItem=relationDef.inject(toInjectItem,options.orig());if(def.foreignKey){injectedItem[def.foreignKey] = attrs[definition.idAttribute];}items.push(injectedItem);}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}});})();}else {if(toInject !== _this.s[relationName].index[toInject[relationDef.idAttribute]]){try{var _injected=relationDef.inject(attrs[def.localField],options.orig());if(def.foreignKey){_injected[def.foreignKey] = attrs[definition.idAttribute];}}catch(err) {options.errorFn(err,'Failed to inject ' + def.type + ' relation: "' + relationName + '"!');}}}}});var id=attrs[idA];var item=definition.get(id);var initialLastModified=item?resource.modified[id]:0;if(!item){if(attrs instanceof definition[definition['class']]){item = attrs;}else {item = new definition[definition['class']]();}_utils['default'].forEach(definition.relationList,function(def){delete attrs[def.localField];});_utils['default'].deepMixIn(item,attrs);resource.collection.push(item);resource.changeHistories[id] = [];if(_utils['default'].w){resource.observers[id] = new _this.observe.ObjectObserver(item);resource.observers[id].open(_react,item);}resource.index[id] = item;_react.call(item,{},{},{},null,true);resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);}else {if(options.onConflict === 'merge'){_utils['default'].deepMixIn(item,attrs);}else if(options.onConflict === 'replace'){_utils['default'].forOwn(item,function(v,k){if(k !== definition.idAttribute){if(!attrs.hasOwnProperty(k)){delete item[k];}}});_utils['default'].forOwn(attrs,function(v,k){if(k !== definition.idAttribute){item[k] = v;}});}if(definition.resetHistoryOnInject){resource.previousAttributes[id] = _utils['default'].copy(item,null,null,null,definition.relationFields);if(resource.changeHistories[id].length){_utils['default'].forEach(resource.changeHistories[id],function(changeRecord){_utils['default'].remove(resource.changeHistory,changeRecord);});resource.changeHistories[id].splice(0,resource.changeHistories[id].length);}}if(_utils['default'].w){resource.observers[id].deliver();}}resource.modified[id] = initialLastModified && resource.modified[id] === initialLastModified?_utils['default'].updateTimestamp(resource.modified[id]):resource.modified[id];resource.expiresHeap.remove(item);var timestamp=new Date().getTime();resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});injected = item;})();}catch(err) {options.errorFn(err,attrs);}}}return injected;}function inject(resourceName,attrs,options){var _this=this;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var injected=undefined;if(!definition){throw new _errors['default'].NER(resourceName);}else if(!_utils['default']._o(attrs) && !_utils['default']._a(attrs)){throw new _errors['default'].IA(resourceName + '.inject: "attrs" must be an object or an array!');}options = _utils['default']._(definition,options);options.logFn('inject',attrs,options);options.beforeInject(options,attrs);if(options.notify){definition.emit('DS.beforeInject',definition,attrs);}injected = _inject.call(_this,definition,resource,attrs,options);definition.handleChange(injected);options.afterInject(options,injected);if(options.notify){definition.emit('DS.afterInject',definition,injected);}return injected;}},function(module,exports,__webpack_require__){exports['default'] = create;function create(resourceName,attrs,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var adapter=undefined;options = options || {};attrs = attrs || {};var rejectionError=undefined;if(!definition){rejectionError = new _this.errors.NER(resourceName);}else if(!DSUtils._o(attrs)){rejectionError = DSUtils._oErr('attrs');}else {options = DSUtils._(definition,options);if(options.upsert && DSUtils._sn(attrs[definition.idAttribute])){return _this.update(resourceName,attrs[definition.idAttribute],attrs,options);}options.logFn('create',attrs,options);}return new DSUtils.Promise(function(resolve,reject){if(rejectionError){reject(rejectionError);}else {resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeCreate',definition,attrs);}adapter = _this.getAdapterName(options);return _this.adapters[adapter].create(definition,DSUtils.omit(attrs,options.omit),options);}).then(function(attrs){return options.afterCreate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.afterCreate',definition,attrs);}if(options.cacheResponse){var created=_this.inject(definition.name,attrs,options.orig());var id=created[definition.idAttribute];var resource=_this.s[resourceName];resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return created;}else {return _this.createInstance(resourceName,attrs,options);}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = destroy;function destroy(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var item=undefined;var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {item = definition.get(id) || {id:id};options = DSUtils._(definition,options);options.logFn('destroy',id,options);resolve(item);}}).then(function(attrs){return options.beforeDestroy.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeDestroy',definition,attrs);}if(options.eagerEject){definition.eject(id);}adapter = definition.getAdapter(options);return adapter.destroy(definition,id,options);}).then(function(){return options.afterDestroy.call(item,options,item);}).then(function(item){if(options.notify){definition.emit('DS.afterDestroy',definition,item);}definition.eject(id);return DSUtils.respond(id,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && item){definition.inject(item,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = destroyAll;function destroyAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var ejected=undefined,toEject=undefined,adapter=undefined;params = params || {};return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('attrs'));}else {options = DSUtils._(definition,options);options.logFn('destroyAll',params,options);resolve();}}).then(function(){toEject = definition.defaultFilter.call(_this,resourceName,params);return options.beforeDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.beforeDestroy',definition,toEject);}if(options.eagerEject){ejected = definition.ejectAll(params);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].destroyAll(definition,params,options);}).then(function(){return options.afterDestroy(options,toEject);}).then(function(){if(options.notify){definition.emit('DS.afterDestroy',definition,toEject);}return ejected || definition.ejectAll(params);}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(options && options.eagerEject && ejected){definition.inject(ejected,{notify:false});}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = find;function find(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('find',id,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[id];}if((!options.findStrictCache || id in resource.completedQueries) && definition.get(id) && !options.bypassCache){resolve(definition.get(id));}else {delete resource.completedQueries[id];resolve();}}}).then(function(item){if(!item){if(!(id in resource.pendingQueries)){var promise=undefined;var strategy=options.findStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].find(definition,id,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].find(definition,id,options);}resource.pendingQueries[id] = promise.then(function(data){delete resource.pendingQueries[id];if(options.cacheResponse){var injected=definition.inject(data,options.orig());resource.completedQueries[id] = new Date().getTime();resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);return injected;}else {return definition.createInstance(data,options.orig());}});}return resource.pendingQueries[id];}else {return item;}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[id];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = findAll;function processResults(data,resourceName,queryHash,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var idAttribute=_this.defs[resourceName].idAttribute;var date=new Date().getTime();data = data || [];delete resource.pendingQueries[queryHash];resource.completedQueries[queryHash] = date;var injected=definition.inject(data,options.orig());if(DSUtils._a(injected)){DSUtils.forEach(injected,function(item){if(item){var id=item[idAttribute];if(id){resource.completedQueries[id] = date;resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);}}});}else {options.errorFn('response is expected to be an array!');resource.completedQueries[injected[idAttribute]] = date;}return injected;}function findAll(resourceName,params,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var queryHash=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){params = params || {};if(!_this.defs[resourceName]){reject(new _this.errors.NER(resourceName));}else if(!DSUtils._o(params)){reject(DSUtils._oErr('params'));}else {options = DSUtils._(definition,options);queryHash = DSUtils.toJson(params);options.logFn('findAll',params,options);if(options.params){options.params = DSUtils.copy(options.params);}if(options.bypassCache || !options.cacheResponse){delete resource.completedQueries[queryHash];delete resource.queryData[queryHash];}if(queryHash in resource.completedQueries){if(options.useFilter){resolve(definition.filter(params,options.orig()));}else {resolve(resource.queryData[queryHash]);}}else {resolve();}}}).then(function(items){if(!(queryHash in resource.completedQueries)){if(!(queryHash in resource.pendingQueries)){var promise=undefined;var strategy=options.findAllStrategy || options.strategy;if(strategy === 'fallback'){(function(){var makeFallbackCall=function makeFallbackCall(index){adapter = definition.getAdapterName((options.findAllFallbackAdapters || options.fallbackAdapters)[index]);return _this.adapters[adapter].findAll(definition,params,options)['catch'](function(err){index++;if(index < options.fallbackAdapters.length){return makeFallbackCall(index);}else {return DSUtils.Promise.reject(err);}});};promise = makeFallbackCall(0);})();}else {adapter = definition.getAdapterName(options);promise = _this.adapters[adapter].findAll(definition,params,options);}resource.pendingQueries[queryHash] = promise.then(function(data){delete resource.pendingQueries[queryHash];if(options.cacheResponse){resource.queryData[queryHash] = processResults.call(_this,data,resourceName,queryHash,options);resource.queryData[queryHash].$$injected = true;return resource.queryData[queryHash];}else {DSUtils.forEach(data,function(item,i){data[i] = definition.createInstance(item,options.orig());});return data;}});}return resource.pendingQueries[queryHash];}else {return items;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);})['catch'](function(err){if(resource){delete resource.pendingQueries[queryHash];}return DSUtils.Promise.reject(err);});}},function(module,exports,__webpack_require__){exports['default'] = loadRelations;function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else {obj[key] = value;}return obj;}function loadRelations(resourceName,instance,relations,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];return new DSUtils.Promise(function(resolve,reject){if(DSUtils._sn(instance)){instance = definition.get(instance);}if(DSUtils._s(relations)){relations = [relations];}relations = relations || [];if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._o(instance)){reject(new DSErrors.IA('"instance(id)" must be a string, number or object!'));}else if(!DSUtils._a(relations)){reject(new DSErrors.IA('"relations" must be a string or an array!'));}else {(function(){var _options=DSUtils._(definition,options);_options.logFn('loadRelations',instance,relations,_options);var tasks=[];DSUtils.forEach(definition.relationList,function(def){var relationName=def.relation;var relationDef=definition.getResource(relationName);var __options=DSUtils._(relationDef,options);if(!relations.length || DSUtils.contains(relations,relationName) || DSUtils.contains(relations,def.localField)){var task=undefined;var params={};if(__options.allowSimpleWhere){params[def.foreignKey] = instance[definition.idAttribute];}else {params.where = {};params.where[def.foreignKey] = {'==':instance[definition.idAttribute]};}if(def.type === 'hasMany'){if(def.localKeys){delete params[def.foreignKey];params.where = _defineProperty({},relationDef.idAttribute,{'in':instance[def.localKeys]});}task = relationDef.findAll(params,__options.orig());}else if(def.type === 'hasOne'){if(def.localKey && instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}else if(def.foreignKey){task = relationDef.findAll(params,__options.orig()).then(function(hasOnes){return hasOnes.length?hasOnes[0]:null;});}}else if(instance[def.localKey]){task = relationDef.find(instance[def.localKey],__options.orig());}if(task){tasks.push(task);}}});resolve(tasks);})();}}).then(function(tasks){return DSUtils.Promise.all(tasks);}).then(function(){return instance;});}},function(module,exports,__webpack_require__){exports['default'] = reap;function reap(resourceName,options){var _this=this;var DSUtils=_this.utils;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new _this.errors.NER(resourceName));}else {options = DSUtils._(definition,options);if(!options.hasOwnProperty('notify')){options.notify = false;}options.logFn('reap',options);var items=[];var now=new Date().getTime();var expiredItem=undefined;while((expiredItem = resource.expiresHeap.peek()) && expiredItem.expires < now) {items.push(expiredItem.item);delete expiredItem.item;resource.expiresHeap.pop();}resolve(items);}}).then(function(items){if(items.length){definition.beforeReap(options,items);if(options.notify){definition.emit('DS.beforeReap',definition,items);}}if(options.reapAction === 'inject'){(function(){var timestamp=new Date().getTime();DSUtils.forEach(items,function(item){resource.expiresHeap.push({item:item,timestamp:timestamp,expires:definition.maxAge?timestamp + definition.maxAge:Number.MAX_VALUE});});})();}else if(options.reapAction === 'eject'){DSUtils.forEach(items,function(item){definition.eject(item[definition.idAttribute]);});}else if(options.reapAction === 'refresh'){var _ret2=(function(){var tasks=[];DSUtils.forEach(items,function(item){tasks.push(definition.refresh(item[definition.idAttribute]));});return {v:DSUtils.Promise.all(tasks)};})();if(typeof _ret2 === 'object')return _ret2.v;}return items;}).then(function(items){if(items.length){definition.afterReap(options,items);if(options.notify){definition.emit('DS.afterReap',definition,items);}}return items;});}},function(module,exports,__webpack_require__){exports['default'] = save;function save(resourceName,id,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var resource=_this.s[resourceName];var item=undefined,noChanges=undefined,adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else if(!definition.get(id)){reject(new DSErrors.R('id "' + id + '" not found in cache!'));}else {item = definition.get(id);options = DSUtils._(definition,options);options.logFn('save',id,options);resolve(item);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}if(options.changesOnly){if(DSUtils.w){resource.observers[id].deliver();}var toKeep=[];var changes=definition.changes(id);for(var key in changes.added) {toKeep.push(key);}for(key in changes.changed) {toKeep.push(key);}changes = DSUtils.pick(attrs,toKeep);if(DSUtils.isEmpty(changes)){options.logFn('save - no changes',id,options);noChanges = true;return attrs;}else {attrs = changes;}}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(noChanges){return attrs;}else if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = update;function update(resourceName,id,attrs,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){id = DSUtils.resolveId(definition,id);if(!definition){reject(new DSErrors.NER(resourceName));}else if(!DSUtils._sn(id)){reject(DSUtils._snErr('id'));}else {options = DSUtils._(definition,options);options.logFn('update',id,attrs,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].update(definition,id,DSUtils.omit(attrs,options.omit),options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(attrs){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}if(options.cacheResponse){var injected=definition.inject(attrs,options.orig());var resource=_this.s[resourceName];var _id=injected[definition.idAttribute];resource.saved[_id] = DSUtils.updateTimestamp(resource.saved[_id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[_id] = DSUtils.copy(injected,null,null,null,definition.relationFields);}return injected;}else {return definition.createInstance(attrs,options.orig());}}).then(function(item){return DSUtils.respond(item,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){exports['default'] = updateAll;function updateAll(resourceName,attrs,params,options){var _this=this;var DSUtils=_this.utils;var DSErrors=_this.errors;var definition=_this.defs[resourceName];var adapter=undefined;return new DSUtils.Promise(function(resolve,reject){if(!definition){reject(new DSErrors.NER(resourceName));}else {options = DSUtils._(definition,options);options.logFn('updateAll',attrs,params,options);resolve(attrs);}}).then(function(attrs){return options.beforeValidate.call(attrs,options,attrs);}).then(function(attrs){return options.validate.call(attrs,options,attrs);}).then(function(attrs){return options.afterValidate.call(attrs,options,attrs);}).then(function(attrs){return options.beforeUpdate.call(attrs,options,attrs);}).then(function(attrs){if(options.notify){definition.emit('DS.beforeUpdate',definition,attrs);}adapter = definition.getAdapterName(options);return _this.adapters[adapter].updateAll(definition,DSUtils.omit(attrs,options.omit),params,options);}).then(function(data){return options.afterUpdate.call(data,options,data);}).then(function(data){if(options.notify){definition.emit('DS.afterUpdate',definition,attrs);}var origOptions=options.orig();if(options.cacheResponse){var _ret=(function(){var injected=definition.inject(data,origOptions);var resource=_this.s[resourceName];DSUtils.forEach(injected,function(i){var id=i[definition.idAttribute];resource.saved[id] = DSUtils.updateTimestamp(resource.saved[id]);if(!definition.resetHistoryOnInject){resource.previousAttributes[id] = DSUtils.copy(i,null,null,null,definition.relationFields);}});return {v:injected};})();if(typeof _ret === 'object')return _ret.v;}else {var _ret2=(function(){var instances=[];DSUtils.forEach(data,function(item){instances.push(definition.createInstance(item,origOptions));});return {v:instances};})();if(typeof _ret2 === 'object')return _ret2.v;}}).then(function(items){return DSUtils.respond(items,{adapter:adapter},options);});}},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function replaceAccents(str){str = toString(str);if(str.search(/[\xC0-\xFF]/g) > -1){str = str.replace(/[\xC0-\xC5]/g,'A').replace(/[\xC6]/g,'AE').replace(/[\xC7]/g,'C').replace(/[\xC8-\xCB]/g,'E').replace(/[\xCC-\xCF]/g,'I').replace(/[\xD0]/g,'D').replace(/[\xD1]/g,'N').replace(/[\xD2-\xD6\xD8]/g,'O').replace(/[\xD9-\xDC]/g,'U').replace(/[\xDD]/g,'Y').replace(/[\xDE]/g,'P').replace(/[\xE0-\xE5]/g,'a').replace(/[\xE6]/g,'ae').replace(/[\xE7]/g,'c').replace(/[\xE8-\xEB]/g,'e').replace(/[\xEC-\xEF]/g,'i').replace(/[\xF1]/g,'n').replace(/[\xF2-\xF6\xF8]/g,'o').replace(/[\xF9-\xFC]/g,'u').replace(/[\xFE]/g,'p').replace(/[\xFD\xFF]/g,'y');}return str;}module.exports = replaceAccents;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);var PATTERN=/[^\x20\x2D0-9A-Z\x5Fa-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]/g;function removeNonWord(str){str = toString(str);return str.replace(PATTERN,'');}module.exports = removeNonWord;},function(module,exports,__webpack_require__){var toString=__webpack_require__(26);function lowerCase(str){str = toString(str);return str.toLowerCase();}module.exports = lowerCase;}]));}); - -/***/ } -/******/ ]); \ No newline at end of file From c3558a6b4ed3ef087cb53fa713ab6609ce1f53e0 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Thu, 2 Jul 2015 19:33:19 -0400 Subject: [PATCH 16/32] Stable Version 3.0.0 --- CHANGELOG.md | 4 ++++ bower.json | 4 ++-- package.json | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1652ad..a2352b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +##### 3.0.0 - 02 July 2015 + +Stable Version 3.0.0 + ##### 3.0.0-rc.1 - 28 June 2015 Stable Version 3.0.0-rc.1 diff --git a/bower.json b/bower.json index c5ea6fd..5679625 100644 --- a/bower.json +++ b/bower.json @@ -22,8 +22,8 @@ "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { - "js-data": "2.0.0-rc.1", - "js-data-http": "2.0.0-rc.1", + "js-data": ">=2.0.0", + "js-data-http": ">=2.0.0", "angular": ">=1.1.0" } } diff --git a/package.json b/package.json index fed3d8b..6e60a6e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.0.0-rc.1", + "version": "3.0.0", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -49,9 +49,9 @@ }, "peerDependencies": { "angular": ">=1.1.0", - "js-data": "2.0.0-rc.1" + "js-data": ">=2.0.0" }, "dependencies": { - "js-data-http": "2.0.0-rc.1" + "js-data-http": ">=2.0.0" } } From 65dbe3e4ee4ee5f45330e24a4014b2baa7082640 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Thu, 2 Jul 2015 19:35:42 -0400 Subject: [PATCH 17/32] 3.0.0 --- README.md | 2 ++ dist/js-data-angular.js | 2 +- dist/js-data-angular.min.js | 2 +- package.json | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index caf9d4d..2b68e74 100644 --- a/README.md +++ b/README.md @@ -99,6 +99,8 @@ app.controller('postCtrl', function ($scope, $routeParams, Post, Comment) { [CHANGELOG.md](https://github.com/js-data/js-data-angular/blob/master/CHANGELOG.md) ### Community +- [Gitter Channel](https://gitter.im/js-data/js-data) - Better than IRC! +- [Announcements](http://www.js-data.io/blog) - [Mailing List](https://groups.io/org/groupsio/jsdata) - Ask your questions! - [Issues](https://github.com/js-data/js-data-angular/issues) - Found a bug? Feature request? Submit an issue! - [GitHub](https://github.com/js-data/js-data-angular) - View the source code for js-data. diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index c8d910f..988d5ee 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 3.0.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 6930ad8..1d88e7c 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.0.0-rc.1 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 3.0.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> diff --git a/package.json b/package.json index 6e60a6e..a347d37 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,9 @@ "grunt-contrib-clean": "0.6.0", "grunt-contrib-uglify": "0.9.1", "grunt-contrib-watch": "0.6.1", - "grunt-karma": "0.11.1", + "grunt-karma": "0.11.2", "grunt-karma-coveralls": "2.5.3", - "grunt-webpack": "1.0.10", + "grunt-webpack": "1.0.11", "jit-grunt": "0.9.1", "jshint-loader": "0.8.3", "karma": "0.12.37", From 6f700f89dd53223f2d006434b8f15f38641dc4f2 Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Sun, 20 Sep 2015 22:16:34 +0000 Subject: [PATCH 18/32] Fixes #335. Stable Version 3.1.0 --- .jshintrc | 1 + CHANGELOG.md | 11 ++ CONTRIBUTING.md | 24 +++-- Gruntfile.js | 31 ++++++ README.md | 24 +++-- dist/js-data-angular.js | 184 +++++++++++++++++++--------------- dist/js-data-angular.min.js | 4 +- dist/js-data-angular.min.map | 2 +- package.json | 27 +++-- src/index.js | 188 +++++++++++++++++------------------ 10 files changed, 294 insertions(+), 202 deletions(-) diff --git a/.jshintrc b/.jshintrc index eed0c57..c58b501 100644 --- a/.jshintrc +++ b/.jshintrc @@ -3,6 +3,7 @@ "browser": true, "esnext": true, "bitwise": true, + "asi": true, "camelcase": true, "curly": true, "eqeqeq": true, diff --git a/CHANGELOG.md b/CHANGELOG.md index a2352b7..976736c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +##### 3.1.1 - 20 September 2015 + +Stable Version 3.1.0 + +###### Backwards compatible API changes +- #335 - Calling $q.reject in http interceptor doesn't resolve to calling reject handler in DS.findAll.then + +###### Other +- Built with js-data-http 2.1.1 +- Upgraded dependencies + ##### 3.0.0 - 02 July 2015 Stable Version 3.0.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a086c59..7eb0c5b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,12 +1,24 @@ # Contributing Guide -First, feel free to contact me with questions. [Mailing List](https://groups.google.com/forum/?fromgroups#!forum/js-data-angular). [Issues](https://github.com/js-data/js-data-angular/issues). +First, support is handled via the [Gitter Channel](https://gitter.im/js-data/js-data) and the [Mailing List](https://groups.io/org/groupsio/jsdata). Ask your questions there. -1. Contribute to the issue that is the reason you'll be developing in the first place +When submitting issues on GitHub, please include as much detail as possible to make debugging quick and easy. + +- good - Your versions of Angular, js-data, js-data-angular, etc., relevant console logs/error, code examples that revealed the issue +- better - A [plnkr](http://plnkr.co/), [fiddle](http://jsfiddle.net/), or [bin](http://jsbin.com/?html,output) that demonstrates the issue +- best - A Pull Request that fixes the issue, including test coverage for the issue and the fix + +[Github Issues](https://github.com/js-data/js-data-angular/issues). + +#### Submitting Pull Requests + +1. Contribute to the issue/discussion that is the reason you'll be developing in the first place 1. Fork js-data-angular -1. `git clone https://github.com/<you>/js-data-angular.git` +1. `git clone git@github.com:<you>/js-data-angular.git` 1. `cd js-data-angular; npm install; bower install;` -1. `grunt go` (builds and starts a watch) -1. (in another terminal) `grunt karma:dev` (runs the tests) 1. Write your code, including relevant documentation and tests -1. Submit a PR and we'll review +1. Run `grunt test` (build and test) +1. Your code will be linted and checked for formatting, the tests will be run +1. The `dist/` folder & files will be generated, do NOT commit `dist/*`! They will be committed when a release is cut. +1. Submit your PR and we'll review! +1. Thanks! \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index 4966178..eae4a44 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -78,6 +78,19 @@ module.exports = function (grunt) { 'test/**/*.js' ] } + }, + c9: { + browsers: ['PhantomJS'], + options: { + files: [ + 'bower_components/angular-1.3.2/angular.js', + 'bower_components/angular-mocks-1.3.2/angular-mocks.js', + 'node_modules/js-data/dist/js-data.min.js', + 'dist/js-data-angular.min.js', + 'karma.start.js', + 'test/**/*.js' + ] + } } }, coveralls: { @@ -123,6 +136,22 @@ module.exports = function (grunt) { } }); + grunt.registerTask('standard', function () { + var child_process = require('child_process'); + var done = this.async(); + grunt.log.writeln('Linting for correcting formatting...'); + child_process.exec('node node_modules/standard/bin/cmd.js --parser babel-eslint src/*.js src/**/*.js src/**/**/*.js', function (err, stdout) { + console.log(stdout); + if (err) { + grunt.log.writeln('Failed due to ' + (stdout.split('\n').length - 2) + ' lint errors!'); + done(err); + } else { + grunt.log.writeln('Done linting.'); + done(); + } + }); + }); + grunt.registerTask('version', function (filePath) { var file = grunt.file.read(filePath); @@ -133,10 +162,12 @@ module.exports = function (grunt) { grunt.registerTask('build', [ 'clean', + 'standard', 'webpack', 'uglify' ]); grunt.registerTask('go', ['build', 'watch:dist']); grunt.registerTask('default', ['build']); grunt.registerTask('test', ['build', 'karma:min']); + grunt.registerTask('test_c9', ['build', 'karma:c9']); }; diff --git a/README.md b/README.md index 2b68e74..16d9621 100644 --- a/README.md +++ b/README.md @@ -108,16 +108,28 @@ app.controller('postCtrl', function ($scope, $routeParams, Post, Comment) { ### Contributing -First, feel free to contact me with questions. [Mailing List](https://groups.io/org/groupsio/jsdata). [Issues](https://github.com/js-data/js-data-angular/issues). +First, support is handled via the [Gitter Channel](https://gitter.im/js-data/js-data) and the [Mailing List](https://groups.io/org/groupsio/jsdata). Ask your questions there. -1. Contribute to the issue that is the reason you'll be developing in the first place +When submitting issues on GitHub, please include as much detail as possible to make debugging quick and easy. + +- good - Your versions of Angular, js-data, js-data-angular, etc., relevant console logs/error, code examples that revealed the issue +- better - A [plnkr](http://plnkr.co/), [fiddle](http://jsfiddle.net/), or [bin](http://jsbin.com/?html,output) that demonstrates the issue +- best - A Pull Request that fixes the issue, including test coverage for the issue and the fix + +[Github Issues](https://github.com/js-data/js-data-angular/issues). + +#### Submitting Pull Requests + +1. Contribute to the issue/discussion that is the reason you'll be developing in the first place 1. Fork js-data-angular -1. `git clone https://github.com/<you>/js-data-angular.git` +1. `git clone git@github.com:<you>/js-data-angular.git` 1. `cd js-data-angular; npm install; bower install;` -1. `grunt go` (builds and starts a watch) -1. (in another terminal) `grunt karma:dev` (runs the tests) 1. Write your code, including relevant documentation and tests -1. Submit a PR and we'll review +1. Run `grunt test` (build and test) +1. Your code will be linted and checked for formatting, the tests will be run +1. The `dist/` folder & files will be generated, do NOT commit `dist/*`! They will be committed when a release is cut. +1. Submit your PR and we'll review! +1. Thanks! ### License diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 988d5ee..2110765 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular - * @version 3.0.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> + * @version 3.1.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -11,14 +11,14 @@ if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); else if(typeof define === 'function' && define.amd) - define(["js-data", "angular"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__) { - return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, root["axios"]); + define(["js-data", "angular"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) { + return factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root["axios"]); }); else if(typeof exports === 'object') exports["jsDataAngularModuleName"] = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); else root["jsDataAngularModuleName"] = factory(root["JSData"], root["angular"], root["axios"]); -})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__) { +})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; @@ -67,10 +67,10 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - /*jshint loopfunc:true*/ + /* jshint loopfunc:true */ var JSData = __webpack_require__(1); - var DSHttpAdapter = __webpack_require__(4); - var angular = __webpack_require__(2); + var DSHttpAdapter = __webpack_require__(2); + var angular = __webpack_require__(4); var DSUtils = JSData.DSUtils; var DSErrors = JSData.DSErrors; @@ -104,7 +104,7 @@ return /******/ (function(modules) { // webpackBootstrap var Adapter = undefined; try { - Adapter = __webpack_require__(3)(adapter.project); + Adapter = __webpack_require__(5)(adapter.project); } catch (e) {} if (!Adapter) { @@ -235,7 +235,7 @@ return /******/ (function(modules) { // webpackBootstrap var deferred = $q.defer(); try { - executor.call(undefined, angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); + executor(angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); } catch (err) { deferred.reject(err); } @@ -262,6 +262,8 @@ return /******/ (function(modules) { // webpackBootstrap } } + // Wrap certain sync functions with $apply + var _loop = function () { var name = functionsToWrap[k]; originals[name] = store[name]; @@ -279,7 +281,6 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - // Wrap certain sync functions with $apply for (var k = 0; k < functionsToWrap.length; k++) { _loop(); } @@ -315,37 +316,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 1 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __WEBPACK_EXTERNAL_MODULE_2__; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - var map = {}; - function webpackContext(req) { - return __webpack_require__(webpackContextResolve(req)); - }; - function webpackContextResolve(req) { - return map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }()); - }; - webpackContext.keys = function webpackContextKeys() { - return Object.keys(map); - }; - webpackContext.resolve = webpackContextResolve; - module.exports = webpackContext; - webpackContext.id = 3; - - -/***/ }, -/* 4 */ /***/ function(module, exports, __webpack_require__) { var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); @@ -356,7 +332,7 @@ return /******/ (function(modules) { // webpackBootstrap var axios = null; try { - axios = __webpack_require__(5); + axios = __webpack_require__(3); } catch (e) {} var DSUtils = JSData.DSUtils; @@ -406,10 +382,13 @@ return /******/ (function(modules) { // webpackBootstrap defaultsPrototype.httpConfig = {}; + defaultsPrototype.verbsUseBasePath = false; + var DSHttpAdapter = (function () { function DSHttpAdapter(options) { _classCallCheck(this, DSHttpAdapter); + options = options || {}; this.defaults = new Defaults(); if (console) { this.defaults.log = function (a, b) { @@ -481,11 +460,15 @@ return /******/ (function(modules) { // webpackBootstrap value: function getPath(method, resourceConfig, id, options) { var _this = this; options = options || {}; - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; - if (method === 'find' || method === 'update' || method === 'destroy') { - args.push(id); + if (isString(options.urlPath)) { + return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath]); + } else { + var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + if (method === 'find' || method === 'update' || method === 'destroy') { + args.push(id); + } + return makePath.apply(DSUtils, args); } - return makePath.apply(DSUtils, args); } }, { key: 'HTTP', @@ -494,7 +477,13 @@ return /******/ (function(modules) { // webpackBootstrap var start = new Date(); config = copy(config); config = deepMixIn(config, _this.defaults.httpConfig); - if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/') { + if (!('verbsUseBasePath' in config)) { + config.verbsUseBasePath = _this.defaults.verbsUseBasePath; + } + if (!config.urlOverride && config.verbsUseBasePath) { + config.url = makePath(config.basePath || _this.defaults.basePath, config.url); + } + if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) { config.url += '/'; } if (typeof config.data === 'object') { @@ -502,21 +491,35 @@ return /******/ (function(modules) { // webpackBootstrap } config.method = config.method.toUpperCase(); var suffix = config.suffix || _this.defaults.suffix; - if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix) { + if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) { config.url += suffix; } - function logResponse(data) { - var str = start.toUTCString() + ' - ' + data.config.method.toUpperCase() + ' ' + data.config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - if (data.status >= 200 && data.status < 300) { - if (_this.defaults.log) { - _this.defaults.log(str, data); + // logs the HTTP response + function logResponse(data, isRejection) { + data = data || {}; + // examine the data object + if (data instanceof Error) { + // log the Error object + _this.defaults.error('FAILED: ' + (data.message || 'Unknown Error'), data); + return DSUtils.Promise.reject(data); + } else if (typeof data === 'object') { + var str = start.toUTCString() + ' - ' + config.method + ' ' + config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; + + if (data.status >= 200 && data.status < 300 && !isRejection) { + if (_this.defaults.log) { + _this.defaults.log(str, data); + } + return data; + } else { + if (_this.defaults.error) { + _this.defaults.error('FAILED: ' + str, data); + } + return DSUtils.Promise.reject(data); } - return data; } else { - if (_this.defaults.error) { - _this.defaults.error('\'FAILED: ' + str, data); - } + // unknown type for 'data' that is not an Object or Error + _this.defaults.error('FAILED', data); return DSUtils.Promise.reject(data); } } @@ -525,53 +528,47 @@ return /******/ (function(modules) { // webpackBootstrap throw new Error('You have not configured this adapter with an http library!'); } - return this.http(config).then(logResponse, logResponse); + return this.http(config).then(logResponse, function (data) { + return logResponse(data, true); + }); } }, { key: 'GET', value: function GET(url, config) { config = config || {}; - if (!('method' in config)) { - config.method = 'get'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); + config.method = config.method || 'get'; + config.urlOverride = !!config.url; + config.url = config.url || url; + return this.HTTP(config); } }, { key: 'POST', value: function POST(url, attrs, config) { config = config || {}; - if (!('method' in config)) { - config.method = 'post'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs - })); + config.method = config.method || 'post'; + config.urlOverride = !!config.url; + config.url = config.url || url; + config.data = config.data || attrs; + return this.HTTP(config); } }, { key: 'PUT', value: function PUT(url, attrs, config) { config = config || {}; - if (!('method' in config)) { - config.method = 'put'; - } - return this.HTTP(deepMixIn(config, { - url: url, - data: attrs || {} - })); + config.method = config.method || 'put'; + config.urlOverride = !!config.url; + config.url = config.url || url; + config.data = config.data || attrs; + return this.HTTP(config); } }, { key: 'DEL', value: function DEL(url, config) { config = config || {}; - if (!('method' in config)) { - config.method = 'delete'; - } - return this.HTTP(deepMixIn(config, { - url: url - })); + config.method = config.method || 'delete'; + config.urlOverride = !!config.url; + config.url = config.url || url; + return this.HTTP(config); } }, { key: 'find', @@ -674,12 +671,37 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DSHttpAdapter; +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} + module.exports = __WEBPACK_EXTERNAL_MODULE_3__; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + module.exports = __WEBPACK_EXTERNAL_MODULE_4__; + /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { - if(typeof __WEBPACK_EXTERNAL_MODULE_5__ === 'undefined') {var e = new Error("Cannot find module \"axios\""); e.code = 'MODULE_NOT_FOUND'; throw e;} - module.exports = __WEBPACK_EXTERNAL_MODULE_5__; + var map = {}; + function webpackContext(req) { + return __webpack_require__(webpackContextResolve(req)); + }; + function webpackContextResolve(req) { + return map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }()); + }; + webpackContext.keys = function webpackContextKeys() { + return Object.keys(map); + }; + webpackContext.resolve = webpackContextResolve; + module.exports = webpackContext; + webpackContext.id = 5; + /***/ } /******/ ]) diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 1d88e7c..eecf447 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.0.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> +* @version 3.1.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> * @author Jason Dobry <jason.dobry@gmail.com> * @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> @@ -8,5 +8,5 @@ * @overview Angular wrapper for js-data. */ -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a){var b=void 0;try{b=c(3)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,h.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var f=c(1),g=c(4),h=c(2),i=f.DSUtils,j=f.DSErrors,k=i.isString,l=i.isNumber,m=i.isObject,n=i.set,o=i.resolveId,p=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],q=["compute","digest","eject","inject"],r=function u(){d(this,u);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new g(a);return c.registerAdapter("http",d,{"default":!0}),d}]},s=function v(){function a(){function a(a){var b=j.defer();try{a.call(void 0,h.bind(b,b.resolve),h.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var g=d[d.length-2],j=d[d.length-1],k=new f.DS(b.defaults),l={};if(a.all=j.all,a.when=j.when,a.reject=j.reject,i.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<p.length;n++)if(p[n].loaded&&!p[n].registered){p[n].registered=!0,k.registerAdapter(p[n].name,d[m]);break}for(var o=function(){var a=q[r];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return g.$$phase?l[a].apply(k,c):g.$apply(function(){return l[a].apply(k,c)})}},r=0;r<q.length;r++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}d(this,v);for(var b=this,c=[],e=0;e<p.length;e++)p[e].loaded&&c.push(p[e]["class"]);b.defaults={},f.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new j.NER(a);if(!m(b))throw new j.IA('"params" must be an object!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},f.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=o(f.definitions[a],b),!f.definitions[a])throw new j.NER(a);if(!k(b)&&!l(b))throw new j.IA('"id" must be a string or a number!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};h.module("js-data",["ng"]).value("DSUtils",i).value("DSErrors",j).value("DSVersion",f.version).provider("DS",s).provider("DSHttpAdapter",r).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var t=0;t<p.length;t++)e(p[t]);a.exports="js-data",a.exports.name="js-data"},function(b,c,d){b.exports=a},function(a,c,d){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=3},function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=c(1),g=null;try{g=c(5)}catch(h){}var i=f.DSUtils,j=i.deepMixIn,k=i.removeCircular,l=i.copy,m=i.makePath,n=i.isString,o=i.isNumber,p=function(){function a(){d(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),q=p.prototype;q.basePath="",q.forceTrailingSlash="",q.httpConfig={};var r=function(){function a(b){d(this,a),this.defaults=new p,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),j(this.defaults,b),this.http=b.http||g}return e(a,[{key:"getEndpoint",value:function(a,b,c){var d=this;c=c||{},c.params=c.params||{};var e=void 0,f=a.parentKey,g=c.hasOwnProperty("endpoint")?c.endpoint:a.endpoint,h=a.parentField,j=a.getResource(a.parent),k=c.params[f];if(k===!1||!f||!j)return k===!1&&delete c.params[f],g;if(delete c.params[f],i._sn(b)?e=a.get(b):i._o(b)&&(e=b),e&&(k=k||e[f]||(e[h]?e[h][j.idAttribute]:null)),!k)return g;var l=function(){delete c.endpoint;var a={};return i.forOwn(c,function(b,c){a[c]=b}),{v:i.makePath(d.getEndpoint(j,k,i._(j,a)),k,g)}}();return"object"==typeof l?l.v:void 0}},{key:"getPath",value:function(a,b,c,d){var e=this;d=d||{};var f=[d.basePath||e.defaults.basePath||b.basePath,this.getEndpoint(b,n(c)||o(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),m.apply(i,f)}},{key:"HTTP",value:function(a){function b(a){var b=d.toUTCString()+" - "+a.config.method.toUpperCase()+" "+a.config.url+" - "+a.status+" "+((new Date).getTime()-d.getTime())+"ms";return a.status>=200&&a.status<300?(c.defaults.log&&c.defaults.log(b,a),a):(c.defaults.error&&c.defaults.error("'FAILED: "+b,a),i.Promise.reject(a))}var c=this,d=new Date;a=l(a),a=j(a,c.defaults.httpConfig),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&(a.url+="/"),"object"==typeof a.data&&(a.data=k(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,b)}},{key:"GET",value:function(a,b){return b=b||{},"method"in b||(b.method="get"),this.HTTP(j(b,{url:a}))}},{key:"POST",value:function(a,b,c){return c=c||{},"method"in c||(c.method="post"),this.HTTP(j(c,{url:a,data:b}))}},{key:"PUT",value:function(a,b,c){return c=c||{},"method"in c||(c.method="put"),this.HTTP(j(c,{url:a,data:b||{}}))}},{key:"DEL",value:function(a,b){return b=b||{},"method"in b||(b.method="delete"),this.HTTP(j(b,{url:a}))}},{key:"find",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:i.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),j(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();a.exports=r},function(a,b,d){if("undefined"==typeof c){var e=new Error('Cannot find module "axios"');throw e.code="MODULE_NOT_FOUND",e}a.exports=c}])}); +!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a){var b=void 0;try{b=c(5)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,h.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var f=c(1),g=c(2),h=c(4),i=f.DSUtils,j=f.DSErrors,k=i.isString,l=i.isNumber,m=i.isObject,n=i.set,o=i.resolveId,p=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],q=["compute","digest","eject","inject"],r=function u(){d(this,u);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new g(a);return c.registerAdapter("http",d,{"default":!0}),d}]},s=function v(){function a(){function a(a){var b=j.defer();try{a(h.bind(b,b.resolve),h.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var g=d[d.length-2],j=d[d.length-1],k=new f.DS(b.defaults),l={};if(a.all=j.all,a.when=j.when,a.reject=j.reject,i.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<p.length;n++)if(p[n].loaded&&!p[n].registered){p[n].registered=!0,k.registerAdapter(p[n].name,d[m]);break}for(var o=function(){var a=q[r];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return g.$$phase?l[a].apply(k,c):g.$apply(function(){return l[a].apply(k,c)})}},r=0;r<q.length;r++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}d(this,v);for(var b=this,c=[],e=0;e<p.length;e++)p[e].loaded&&c.push(p[e]["class"]);b.defaults={},f.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new j.NER(a);if(!m(b))throw new j.IA('"params" must be an object!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},f.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=o(f.definitions[a],b),!f.definitions[a])throw new j.NER(a);if(!k(b)&&!l(b))throw new j.IA('"id" must be a string or a number!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};h.module("js-data",["ng"]).value("DSUtils",i).value("DSErrors",j).value("DSVersion",f.version).provider("DS",s).provider("DSHttpAdapter",r).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var t=0;t<p.length;t++)e(p[t]);a.exports="js-data",a.exports.name="js-data"},function(b,c){b.exports=a},function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=c(1),g=null;try{g=c(3)}catch(h){}var i=f.DSUtils,j=i.deepMixIn,k=i.removeCircular,l=i.copy,m=i.makePath,n=i.isString,o=i.isNumber,p=function(){function a(){d(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),q=p.prototype;q.basePath="",q.forceTrailingSlash="",q.httpConfig={},q.verbsUseBasePath=!1;var r=function(){function a(b){d(this,a),b=b||{},this.defaults=new p,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),j(this.defaults,b),this.http=b.http||g}return e(a,[{key:"getEndpoint",value:function(a,b,c){var d=this;c=c||{},c.params=c.params||{};var e=void 0,f=a.parentKey,g=c.hasOwnProperty("endpoint")?c.endpoint:a.endpoint,h=a.parentField,j=a.getResource(a.parent),k=c.params[f];if(k===!1||!f||!j)return k===!1&&delete c.params[f],g;if(delete c.params[f],i._sn(b)?e=a.get(b):i._o(b)&&(e=b),e&&(k=k||e[f]||(e[h]?e[h][j.idAttribute]:null)),!k)return g;var l=function(){delete c.endpoint;var a={};return i.forOwn(c,function(b,c){a[c]=b}),{v:i.makePath(d.getEndpoint(j,k,i._(j,a)),k,g)}}();return"object"==typeof l?l.v:void 0}},{key:"getPath",value:function(a,b,c,d){var e=this;if(d=d||{},n(d.urlPath))return m.apply(i,[d.basePath||e.defaults.basePath||b.basePath,d.urlPath]);var f=[d.basePath||e.defaults.basePath||b.basePath,this.getEndpoint(b,n(c)||o(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),m.apply(i,f)}},{key:"HTTP",value:function(a){function b(b,e){if(b=b||{},b instanceof Error)return c.defaults.error("FAILED: "+(b.message||"Unknown Error"),b),i.Promise.reject(b);if("object"==typeof b){var f=d.toUTCString()+" - "+a.method+" "+a.url+" - "+b.status+" "+((new Date).getTime()-d.getTime())+"ms";return b.status>=200&&b.status<300&&!e?(c.defaults.log&&c.defaults.log(f,b),b):(c.defaults.error&&c.defaults.error("FAILED: "+f,b),i.Promise.reject(b))}return c.defaults.error("FAILED",b),i.Promise.reject(b)}var c=this,d=new Date;a=l(a),a=j(a,c.defaults.httpConfig),"verbsUseBasePath"in a||(a.verbsUseBasePath=c.defaults.verbsUseBasePath),!a.urlOverride&&a.verbsUseBasePath&&(a.url=m(a.basePath||c.defaults.basePath,a.url)),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&!a.urlOverride&&(a.url+="/"),"object"==typeof a.data&&(a.data=k(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&!a.urlOverride&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,function(a){return b(a,!0)})}},{key:"GET",value:function(a,b){return b=b||{},b.method=b.method||"get",b.urlOverride=!!b.url,b.url=b.url||a,this.HTTP(b)}},{key:"POST",value:function(a,b,c){return c=c||{},c.method=c.method||"post",c.urlOverride=!!c.url,c.url=c.url||a,c.data=c.data||b,this.HTTP(c)}},{key:"PUT",value:function(a,b,c){return c=c||{},c.method=c.method||"put",c.urlOverride=!!c.url,c.url=c.url||a,c.data=c.data||b,this.HTTP(c)}},{key:"DEL",value:function(a,b){return b=b||{},b.method=b.method||"delete",b.urlOverride=!!b.url,b.url=b.url||a,this.HTTP(b)}},{key:"find",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:i.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),j(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();a.exports=r},function(a,b){if("undefined"==typeof c){var d=new Error('Cannot find module "axios"');throw d.code="MODULE_NOT_FOUND",d}a.exports=c},function(a,c){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=5}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index 5a5833b..bd5b4b7 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","this","__WEBPACK_EXTERNAL_MODULE_5__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","undefined","project","window","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","value","version","run","webpackContext","req","webpackContextResolve","map","Error","keys","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","options","console","log","a","b","info","error","_this2","parentKey","endpoint","hasOwnProperty","parentField","parentDef","getResource","parent","parentId","_sn","_o","idAttribute","_ret","_options","forOwn","v","getEndpoint","_","method","config","logResponse","str","start","toUTCString","toUpperCase","url","status","Date","getTime","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","undefined","project","window","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","value","version","run","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","_this2","parentKey","endpoint","hasOwnProperty","parentField","parentDef","getResource","parent","parentId","_sn","_o","idAttribute","_ret","_options","forOwn","v","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":";;;;;;;;;;CASA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,EAAQG,QAAQ,WAAYA,QAAQ,WAAa,WAA+C,IAAM,MAAOA,SAAQ,SAAY,MAAMC,SAC/H,kBAAXC,SAAyBA,OAAOC,IAC9CD,QAAQ,UAAW,WAAY,SAA8CE,EAA+BC,GAC3G,MAAOR,GAAQO,EAA+BC,EAA+BT,EAAY,SAEhE,gBAAZE,SACdA,QAAiC,wBAAID,EAAQG,QAAQ,WAAYA,QAAQ,WAAa,WAA+C,IAAM,MAAOA,SAAQ,SAAY,MAAMC,SAE5KL,EAA8B,wBAAIC,EAAQD,EAAa,OAAGA,EAAc,QAAGA,EAAY,QACtFU,KAAM,SAASF,EAA+BC,EAA+BE,GAChF,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUZ,OAGnC,IAAIC,GAASY,EAAiBD,IAC7BZ,WACAc,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKf,EAAOD,QAASC,EAAQA,EAAOD,QAASW,GAG/DV,EAAOc,QAAS,EAGTd,EAAOD,QAvBf,GAAIa,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAASV,EAAQD,EAASW,GAE/B,QAASS,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAmChH,QAASC,GAAgBC,GACvB,GAAIC,GAAUC,MAEd,KACED,EAAUf,EAAoB,GAAGc,EAAQG,SACzC,MAAOzB,IAEJuB,IACHA,EAAUG,OAAOJ,EAAQ,WAGvBC,IACFD,EAAQV,QAAS,EACjBe,EAAQ7B,OAAO,WAAW8B,SAASN,EAAQ,SAAU,WACnD,GAAIO,GAAQxB,IACZwB,GAAMC,YACND,EAAME,MAAQ,WACZ,MAAO,IAAIR,GAAQM,EAAMC,eAjDjC,GAAIE,GAASxB,EAAoB,GAC7ByB,EAAgBzB,EAAoB,GACpCmB,EAAUnB,EAAoB,GAE9B0B,EAAUF,EAAOE,QACjBC,EAAWH,EAAOG,SAClBC,EAAWF,EAAQE,SACnBC,EAAWH,EAAQG,SACnBC,EAAWJ,EAAQI,SACnBC,EAAML,EAAQK,IACdC,EAAYN,EAAQM,UAEpBC,IACFhB,QAAS,uBACTiB,KAAM,eACNC,QAAS,0BAETlB,QAAS,sBACTiB,KAAM,cACNC,QAAS,yBAETlB,QAAS,mBACTiB,KAAM,WACNC,QAAS,sBAETlB,QAAS,cACTiB,KAAM,MACNC,QAAS,iBAGPC,GAAmB,UAAW,SAAU,QAAS,UAyBjDC,EAAwB,QAASA,KACnC5B,EAAgBZ,KAAMwC,EAEtB,IAAIf,KACJzB,MAAKyB,SAAWA,EAEhBzB,KAAK0B,MAAQ,QAAS,KAAM,SAAUe,EAAOC,GAC3CjB,EAASkB,KAAOlB,EAASkB,MAAQF,CACjC,IAAIxB,GAAU,GAAIW,GAAcH,EAEhC,OADAiB,GAAG1B,gBAAgB,OAAQC,GAAW2B,WAAW,IAC1C3B,KAIP4B,EAAa,QAASA,KAoFxB,QAASC,KAUP,QAASC,GAASC,GAChB,GAAIC,GAAWC,EAAGC,OAElB,KACEH,EAAS1B,EAAQ8B,KAAKH,EAAUA,EAASI,SAAU/B,EAAQ8B,KAAKH,EAAUA,EAASK,SACnF,MAAOC,GACPN,EAASK,OAAOC,GAGlB,MAAON,GAASO,QAlBlB,IAAK,GAAIC,GAAOC,UAAUC,OAAQC,EAAOC,MAAMJ,GAAOK,EAAO,EAAUL,EAAPK,EAAaA,IAC3EF,EAAKE,GAAQJ,UAAUI,EAGzB,IAAIC,GAAaH,EAAKA,EAAKD,OAAS,GAChCT,EAAKU,EAAKA,EAAKD,OAAS,GACxBK,EAAQ,GAAIrC,GAAOe,GAAGlB,EAAMC,UAC5BwC,IAqBJ,IAPAlB,EAASmB,IAAMhB,EAAGgB,IAClBnB,EAASoB,KAAOjB,EAAGiB,KACnBpB,EAASO,OAASJ,EAAGI,OAErBzB,EAAQuC,QAAUrB,EAGda,EAAKD,OACP,IAAK,GAAIU,GAAI,EAAGA,EAAIT,EAAKD,OAAQU,IAC/B,IAAK,GAAIC,GAAI,EAAGA,EAAIlC,EAASuB,OAAQW,IACnC,GAAIlC,EAASkC,GAAG/D,SAAW6B,EAASkC,GAAGC,WAAY,CACjDnC,EAASkC,GAAGC,YAAa,EACzBP,EAAMhD,gBAAgBoB,EAASkC,GAAGjC,KAAMuB,EAAKS,GAC7C,OAyBR,IAAK,GAjBDG,GAAQ,WACV,GAAInC,GAAOE,EAAgBkC,EAC3BR,GAAU5B,GAAQ2B,EAAM3B,GACxB2B,EAAM3B,GAAQ,WACZ,IAAK,GAAIqC,GAAQhB,UAAUC,OAAQC,EAAOC,MAAMa,GAAQC,EAAQ,EAAWD,EAARC,EAAeA,IAChFf,EAAKe,GAASjB,UAAUiB,EAG1B,OAAKZ,GAAWa,QAKTX,EAAU5B,GAAMwC,MAAMb,EAAOJ,GAJ3BG,EAAWe,OAAO,WACvB,MAAOb,GAAU5B,GAAMwC,MAAMb,EAAOJ,OAOnCa,EAAI,EAAGA,EAAIlC,EAAgBoB,OAAQc,IAC1CD,GAUF,QAN8B,kBAAnBO,QAAOC,SAAmD,kBAAlBnB,OAAMmB,UACvDjB,EAAWkB,OAAO,WAChB,MAAOjB,GAAMgB,QAAQE,SAASC,+BAI3BnB,EA1JTpD,EAAgBZ,KAAM6C,EAKtB,KAAK,GAHDrB,GAAQxB,KACRoF,KAEKf,EAAI,EAAGA,EAAIjC,EAASuB,OAAQU,IAC/BjC,EAASiC,GAAG9D,QACd6E,EAAKC,KAAKjD,EAASiC,GAAG,SAI1B7C,GAAMC,YAENE,EAAOe,GAAG4C,UAAUC,QAAU,SAAUC,EAAcC,EAAQC,EAAOC,EAAMC,GACzE,GAAIpE,GAAQxB,IAIZ,IAFAyF,EAASA,OAEJjE,EAAMqE,YAAYL,GACrB,KAAM,IAAI1D,GAASgE,IAAIN,EAClB,KAAKvD,EAASwD,GACnB,KAAM,IAAI3D,GAASiE,GAAG,8BACjB,KAAK9D,EAASyD,GACnB,KAAM,IAAI5D,GAASiE,GAAG,6BACjB,KAAKhE,EAAS4D,GACnB,KAAM,IAAI7D,GAASiE,GAAG,2BAGxB,KACE,MAAOL,GAAMT,OAAO,WAClB,MAAOzD,GAAMwE,aAAaR,IACzB,WACD,GAAIS,GAAQzE,EAAM0E,OAAOV,EAAcC,EACvCvD,GAAIwD,EAAOC,EAAMM,GACbL,GACFA,EAAG,KAAMK,KAGb,MAAO1C,GACP,IAAIqC,EAGF,KAAMrC,EAFNqC,GAAGrC,KAOT5B,EAAOe,GAAG4C,UAAUa,QAAU,SAAUX,EAAclF,EAAIoF,EAAOC,EAAMC,GACrE,GAAIpE,GAAQxB,IAGZ,IADAM,EAAK6B,EAAUX,EAAMqE,YAAYL,GAAelF,IAC3CkB,EAAMqE,YAAYL,GACrB,KAAM,IAAI1D,GAASgE,IAAIN,EAClB,KAAKzD,EAASzB,KAAQ0B,EAAS1B,GACpC,KAAM,IAAIwB,GAASiE,GAAG,qCACjB,KAAK9D,EAASyD,GACnB,KAAM,IAAI5D,GAASiE,GAAG,6BACjB,KAAKhE,EAAS4D,GACnB,KAAM,IAAI7D,GAASiE,GAAG,2BAGxB,KACE,MAAOL,GAAMT,OAAO,WAClB,MAAOzD,GAAMwE,aAAaR,EAAclF,IACvC,WACD,GAAI8F,GAAO5E,EAAM6E,IAAIb,EAAclF,EAC/B8F,IACF5E,EAAM8E,QAAQd,EAAclF,GAE9B4B,EAAIwD,EAAOC,EAAMS,GACbR,GACFA,EAAG,KAAMQ,KAGb,MAAO7C,GACP,IAAIqC,EAGF,KAAMrC,EAFNqC,GAAGrC,KAiFT6B,EAAKC,KAAK,cACVD,EAAKC,KAAK,MACVD,EAAKC,KAAKvC,GAEVtB,EAAME,KAAO0D,EAGf9D,GAAQ7B,OAAO,WAAY,OAAO8G,MAAM,UAAW1E,GAAS0E,MAAM,WAAYzE,GAAUyE,MAAM,YAAa5E,EAAO6E,SAASjF,SAAS,KAAMsB,GAAYtB,SAAS,gBAAiBiB,GAAuBiE,KAAK,KAAM,gBAAiB,SAAU/D,EAAId,GAC/Oc,EAAG1B,gBAAgB,OAAQY,GAAiBgB,WAAW,MAGzD,KAAK,GAAIyB,GAAI,EAAGA,EAAIjC,EAASuB,OAAQU,IACnCrD,EAAgBoB,EAASiC,GAI3B5E,GAAOD,QAAU,UACjBC,EAAOD,QAAQ6C,KAAO,WAIjB,SAAS5C,EAAQD,GAEtBC,EAAOD,QAAUM,GAIZ,SAASL,EAAQD,EAASW,GAI/B,QAASS,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAFhH,GAAI2F,GAAe,WAAe,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIxC,GAAI,EAAGA,EAAIwC,EAAMlD,OAAQU,IAAK,CAAE,GAAIyC,GAAaD,EAAMxC,EAAIyC,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMlC,OAAOmC,eAAeN,EAAQE,EAAWK,IAAKL,IAAiB,MAAO,UAAUhG,EAAasG,EAAYC,GAAiJ,MAA9HD,IAAYT,EAAiB7F,EAAYwE,UAAW8B,GAAiBC,GAAaV,EAAiB7F,EAAauG,GAAqBvG,MAI7hBa,EAASxB,EAAoB,GAC7BmH,EAAQ,IAEZ,KACEA,EAAQnH,EAAoB,GAC5B,MAAOR,IAET,GAAIkC,GAAUF,EAAOE,QACjB0F,EAAY1F,EAAQ0F,UACpBC,EAAiB3F,EAAQ2F,eACzBC,EAAO5F,EAAQ4F,KACfC,EAAW7F,EAAQ6F,SACnB3F,EAAWF,EAAQE,SACnBC,EAAWH,EAAQG,SAEnB2F,EAAW,WACb,QAASA,KACP/G,EAAgBZ,KAAM2H,GA0BxB,MAvBAjB,GAAaiB,IACXR,IAAK,iBACLZ,MAAO,SAAwBqB,EAAgBnC,GAC7C,MAAOA,MAGT0B,IAAK,cACLZ,MAAO,SAAqBqB,EAAgBC,GAC1C,MAAOA,IAAO,QAAUA,GAAOA,EAAKA,KAAcA,KAGpDV,IAAK,YACLZ,MAAO,SAAmBqB,EAAgBC,GACxC,MAAOA,MAGTV,IAAK,MACLZ,MAAO,eAEPY,IAAK,QACLZ,MAAO,gBAGFoB,KAGLG,EAAoBH,EAASrC,SAEjCwC,GAAkBC,SAAW,GAE7BD,EAAkBE,mBAAqB,GAEvCF,EAAkBG,cAElBH,EAAkBI,kBAAmB,CAErC,IAAItG,GAAgB,WAClB,QAASA,GAAcuG,GACrBvH,EAAgBZ,KAAM4B,GAEtBuG,EAAUA,MACVnI,KAAKyB,SAAW,GAAIkG,GAChBS,UACFpI,KAAKyB,SAAS4G,IAAM,SAAUC,EAAGC,GAC/B,MAAOH,SAAgC,kBAAjBA,SAAQI,KAAsB,OAAS,OAAOF,EAAGC,KAGvEH,UACFpI,KAAKyB,SAASgH,MAAQ,SAAUH,EAAGC,GACjC,MAAOH,SAAiC,kBAAlBA,SAAQK,MAAuB,QAAU,OAAOH,EAAGC,KAG7EhB,EAAUvH,KAAKyB,SAAU0G,GACzBnI,KAAK2C,KAAOwF,EAAQxF,MAAQ2E,EAyQ9B,MAtQAZ,GAAa9E,IACXuF,IAAK,cACLZ,MAAO,SAAqBqB,EAAgBtH,EAAI6H,GAC9C,GAAIO,GAAS1I,IAEbmI,GAAUA,MACVA,EAAQ1C,OAAS0C,EAAQ1C,UAEzB,IAAIW,GAAOjF,OACPwH,EAAYf,EAAee,UAC3BC,EAAWT,EAAQU,eAAe,YAAcV,EAAQS,SAAWhB,EAAegB,SAClFE,EAAclB,EAAekB,YAC7BC,EAAYnB,EAAeoB,YAAYpB,EAAeqB,QACtDC,EAAWf,EAAQ1C,OAAOkD,EAE9B,IAAIO,KAAa,IAAUP,IAAcI,EAIvC,MAHIG,MAAa,SACRf,GAAQ1C,OAAOkD,GAEjBC,CAcP,UAZOT,GAAQ1C,OAAOkD,GAElB9G,EAAQsH,IAAI7I,GACd8F,EAAOwB,EAAevB,IAAI/F,GACjBuB,EAAQuH,GAAG9I,KACpB8F,EAAO9F,GAGL8F,IACF8C,EAAWA,GAAY9C,EAAKuC,KAAevC,EAAK0C,GAAe1C,EAAK0C,GAAaC,EAAUM,aAAe,QAGxGH,EAcF,MAAON,EAbP,IAAIU,GAAO,iBACFnB,GAAQS,QACf,IAAIW,KAIJ,OAHA1H,GAAQ2H,OAAOrB,EAAS,SAAU5B,EAAOY,GACvCoC,EAASpC,GAAOZ,KAGhBkD,EAAG5H,EAAQ6F,SAASgB,EAAOgB,YAAYX,EAAWG,EAAUrH,EAAQ8H,EAAEZ,EAAWQ,IAAYL,EAAUN,MAI3G,OAAoB,gBAATU,GAA0BA,EAAKG,EAA1C,UAONtC,IAAK,UACLZ,MAAO,SAAiBqD,EAAQhC,EAAgBtH,EAAI6H,GAClD,GAAI3G,GAAQxB,IAEZ,IADAmI,EAAUA,MACNpG,EAASoG,EAAQ0B,SACnB,MAAOnC,GAAS7C,MAAMhD,GAAUsG,EAAQJ,UAAYvG,EAAMC,SAASsG,UAAYH,EAAeG,SAAUI,EAAQ0B,SAEhH,IAAIjG,IAAQuE,EAAQJ,UAAYvG,EAAMC,SAASsG,UAAYH,EAAeG,SAAU/H,KAAK0J,YAAY9B,EAAgB7F,EAASzB,IAAO0B,EAAS1B,IAAkB,WAAXsJ,EAAsBtJ,EAAK,KAAM6H,GAItL,QAHe,SAAXyB,GAAgC,WAAXA,GAAkC,YAAXA,IAC9ChG,EAAKyB,KAAK/E,GAELoH,EAAS7C,MAAMhD,EAAS+B,MAInCuD,IAAK,OACLZ,MAAO,SAAcuD,GAwBnB,QAASC,GAAYlC,EAAMmC,GAGzB,GAFAnC,EAAOA,MAEHA,YAAgBoC,OAGlB,MADAzI,GAAMC,SAASgH,MAAM,YAAcZ,EAAKqC,SAAW,iBAAkBrC,GAC9DhG,EAAQuC,QAAQd,OAAOuE,EACzB,IAAoB,gBAATA,GAAmB,CACnC,GAAIsC,GAAMC,EAAMC,cAAgB,MAAQP,EAAOF,OAAS,IAAME,EAAOQ,IAAM,MAAQzC,EAAK0C,OAAS,MAAO,GAAIC,OAAOC,UAAYL,EAAMK,WAAa,IAElJ,OAAI5C,GAAK0C,QAAU,KAAO1C,EAAK0C,OAAS,MAAQP,GAC1CxI,EAAMC,SAAS4G,KACjB7G,EAAMC,SAAS4G,IAAI8B,EAAKtC,GAEnBA,IAEHrG,EAAMC,SAASgH,OACjBjH,EAAMC,SAASgH,MAAM,WAAa0B,EAAKtC,GAElChG,EAAQuC,QAAQd,OAAOuE,IAKhC,MADArG,GAAMC,SAASgH,MAAM,SAAUZ,GACxBhG,EAAQuC,QAAQd,OAAOuE,GA/ClC,GAAIrG,GAAQxB,KACRoK,EAAQ,GAAII,KAChBV,GAASrC,EAAKqC,GACdA,EAASvC,EAAUuC,EAAQtI,EAAMC,SAASwG,YACpC,oBAAsB6B,KAC1BA,EAAO5B,iBAAmB1G,EAAMC,SAASyG,mBAEtC4B,EAAOY,aAAeZ,EAAO5B,mBAChC4B,EAAOQ,IAAM5C,EAASoC,EAAO/B,UAAYvG,EAAMC,SAASsG,SAAU+B,EAAOQ,MAEvE9I,EAAMC,SAASuG,oBAA4D,MAAtC8B,EAAOQ,IAAIR,EAAOQ,IAAI3G,OAAS,KAAemG,EAAOY,cAC5FZ,EAAOQ,KAAO,KAEW,gBAAhBR,GAAOjC,OAChBiC,EAAOjC,KAAOL,EAAesC,EAAOjC,OAEtCiC,EAAOF,OAASE,EAAOF,OAAOe,aAC9B,IAAIC,GAASd,EAAOc,QAAUpJ,EAAMC,SAASmJ,MAkC7C,IAjCIA,GAAUd,EAAOQ,IAAIO,OAAOf,EAAOQ,IAAI3G,OAASiH,EAAOjH,UAAYiH,IAAWd,EAAOY,cACvFZ,EAAOQ,KAAOM,IAgCX5K,KAAK2C,KACR,KAAM,IAAIsH,OAAM,6DAGlB,OAAOjK,MAAK2C,KAAKmH,GAAQgB,KAAKf,EAAa,SAAUlC,GACnD,MAAOkC,GAAYlC,GAAM,QAI7BV,IAAK,MACLZ,MAAO,SAAa+D,EAAKR,GAKvB,MAJAA,GAASA,MACTA,EAAOF,OAASE,EAAOF,QAAU,MACjCE,EAAOY,cAAgBZ,EAAOQ,IAC9BR,EAAOQ,IAAMR,EAAOQ,KAAOA,EACpBtK,KAAK+K,KAAKjB,MAGnB3C,IAAK,OACLZ,MAAO,SAAc+D,EAAKU,EAAOlB,GAM/B,MALAA,GAASA,MACTA,EAAOF,OAASE,EAAOF,QAAU,OACjCE,EAAOY,cAAgBZ,EAAOQ,IAC9BR,EAAOQ,IAAMR,EAAOQ,KAAOA,EAC3BR,EAAOjC,KAAOiC,EAAOjC,MAAQmD,EACtBhL,KAAK+K,KAAKjB,MAGnB3C,IAAK,MACLZ,MAAO,SAAa+D,EAAKU,EAAOlB,GAM9B,MALAA,GAASA,MACTA,EAAOF,OAASE,EAAOF,QAAU,MACjCE,EAAOY,cAAgBZ,EAAOQ,IAC9BR,EAAOQ,IAAMR,EAAOQ,KAAOA,EAC3BR,EAAOjC,KAAOiC,EAAOjC,MAAQmD,EACtBhL,KAAK+K,KAAKjB,MAGnB3C,IAAK,MACLZ,MAAO,SAAa+D,EAAKR,GAKvB,MAJAA,GAASA,MACTA,EAAOF,OAASE,EAAOF,QAAU,SACjCE,EAAOY,cAAgBZ,EAAOQ,IAC9BR,EAAOQ,IAAMR,EAAOQ,KAAOA,EACpBtK,KAAK+K,KAAKjB,MAGnB3C,IAAK,OACLZ,MAAO,SAAcqB,EAAgBtH,EAAI6H,GACvC,GAAI3G,GAAQxB,IAKZ,OAJAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACzB0C,EAAQ1C,OAASjE,EAAMC,SAASwJ,eAAerD,EAAgBO,EAAQ1C,QAChEjE,EAAM0J,IAAI1J,EAAM2J,QAAQ,OAAQvD,EAAgBtH,EAAI6H,GAAUA,GAAS2C,KAAK,SAAUjD,GAC3F,GAAIzB,IAAQ+B,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,EACpG,OAAQzB,GAAyDA,EAAlDvE,EAAQuC,QAAQd,OAAO,GAAI2G,OAAM,oBAIpD9C,IAAK,UACLZ,MAAO,SAAiBqB,EAAgBnC,EAAQ0C,GAC9C,GAAI3G,GAAQxB,IAQZ,OAPAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACrBA,IACFA,EAASjE,EAAMC,SAASwJ,eAAerD,EAAgBnC,GACvD8B,EAAUY,EAAQ1C,OAAQA,IAErBjE,EAAM0J,IAAI1J,EAAM2J,QAAQ,UAAWvD,EAAgBnC,EAAQ0C,GAAUA,GAAS2C,KAAK,SAAUjD,GAClG,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,QAIpGV,IAAK,SACLZ,MAAO,SAAgBqB,EAAgBoD,EAAO7C,GAC5C,GAAI3G,GAAQxB,IAKZ,OAJAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACzB0C,EAAQ1C,OAASjE,EAAMC,SAASwJ,eAAerD,EAAgBO,EAAQ1C,QAChEjE,EAAM6J,KAAK7J,EAAM2J,QAAQ,SAAUvD,EAAgBoD,EAAO7C,GAAUA,EAAQmD,UAAYnD,EAAQmD,UAAU1D,EAAgBoD,GAASxJ,EAAMC,SAAS6J,UAAU1D,EAAgBoD,GAAQ7C,GAAS2C,KAAK,SAAUjD,GACjN,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,QAIpGV,IAAK,SACLZ,MAAO,SAAgBqB,EAAgBtH,EAAI0K,EAAO7C,GAChD,GAAI3G,GAAQxB,IAKZ,OAJAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACzB0C,EAAQ1C,OAASjE,EAAMC,SAASwJ,eAAerD,EAAgBO,EAAQ1C,QAChEjE,EAAM+J,IAAI/J,EAAM2J,QAAQ,SAAUvD,EAAgBtH,EAAI6H,GAAUA,EAAQmD,UAAYnD,EAAQmD,UAAU1D,EAAgBoD,GAASxJ,EAAMC,SAAS6J,UAAU1D,EAAgBoD,GAAQ7C,GAAS2C,KAAK,SAAUjD,GAC7M,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,QAIpGV,IAAK,YACLZ,MAAO,SAAmBqB,EAAgBoD,EAAOvF,EAAQ0C,GACvD,GAAI3G,GAAQxB,IAQZ,OAPAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACrBA,IACFA,EAASjE,EAAMC,SAASwJ,eAAerD,EAAgBnC,GACvD8B,EAAUY,EAAQ1C,OAAQA,IAErBzF,KAAKuL,IAAI/J,EAAM2J,QAAQ,YAAavD,EAAgBoD,EAAO7C,GAAUA,EAAQmD,UAAYnD,EAAQmD,UAAU1D,EAAgBoD,GAASxJ,EAAMC,SAAS6J,UAAU1D,EAAgBoD,GAAQ7C,GAAS2C,KAAK,SAAUjD,GAClN,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,QAIpGV,IAAK,UACLZ,MAAO,SAAiBqB,EAAgBtH,EAAI6H,GAC1C,GAAI3G,GAAQxB,IAKZ,OAJAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACzB0C,EAAQ1C,OAASjE,EAAMC,SAASwJ,eAAerD,EAAgBO,EAAQ1C,QAChEjE,EAAMgK,IAAIhK,EAAM2J,QAAQ,UAAWvD,EAAgBtH,EAAI6H,GAAUA,GAAS2C,KAAK,SAAUjD,GAC9F,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,QAIpGV,IAAK,aACLZ,MAAO,SAAoBqB,EAAgBnC,EAAQ0C,GACjD,GAAI3G,GAAQxB,IAQZ,OAPAmI,GAAUA,EAAUV,EAAKU,MACzBA,EAAQyC,OAASzC,EAAQyC,QAAUhD,EAAegD,OAClDzC,EAAQ1C,OAAS0C,EAAQ1C,WACrBA,IACFA,EAASjE,EAAMC,SAASwJ,eAAerD,EAAgBnC,GACvD8B,EAAUY,EAAQ1C,OAAQA,IAErBzF,KAAKwL,IAAIhK,EAAM2J,QAAQ,aAAcvD,EAAgBnC,EAAQ0C,GAAUA,GAAS2C,KAAK,SAAUjD,GACpG,OAAQM,EAAQiD,YAAcjD,EAAQiD,YAAc5J,EAAMC,SAAS2J,aAAaxD,EAAgBC,SAK/FjG,IAGTnC,GAAOD,QAAUoC,GAIZ,SAASnC,EAAQD,GAEtB,GAA4C,mBAAlCS,GAA+C,CAAC,GAAIN,GAAI,GAAIsK,OAAM,6BAA8D,MAA7BtK,GAAE8L,KAAO,mBAA0B9L,EAChJF,EAAOD,QAAUS,GAIZ,SAASR,EAAQD,GAEtBC,EAAOD,QAAUO,GAIZ,SAASN,EAAQD,EAASW,GAG/B,QAASuL,GAAeC,GACvB,MAAOxL,GAAoByL,EAAsBD,IAElD,QAASC,GAAsBD,GAC9B,MAAOE,GAAIF,IAAS,WAAa,KAAM,IAAI1B,OAAM,uBAAyB0B,EAAM,SALjF,GAAIE,KAOJH,GAAeI,KAAO,WACrB,MAAO/G,QAAO+G,KAAKD,IAEpBH,EAAerI,QAAUuI,EACzBnM,EAAOD,QAAUkM,EACjBA,EAAepL,GAAK"} \ No newline at end of file diff --git a/package.json b/package.json index a347d37..5b40d94 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.0.0", + "version": "3.1.0", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -20,29 +20,31 @@ ], "main": "dist/js-data-angular.js", "devDependencies": { - "babel-core": "5.6.15", - "babel-loader": "5.2.2", + "babel-core": "5.8.25", + "babel-eslint": "4.1.3", + "babel-loader": "5.3.2", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", - "grunt-contrib-uglify": "0.9.1", + "grunt-contrib-uglify": "0.9.2", "grunt-contrib-watch": "0.6.1", - "grunt-karma": "0.11.2", - "grunt-karma-coveralls": "2.5.3", + "grunt-karma": "0.12.1", + "grunt-karma-coveralls": "2.5.4", "grunt-webpack": "1.0.11", "jit-grunt": "0.9.1", "jshint-loader": "0.8.3", - "karma": "0.12.37", + "karma": "0.13.9", "karma-chai": "0.1.0", "karma-chrome-launcher": "0.2.0", - "karma-coverage": "0.4.2", + "karma-coverage": "0.5.2", "karma-firefox-launcher": "0.1.6", "karma-mocha": "0.2.0", - "karma-phantomjs-launcher": "0.2.0", + "karma-phantomjs-launcher": "0.2.1", "karma-script-launcher": "0.1.0", "karma-sinon": "1.0.4", - "karma-spec-reporter": "0.0.19", + "karma-spec-reporter": "0.0.20", + "standard": "5.3.1", "time-grunt": "1.2.1", - "webpack-dev-server": "1.10.1" + "webpack-dev-server": "1.11.0" }, "scripts": { "test": "grunt test" @@ -51,6 +53,9 @@ "angular": ">=1.1.0", "js-data": ">=2.0.0" }, + "standard": { + "parser": "babel-eslint" + }, "dependencies": { "js-data-http": ">=2.0.0" } diff --git a/src/index.js b/src/index.js index b8040b6..29a536b 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,10 @@ -/*jshint loopfunc:true*/ -let JSData = require('js-data'); -let DSHttpAdapter = require('../node_modules/js-data-http/src/index.js'); -let angular = require('angular'); +/* jshint loopfunc:true */ +let JSData = require('js-data') +let DSHttpAdapter = require('../node_modules/js-data-http/src/index.js') +let angular = require('angular') -let { DSUtils, DSErrors } = JSData; -let { isString, isNumber, isObject, set, resolveId } = DSUtils; +let { DSUtils, DSErrors } = JSData +let { isString, isNumber, isObject, set, resolveId } = DSUtils let adapters = [ { @@ -27,165 +27,164 @@ let adapters = [ name: 'sql', 'class': 'DSSqlAdapter' } -]; +] let functionsToWrap = [ 'compute', 'digest', 'eject', 'inject' -]; +] -function registerAdapter(adapter) { - let Adapter; +function registerAdapter (adapter) { + let Adapter try { - Adapter = require(adapter.project); - } catch (e) { - - } + Adapter = require(adapter.project) + } catch (e) {} if (!Adapter) { - Adapter = window[adapter.class]; + Adapter = window[adapter.class] } if (Adapter) { - adapter.loaded = true; + adapter.loaded = true angular.module('js-data').provider(adapter.class, function () { - let _this = this; - _this.defaults = {}; - _this.$get = [() => new Adapter(_this.defaults)]; - }); + let _this = this + _this.defaults = {} + _this.$get = [() => new Adapter(_this.defaults)] + }) } } class DSHttpAdapterProvider { - constructor() { - let defaults = {}; - this.defaults = defaults; + constructor () { + let defaults = {} + this.defaults = defaults this.$get = ['$http', 'DS', ($http, DS) => { - defaults.http = defaults.http || $http; - let adapter = new DSHttpAdapter(defaults); - DS.registerAdapter('http', adapter, { 'default': true }); - return adapter; - }]; + defaults.http = defaults.http || $http + let adapter = new DSHttpAdapter(defaults) + DS.registerAdapter('http', adapter, { 'default': true }) + return adapter + }] } } class DSProvider { - constructor() { - let _this = this; - let deps = []; + constructor () { + let _this = this + let deps = [] for (var i = 0; i < adapters.length; i++) { if (adapters[i].loaded) { - deps.push(adapters[i].class); + deps.push(adapters[i].class) } } - _this.defaults = {}; + _this.defaults = {} JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { - let _this = this; + let _this = this - params = params || {}; + params = params || {} if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); + throw new DSErrors.NER(resourceName) } else if (!isObject(params)) { - throw new DSErrors.IA('"params" must be an object!'); + throw new DSErrors.IA('"params" must be an object!') } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); + throw new DSErrors.IA('"scope" must be an object!') } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); + throw new DSErrors.IA('"expr" must be a string!') } try { return scope.$watch(() => _this.lastModified(resourceName), () => { - let items = _this.filter(resourceName, params); - set(scope, expr, items); + let items = _this.filter(resourceName, params) + set(scope, expr, items) if (cb) { - cb(null, items); + cb(null, items) } - }); + }) } catch (err) { if (cb) { - cb(err); + cb(err) } else { - throw err; + throw err } } - }; + } JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { - let _this = this; + let _this = this - id = resolveId(_this.definitions[resourceName], id); + id = resolveId(_this.definitions[resourceName], id) if (!_this.definitions[resourceName]) { - throw new DSErrors.NER(resourceName); + throw new DSErrors.NER(resourceName) } else if (!isString(id) && !isNumber(id)) { - throw new DSErrors.IA('"id" must be a string or a number!'); + throw new DSErrors.IA('"id" must be a string or a number!') } else if (!isObject(scope)) { - throw new DSErrors.IA('"scope" must be an object!'); + throw new DSErrors.IA('"scope" must be an object!') } else if (!isString(expr)) { - throw new DSErrors.IA('"expr" must be a string!'); + throw new DSErrors.IA('"expr" must be a string!') } try { return scope.$watch(() => _this.lastModified(resourceName, id), () => { - let item = _this.get(resourceName, id); + let item = _this.get(resourceName, id) if (item) { - _this.compute(resourceName, id); + _this.compute(resourceName, id) } - set(scope, expr, item); + set(scope, expr, item) if (cb) { - cb(null, item); + cb(null, item) } - }); + }) } catch (err) { if (cb) { - cb(err); + cb(err) } else { - throw err; + throw err } } - }; + } - function load(...args) { - let $rootScope = args[args.length - 2]; - let $q = args[args.length - 1]; - let store = new JSData.DS(_this.defaults); - let originals = {}; + function load (...args) { + let $rootScope = args[args.length - 2] + let $q = args[args.length - 1] + let store = new JSData.DS(_this.defaults) + let originals = {} - function QPromise(executor) { - let deferred = $q.defer(); + function QPromise (executor) { + let deferred = $q.defer() try { - executor.call(undefined, + executor( angular.bind(deferred, deferred.resolve), - angular.bind(deferred, deferred.reject)); + angular.bind(deferred, deferred.reject) + ) } catch (err) { - deferred.reject(err); + deferred.reject(err) } - return deferred.promise; + return deferred.promise } - QPromise.all = $q.all; - QPromise.when = $q.when; - QPromise.reject = $q.reject; + QPromise.all = $q.all + QPromise.when = $q.when + QPromise.reject = $q.reject - DSUtils.Promise = QPromise; + DSUtils.Promise = QPromise // Register any adapters that have been loaded if (args.length) { for (var i = 0; i < args.length; i++) { for (var j = 0; j < adapters.length; j++) { if (adapters[j].loaded && !adapters[j].registered) { - adapters[j].registered = true; - store.registerAdapter(adapters[j].name, args[i]); - break; + adapters[j].registered = true + store.registerAdapter(adapters[j].name, args[i]) + break } } } @@ -193,29 +192,29 @@ class DSProvider { // Wrap certain sync functions with $apply for (var k = 0; k < functionsToWrap.length; k++) { - let name = functionsToWrap[k]; - originals[name] = store[name]; + let name = functionsToWrap[k] + originals[name] = store[name] store[name] = (...args) => { if (!$rootScope.$$phase) { - return $rootScope.$apply(() => originals[name].apply(store, args)); + return $rootScope.$apply(() => originals[name].apply(store, args)) } - return originals[name].apply(store, args); - }; + return originals[name].apply(store, args) + } } // Hook into the digest loop if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { - $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint()); + $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint()) } - return store; + return store } - deps.push('$rootScope'); - deps.push('$q'); - deps.push(load); + deps.push('$rootScope') + deps.push('$q') + deps.push(load) - _this.$get = deps; + _this.$get = deps } } angular.module('js-data', ['ng']) @@ -225,14 +224,13 @@ angular.module('js-data', ['ng']) .provider('DS', DSProvider) .provider('DSHttpAdapter', DSHttpAdapterProvider) .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => { - DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); - }]); - + DS.registerAdapter('http', DSHttpAdapter, { 'default': true }) + }]) for (var i = 0; i < adapters.length; i++) { - registerAdapter(adapters[i]); + registerAdapter(adapters[i]) } // return the module name -module.exports = 'js-data'; -module.exports.name = 'js-data'; +module.exports = 'js-data' +module.exports.name = 'js-data' From d40326d978f235c9f70876e6c24f5ad991965811 Mon Sep 17 00:00:00 2001 From: Gabo Esquivel <contact@gaboesquivel.com> Date: Tue, 5 Jan 2016 03:52:24 -0600 Subject: [PATCH 19/32] Update README.md replace link to gitter channel with link to slack room --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16d9621..c5984d1 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ app.controller('postCtrl', function ($scope, $routeParams, Post, Comment) { [CHANGELOG.md](https://github.com/js-data/js-data-angular/blob/master/CHANGELOG.md) ### Community -- [Gitter Channel](https://gitter.im/js-data/js-data) - Better than IRC! +- [Slack Room](http://slack.js-data.io) - Better than IRC! - [Announcements](http://www.js-data.io/blog) - [Mailing List](https://groups.io/org/groupsio/jsdata) - Ask your questions! - [Issues](https://github.com/js-data/js-data-angular/issues) - Found a bug? Feature request? Submit an issue! From c4e2975b6b5686916da684152e9d5495f8ec13c0 Mon Sep 17 00:00:00 2001 From: Tim Chen <timchen1@gmail.com> Date: Thu, 10 Mar 2016 15:14:30 -0500 Subject: [PATCH 20/32] upgrade babel-eslint to fix TypeError https://github.com/babel/babel-eslint/issues/243 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5b40d94..4160996 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "main": "dist/js-data-angular.js", "devDependencies": { "babel-core": "5.8.25", - "babel-eslint": "4.1.3", + "babel-eslint": "4.1.7", "babel-loader": "5.3.2", "grunt": "0.4.5", "grunt-contrib-clean": "0.6.0", From 7b2a2502d69870d051a5298b88bebd13c0d2d2ed Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Thu, 17 Mar 2016 21:05:38 -0700 Subject: [PATCH 21/32] 3.2.0 Fixes #347 Fixes #353 Fixes #356 --- .babelrc | 3 + .bowerrc | 3 - .github/CONTRIBUTING.md | 27 ++ .github/ISSUE_TEMPLATE.md | 7 + .github/PULL_REQUEST_TEMPLATE.md | 8 + .gitignore | 2 + .mailmap | 5 + .npmignore | 5 + AUTHORS | 24 ++ CHANGELOG.md | 7 + CONTRIBUTING.md | 24 -- Gruntfile.js | 173 ----------- LICENSE | 2 +- bower.json | 11 +- dist/js-data-angular.js | 319 +++++++++++--------- dist/js-data-angular.js.map | 1 + dist/js-data-angular.min.js | 8 +- dist/js-data-angular.min.map | 2 +- karma.conf.js | 75 +++-- karma.start.js | 254 ++++++++-------- package.json | 98 +++--- scripts/AUTHORS | 7 + scripts/CONTRIBUTORS | 6 + scripts/authors.js | 58 ++++ scripts/banner.js | 29 ++ scripts/cleanup.js | 25 ++ scripts/js-data-http.js | 23 ++ scripts/version.js | 39 +++ src/index.js | 15 +- test/datastore/sync_methods/bindAll.test.js | 8 +- test/datastore/sync_methods/bindOne.test.js | 8 +- webpack.config.js | 35 +++ 32 files changed, 746 insertions(+), 565 deletions(-) create mode 100644 .babelrc delete mode 100644 .bowerrc create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .mailmap create mode 100644 AUTHORS delete mode 100644 CONTRIBUTING.md delete mode 100644 Gruntfile.js create mode 100644 dist/js-data-angular.js.map create mode 100644 scripts/AUTHORS create mode 100644 scripts/CONTRIBUTORS create mode 100644 scripts/authors.js create mode 100644 scripts/banner.js create mode 100644 scripts/cleanup.js create mode 100644 scripts/js-data-http.js create mode 100644 scripts/version.js create mode 100644 webpack.config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..c13c5f6 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015"] +} diff --git a/.bowerrc b/.bowerrc deleted file mode 100644 index baa91a3..0000000 --- a/.bowerrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "directory": "bower_components" -} \ No newline at end of file diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..ad84ef7 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing + +[Read the Contributing Guide](http://js-data.io/docs/contributing). + +## Support + +[Find out how to Get Support](http://js-data.io/docs/support). + +## Community + +[Explore the Community](http://js-data.io/docs/community). + +### Have write access? + +To cut a release: + +1. Checkout master +1. Bump version in `package.json` appropriately +1. Run `npm run release` +1. Update `CHANGELOG.md` appropriately +1. Commit and push changes, including the `dist/` folder +1. Make a GitHub release + - set tag name to version + - set release name to version + - set release body to changelog entry for the version + - attach the files in the `dist/` folder +1. `npm publish .` diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..2ce62e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,7 @@ +(delete this line) GitHub Issues are NOT for support questions. +(delete this line) GitHub Issues ARE for bug reports, feature requests, and other issues. +(delete this line) Find out how to Get Support here: http://js-data.io/docs/support. + +<your detailed, discussable, actionable, and helpful text goes here> + +Thanks! diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4c14bdc --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,8 @@ +Fixes #<issue_number_goes_here> (it's a good idea to open an issue first for discussion) + +- [ ] - `npm test` succeeds +- [ ] - Pull request has been squashed into 1 commit +- [ ] - I did NOT commit changes to `dist/` +- [ ] - Code coverage does not decrease (if any source code was changed) +- [ ] - Appropriate JSDoc comments were updated in source code (if applicable) +- [ ] - Approprate changes to js-data.io docs have been suggested ("Suggest Edits" button) diff --git a/.gitignore b/.gitignore index 75552dd..9fef4f8 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ build_examples/browserify/bundle.js build_examples/webpack/bundle.js build_examples/webpack_es6/bundle.js build_examples/webpack_es6_2/bundle.js +.js-data-http.js +.js-data-http/ \ No newline at end of file diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..a1e3721 --- /dev/null +++ b/.mailmap @@ -0,0 +1,5 @@ +InternalFX <bryan@internalfx.com> Bryan <bryan@internalfx.com> +InternalFX <bryan@internalfx.com> Bryan Morris <bryan@internalfx.com> +Jason Dobry <jason.dobry@gmail.com> Jason Dobry <jmdobry@users.noreply.github.com> +Kent C. Dodds <kent@doddsfamily.us> Kent C. Dodds <kent+github@doddsfamily.us> +Robert Porter <rob@Roberts-MacBook-Pro.local> Robert P <rob@Roberts-MacBook-Pro.local> \ No newline at end of file diff --git a/.npmignore b/.npmignore index 1160c35..d4155b8 100644 --- a/.npmignore +++ b/.npmignore @@ -8,3 +8,8 @@ bower_components/ karma* guide/ doc/ +webpack.config.js +circle.yml + +.js-data-http.js +.js-data-http/ \ No newline at end of file diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..072af3a --- /dev/null +++ b/AUTHORS @@ -0,0 +1,24 @@ +# This is the official list of js-data-angular project authors. +# +# Names are formatted as: +# Name or Organization <email address> +# The email address is not required for organizations. +Andre Deutmeyer <a.deutmeyer@gmail.com> +Artemy Tregubenko <me@arty.name> +Asaf Katz <asf.ktz@gmail.com> +Chase Noel <chase.i.noel@gmail.com> +Clark Pan <clark.pan@ansarada.com> +David Tang <dtang859@gmail.com> +Gabo Esquivel <contact@gaboesquivel.com> +Jason Aden <jasonaden@gmail.com> +Jason Dobry <jason.dobry@gmail.com> +Kent C. Dodds <kent@doddsfamily.us> +Loïc Mahieu <mahieuloic@gmail.com> +Nikolay <garmash.nikolay@gmail.com> +Peter Dave Hello <PeterDaveHello@users.noreply.github.com> +Shai Reznik <shai.reznik@gmail.com> +thorn0 <thorn.mailbox@gmail.com> +Tim Chen <timchen1@gmail.com> +Timothy Krell <timothykrell@gmail.com> +vollnhals <lion.vollnhals@googlemail.com> +Wes Cruver <chieffancypants@gmail.com> diff --git a/CHANGELOG.md b/CHANGELOG.md index 976736c..f279d00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +##### 3.2.0 - 17 March 2016 + +###### Backwards compatible bug fixes +- #347 - BindOne recomputing computed properties +- #353 - jshint or standard? +- #356 - Multiple parents isn't working + ##### 3.1.1 - 20 September 2015 Stable Version 3.1.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 7eb0c5b..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,24 +0,0 @@ -# Contributing Guide - -First, support is handled via the [Gitter Channel](https://gitter.im/js-data/js-data) and the [Mailing List](https://groups.io/org/groupsio/jsdata). Ask your questions there. - -When submitting issues on GitHub, please include as much detail as possible to make debugging quick and easy. - -- good - Your versions of Angular, js-data, js-data-angular, etc., relevant console logs/error, code examples that revealed the issue -- better - A [plnkr](http://plnkr.co/), [fiddle](http://jsfiddle.net/), or [bin](http://jsbin.com/?html,output) that demonstrates the issue -- best - A Pull Request that fixes the issue, including test coverage for the issue and the fix - -[Github Issues](https://github.com/js-data/js-data-angular/issues). - -#### Submitting Pull Requests - -1. Contribute to the issue/discussion that is the reason you'll be developing in the first place -1. Fork js-data-angular -1. `git clone git@github.com:<you>/js-data-angular.git` -1. `cd js-data-angular; npm install; bower install;` -1. Write your code, including relevant documentation and tests -1. Run `grunt test` (build and test) -1. Your code will be linted and checked for formatting, the tests will be run -1. The `dist/` folder & files will be generated, do NOT commit `dist/*`! They will be committed when a release is cut. -1. Submit your PR and we'll review! -1. Thanks! \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index eae4a44..0000000 --- a/Gruntfile.js +++ /dev/null @@ -1,173 +0,0 @@ -/* - * js-data-angular - * http://github.com/js-data/js-data-angular - * - * Copyright (c) 2014-2015 Jason Dobry <http://www.js-data.io/docs/js-data-angular> - * Licensed under the MIT license. <https://github.com/js-data/js-data-angular/blob/master/LICENSE> - */ -module.exports = function (grunt) { - 'use strict'; - - require('jit-grunt')(grunt, { - coveralls: 'grunt-karma-coveralls' - }); - require('time-grunt')(grunt); - - var webpack = require('webpack'); - var pkg = grunt.file.readJSON('package.json'); - var banner = 'js-data-angular\n' + - '@version ' + pkg.version + ' - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' + - '@author Jason Dobry <jason.dobry@gmail.com>\n' + - '@copyright (c) 2014-2015 Jason Dobry \n' + - '@license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + - '\n' + - '@overview Angular wrapper for js-data.'; - - // Project configuration. - grunt.initConfig({ - pkg: pkg, - clean: { - dist: ['dist/'] - }, - watch: { - dist: { - files: ['src/**/*.js'], - tasks: ['build'] - } - }, - uglify: { - main: { - options: { - sourceMap: true, - sourceMapName: 'dist/js-data-angular.min.map', - banner: '/*!\n' + - '* js-data-angular\n' + - '* @version <%= pkg.version %> - Homepage <https://www.js-data.io/docs/js-data-angular/>\n' + - '* @author Jason Dobry <jason.dobry@gmail.com>\n' + - '* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/>\n' + - '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + - '*\n' + - '* @overview Angular wrapper for js-data.\n' + - '*/\n' - }, - files: { - 'dist/js-data-angular.min.js': ['dist/js-data-angular.js'] - } - } - }, - karma: { - options: { - configFile: './karma.conf.js' - }, - dev: { - browsers: ['Chrome'], - autoWatch: true, - singleRun: false, - reporters: ['spec'], - preprocessors: {} - }, - min: { - browsers: ['Chrome', 'Firefox', 'PhantomJS'], - options: { - files: [ - 'bower_components/angular-1.3.2/angular.js', - 'bower_components/angular-mocks-1.3.2/angular-mocks.js', - 'node_modules/js-data/dist/js-data.min.js', - 'dist/js-data-angular.min.js', - 'karma.start.js', - 'test/**/*.js' - ] - } - }, - c9: { - browsers: ['PhantomJS'], - options: { - files: [ - 'bower_components/angular-1.3.2/angular.js', - 'bower_components/angular-mocks-1.3.2/angular-mocks.js', - 'node_modules/js-data/dist/js-data.min.js', - 'dist/js-data-angular.min.js', - 'karma.start.js', - 'test/**/*.js' - ] - } - } - }, - coveralls: { - options: { - coverage_dir: 'coverage' - } - }, - webpack: { - dist: { - debug: true, - entry: './src/index.js', - output: { - filename: './dist/js-data-angular.js', - libraryTarget: 'umd2', - library: 'jsDataAngularModuleName' - }, - externals: { - 'js-data': { - amd: 'js-data', - commonjs: 'js-data', - commonjs2: 'js-data', - root: 'JSData' - }, - 'axios': 'axios', - 'angular': 'angular' - }, - module: { - loaders: [ - { test: /(.+)\.js$/, loader: 'babel-loader?blacklist=useStrict' } - ], - preLoaders: [ - { - test: /(.+)\.js$/, // include .js files - exclude: /node_modules/, // exclude any and all files in the node_modules folder - loader: "jshint-loader?failOnHint=true" - } - ] - }, - plugins: [ - new webpack.BannerPlugin(banner) - ] - } - } - }); - - grunt.registerTask('standard', function () { - var child_process = require('child_process'); - var done = this.async(); - grunt.log.writeln('Linting for correcting formatting...'); - child_process.exec('node node_modules/standard/bin/cmd.js --parser babel-eslint src/*.js src/**/*.js src/**/**/*.js', function (err, stdout) { - console.log(stdout); - if (err) { - grunt.log.writeln('Failed due to ' + (stdout.split('\n').length - 2) + ' lint errors!'); - done(err); - } else { - grunt.log.writeln('Done linting.'); - done(); - } - }); - }); - - grunt.registerTask('version', function (filePath) { - var file = grunt.file.read(filePath); - - file = file.replace(/<%= pkg\.version %>/gi, pkg.version); - - grunt.file.write(filePath, file); - }); - - grunt.registerTask('build', [ - 'clean', - 'standard', - 'webpack', - 'uglify' - ]); - grunt.registerTask('go', ['build', 'watch:dist']); - grunt.registerTask('default', ['build']); - grunt.registerTask('test', ['build', 'karma:min']); - grunt.registerTask('test_c9', ['build', 'karma:c9']); -}; diff --git a/LICENSE b/LICENSE index 460f8ee..21fc5e4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2014-2015 Jason Dobry +Copyright (c) 2014-2016 js-data-angular project authors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/bower.json b/bower.json index 5679625..529ee44 100644 --- a/bower.json +++ b/bower.json @@ -1,8 +1,8 @@ { - "author": "Jason Dobry", + "author": "js-data-angular project authors", "name": "js-data-angular", "description": "Angular wrapper for js-data (originally angular-data).", - "homepage": "http://www.js-data.io/docs/js-data-angular", + "homepage": "https://github.com/js-data/js-data-angular", "repository": { "type": "git", "url": "https://github.com/js-data/js-data-angular.git" @@ -13,8 +13,10 @@ ".*", "*.iml", "src/", - "Gruntfile.js", "node_modules/", + "doc", + "coverage", + "test", "package.json" ], "devDependencies": { @@ -22,8 +24,7 @@ "angular-mocks-1.3.2": "angular-mocks#1.3.2" }, "dependencies": { - "js-data": ">=2.0.0", - "js-data-http": ">=2.0.0", + "js-data": ">=2.0.0 <3", "angular": ">=1.1.0" } } diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 2110765..e75c580 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,12 +1,11 @@ /*! - * js-data-angular - * @version 3.1.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> - * @author Jason Dobry <jason.dobry@gmail.com> - * @copyright (c) 2014-2015 Jason Dobry - * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> - * - * @overview Angular wrapper for js-data. - */ +* js-data-angular +* @version 3.2.0 - Homepage <https://github.com/js-data/js-data-angular> +* @copyright (c) 2014-2016 js-data-angular project authors +* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> +* +* @overview Angular wrapper for js-data. +*/ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("js-data"), require("angular"), (function webpackLoadOptionalExternalModule() { try { return require("axios"); } catch(e) {} }())); @@ -22,41 +21,41 @@ return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; - +/******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { - +/******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; - +/******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; - +/******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - +/******/ /******/ // Flag the module as loaded /******/ module.loaded = true; - +/******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } - - +/******/ +/******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; - +/******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; - +/******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; - +/******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) @@ -65,21 +64,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 0 */ /***/ function(module, exports, __webpack_require__) { - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - + 'use strict'; + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + /* jshint loopfunc:true */ var JSData = __webpack_require__(1); var DSHttpAdapter = __webpack_require__(2); var angular = __webpack_require__(4); - + var DSUtils = JSData.DSUtils; var DSErrors = JSData.DSErrors; + var get = DSUtils.get; var isString = DSUtils.isString; var isNumber = DSUtils.isNumber; var isObject = DSUtils.isObject; var set = DSUtils.set; var resolveId = DSUtils.resolveId; - + + var adapters = [{ project: 'js-data-localstorage', name: 'localstorage', @@ -97,23 +100,23 @@ return /******/ (function(modules) { // webpackBootstrap name: 'sql', 'class': 'DSSqlAdapter' }]; - + var functionsToWrap = ['compute', 'digest', 'eject', 'inject']; - + function registerAdapter(adapter) { - var Adapter = undefined; - + var Adapter = void 0; + try { Adapter = __webpack_require__(5)(adapter.project); } catch (e) {} - + if (!Adapter) { - Adapter = window[adapter['class']]; + Adapter = window[adapter.class]; } - + if (Adapter) { adapter.loaded = true; - angular.module('js-data').provider(adapter['class'], function () { + angular.module('js-data').provider(adapter.class, function () { var _this = this; _this.defaults = {}; _this.$get = [function () { @@ -122,13 +125,13 @@ return /******/ (function(modules) { // webpackBootstrap }); } } - + var DSHttpAdapterProvider = function DSHttpAdapterProvider() { _classCallCheck(this, DSHttpAdapterProvider); - + var defaults = {}; this.defaults = defaults; - + this.$get = ['$http', 'DS', function ($http, DS) { defaults.http = defaults.http || $http; var adapter = new DSHttpAdapter(defaults); @@ -136,26 +139,26 @@ return /******/ (function(modules) { // webpackBootstrap return adapter; }]; }; - + var DSProvider = function DSProvider() { _classCallCheck(this, DSProvider); - + var _this = this; var deps = []; - + for (var i = 0; i < adapters.length; i++) { if (adapters[i].loaded) { - deps.push(adapters[i]['class']); + deps.push(adapters[i].class); } } - + _this.defaults = {}; - + JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) { var _this = this; - + params = params || {}; - + if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); } else if (!isObject(params)) { @@ -165,12 +168,19 @@ return /******/ (function(modules) { // webpackBootstrap } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } - + + var idAttribute = _this.definitions[resourceName].idAttribute; + try { return scope.$watch(function () { return _this.lastModified(resourceName); }, function () { var items = _this.filter(resourceName, params); + if (items && items.length) { + angular.forEach(items, function (item) { + _this.compute(resourceName, get(item, idAttribute)); + }); + } set(scope, expr, items); if (cb) { cb(null, items); @@ -184,10 +194,10 @@ return /******/ (function(modules) { // webpackBootstrap } } }; - + JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) { var _this = this; - + id = resolveId(_this.definitions[resourceName], id); if (!_this.definitions[resourceName]) { throw new DSErrors.NER(resourceName); @@ -198,7 +208,7 @@ return /******/ (function(modules) { // webpackBootstrap } else if (!isString(expr)) { throw new DSErrors.IA('"expr" must be a string!'); } - + try { return scope.$watch(function () { return _this.lastModified(resourceName, id); @@ -220,35 +230,35 @@ return /******/ (function(modules) { // webpackBootstrap } } }; - + function load() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - + var $rootScope = args[args.length - 2]; var $q = args[args.length - 1]; var store = new JSData.DS(_this.defaults); var originals = {}; - + function QPromise(executor) { var deferred = $q.defer(); - + try { executor(angular.bind(deferred, deferred.resolve), angular.bind(deferred, deferred.reject)); } catch (err) { deferred.reject(err); } - + return deferred.promise; } - + QPromise.all = $q.all; QPromise.when = $q.when; QPromise.reject = $q.reject; - + DSUtils.Promise = QPromise; - + // Register any adapters that have been loaded if (args.length) { for (var i = 0; i < args.length; i++) { @@ -261,17 +271,17 @@ return /******/ (function(modules) { // webpackBootstrap } } } - + // Wrap certain sync functions with $apply - - var _loop = function () { + + var _loop = function _loop() { var name = functionsToWrap[k]; originals[name] = store[name]; store[name] = function () { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } - + if (!$rootScope.$$phase) { return $rootScope.$apply(function () { return originals[name].apply(store, args); @@ -280,39 +290,41 @@ return /******/ (function(modules) { // webpackBootstrap return originals[name].apply(store, args); }; }; - + for (var k = 0; k < functionsToWrap.length; k++) { _loop(); } - + // Hook into the digest loop if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') { $rootScope.$watch(function () { return store.observe.Platform.performMicrotaskCheckpoint(); }); } - + return store; } - + deps.push('$rootScope'); deps.push('$q'); deps.push(load); - + _this.$get = deps; }; - + angular.module('js-data', ['ng']).value('DSUtils', DSUtils).value('DSErrors', DSErrors).value('DSVersion', JSData.version).provider('DS', DSProvider).provider('DSHttpAdapter', DSHttpAdapterProvider).run(['DS', 'DSHttpAdapter', function (DS, DSHttpAdapter) { DS.registerAdapter('http', DSHttpAdapter, { 'default': true }); }]); - + for (var i = 0; i < adapters.length; i++) { registerAdapter(adapters[i]); } - + // return the module name module.exports = 'js-data'; - module.exports.name = 'js-data'; + try { + module.exports.name = 'js-data'; + } catch (e) {} /***/ }, /* 1 */ @@ -324,17 +336,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 2 */ /***/ function(module, exports, __webpack_require__) { - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - + 'use strict'; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + + var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + + function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + var JSData = __webpack_require__(1); var axios = null; - + try { axios = __webpack_require__(3); } catch (e) {} - + var DSUtils = JSData.DSUtils; var deepMixIn = DSUtils.deepMixIn; var removeCircular = DSUtils.removeCircular; @@ -342,12 +360,12 @@ return /******/ (function(modules) { // webpackBootstrap var makePath = DSUtils.makePath; var isString = DSUtils.isString; var isNumber = DSUtils.isNumber; - - var Defaults = (function () { + + var Defaults = function () { function Defaults() { _classCallCheck(this, Defaults); } - + _createClass(Defaults, [{ key: 'queryTransform', value: function queryTransform(resourceConfig, params) { @@ -370,24 +388,24 @@ return /******/ (function(modules) { // webpackBootstrap key: 'error', value: function error() {} }]); - + return Defaults; - })(); - + }(); + var defaultsPrototype = Defaults.prototype; - + defaultsPrototype.basePath = ''; - + defaultsPrototype.forceTrailingSlash = ''; - + defaultsPrototype.httpConfig = {}; - + defaultsPrototype.verbsUseBasePath = false; - - var DSHttpAdapter = (function () { + + var DSHttpAdapter = function () { function DSHttpAdapter(options) { _classCallCheck(this, DSHttpAdapter); - + options = options || {}; this.defaults = new Defaults(); if (console) { @@ -403,57 +421,60 @@ return /******/ (function(modules) { // webpackBootstrap deepMixIn(this.defaults, options); this.http = options.http || axios; } - + _createClass(DSHttpAdapter, [{ key: 'getEndpoint', value: function getEndpoint(resourceConfig, id, options) { - var _this2 = this; - options = options || {}; options.params = options.params || {}; - - var item = undefined; - var parentKey = resourceConfig.parentKey; + var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; - var parentField = resourceConfig.parentField; - var parentDef = resourceConfig.getResource(resourceConfig.parent); - var parentId = options.params[parentKey]; - - if (parentId === false || !parentKey || !parentDef) { - if (parentId === false) { - delete options.params[parentKey]; - } - return endpoint; - } else { - delete options.params[parentKey]; - - if (DSUtils._sn(id)) { - item = resourceConfig.get(id); - } else if (DSUtils._o(id)) { - item = id; - } - - if (item) { - parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); - } - - if (parentId) { - var _ret = (function () { - delete options.endpoint; - var _options = {}; - DSUtils.forOwn(options, function (value, key) { - _options[key] = value; - }); - return { - v: DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint) - }; - })(); - - if (typeof _ret === 'object') return _ret.v; + var parents = resourceConfig.parents || (resourceConfig.parent ? _defineProperty({}, resourceConfig.parent, { + key: resourceConfig.parentKey, + field: resourceConfig.parentField + }) : {}); + + DSUtils.forOwn(parents, function (parent, parentName) { + var _this2 = this; + + var item = void 0; + var parentKey = parent.key; + var parentField = parent.field; + var parentDef = resourceConfig.getResource(parentName); + var parentId = options.params[parentKey]; + + if (parentId === false || !parentKey || !parentDef) { + if (parentId === false) { + delete options.params[parentKey]; + } } else { - return endpoint; + delete options.params[parentKey]; + + if (DSUtils._sn(id)) { + item = resourceConfig.get(id); + } else if (DSUtils._o(id)) { + item = id; + } + console.log('item', item); + + if (item) { + parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); + } + + if (parentId) { + (function () { + delete options.endpoint; + var _options = {}; + DSUtils.forOwn(options, function (value, key) { + _options[key] = value; + }); + endpoint = DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint); + })(); + } } - } + }, this); + + return endpoint; } }, { key: 'getPath', @@ -475,8 +496,16 @@ return /******/ (function(modules) { // webpackBootstrap value: function HTTP(config) { var _this = this; var start = new Date(); - config = copy(config); + + // blacklist `data` as it can be large and will take a lot of time to copy + var payload = config.data; + var cache = config.cache; + var timeout = config.timeout; + config = copy(config, null, null, null, ['data', 'cache', 'timeout']); config = deepMixIn(config, _this.defaults.httpConfig); + config.data = payload; + config.cache = cache; + config.timeout = timeout; if (!('verbsUseBasePath' in config)) { config.verbsUseBasePath = _this.defaults.verbsUseBasePath; } @@ -486,7 +515,7 @@ return /******/ (function(modules) { // webpackBootstrap if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) { config.url += '/'; } - if (typeof config.data === 'object') { + if (_typeof(config.data) === 'object') { config.data = removeCircular(config.data); } config.method = config.method.toUpperCase(); @@ -494,7 +523,7 @@ return /******/ (function(modules) { // webpackBootstrap if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) { config.url += suffix; } - + // logs the HTTP response function logResponse(data, isRejection) { data = data || {}; @@ -503,9 +532,9 @@ return /******/ (function(modules) { // webpackBootstrap // log the Error object _this.defaults.error('FAILED: ' + (data.message || 'Unknown Error'), data); return DSUtils.Promise.reject(data); - } else if (typeof data === 'object') { + } else if ((typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') { var str = start.toUTCString() + ' - ' + config.method + ' ' + config.url + ' - ' + data.status + ' ' + (new Date().getTime() - start.getTime()) + 'ms'; - + if (data.status >= 200 && data.status < 300 && !isRejection) { if (_this.defaults.log) { _this.defaults.log(str, data); @@ -523,11 +552,11 @@ return /******/ (function(modules) { // webpackBootstrap return DSUtils.Promise.reject(data); } } - + if (!this.http) { throw new Error('You have not configured this adapter with an http library!'); } - + return this.http(config).then(logResponse, function (data) { return logResponse(data, true); }); @@ -665,10 +694,19 @@ return /******/ (function(modules) { // webpackBootstrap }); } }]); - + return DSHttpAdapter; - })(); - + }(); + + DSHttpAdapter.version = { + full: '3.2.0', + major: parseInt('3', 10), + minor: parseInt('2', 10), + patch: parseInt('0', 10), + alpha: true ? 'false' : false, + beta: true ? 'false' : false + }; + module.exports = DSHttpAdapter; /***/ }, @@ -706,4 +744,5 @@ return /******/ (function(modules) { // webpackBootstrap /***/ } /******/ ]) }); -; \ No newline at end of file +; +//# sourceMappingURL=js-data-angular.js.map \ No newline at end of file diff --git a/dist/js-data-angular.js.map b/dist/js-data-angular.js.map new file mode 100644 index 0000000..932155f --- /dev/null +++ b/dist/js-data-angular.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 00fec842a532d75d3ece","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":[],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 00fec842a532d75d3ece\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options = options || {}\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options = options || {}\n options.params = options.params || {}\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n console.log('item', item)\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options = options || {}\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || _this.defaults.basePath || resourceConfig.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = config.suffix || _this.defaults.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index eecf447..15d082a 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,12 +1,10 @@ /*! * js-data-angular -* @version 3.1.0 - Homepage <https://www.js-data.io/docs/js-data-angular/> -* @author Jason Dobry <jason.dobry@gmail.com> -* @copyright (c) 2014-2015 Jason Dobry <https://github.com/jmdobry/> +* @version 3.2.0 - Homepage <https://github.com/js-data/js-data-angular> +* @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * * @overview Angular wrapper for js-data. */ - -!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(c,d){return b(c,d,a.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=b(require("js-data"),require("angular"),function(){try{return require("axios")}catch(a){}}()):a.jsDataAngularModuleName=b(a.JSData,a.angular,a.axios)}(this,function(a,b,c){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a){var b=void 0;try{b=c(5)(a.project)}catch(d){}b||(b=window[a["class"]]),b&&(a.loaded=!0,h.module("js-data").provider(a["class"],function(){var a=this;a.defaults={},a.$get=[function(){return new b(a.defaults)}]}))}var f=c(1),g=c(2),h=c(4),i=f.DSUtils,j=f.DSErrors,k=i.isString,l=i.isNumber,m=i.isObject,n=i.set,o=i.resolveId,p=[{project:"js-data-localstorage",name:"localstorage","class":"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage","class":"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase","class":"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql","class":"DSSqlAdapter"}],q=["compute","digest","eject","inject"],r=function u(){d(this,u);var a={};this.defaults=a,this.$get=["$http","DS",function(b,c){a.http=a.http||b;var d=new g(a);return c.registerAdapter("http",d,{"default":!0}),d}]},s=function v(){function a(){function a(a){var b=j.defer();try{a(h.bind(b,b.resolve),h.bind(b,b.reject))}catch(c){b.reject(c)}return b.promise}for(var c=arguments.length,d=Array(c),e=0;c>e;e++)d[e]=arguments[e];var g=d[d.length-2],j=d[d.length-1],k=new f.DS(b.defaults),l={};if(a.all=j.all,a.when=j.when,a.reject=j.reject,i.Promise=a,d.length)for(var m=0;m<d.length;m++)for(var n=0;n<p.length;n++)if(p[n].loaded&&!p[n].registered){p[n].registered=!0,k.registerAdapter(p[n].name,d[m]);break}for(var o=function(){var a=q[r];l[a]=k[a],k[a]=function(){for(var b=arguments.length,c=Array(b),d=0;b>d;d++)c[d]=arguments[d];return g.$$phase?l[a].apply(k,c):g.$apply(function(){return l[a].apply(k,c)})}},r=0;r<q.length;r++)o();return("function"!=typeof Object.observe||"function"!=typeof Array.observe)&&g.$watch(function(){return k.observe.Platform.performMicrotaskCheckpoint()}),k}d(this,v);for(var b=this,c=[],e=0;e<p.length;e++)p[e].loaded&&c.push(p[e]["class"]);b.defaults={},f.DS.prototype.bindAll=function(a,b,c,d,e){var f=this;if(b=b||{},!f.definitions[a])throw new j.NER(a);if(!m(b))throw new j.IA('"params" must be an object!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a)},function(){var g=f.filter(a,b);n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},f.DS.prototype.bindOne=function(a,b,c,d,e){var f=this;if(b=o(f.definitions[a],b),!f.definitions[a])throw new j.NER(a);if(!k(b)&&!l(b))throw new j.IA('"id" must be a string or a number!');if(!m(c))throw new j.IA('"scope" must be an object!');if(!k(d))throw new j.IA('"expr" must be a string!');try{return c.$watch(function(){return f.lastModified(a,b)},function(){var g=f.get(a,b);g&&f.compute(a,b),n(c,d,g),e&&e(null,g)})}catch(g){if(!e)throw g;e(g)}},c.push("$rootScope"),c.push("$q"),c.push(a),b.$get=c};h.module("js-data",["ng"]).value("DSUtils",i).value("DSErrors",j).value("DSVersion",f.version).provider("DS",s).provider("DSHttpAdapter",r).run(["DS","DSHttpAdapter",function(a,b){a.registerAdapter("http",b,{"default":!0})}]);for(var t=0;t<p.length;t++)e(p[t]);a.exports="js-data",a.exports.name="js-data"},function(b,c){b.exports=a},function(a,b,c){function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var e=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),f=c(1),g=null;try{g=c(3)}catch(h){}var i=f.DSUtils,j=i.deepMixIn,k=i.removeCircular,l=i.copy,m=i.makePath,n=i.isString,o=i.isNumber,p=function(){function a(){d(this,a)}return e(a,[{key:"queryTransform",value:function(a,b){return b}},{key:"deserialize",value:function(a,b){return b&&"data"in b?b.data:b}},{key:"serialize",value:function(a,b){return b}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),a}(),q=p.prototype;q.basePath="",q.forceTrailingSlash="",q.httpConfig={},q.verbsUseBasePath=!1;var r=function(){function a(b){d(this,a),b=b||{},this.defaults=new p,console&&(this.defaults.log=function(a,b){return console["function"==typeof console.info?"info":"log"](a,b)}),console&&(this.defaults.error=function(a,b){return console["function"==typeof console.error?"error":"log"](a,b)}),j(this.defaults,b),this.http=b.http||g}return e(a,[{key:"getEndpoint",value:function(a,b,c){var d=this;c=c||{},c.params=c.params||{};var e=void 0,f=a.parentKey,g=c.hasOwnProperty("endpoint")?c.endpoint:a.endpoint,h=a.parentField,j=a.getResource(a.parent),k=c.params[f];if(k===!1||!f||!j)return k===!1&&delete c.params[f],g;if(delete c.params[f],i._sn(b)?e=a.get(b):i._o(b)&&(e=b),e&&(k=k||e[f]||(e[h]?e[h][j.idAttribute]:null)),!k)return g;var l=function(){delete c.endpoint;var a={};return i.forOwn(c,function(b,c){a[c]=b}),{v:i.makePath(d.getEndpoint(j,k,i._(j,a)),k,g)}}();return"object"==typeof l?l.v:void 0}},{key:"getPath",value:function(a,b,c,d){var e=this;if(d=d||{},n(d.urlPath))return m.apply(i,[d.basePath||e.defaults.basePath||b.basePath,d.urlPath]);var f=[d.basePath||e.defaults.basePath||b.basePath,this.getEndpoint(b,n(c)||o(c)||"create"===a?c:null,d)];return("find"===a||"update"===a||"destroy"===a)&&f.push(c),m.apply(i,f)}},{key:"HTTP",value:function(a){function b(b,e){if(b=b||{},b instanceof Error)return c.defaults.error("FAILED: "+(b.message||"Unknown Error"),b),i.Promise.reject(b);if("object"==typeof b){var f=d.toUTCString()+" - "+a.method+" "+a.url+" - "+b.status+" "+((new Date).getTime()-d.getTime())+"ms";return b.status>=200&&b.status<300&&!e?(c.defaults.log&&c.defaults.log(f,b),b):(c.defaults.error&&c.defaults.error("FAILED: "+f,b),i.Promise.reject(b))}return c.defaults.error("FAILED",b),i.Promise.reject(b)}var c=this,d=new Date;a=l(a),a=j(a,c.defaults.httpConfig),"verbsUseBasePath"in a||(a.verbsUseBasePath=c.defaults.verbsUseBasePath),!a.urlOverride&&a.verbsUseBasePath&&(a.url=m(a.basePath||c.defaults.basePath,a.url)),c.defaults.forceTrailingSlash&&"/"!==a.url[a.url.length-1]&&!a.urlOverride&&(a.url+="/"),"object"==typeof a.data&&(a.data=k(a.data)),a.method=a.method.toUpperCase();var e=a.suffix||c.defaults.suffix;if(e&&a.url.substr(a.url.length-e.length)!==e&&!a.urlOverride&&(a.url+=e),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(a).then(b,function(a){return b(a,!0)})}},{key:"GET",value:function(a,b){return b=b||{},b.method=b.method||"get",b.urlOverride=!!b.url,b.url=b.url||a,this.HTTP(b)}},{key:"POST",value:function(a,b,c){return c=c||{},c.method=c.method||"post",c.urlOverride=!!c.url,c.url=c.url||a,c.data=c.data||b,this.HTTP(c)}},{key:"PUT",value:function(a,b,c){return c=c||{},c.method=c.method||"put",c.urlOverride=!!c.url,c.url=c.url||a,c.data=c.data||b,this.HTTP(c)}},{key:"DEL",value:function(a,b){return b=b||{},b.method=b.method||"delete",b.urlOverride=!!b.url,b.url=b.url||a,this.HTTP(b)}},{key:"find",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.GET(d.getPath("find",a,b,c),c).then(function(b){var e=(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b);return e?e:i.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),d.GET(d.getPath("findAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"create",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.POST(d.getPath("create",a,b,c),c.serialize?c.serialize(a,b):d.defaults.serialize(a,b),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"update",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},d.params=e.defaults.queryTransform(a,d.params),e.PUT(e.getPath("update",a,b,d),d.serialize?d.serialize(a,c):e.defaults.serialize(a,c),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"updateAll",value:function(a,b,c,d){var e=this;return d=d?l(d):{},d.suffix=d.suffix||a.suffix,d.params=d.params||{},c&&(c=e.defaults.queryTransform(a,c),j(d.params,c)),this.PUT(e.getPath("updateAll",a,b,d),d.serialize?d.serialize(a,b):e.defaults.serialize(a,b),d).then(function(b){return(d.deserialize?d.deserialize:e.defaults.deserialize)(a,b)})}},{key:"destroy",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},c.params=d.defaults.queryTransform(a,c.params),d.DEL(d.getPath("destroy",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}},{key:"destroyAll",value:function(a,b,c){var d=this;return c=c?l(c):{},c.suffix=c.suffix||a.suffix,c.params=c.params||{},b&&(b=d.defaults.queryTransform(a,b),j(c.params,b)),this.DEL(d.getPath("destroyAll",a,b,c),c).then(function(b){return(c.deserialize?c.deserialize:d.defaults.deserialize)(a,b)})}}]),a}();a.exports=r},function(a,b){if("undefined"==typeof c){var d=new Error('Cannot find module "axios"');throw d.code="MODULE_NOT_FOUND",d}a.exports=c},function(a,c){a.exports=b},function(a,b,c){function d(a){return c(e(a))}function e(a){return f[a]||function(){throw new Error("Cannot find module '"+a+"'.")}()}var f={};d.keys=function(){return Object.keys(f)},d.resolve=e,a.exports=d,d.id=5}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,s.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),o=r(2),s=r(4),u=i.DSUtils,l=i.DSErrors,f=u.get,d=u.isString,c=u.isNumber,p=u.isObject,h=u.set,m=u.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new o(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=l.defer();try{e(s.bind(t,t.resolve),s.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var o=a[a.length-2],l=a[a.length-1],f=new i.DS(r.defaults),d={};if(e.all=l.all,e.when=l.when,e.reject=l.reject,u.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,f.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=f[e],f[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return o.$$phase?d[e].apply(f,r):o.$apply(function(){return d[e].apply(f,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||o.$watch(function(){return f.observe.Platform.performMicrotaskCheckpoint()}),f}a(this,e);for(var r=this,n=[],o=0;o<v.length;o++)v[o].loaded&&n.push(v[o].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new l.NER(e);if(!p(t))throw new l.IA('"params" must be an object!');if(!p(r))throw new l.IA('"scope" must be an object!');if(!d(a))throw new l.IA('"expr" must be a string!');var o=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var u=i.filter(e,t);u&&u.length&&s.forEach(u,function(t){i.compute(e,f(t,o))}),h(r,a,u),n&&n(null,u)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new l.NER(e);if(!d(t)&&!c(t))throw new l.IA('"id" must be a string or a number!');if(!p(r))throw new l.IA('"scope" must be an object!');if(!d(a))throw new l.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var o=i.get(e,t);o&&i.compute(e,t),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};s.module("js-data",["ng"]).value("DSUtils",u).value("DSErrors",l).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var w=0;w<v.length;w++)n(v[w]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),s=r(1),u=null;try{u=r(3)}catch(e){}var l=s.DSUtils,f=l.deepMixIn,d=l.removeCircular,c=l.copy,p=l.makePath,h=l.isString,m=l.isNumber,v=function(){function e(){n(this,e)}return o(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),y=v.prototype;y.basePath="",y.forceTrailingSlash="",y.httpConfig={},y.verbsUseBasePath=!1;var g=function(){function e(t){n(this,e),t=t||{},this.defaults=new v,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),f(this.defaults,t),this.http=t.http||u}return o(e,[{key:"getEndpoint",value:function(e,t,r){r=r||{},r.params=r.params||{};var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,i=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(i,function(a,i){var o=this,s=void 0,u=a.key,f=a.field,d=e.getResource(i),c=r.params[u];c!==!1&&u&&d?(delete r.params[u],l._sn(t)?s=e.get(t):l._o(t)&&(s=t),console.log("item",s),s&&(c=c||s[u]||(s[f]?s[f][d.idAttribute]:null)),c&&!function(){delete r.endpoint;var e={};l.forOwn(r,function(t,r){e[r]=t}),n=l.makePath(o.getEndpoint(d,c,l._(d,e)),c,n)}()):c===!1&&delete r.params[u]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a=a||{},h(a.urlPath))return p.apply(l,[a.basePath||n.defaults.basePath||t.basePath,a.urlPath]);var i=[a.basePath||n.defaults.basePath||t.basePath,this.getEndpoint(t,h(r)||m(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),p.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":i(t))){var o=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(o,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+o,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,o=e.cache,s=e.timeout;e=c(e,null,null,null,["data","cache","timeout"]),e=f(e,r.defaults.httpConfig),e.data=n,e.cache=o,e.timeout=s,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=p(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===i(e.data)&&(e.data=d(e.data)),e.method=e.method.toUpperCase();var u=e.suffix||r.defaults.suffix;if(u&&e.url.substr(e.url.length-u.length)!==u&&!e.urlOverride&&(e.url+=u),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},t&&(t=a.defaults.queryTransform(e,t),f(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a=a?c(a):{},a.suffix=a.suffix||e.suffix,a.params=a.params||{},a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a=a?c(a):{},a.suffix=a.suffix||e.suffix,a.params=a.params||{},r&&(r=n.defaults.queryTransform(e,r),f(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},t&&(t=a.defaults.queryTransform(e,t),f(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();g.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=g},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index bd5b4b7..2db5185 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"file":"js-data-angular.min.js","sources":["js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","undefined","project","window","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","isString","isNumber","isObject","set","resolveId","adapters","name","class","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","lastModified","items","filter","bindOne","item","get","compute","value","version","run","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","_this2","parentKey","endpoint","hasOwnProperty","parentField","parentDef","getResource","parent","parentId","_sn","_o","idAttribute","_ret","_options","forOwn","v","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","_this2","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index 43b6ffc..31fe59d 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,63 +1,78 @@ -// an example karma.conf.js +var customLaunchers = { + bs_ie9_windows7: { + base: 'BrowserStack', + browser: 'ie', + browser_version: '9.0', + os: 'Windows', + os_version: '7' + }, + bs_safari7_osxmavericks: { + base: 'BrowserStack', + browser: 'safari', + browser_version: '7.1', + os: 'OS X', + os_version: 'Mavericks' + }, + bs_firefox41_windows7: { + base: 'BrowserStack', + browser: 'firefox', + browser_version: '41.0', + os: 'Windows', + os_version: '7' + }, + bs_chrome46_windows7: { + base: 'BrowserStack', + browser: 'chrome', + browser_version: '46.0', + os: 'Windows', + os_version: '7' + } +} + +var browsers = ['PhantomJS'] +if ( + process.env.BROWSERSTACK_USERNAME && + process.env.BROWSERSTACK_ACCESS_KEY +) { + browsers = browsers.concat(Object.keys(customLaunchers)) +} + module.exports = function (config) { config.set({ - // base path, that will be used to resolve files and exclude basePath: './', frameworks: ['sinon', 'chai', 'mocha'], plugins: [ - // these plugins will be require() by Karma 'karma-sinon', 'karma-mocha', 'karma-chai', - 'karma-chrome-launcher', 'karma-phantomjs-launcher', - 'karma-firefox-launcher', - 'karma-coverage', - 'karma-spec-reporter' + 'karma-coverage' ], autoWatch: false, browserNoActivityTimeout: 30000, - browsers: ['Chrome'], - - // list of files / patterns to load in the browser + browsers: browsers, files: [ 'bower_components/angular-1.3.2/angular.js', 'bower_components/angular-mocks-1.3.2/angular-mocks.js', + 'node_modules/babel-polyfill/dist/polyfill.js', 'node_modules/js-data/dist/js-data.js', 'dist/js-data-angular.js', 'karma.start.js', 'test/**/*.js' ], - - reporters: ['spec', 'coverage'], - + reporters: ['dots', 'coverage'], preprocessors: { 'dist/js-data-angular.js': ['coverage'] }, - - // optionally, configure the reporter coverageReporter: { type: 'lcov', dir: 'coverage/' }, - - // web server port port: 9876, - - // cli runner port runnerPort: 9100, - - // enable / disable colors in the output (reporters and logs) colors: true, - - // level of logging logLevel: config.LOG_INFO, - - // If browser does not capture in given timeout [ms], kill it captureTimeout: 30000, - - // Continuous Integration mode - // if true, it capture browsers, run tests and exit singleRun: true - }); -}; + }) +} diff --git a/karma.start.js b/karma.start.js index 1054600..cc3bd79 100644 --- a/karma.start.js +++ b/karma.start.js @@ -1,18 +1,18 @@ // Setup global test variables -var $rootScope, $q, $log, $timeout, DSHttpAdapterProvider, DSProvider, DS, DSUtils, DSHttpAdapter, app, $httpBackend, p1, p2, p3, p4, p5; +var $rootScope, $q, $log, $timeout, DSHttpAdapterProvider, DSProvider, DS, DSUtils, DSHttpAdapter, app, $httpBackend, p1, p2, p3, p4, p5 -var Post, User, Organization, Comment, Profile; -var user1, organization2, comment3, profile4; -var comment11, comment12, comment13, organization14, profile15, user10, user16, user17, user18, organization15, user19, user20, comment19, user22, profile21; +var Post, User, Organization, Comment, Profile +var user1, organization2, comment3, profile4 +var comment11, comment12, comment13, organization14, profile15, user10, user16, user17, user18, organization15, user19, user20, comment19, user22, profile21 -var lifecycle = {}; +var lifecycle = {} // Helper globals var fail = function (msg) { if (msg instanceof Error) { - console.log(msg.stack); + console.log(msg.stack) } else { - assert.equal('should not reach this!: ' + msg, 'failure'); + assert.equal('should not reach this!: ' + msg, 'failure') } }, TYPES_EXCEPT_STRING = [123, 123.123, null, undefined, {}, [], true, false, function () { @@ -35,105 +35,105 @@ var fail = function (msg) { }], TYPES_EXCEPT_BOOLEAN = ['string', 123, 123.123, null, undefined, {}, [], function () { }], - TYPES_EXCEPT_FUNCTION = ['string', 123, 123.123, null, undefined, {}, [], true, false]; + TYPES_EXCEPT_FUNCTION = ['string', 123, 123.123, null, undefined, {}, [], true, false] -angular.module('app', ['ng', 'js-data']); +angular.module('app', ['ng', 'js-data']) // Setup before each test beforeEach(function () { lifecycle.beforeValidate = function (resourceName, attrs, cb) { - lifecycle.beforeValidate.callCount += 1; - cb(null, attrs); - }; + lifecycle.beforeValidate.callCount += 1 + cb(null, attrs) + } lifecycle.validate = function (resourceName, attrs, cb) { - lifecycle.validate.callCount += 1; - cb(null, attrs); - }; + lifecycle.validate.callCount += 1 + cb(null, attrs) + } lifecycle.afterValidate = function (resourceName, attrs, cb) { - lifecycle.afterValidate.callCount += 1; - cb(null, attrs); - }; + lifecycle.afterValidate.callCount += 1 + cb(null, attrs) + } lifecycle.beforeCreate = function (resourceName, attrs, cb) { - lifecycle.beforeCreate.callCount += 1; - cb(null, attrs); - }; + lifecycle.beforeCreate.callCount += 1 + cb(null, attrs) + } lifecycle.afterCreate = function (resourceName, attrs, cb) { - lifecycle.afterCreate.callCount += 1; - cb(null, attrs); - }; + lifecycle.afterCreate.callCount += 1 + cb(null, attrs) + } lifecycle.beforeUpdate = function (resourceName, attrs, cb) { - lifecycle.beforeUpdate.callCount += 1; - cb(null, attrs); - }; + lifecycle.beforeUpdate.callCount += 1 + cb(null, attrs) + } lifecycle.afterUpdate = function (resourceName, attrs, cb) { - lifecycle.afterUpdate.callCount += 1; - cb(null, attrs); - }; + lifecycle.afterUpdate.callCount += 1 + cb(null, attrs) + } lifecycle.beforeDestroy = function (resourceName, attrs, cb) { - lifecycle.beforeDestroy.callCount += 1; - cb(null, attrs); - }; + lifecycle.beforeDestroy.callCount += 1 + cb(null, attrs) + } lifecycle.afterDestroy = function (resourceName, attrs, cb) { - lifecycle.afterDestroy.callCount += 1; - cb(null, attrs); - }; + lifecycle.afterDestroy.callCount += 1 + cb(null, attrs) + } lifecycle.beforeInject = function () { - lifecycle.beforeInject.callCount += 1; - }; + lifecycle.beforeInject.callCount += 1 + } lifecycle.afterInject = function (resource, data) { - lifecycle.afterInject.callCount += 1; - }; + lifecycle.afterInject.callCount += 1 + } lifecycle.serialize = function (resourceName, data) { - lifecycle.serialize.callCount += 1; - return data; - }; + lifecycle.serialize.callCount += 1 + return data + } lifecycle.deserialize = function (resourceName, data) { - lifecycle.deserialize.callCount += 1; - return data ? (data.data ? data.data : data) : data;; - }; + lifecycle.deserialize.callCount += 1 + return data ? (data.data ? data.data : data) : data + } lifecycle.queryTransform = function (resourceName, query) { - lifecycle.queryTransform.callCount += 1; - return query; - }; + lifecycle.queryTransform.callCount += 1 + return query + } module('app', function (_DSProvider_, _DSHttpAdapterProvider_) { - DSProvider = _DSProvider_; - DSProvider.defaults.basePath = 'http://test.angular-cache.com'; - DSProvider.defaults.beforeValidate = lifecycle.beforeValidate; - DSProvider.defaults.validate = lifecycle.validate; - DSProvider.defaults.afterValidate = lifecycle.afterValidate; - DSProvider.defaults.beforeCreate = lifecycle.beforeCreate; - DSProvider.defaults.afterCreate = lifecycle.afterCreate; - DSProvider.defaults.beforeUpdate = lifecycle.beforeUpdate; - DSProvider.defaults.afterUpdate = lifecycle.afterUpdate; - DSProvider.defaults.beforeDestroy = lifecycle.beforeDestroy; - DSProvider.defaults.afterDestroy = lifecycle.afterDestroy; - DSProvider.defaults.beforeInject = lifecycle.beforeInject; - DSProvider.defaults.afterInject = lifecycle.afterInject; - DSProvider.defaults.serialize = lifecycle.serialize; - DSProvider.defaults.deserialize = lifecycle.deserialize; - DSHttpAdapterProvider = _DSHttpAdapterProvider_; - DSHttpAdapterProvider.defaults.queryTransform = lifecycle.queryTransform; - DSHttpAdapterProvider.defaults.log = false; - }); -}); + DSProvider = _DSProvider_ + DSProvider.defaults.basePath = 'http://test.angular-cache.com' + DSProvider.defaults.beforeValidate = lifecycle.beforeValidate + DSProvider.defaults.validate = lifecycle.validate + DSProvider.defaults.afterValidate = lifecycle.afterValidate + DSProvider.defaults.beforeCreate = lifecycle.beforeCreate + DSProvider.defaults.afterCreate = lifecycle.afterCreate + DSProvider.defaults.beforeUpdate = lifecycle.beforeUpdate + DSProvider.defaults.afterUpdate = lifecycle.afterUpdate + DSProvider.defaults.beforeDestroy = lifecycle.beforeDestroy + DSProvider.defaults.afterDestroy = lifecycle.afterDestroy + DSProvider.defaults.beforeInject = lifecycle.beforeInject + DSProvider.defaults.afterInject = lifecycle.afterInject + DSProvider.defaults.serialize = lifecycle.serialize + DSProvider.defaults.deserialize = lifecycle.deserialize + DSHttpAdapterProvider = _DSHttpAdapterProvider_ + DSHttpAdapterProvider.defaults.queryTransform = lifecycle.queryTransform + DSHttpAdapterProvider.defaults.log = false + }) +}) function startInjector() { inject(function (_$rootScope_, _$q_, _$timeout_, _$httpBackend_, _DS_, _$log_, _DSUtils_, _DSHttpAdapter_) { // Setup global mocks - localStorage.clear(); - $q = _$q_; - $rootScope = _$rootScope_; - DS = _DS_; - $timeout = _$timeout_; - DSUtils = _DSUtils_; - DSHttpAdapter = _DSHttpAdapter_; - $httpBackend = _$httpBackend_; + localStorage.clear() + $q = _$q_ + $rootScope = _$rootScope_ + DS = _DS_ + $timeout = _$timeout_ + DSUtils = _DSUtils_ + DSHttpAdapter = _DSHttpAdapter_ + $httpBackend = _$httpBackend_ Post = DS.defineResource({ name: 'post', keepChangeHistory: true, endpoint: '/posts' - }); + }) User = DS.defineResource({ name: 'user', relations: { @@ -157,7 +157,7 @@ function startInjector() { } } } - }); + }) Organization = DS.defineResource({ name: 'organization', @@ -169,7 +169,7 @@ function startInjector() { } } } - }); + }) Profile = DS.defineResource({ name: 'profile', @@ -181,7 +181,7 @@ function startInjector() { } } } - }); + }) Comment = DS.defineResource({ name: 'comment', @@ -200,74 +200,74 @@ function startInjector() { ] } } - }); - $log = _$log_; + }) + $log = _$log_ - lifecycle.beforeValidate.callCount = 0; - lifecycle.validate.callCount = 0; - lifecycle.afterValidate.callCount = 0; - lifecycle.beforeCreate.callCount = 0; - lifecycle.afterCreate.callCount = 0; - lifecycle.beforeUpdate.callCount = 0; - lifecycle.afterUpdate.callCount = 0; - lifecycle.beforeDestroy.callCount = 0; - lifecycle.afterDestroy.callCount = 0; - lifecycle.beforeInject.callCount = 0; - lifecycle.afterInject.callCount = 0; - lifecycle.serialize.callCount = 0; - lifecycle.deserialize.callCount = 0; - lifecycle.queryTransform.callCount = 0; + lifecycle.beforeValidate.callCount = 0 + lifecycle.validate.callCount = 0 + lifecycle.afterValidate.callCount = 0 + lifecycle.beforeCreate.callCount = 0 + lifecycle.afterCreate.callCount = 0 + lifecycle.beforeUpdate.callCount = 0 + lifecycle.afterUpdate.callCount = 0 + lifecycle.beforeDestroy.callCount = 0 + lifecycle.afterDestroy.callCount = 0 + lifecycle.beforeInject.callCount = 0 + lifecycle.afterInject.callCount = 0 + lifecycle.serialize.callCount = 0 + lifecycle.deserialize.callCount = 0 + lifecycle.queryTransform.callCount = 0 - p1 = { author: 'John', age: 30, id: 5 }; - p2 = { author: 'Sally', age: 31, id: 6 }; - p3 = { author: 'Mike', age: 32, id: 7 }; - p4 = { author: 'Adam', age: 33, id: 8 }; - p5 = { author: 'Adam', age: 33, id: 9 }; + p1 = { author: 'John', age: 30, id: 5 } + p2 = { author: 'Sally', age: 31, id: 6 } + p3 = { author: 'Mike', age: 32, id: 7 } + p4 = { author: 'Adam', age: 33, id: 8 } + p5 = { author: 'Adam', age: 33, id: 9 } user1 = { name: 'John Anderson', id: 1, organizationId: 2 - }; + } organization2 = { name: 'Test Corp 2', id: 2 - }; + } comment3 = { content: 'test comment 3', id: 3, userId: 1 - }; + } profile4 = { content: 'test profile 4', id: 4, userId: 1 - }; + } comment11 = { id: 11, userId: 10, content: 'test comment 11' - }; + } comment12 = { id: 12, userId: 10, content: 'test comment 12' - }; + } comment13 = { id: 13, userId: 10, content: 'test comment 13' - }; + } organization14 = { id: 14, name: 'Test Corp' - }; + } profile15 = { id: 15, userId: 10, email: 'john.anderson@test.com' - }; + } user10 = { name: 'John Anderson', id: 10, @@ -279,22 +279,22 @@ function startInjector() { ], organization: organization14, profile: profile15 - }; + } user16 = { id: 16, organizationId: 15, name: 'test user 16' - }; + } user17 = { id: 17, organizationId: 15, name: 'test user 17' - }; + } user18 = { id: 18, organizationId: 15, name: 'test user 18' - }; + } organization15 = { name: 'Another Test Corp', id: 15, @@ -303,15 +303,15 @@ function startInjector() { user17, user18 ] - }; + } user19 = { id: 19, name: 'test user 19' - }; + } user20 = { id: 20, name: 'test user 20' - }; + } comment19 = { content: 'test comment 19', id: 19, @@ -319,27 +319,27 @@ function startInjector() { approvedByUser: user19, userId: 20, user: user20 - }; + } user22 = { id: 22, name: 'test user 22' - }; + } profile21 = { content: 'test profile 21', id: 21, userId: 22, user: user22 - }; - }); + } + }) } // Clean up after each test afterEach(function () { try { - $httpBackend.verifyNoOutstandingExpectation(); - $httpBackend.verifyNoOutstandingRequest(); + $httpBackend.verifyNoOutstandingExpectation() + $httpBackend.verifyNoOutstandingRequest() } catch (err) { - console.log(err); + console.log(err) } - $log.reset(); -}); + $log.reset() +}) diff --git a/package.json b/package.json index 4160996..0bc7cd2 100644 --- a/package.json +++ b/package.json @@ -1,62 +1,70 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.1.0", + "version": "3.2.0", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", "url": "https://github.com/js-data/js-data-angular.git" }, - "author": { - "name": "Jason Dobry", - "url": "http://www.pseudobry.com", - "email": "jason.dobry@gmail.com" - }, - "licenses": [ - { - "type": "MIT", - "url": "https://github.com/js-data/js-data-angular/blob/master/LICENSE" - } - ], + "author": "js-data-angular project authors", + "license": "MIT", "main": "dist/js-data-angular.js", - "devDependencies": { - "babel-core": "5.8.25", - "babel-eslint": "4.1.7", - "babel-loader": "5.3.2", - "grunt": "0.4.5", - "grunt-contrib-clean": "0.6.0", - "grunt-contrib-uglify": "0.9.2", - "grunt-contrib-watch": "0.6.1", - "grunt-karma": "0.12.1", - "grunt-karma-coveralls": "2.5.4", - "grunt-webpack": "1.0.11", - "jit-grunt": "0.9.1", - "jshint-loader": "0.8.3", - "karma": "0.13.9", - "karma-chai": "0.1.0", - "karma-chrome-launcher": "0.2.0", - "karma-coverage": "0.5.2", - "karma-firefox-launcher": "0.1.6", - "karma-mocha": "0.2.0", - "karma-phantomjs-launcher": "0.2.1", - "karma-script-launcher": "0.1.0", - "karma-sinon": "1.0.4", - "karma-spec-reporter": "0.0.20", - "standard": "5.3.1", - "time-grunt": "1.2.1", - "webpack-dev-server": "1.11.0" + "standard": { + "parser": "babel-eslint", + "globals": [ + "Headers", + "fetch", + "Request", + "action", + "describe", + "it", + "sinon", + "before", + "after", + "beforeEach", + "afterEach" + ] }, "scripts": { - "test": "grunt test" + "lint": "repo-tools lint karma.conf.js src/*.js scripts/*.js", + "webpack": "node scripts/js-data-http.js && webpack --config webpack.config.js", + "min": "uglifyjs dist/js-data-angular.js -o dist/js-data-angular.min.js --source-map dist/js-data-angular.min.map --source-map-url js-data-angular.min.map -v -m -c --screw-ie8", + "version": "node scripts/version.js", + "banner": "node scripts/banner.js", + "gzip": "echo js-data-angular gzipped size: $(cat dist/js-data-angular.min.js | gzip -f9 | wc -c)kb", + "build": "npm run lint && npm run webpack && npm run min && npm run version && npm run banner", + "karma": "karma start", + "test": "npm run build && npm run karma", + "repo-tools": "repo-tools updates && repo-tools changelog && repo-tools authors", + "release": "npm test && npm run repo-tools", + "ci": "npm test && cat ./coverage/PhantomJS*/lcov.info | coveralls || true" }, "peerDependencies": { "angular": ">=1.1.0", - "js-data": ">=2.0.0" + "js-data": ">=2.0.0 <3" }, - "standard": { - "parser": "babel-eslint" - }, - "dependencies": { - "js-data-http": ">=2.0.0" + "devDependencies": { + "babel-core": "6.7.2", + "babel-loader": "6.2.4", + "babel-polyfill": "6.7.2", + "babel-preset-es2015": "6.6.0", + "chai": "3.5.0", + "coveralls": "2.11.8", + "js-data-repo-tools": "0.2.0", + "karma": "0.13.22", + "karma-browserstack-launcher": "0.1.10", + "karma-chai": "0.1.0", + "karma-mocha": "0.2.2", + "karma-phantomjs-launcher": "1.0.0", + "karma-sinon": "1.0.4", + "mocha": "2.4.5", + "phantomjs-prebuilt": "2.1.5", + "request": "^2.69.0", + "sinon": "1.17.3", + "tar.gz": "^1.0.3", + "tarball-extract": "0.0.3", + "uglify-js": "2.6.2", + "webpack": "1.12.14" } } diff --git a/scripts/AUTHORS b/scripts/AUTHORS new file mode 100644 index 0000000..4300136 --- /dev/null +++ b/scripts/AUTHORS @@ -0,0 +1,7 @@ +# This is the official list of js-data-http project authors. +# +# This file is controlled by scripts/authors.js +# +# Names are formatted as: +# Name or Organization <email address> +# The email address is not required for organizations. diff --git a/scripts/CONTRIBUTORS b/scripts/CONTRIBUTORS new file mode 100644 index 0000000..429081a --- /dev/null +++ b/scripts/CONTRIBUTORS @@ -0,0 +1,6 @@ +# People who have contributed to the js-data-http project. +# +# This file is controlled by scripts/authors.js +# +# Names should be added to this file as: +# [commit count] Name <email address> diff --git a/scripts/authors.js b/scripts/authors.js new file mode 100644 index 0000000..778dc8f --- /dev/null +++ b/scripts/authors.js @@ -0,0 +1,58 @@ +var fs = require('fs') +var exec = require('child_process').exec +var path = require('path') + +console.log('Writing AUTHORS file...') + +var authorsFile = fs.readFileSync(path.join(__dirname, '/AUTHORS'), { + encoding: 'utf-8' +}) +var contributorsFile = fs.readFileSync(path.join(__dirname, '/CONTRIBUTORS'), { + encoding: 'utf-8' +}) + +var tty = process.platform === 'win32' ? 'CON' : '/dev/tty' + +exec('git shortlog -s -e < ' + tty, function (err, stdout, stderr) { + if (err) { + console.error(err) + process.exit(-1) + } else { + var lines = stdout.split('\n') + var countsAndNames = lines.map(function (line) { + return line.split('\t') + }) + var names = countsAndNames.map(function (pair) { + return pair[1] + }) + + // Add to or otherwise modify "names" if necessary + + fs.writeFileSync(path.join(__dirname, '/../AUTHORS'), authorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + fs.writeFileSync(path.join(__dirname, '/../fetch/AUTHORS'), authorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + fs.writeFileSync(path.join(__dirname, '/../node/AUTHORS'), authorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + console.log('Done!') + console.log('Writing CONTRIBUTORS file...') + + names = lines + + // Add to or otherwise modify "names" if necessary + + fs.writeFileSync(path.join(__dirname, '/../CONTRIBUTORS'), contributorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + fs.writeFileSync(path.join(__dirname, '/../fetch/CONTRIBUTORS'), contributorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + fs.writeFileSync(path.join(__dirname, '/../node/CONTRIBUTORS'), contributorsFile + names.join('\n'), { + encoding: 'utf-8' + }) + console.log('Done!') + } +}) diff --git a/scripts/banner.js b/scripts/banner.js new file mode 100644 index 0000000..94570f3 --- /dev/null +++ b/scripts/banner.js @@ -0,0 +1,29 @@ +var fs = require('fs') +var pkg = require('../package.json') + +var banner = '/*!\n' + + '* js-data-angular\n' + + '* @version ' + pkg.version + ' - Homepage <https://github.com/js-data/js-data-angular>\n' + + '* @copyright (c) 2014-2016 js-data-angular project authors\n' + + '* @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE>\n' + + '*\n' + + '* @overview Angular wrapper for js-data.\n' + + '*/\n' + +console.log('Adding banner to dist/ files...') + +function addBanner (filepath) { + var contents = fs.readFileSync(filepath, { + encoding: 'utf-8' + }) + if (contents.substr(0, 3) !== '/*!') { + fs.writeFileSync(filepath, banner + contents, { + encoding: 'utf-8' + }) + } +} + +addBanner('dist/js-data-angular.js') +addBanner('dist/js-data-angular.min.js') + +console.log('Done!') diff --git a/scripts/cleanup.js b/scripts/cleanup.js new file mode 100644 index 0000000..1bc6136 --- /dev/null +++ b/scripts/cleanup.js @@ -0,0 +1,25 @@ +var fs = require('fs') + +var pkg = require('../package.json') + +var path = './doc/js-data-angular/' + pkg.version + '/styles/' + +var files = fs.readdirSync(path) +files.forEach(function (file) { + if (file.indexOf('site') === 0) { + if (file.indexOf('lumen') === -1 && file.indexOf('dibs') === -1) { + fs.unlinkSync(path + file) + } + } +}) + +path = './doc/js-data-angular/' + pkg.version + +files = fs.readdirSync(path) +files.forEach(function (file) { + if (file.indexOf('.html') === file.length - 5) { + var content = fs.readFileSync(path + '/' + file, { encoding: 'utf8' }) + content = content.replace(/\/home\/ubuntu\/workspace\//gi, '') + fs.writeFileSync(path + '/' + file, content, { encoding: 'utf8' }) + } +}) diff --git a/scripts/js-data-http.js b/scripts/js-data-http.js new file mode 100644 index 0000000..a41b2a5 --- /dev/null +++ b/scripts/js-data-http.js @@ -0,0 +1,23 @@ +var fs = require('fs') +var url = 'https://github.com/js-data/js-data-http/archive/2.2.1.tar.gz' +var directory = './.js-data-http/' +var request = require('request') +var targz = require('tar.gz') + +// Streams +try { + fs.statSync(directory) + console.log('js-data-http already downloaded') +} catch (err) { + console.log('downloading js-data-http') + var read = request.get(url) + var write = targz().createWriteStream(directory) + + read.pipe(write) + + write.on('finish', function () { + var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.1/src/index.js') + var copyWrite = fs.createWriteStream('./.js-data-http.js') + copyRead.pipe(copyWrite) + }) +} diff --git a/scripts/version.js b/scripts/version.js new file mode 100644 index 0000000..ec3d3f5 --- /dev/null +++ b/scripts/version.js @@ -0,0 +1,39 @@ +var fs = require('fs') +var pkg = require('../package.json') + +console.log('Adding version to dist/ files...') + +function version (filepath) { + var file = fs.readFileSync(filepath, { + encoding: 'utf-8' + }) + + file = file.replace(/<%= pkg\.version %>/gi, pkg.version) + + var parts = pkg.version.split('-') + var numbers = parts[0].split('.') + + file = file.replace(/<%= major %>/gi, numbers[0]) + file = file.replace(/<%= minor %>/gi, numbers[1]) + file = file.replace(/<%= patch %>/gi, numbers[2]) + + if (pkg.version.indexOf('alpha') !== -1) { + file = file.replace(/<%= alpha %>/gi, parts[1].replace('alpha.', '') + (parts.length > 2 ? '-' + parts[2] : '')) + } else { + file = file.replace(/<%= alpha %>/gi, false) + } + + if (pkg.version.indexOf('beta') !== -1) { + file = file.replace(/<%= beta %>/gi, parts[1].replace('beta.', '') + (parts.length > 2 ? '-' + parts[2] : '')) + } else { + file = file.replace(/<%= beta %>/gi, false) + } + + fs.writeFileSync(filepath, file, { + encoding: 'utf-8' + }) +} + +version('dist/js-data-angular.js') + +console.log('Done!') diff --git a/src/index.js b/src/index.js index 29a536b..3cf5439 100644 --- a/src/index.js +++ b/src/index.js @@ -1,10 +1,10 @@ /* jshint loopfunc:true */ let JSData = require('js-data') -let DSHttpAdapter = require('../node_modules/js-data-http/src/index.js') +let DSHttpAdapter = require('../.js-data-http.js') let angular = require('angular') let { DSUtils, DSErrors } = JSData -let { isString, isNumber, isObject, set, resolveId } = DSUtils +let { get, isString, isNumber, isObject, set, resolveId } = DSUtils let adapters = [ { @@ -99,9 +99,16 @@ class DSProvider { throw new DSErrors.IA('"expr" must be a string!') } + let idAttribute = _this.definitions[resourceName].idAttribute + try { return scope.$watch(() => _this.lastModified(resourceName), () => { let items = _this.filter(resourceName, params) + if (items && items.length) { + angular.forEach(items, (item) => { + _this.compute(resourceName, get(item, idAttribute)) + }) + } set(scope, expr, items) if (cb) { cb(null, items) @@ -233,4 +240,6 @@ for (var i = 0; i < adapters.length; i++) { // return the module name module.exports = 'js-data' -module.exports.name = 'js-data' +try { + module.exports.name = 'js-data' +} catch (e) {} diff --git a/test/datastore/sync_methods/bindAll.test.js b/test/datastore/sync_methods/bindAll.test.js index aea4692..801b38a 100644 --- a/test/datastore/sync_methods/bindAll.test.js +++ b/test/datastore/sync_methods/bindAll.test.js @@ -13,26 +13,26 @@ describe('DS.bindAll', function () { it('should throw an error when method pre-conditions are not met', function () { assert.throws(function () { DS.bindAll('does not exist'); - }, DS.errors.NonexistentResourceError, 'does not exist is not a registered resource!'); + }, Error, 'does not exist is not a registered resource!'); angular.forEach(TYPES_EXCEPT_OBJECT, function (key) { if (key) { assert.throws(function () { DS.bindAll('post', key); - }, DS.errors.IllegalArgumentError, '"params" must be an object!'); + }, Error, '"params" must be an object!'); } }); angular.forEach(TYPES_EXCEPT_OBJECT, function (key) { assert.throws(function () { DS.bindAll('post', {}, key); - }, DS.errors.IllegalArgumentError, '"scope" must be an object!'); + }, Error, '"scope" must be an object!'); }); angular.forEach(TYPES_EXCEPT_STRING, function (key) { assert.throws(function () { DS.bindAll('post', {}, $scope, key); - }, DS.errors.IllegalArgumentError, '"expr" must be a string!'); + }, Error, '"expr" must be a string!'); }); }); it('should bind an item in the data store to the scope', function () { diff --git a/test/datastore/sync_methods/bindOne.test.js b/test/datastore/sync_methods/bindOne.test.js index 42a9564..a0f938b 100644 --- a/test/datastore/sync_methods/bindOne.test.js +++ b/test/datastore/sync_methods/bindOne.test.js @@ -13,24 +13,24 @@ describe('DS.bindOne', function () { it('should throw an error when method pre-conditions are not met', function () { assert.throws(function () { DS.bindOne('does not exist'); - }, DS.errors.NonexistentResourceError, 'does not exist is not a registered resource!'); + }, Error, 'does not exist is not a registered resource!'); angular.forEach(TYPES_EXCEPT_STRING_OR_NUMBER, function (key) { assert.throws(function () { DS.bindOne('post', key); - }, DS.errors.IllegalArgumentError, '"id" must be a string or a number!'); + }, Error, '"id" must be a string or a number!'); }); angular.forEach(TYPES_EXCEPT_OBJECT, function (key) { assert.throws(function () { DS.bindOne('post', 5, key); - }, DS.errors.IllegalArgumentError, '"scope" must be an object!'); + }, Error, '"scope" must be an object!'); }); angular.forEach(TYPES_EXCEPT_STRING, function (key) { assert.throws(function () { DS.bindOne('post', 5, $scope, key); - }, DS.errors.IllegalArgumentError, '"expr" must be a string!'); + }, Error, '"expr" must be a string!'); }); }); it('should bind an item in the data store to the scope', function () { diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..2911e48 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,35 @@ +var path = require('path') + +module.exports = { + devtool: 'source-map', + entry: { + './dist/js-data-angular.js': './src/index.js' + }, + output: { + filename: '[name]', + libraryTarget: 'umd2', + library: 'jsDataAngularModuleName' + }, + externals: { + 'js-data': { + amd: 'js-data', + commonjs: 'js-data', + commonjs2: 'js-data', + root: 'JSData' + }, + 'axios': 'axios', + 'angular': 'angular' + }, + module: { + loaders: [ + { + loader: 'babel-loader', + include: [ + path.resolve(__dirname, 'src'), + path.resolve(__dirname) + ], + test: /\.js$/ + } + ] + } +} From 810c2c21d42f521a3ab4ea2a6b4c76dab5213b4f Mon Sep 17 00:00:00 2001 From: Jason Dobry <jason.dobry@gmail.com> Date: Fri, 18 Mar 2016 16:47:28 -0700 Subject: [PATCH 22/32] 3.2.1 --- CHANGELOG.md | 5 +++ dist/js-data-angular.js | 64 +++++++++++++++++++----------------- dist/js-data-angular.js.map | 2 +- dist/js-data-angular.min.js | 4 +-- dist/js-data-angular.min.map | 2 +- package.json | 9 ++--- scripts/js-data-http.js | 4 +-- 7 files changed, 50 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f279d00..e695d82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +##### 3.2.1 - 18 March 2016 + +###### Backwards compatible bug fixes +- Upgraded to js-data-http 2.2.2 + ##### 3.2.0 - 17 March 2016 ###### Backwards compatible bug fixes diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index e75c580..7599d72 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.2.0 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.1 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * @@ -361,6 +361,11 @@ return /******/ (function(modules) { // webpackBootstrap var isString = DSUtils.isString; var isNumber = DSUtils.isNumber; + + function isUndefined(value) { + return value === undefined; + } + var Defaults = function () { function Defaults() { _classCallCheck(this, Defaults); @@ -406,7 +411,7 @@ return /******/ (function(modules) { // webpackBootstrap function DSHttpAdapter(options) { _classCallCheck(this, DSHttpAdapter); - options = options || {}; + options || (options = {}); this.defaults = new Defaults(); if (console) { this.defaults.log = function (a, b) { @@ -425,8 +430,8 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(DSHttpAdapter, [{ key: 'getEndpoint', value: function getEndpoint(resourceConfig, id, options) { - options = options || {}; - options.params = options.params || {}; + options || (options = {}); + options.params = isUndefined(options.params) ? {} : options.params; var endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint; var parents = resourceConfig.parents || (resourceConfig.parent ? _defineProperty({}, resourceConfig.parent, { @@ -455,7 +460,6 @@ return /******/ (function(modules) { // webpackBootstrap } else if (DSUtils._o(id)) { item = id; } - console.log('item', item); if (item) { parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null); @@ -480,7 +484,7 @@ return /******/ (function(modules) { // webpackBootstrap key: 'getPath', value: function getPath(method, resourceConfig, id, options) { var _this = this; - options = options || {}; + options || (options = {}); if (isString(options.urlPath)) { return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath]); } else { @@ -519,7 +523,7 @@ return /******/ (function(modules) { // webpackBootstrap config.data = removeCircular(config.data); } config.method = config.method.toUpperCase(); - var suffix = config.suffix || _this.defaults.suffix; + var suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix; if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) { config.url += suffix; } @@ -603,9 +607,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'find', value: function find(resourceConfig, id, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.GET(_this.getPath('find', resourceConfig, id, options), options).then(function (data) { var item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); @@ -616,9 +620,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'findAll', value: function findAll(resourceConfig, params, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); if (params) { params = _this.defaults.queryTransform(resourceConfig, params); deepMixIn(options.params, params); @@ -631,9 +635,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'create', value: function create(resourceConfig, attrs, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.POST(_this.getPath('create', resourceConfig, attrs, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); @@ -643,9 +647,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'update', value: function update(resourceConfig, id, attrs, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.PUT(_this.getPath('update', resourceConfig, id, options), options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs), options).then(function (data) { return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); @@ -655,9 +659,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'updateAll', value: function updateAll(resourceConfig, attrs, params, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); if (params) { params = _this.defaults.queryTransform(resourceConfig, params); deepMixIn(options.params, params); @@ -670,9 +674,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'destroy', value: function destroy(resourceConfig, id, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); options.params = _this.defaults.queryTransform(resourceConfig, options.params); return _this.DEL(_this.getPath('destroy', resourceConfig, id, options), options).then(function (data) { return (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data); @@ -682,9 +686,9 @@ return /******/ (function(modules) { // webpackBootstrap key: 'destroyAll', value: function destroyAll(resourceConfig, params, options) { var _this = this; - options = options ? copy(options) : {}; - options.suffix = options.suffix || resourceConfig.suffix; - options.params = options.params || {}; + options || (options = {}); + options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix; + options.params = isUndefined(options.params) ? {} : copy(options.params); if (params) { params = _this.defaults.queryTransform(resourceConfig, params); deepMixIn(options.params, params); @@ -699,10 +703,10 @@ return /******/ (function(modules) { // webpackBootstrap }(); DSHttpAdapter.version = { - full: '3.2.0', + full: '3.2.1', major: parseInt('3', 10), minor: parseInt('2', 10), - patch: parseInt('0', 10), + patch: parseInt('1', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false }; diff --git a/dist/js-data-angular.js.map b/dist/js-data-angular.js.map index 932155f..658bb2e 100644 --- a/dist/js-data-angular.js.map +++ b/dist/js-data-angular.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 00fec842a532d75d3ece","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":[],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 00fec842a532d75d3ece\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options = options || {}\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options = options || {}\n options.params = options.params || {}\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n console.log('item', item)\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options = options || {}\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || _this.defaults.basePath || resourceConfig.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = config.suffix || _this.defaults.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options = options ? copy(options) : {}\n options.suffix = options.suffix || resourceConfig.suffix\n options.params = options.params || {}\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 43b15d7820aad2b839d8","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":[],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 43b15d7820aad2b839d8\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nfunction isUndefined (value) {\n return value === undefined\n}\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options || (options = {})\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options || (options = {})\n options.params = isUndefined(options.params) ? {} : options.params\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || _this.defaults.basePath || resourceConfig.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 15d082a..77a36d9 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,10 +1,10 @@ /*! * js-data-angular -* @version 3.2.0 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.1 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * * @overview Angular wrapper for js-data. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,s.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),o=r(2),s=r(4),u=i.DSUtils,l=i.DSErrors,f=u.get,d=u.isString,c=u.isNumber,p=u.isObject,h=u.set,m=u.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new o(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=l.defer();try{e(s.bind(t,t.resolve),s.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var o=a[a.length-2],l=a[a.length-1],f=new i.DS(r.defaults),d={};if(e.all=l.all,e.when=l.when,e.reject=l.reject,u.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,f.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=f[e],f[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return o.$$phase?d[e].apply(f,r):o.$apply(function(){return d[e].apply(f,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||o.$watch(function(){return f.observe.Platform.performMicrotaskCheckpoint()}),f}a(this,e);for(var r=this,n=[],o=0;o<v.length;o++)v[o].loaded&&n.push(v[o].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new l.NER(e);if(!p(t))throw new l.IA('"params" must be an object!');if(!p(r))throw new l.IA('"scope" must be an object!');if(!d(a))throw new l.IA('"expr" must be a string!');var o=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var u=i.filter(e,t);u&&u.length&&s.forEach(u,function(t){i.compute(e,f(t,o))}),h(r,a,u),n&&n(null,u)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new l.NER(e);if(!d(t)&&!c(t))throw new l.IA('"id" must be a string or a number!');if(!p(r))throw new l.IA('"scope" must be an object!');if(!d(a))throw new l.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var o=i.get(e,t);o&&i.compute(e,t),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};s.module("js-data",["ng"]).value("DSUtils",u).value("DSErrors",l).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var w=0;w<v.length;w++)n(v[w]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),s=r(1),u=null;try{u=r(3)}catch(e){}var l=s.DSUtils,f=l.deepMixIn,d=l.removeCircular,c=l.copy,p=l.makePath,h=l.isString,m=l.isNumber,v=function(){function e(){n(this,e)}return o(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),y=v.prototype;y.basePath="",y.forceTrailingSlash="",y.httpConfig={},y.verbsUseBasePath=!1;var g=function(){function e(t){n(this,e),t=t||{},this.defaults=new v,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),f(this.defaults,t),this.http=t.http||u}return o(e,[{key:"getEndpoint",value:function(e,t,r){r=r||{},r.params=r.params||{};var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,i=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(i,function(a,i){var o=this,s=void 0,u=a.key,f=a.field,d=e.getResource(i),c=r.params[u];c!==!1&&u&&d?(delete r.params[u],l._sn(t)?s=e.get(t):l._o(t)&&(s=t),console.log("item",s),s&&(c=c||s[u]||(s[f]?s[f][d.idAttribute]:null)),c&&!function(){delete r.endpoint;var e={};l.forOwn(r,function(t,r){e[r]=t}),n=l.makePath(o.getEndpoint(d,c,l._(d,e)),c,n)}()):c===!1&&delete r.params[u]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a=a||{},h(a.urlPath))return p.apply(l,[a.basePath||n.defaults.basePath||t.basePath,a.urlPath]);var i=[a.basePath||n.defaults.basePath||t.basePath,this.getEndpoint(t,h(r)||m(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),p.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":i(t))){var o=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(o,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+o,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,o=e.cache,s=e.timeout;e=c(e,null,null,null,["data","cache","timeout"]),e=f(e,r.defaults.httpConfig),e.data=n,e.cache=o,e.timeout=s,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=p(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===i(e.data)&&(e.data=d(e.data)),e.method=e.method.toUpperCase();var u=e.suffix||r.defaults.suffix;if(u&&e.url.substr(e.url.length-u.length)!==u&&!e.urlOverride&&(e.url+=u),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},t&&(t=a.defaults.queryTransform(e,t),f(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a=a?c(a):{},a.suffix=a.suffix||e.suffix,a.params=a.params||{},a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a=a?c(a):{},a.suffix=a.suffix||e.suffix,a.params=a.params||{},r&&(r=n.defaults.queryTransform(e,r),f(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r=r?c(r):{},r.suffix=r.suffix||e.suffix,r.params=r.params||{},t&&(t=a.defaults.queryTransform(e,t),f(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();g.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=g},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,u.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),s=r(2),u=r(4),o=i.DSUtils,f=i.DSErrors,l=o.get,d=o.isString,c=o.isNumber,p=o.isObject,h=o.set,m=o.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new s(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=f.defer();try{e(u.bind(t,t.resolve),u.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var s=a[a.length-2],f=a[a.length-1],l=new i.DS(r.defaults),d={};if(e.all=f.all,e.when=f.when,e.reject=f.reject,o.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,l.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=l[e],l[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return s.$$phase?d[e].apply(l,r):s.$apply(function(){return d[e].apply(l,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||s.$watch(function(){return l.observe.Platform.performMicrotaskCheckpoint()}),l}a(this,e);for(var r=this,n=[],s=0;s<v.length;s++)v[s].loaded&&n.push(v[s].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new f.NER(e);if(!p(t))throw new f.IA('"params" must be an object!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');var s=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var o=i.filter(e,t);o&&o.length&&u.forEach(o,function(t){i.compute(e,l(t,s))}),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new f.NER(e);if(!d(t)&&!c(t))throw new f.IA('"id" must be a string or a number!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var s=i.get(e,t);s&&i.compute(e,t),h(r,a,s),n&&n(null,s)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};u.module("js-data",["ng"]).value("DSUtils",o).value("DSErrors",f).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var x=0;x<v.length;x++)n(v[x]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return void 0===e}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(1),f=null;try{f=r(3)}catch(e){}var l=o.DSUtils,d=l.deepMixIn,c=l.removeCircular,p=l.copy,h=l.makePath,m=l.isString,v=l.isNumber,y=function(){function e(){n(this,e)}return u(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),g=y.prototype;g.basePath="",g.forceTrailingSlash="",g.httpConfig={},g.verbsUseBasePath=!1;var b=function(){function e(t){n(this,e),t||(t={}),this.defaults=new y,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),d(this.defaults,t),this.http=t.http||f}return u(e,[{key:"getEndpoint",value:function(e,t,r){r||(r={}),r.params=i(r.params)?{}:r.params;var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,s=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(s,function(a,i){var s=this,u=void 0,o=a.key,f=a.field,d=e.getResource(i),c=r.params[o];c!==!1&&o&&d?(delete r.params[o],l._sn(t)?u=e.get(t):l._o(t)&&(u=t),u&&(c=c||u[o]||(u[f]?u[f][d.idAttribute]:null)),c&&!function(){delete r.endpoint;var e={};l.forOwn(r,function(t,r){e[r]=t}),n=l.makePath(s.getEndpoint(d,c,l._(d,e)),c,n)}()):c===!1&&delete r.params[o]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a||(a={}),m(a.urlPath))return h.apply(l,[a.basePath||n.defaults.basePath||t.basePath,a.urlPath]);var i=[a.basePath||n.defaults.basePath||t.basePath,this.getEndpoint(t,m(r)||v(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),h.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":s(t))){var i=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(i,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+i,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,u=e.cache,o=e.timeout;e=p(e,null,null,null,["data","cache","timeout"]),e=d(e,r.defaults.httpConfig),e.data=n,e.cache=u,e.timeout=o,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=h(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===s(e.data)&&(e.data=c(e.data)),e.method=e.method.toUpperCase();var f=i(e.suffix)?r.defaults.suffix:e.suffix;if(f&&e.url.substr(e.url.length-f.length)!==f&&!e.urlOverride&&(e.url+=f),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),r&&(r=n.defaults.queryTransform(e,r),d(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();b.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=b},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index 2db5185..ae0c0ec 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","_this2","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file +{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","isUndefined","undefined","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","_this2","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file diff --git a/package.json b/package.json index 0bc7cd2..ae2e55d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.2.0", + "version": "3.2.1", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", @@ -55,14 +55,15 @@ "karma": "0.13.22", "karma-browserstack-launcher": "0.1.10", "karma-chai": "0.1.0", + "karma-coverage": "0.5.5", "karma-mocha": "0.2.2", "karma-phantomjs-launcher": "1.0.0", "karma-sinon": "1.0.4", "mocha": "2.4.5", - "phantomjs-prebuilt": "2.1.5", - "request": "^2.69.0", + "phantomjs-prebuilt": "2.1.6", + "request": "2.69.0", "sinon": "1.17.3", - "tar.gz": "^1.0.3", + "tar.gz": "1.0.3", "tarball-extract": "0.0.3", "uglify-js": "2.6.2", "webpack": "1.12.14" diff --git a/scripts/js-data-http.js b/scripts/js-data-http.js index a41b2a5..1a49a4c 100644 --- a/scripts/js-data-http.js +++ b/scripts/js-data-http.js @@ -1,5 +1,5 @@ var fs = require('fs') -var url = 'https://github.com/js-data/js-data-http/archive/2.2.1.tar.gz' +var url = 'https://github.com/js-data/js-data-http/archive/2.2.2.tar.gz' var directory = './.js-data-http/' var request = require('request') var targz = require('tar.gz') @@ -16,7 +16,7 @@ try { read.pipe(write) write.on('finish', function () { - var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.1/src/index.js') + var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.2/src/index.js') var copyWrite = fs.createWriteStream('./.js-data-http.js') copyRead.pipe(copyWrite) }) From 0c5600f9b294b7539fcab5f07e64d84f5bcf82c9 Mon Sep 17 00:00:00 2001 From: greenkeeperio-bot <support@greenkeeper.io> Date: Wed, 31 Aug 2016 01:13:14 -0700 Subject: [PATCH 23/32] chore(package): update karma-phantomjs-launcher to version 1.0.2 https://greenkeeper.io/ --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae2e55d..01c09a4 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "karma-chai": "0.1.0", "karma-coverage": "0.5.5", "karma-mocha": "0.2.2", - "karma-phantomjs-launcher": "1.0.0", + "karma-phantomjs-launcher": "1.0.2", "karma-sinon": "1.0.4", "mocha": "2.4.5", "phantomjs-prebuilt": "2.1.6", From b56b190225507f783cabd89a97f3af992d4c2756 Mon Sep 17 00:00:00 2001 From: Scott Trenda <Scott.Trenda@sportngin.com> Date: Fri, 17 Aug 2018 12:00:26 -0500 Subject: [PATCH 24/32] Upgrade js-data-http to 2.2.3 --- scripts/js-data-http.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/js-data-http.js b/scripts/js-data-http.js index 1a49a4c..a3b045a 100644 --- a/scripts/js-data-http.js +++ b/scripts/js-data-http.js @@ -1,5 +1,5 @@ var fs = require('fs') -var url = 'https://github.com/js-data/js-data-http/archive/2.2.2.tar.gz' +var url = 'https://github.com/js-data/js-data-http/archive/2.2.3.tar.gz' var directory = './.js-data-http/' var request = require('request') var targz = require('tar.gz') @@ -16,7 +16,7 @@ try { read.pipe(write) write.on('finish', function () { - var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.2/src/index.js') + var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.3/src/index.js') var copyWrite = fs.createWriteStream('./.js-data-http.js') copyRead.pipe(copyWrite) }) From cd618d76a1eb5e6ef0df5a89567ab4843416d11c Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Fri, 17 Aug 2018 16:53:29 -0700 Subject: [PATCH 25/32] chore(3.2.2) --- dist/js-data-angular.js | 50 +++++++++++++++++------------------- dist/js-data-angular.js.map | 2 +- dist/js-data-angular.min.js | 2 +- dist/js-data-angular.min.map | 2 +- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 7599d72..aba3f6c 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -73,14 +73,14 @@ return /******/ (function(modules) { // webpackBootstrap var DSHttpAdapter = __webpack_require__(2); var angular = __webpack_require__(4); - var DSUtils = JSData.DSUtils; - var DSErrors = JSData.DSErrors; - var get = DSUtils.get; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; - var isObject = DSUtils.isObject; - var set = DSUtils.set; - var resolveId = DSUtils.resolveId; + var DSUtils = JSData.DSUtils, + DSErrors = JSData.DSErrors; + var get = DSUtils.get, + isString = DSUtils.isString, + isNumber = DSUtils.isNumber, + isObject = DSUtils.isObject, + set = DSUtils.set, + resolveId = DSUtils.resolveId; var adapters = [{ @@ -338,7 +338,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -354,12 +354,12 @@ return /******/ (function(modules) { // webpackBootstrap } catch (e) {} var DSUtils = JSData.DSUtils; - var deepMixIn = DSUtils.deepMixIn; - var removeCircular = DSUtils.removeCircular; - var copy = DSUtils.copy; - var makePath = DSUtils.makePath; - var isString = DSUtils.isString; - var isNumber = DSUtils.isNumber; + var deepMixIn = DSUtils.deepMixIn, + removeCircular = DSUtils.removeCircular, + copy = DSUtils.copy, + makePath = DSUtils.makePath, + isString = DSUtils.isString, + isNumber = DSUtils.isNumber; function isUndefined(value) { @@ -440,8 +440,6 @@ return /******/ (function(modules) { // webpackBootstrap }) : {}); DSUtils.forOwn(parents, function (parent, parentName) { - var _this2 = this; - var item = void 0; var parentKey = parent.key; var parentField = parent.field; @@ -466,14 +464,12 @@ return /******/ (function(modules) { // webpackBootstrap } if (parentId) { - (function () { - delete options.endpoint; - var _options = {}; - DSUtils.forOwn(options, function (value, key) { - _options[key] = value; - }); - endpoint = DSUtils.makePath(_this2.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint); - })(); + delete options.endpoint; + var _options = {}; + DSUtils.forOwn(options, function (value, key) { + _options[key] = value; + }); + endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint); } } }, this); @@ -486,9 +482,9 @@ return /******/ (function(modules) { // webpackBootstrap var _this = this; options || (options = {}); if (isString(options.urlPath)) { - return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath]); + return makePath.apply(DSUtils, [options.basePath || resourceConfig.basePath || _this.defaults.basePath, options.urlPath]); } else { - var args = [options.basePath || _this.defaults.basePath || resourceConfig.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; + var args = [options.basePath || resourceConfig.basePath || _this.defaults.basePath, this.getEndpoint(resourceConfig, isString(id) || isNumber(id) || method === 'create' ? id : null, options)]; if (method === 'find' || method === 'update' || method === 'destroy') { args.push(id); } diff --git a/dist/js-data-angular.js.map b/dist/js-data-angular.js.map index 658bb2e..e278b9f 100644 --- a/dist/js-data-angular.js.map +++ b/dist/js-data-angular.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 43b15d7820aad2b839d8","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":[],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 43b15d7820aad2b839d8\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nfunction isUndefined (value) {\n return value === undefined\n}\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options || (options = {})\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options || (options = {})\n options.params = isUndefined(options.params) ? {} : options.params\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || _this.defaults.basePath || resourceConfig.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || _this.defaults.basePath || resourceConfig.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 30e063bcecfc93da376e","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":["JSData","require","DSHttpAdapter","angular","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","project","name","functionsToWrap","registerAdapter","adapter","Adapter","e","window","class","loaded","module","provider","_this","defaults","$get","DSHttpAdapterProvider","$http","DS","http","DSProvider","deps","i","length","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","$watch","lastModified","items","filter","forEach","item","compute","err","bindOne","id","load","args","$rootScope","$q","store","originals","QPromise","executor","deferred","defer","bind","resolve","reject","promise","all","when","Promise","j","registered","k","$$phase","$apply","apply","Object","observe","Array","Platform","performMicrotaskCheckpoint","value","version","run","exports","axios","deepMixIn","removeCircular","copy","makePath","isUndefined","undefined","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","key","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","start","Date","payload","cache","timeout","urlOverride","url","toUpperCase","suffix","substr","logResponse","isRejection","Error","message","str","toUTCString","status","getTime","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta"],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 30e063bcecfc93da376e\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nfunction isUndefined (value) {\n return value === undefined\n}\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options || (options = {})\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options || (options = {})\n options.params = isUndefined(options.params) ? {} : options.params\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || resourceConfig.basePath || _this.defaults.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || resourceConfig.basePath || _this.defaults.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 77a36d9..69bf284 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -6,5 +6,5 @@ * * @overview Angular wrapper for js-data. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,u.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),s=r(2),u=r(4),o=i.DSUtils,f=i.DSErrors,l=o.get,d=o.isString,c=o.isNumber,p=o.isObject,h=o.set,m=o.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new s(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=f.defer();try{e(u.bind(t,t.resolve),u.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var s=a[a.length-2],f=a[a.length-1],l=new i.DS(r.defaults),d={};if(e.all=f.all,e.when=f.when,e.reject=f.reject,o.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,l.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=l[e],l[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return s.$$phase?d[e].apply(l,r):s.$apply(function(){return d[e].apply(l,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||s.$watch(function(){return l.observe.Platform.performMicrotaskCheckpoint()}),l}a(this,e);for(var r=this,n=[],s=0;s<v.length;s++)v[s].loaded&&n.push(v[s].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new f.NER(e);if(!p(t))throw new f.IA('"params" must be an object!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');var s=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var o=i.filter(e,t);o&&o.length&&u.forEach(o,function(t){i.compute(e,l(t,s))}),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new f.NER(e);if(!d(t)&&!c(t))throw new f.IA('"id" must be a string or a number!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var s=i.get(e,t);s&&i.compute(e,t),h(r,a,s),n&&n(null,s)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};u.module("js-data",["ng"]).value("DSUtils",o).value("DSErrors",f).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var x=0;x<v.length;x++)n(v[x]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return void 0===e}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(1),f=null;try{f=r(3)}catch(e){}var l=o.DSUtils,d=l.deepMixIn,c=l.removeCircular,p=l.copy,h=l.makePath,m=l.isString,v=l.isNumber,y=function(){function e(){n(this,e)}return u(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),g=y.prototype;g.basePath="",g.forceTrailingSlash="",g.httpConfig={},g.verbsUseBasePath=!1;var b=function(){function e(t){n(this,e),t||(t={}),this.defaults=new y,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),d(this.defaults,t),this.http=t.http||f}return u(e,[{key:"getEndpoint",value:function(e,t,r){r||(r={}),r.params=i(r.params)?{}:r.params;var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,s=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(s,function(a,i){var s=this,u=void 0,o=a.key,f=a.field,d=e.getResource(i),c=r.params[o];c!==!1&&o&&d?(delete r.params[o],l._sn(t)?u=e.get(t):l._o(t)&&(u=t),u&&(c=c||u[o]||(u[f]?u[f][d.idAttribute]:null)),c&&!function(){delete r.endpoint;var e={};l.forOwn(r,function(t,r){e[r]=t}),n=l.makePath(s.getEndpoint(d,c,l._(d,e)),c,n)}()):c===!1&&delete r.params[o]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a||(a={}),m(a.urlPath))return h.apply(l,[a.basePath||n.defaults.basePath||t.basePath,a.urlPath]);var i=[a.basePath||n.defaults.basePath||t.basePath,this.getEndpoint(t,m(r)||v(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),h.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":s(t))){var i=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(i,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+i,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,u=e.cache,o=e.timeout;e=p(e,null,null,null,["data","cache","timeout"]),e=d(e,r.defaults.httpConfig),e.data=n,e.cache=u,e.timeout=o,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=h(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===s(e.data)&&(e.data=c(e.data)),e.method=e.method.toUpperCase();var f=i(e.suffix)?r.defaults.suffix:e.suffix;if(f&&e.url.substr(e.url.length-f.length)!==f&&!e.urlOverride&&(e.url+=f),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),r&&(r=n.defaults.queryTransform(e,r),d(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();b.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=b},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,u.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),s=r(2),u=r(4),o=i.DSUtils,f=i.DSErrors,l=o.get,d=o.isString,c=o.isNumber,p=o.isObject,h=o.set,m=o.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new s(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=f.defer();try{e(u.bind(t,t.resolve),u.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var s=a[a.length-2],f=a[a.length-1],l=new i.DS(r.defaults),d={};if(e.all=f.all,e.when=f.when,e.reject=f.reject,o.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,l.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=l[e],l[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return s.$$phase?d[e].apply(l,r):s.$apply(function(){return d[e].apply(l,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||s.$watch(function(){return l.observe.Platform.performMicrotaskCheckpoint()}),l}a(this,e);for(var r=this,n=[],s=0;s<v.length;s++)v[s].loaded&&n.push(v[s].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new f.NER(e);if(!p(t))throw new f.IA('"params" must be an object!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');var s=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var o=i.filter(e,t);o&&o.length&&u.forEach(o,function(t){i.compute(e,l(t,s))}),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new f.NER(e);if(!d(t)&&!c(t))throw new f.IA('"id" must be a string or a number!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var s=i.get(e,t);s&&i.compute(e,t),h(r,a,s),n&&n(null,s)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};u.module("js-data",["ng"]).value("DSUtils",o).value("DSErrors",f).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var x=0;x<v.length;x++)n(v[x]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return void 0===e}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(1),f=null;try{f=r(3)}catch(e){}var l=o.DSUtils,d=l.deepMixIn,c=l.removeCircular,p=l.copy,h=l.makePath,m=l.isString,v=l.isNumber,y=function(){function e(){n(this,e)}return u(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),g=y.prototype;g.basePath="",g.forceTrailingSlash="",g.httpConfig={},g.verbsUseBasePath=!1;var b=function(){function e(t){n(this,e),t||(t={}),this.defaults=new y,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),d(this.defaults,t),this.http=t.http||f}return u(e,[{key:"getEndpoint",value:function(e,t,r){r||(r={}),r.params=i(r.params)?{}:r.params;var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,s=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(s,function(a,i){var s=void 0,u=a.key,o=a.field,f=e.getResource(i),d=r.params[u];if(d!==!1&&u&&f){if(delete r.params[u],l._sn(t)?s=e.get(t):l._o(t)&&(s=t),s&&(d=d||s[u]||(s[o]?s[o][f.idAttribute]:null)),d){delete r.endpoint;var c={};l.forOwn(r,function(e,t){c[t]=e}),n=l.makePath(this.getEndpoint(f,d,l._(f,c)),d,n)}}else d===!1&&delete r.params[u]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a||(a={}),m(a.urlPath))return h.apply(l,[a.basePath||t.basePath||n.defaults.basePath,a.urlPath]);var i=[a.basePath||t.basePath||n.defaults.basePath,this.getEndpoint(t,m(r)||v(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),h.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":s(t))){var i=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(i,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+i,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,u=e.cache,o=e.timeout;e=p(e,null,null,null,["data","cache","timeout"]),e=d(e,r.defaults.httpConfig),e.data=n,e.cache=u,e.timeout=o,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=h(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===s(e.data)&&(e.data=c(e.data)),e.method=e.method.toUpperCase();var f=i(e.suffix)?r.defaults.suffix:e.suffix;if(f&&e.url.substr(e.url.length-f.length)!==f&&!e.urlOverride&&(e.url+=f),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),r&&(r=n.defaults.queryTransform(e,r),d(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();b.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=b},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index ae0c0ec..de1c756 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","isUndefined","undefined","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","_this2","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file +{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","isUndefined","undefined","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file From 3f6ef3dc4046d0567bc75578c24304e2a187737d Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Fri, 17 Aug 2018 16:53:33 -0700 Subject: [PATCH 26/32] 3.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae2e55d..1f74682 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.2.1", + "version": "3.2.2", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", From 37010a65d65b651db09f317d933f166911f83c8b Mon Sep 17 00:00:00 2001 From: Scott Trenda <Scott.Trenda@sportngin.com> Date: Mon, 17 Sep 2018 14:34:06 -0500 Subject: [PATCH 27/32] Upgrade js-data-http to 2.2.4 --- scripts/js-data-http.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/js-data-http.js b/scripts/js-data-http.js index a3b045a..79a4c49 100644 --- a/scripts/js-data-http.js +++ b/scripts/js-data-http.js @@ -1,5 +1,5 @@ var fs = require('fs') -var url = 'https://github.com/js-data/js-data-http/archive/2.2.3.tar.gz' +var url = 'https://github.com/js-data/js-data-http/archive/2.2.4.tar.gz' var directory = './.js-data-http/' var request = require('request') var targz = require('tar.gz') @@ -16,7 +16,7 @@ try { read.pipe(write) write.on('finish', function () { - var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.3/src/index.js') + var copyRead = fs.createReadStream(directory + 'js-data-http-2.2.4/src/index.js') var copyWrite = fs.createWriteStream('./.js-data-http.js') copyRead.pipe(copyWrite) }) From 1ec37fa1b02de1d0a1ec4d8c1d571ed38b59d5c8 Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Tue, 25 Sep 2018 09:03:44 -0700 Subject: [PATCH 28/32] release(v3.2.3): add .nvmrc --- dist/js-data-angular.js | 6 +++--- dist/js-data-angular.min.js | 2 +- package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index aba3f6c..8023717 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.2.1 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.3 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * @@ -699,10 +699,10 @@ return /******/ (function(modules) { // webpackBootstrap }(); DSHttpAdapter.version = { - full: '3.2.1', + full: '3.2.3', major: parseInt('3', 10), minor: parseInt('2', 10), - patch: parseInt('1', 10), + patch: parseInt('3', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false }; diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 69bf284..ecc3c53 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.2.1 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.3 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * diff --git a/package.json b/package.json index b69385c..864f741 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.2.2", + "version": "3.2.3", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", From 1a5fc0f9ed31d2d0869a08e8fa9e7023e856cead Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Tue, 25 Sep 2018 09:33:57 -0700 Subject: [PATCH 29/32] chore(): add nvmrc --- .nvmrc | 1 + 1 file changed, 1 insertion(+) create mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +6 From 1f22dace01156d81a03deed26d043d8e40215e34 Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Tue, 25 Sep 2018 09:36:08 -0700 Subject: [PATCH 30/32] chore(v3.2.3): update dist/ --- dist/js-data-angular.js | 4 +++- dist/js-data-angular.js.map | 2 +- dist/js-data-angular.min.js | 2 +- dist/js-data-angular.min.map | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 8023717..13b2c39 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -501,7 +501,9 @@ return /******/ (function(modules) { // webpackBootstrap var payload = config.data; var cache = config.cache; var timeout = config.timeout; - config = copy(config, null, null, null, ['data', 'cache', 'timeout']); + var params = config.params; + config = copy(config, null, null, null, ['data', 'cache', 'timeout', 'params']); // params could have data, cache, timeout + config.params = copy(params); config = deepMixIn(config, _this.defaults.httpConfig); config.data = payload; config.cache = cache; diff --git a/dist/js-data-angular.js.map b/dist/js-data-angular.js.map index e278b9f..6425c65 100644 --- a/dist/js-data-angular.js.map +++ b/dist/js-data-angular.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 30e063bcecfc93da376e","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":["JSData","require","DSHttpAdapter","angular","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","project","name","functionsToWrap","registerAdapter","adapter","Adapter","e","window","class","loaded","module","provider","_this","defaults","$get","DSHttpAdapterProvider","$http","DS","http","DSProvider","deps","i","length","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","$watch","lastModified","items","filter","forEach","item","compute","err","bindOne","id","load","args","$rootScope","$q","store","originals","QPromise","executor","deferred","defer","bind","resolve","reject","promise","all","when","Promise","j","registered","k","$$phase","$apply","apply","Object","observe","Array","Platform","performMicrotaskCheckpoint","value","version","run","exports","axios","deepMixIn","removeCircular","copy","makePath","isUndefined","undefined","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","key","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","start","Date","payload","cache","timeout","urlOverride","url","toUpperCase","suffix","substr","logResponse","isRejection","Error","message","str","toUTCString","status","getTime","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta"],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 30e063bcecfc93da376e\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nfunction isUndefined (value) {\n return value === undefined\n}\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options || (options = {})\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options || (options = {})\n options.params = isUndefined(options.params) ? {} : options.params\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || resourceConfig.basePath || _this.defaults.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || resourceConfig.basePath || _this.defaults.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n config = copy(config, null, null, null, ['data', 'cache', 'timeout'])\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1c3c52fb1c99b2166362","webpack:///./src/index.js","webpack:///external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}","webpack:///./.js-data-http.js","webpack:///external \"axios\"","webpack:///external \"angular\"","webpack:///./src ^\\.\\/.*$"],"names":["JSData","require","DSHttpAdapter","angular","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","project","name","functionsToWrap","registerAdapter","adapter","Adapter","e","window","class","loaded","module","provider","_this","defaults","$get","DSHttpAdapterProvider","$http","DS","http","DSProvider","deps","i","length","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","$watch","lastModified","items","filter","forEach","item","compute","err","bindOne","id","load","args","$rootScope","$q","store","originals","QPromise","executor","deferred","defer","bind","resolve","reject","promise","all","when","Promise","j","registered","k","$$phase","$apply","apply","Object","observe","Array","Platform","performMicrotaskCheckpoint","value","version","run","exports","axios","deepMixIn","removeCircular","copy","makePath","isUndefined","undefined","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","key","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","start","Date","payload","cache","timeout","urlOverride","url","toUpperCase","suffix","substr","logResponse","isRejection","Error","message","str","toUTCString","status","getTime","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta"],"mappings":"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","file":"./dist/js-data-angular.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"js-data\", \"angular\"], function webpackLoadOptionalExternalModuleAmd(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__) {\n\t\t\treturn factory(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, root[\"axios\"]);\n\t\t});\n\telse if(typeof exports === 'object')\n\t\texports[\"jsDataAngularModuleName\"] = factory(require(\"js-data\"), require(\"angular\"), (function webpackLoadOptionalExternalModule() { try { return require(\"axios\"); } catch(e) {} }()));\n\telse\n\t\troot[\"jsDataAngularModuleName\"] = factory(root[\"JSData\"], root[\"angular\"], root[\"axios\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_3__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 1c3c52fb1c99b2166362\n **/","/* jshint loopfunc:true */\nlet JSData = require('js-data')\nlet DSHttpAdapter = require('../.js-data-http.js')\nlet angular = require('angular')\n\nlet { DSUtils, DSErrors } = JSData\nlet { get, isString, isNumber, isObject, set, resolveId } = DSUtils\n\nlet adapters = [\n {\n project: 'js-data-localstorage',\n name: 'localstorage',\n 'class': 'DSLocalStorageAdapter'\n },\n {\n project: 'js-data-localforage',\n name: 'localforage',\n 'class': 'DSLocalForageAdapter'\n },\n {\n project: 'js-data-firebase',\n name: 'firebase',\n 'class': 'DSFirebaseAdapter'\n },\n {\n project: 'js-data-sql',\n name: 'sql',\n 'class': 'DSSqlAdapter'\n }\n]\n\nlet functionsToWrap = [\n 'compute',\n 'digest',\n 'eject',\n 'inject'\n]\n\nfunction registerAdapter (adapter) {\n let Adapter\n\n try {\n Adapter = require(adapter.project)\n } catch (e) {}\n\n if (!Adapter) {\n Adapter = window[adapter.class]\n }\n\n if (Adapter) {\n adapter.loaded = true\n angular.module('js-data').provider(adapter.class, function () {\n let _this = this\n _this.defaults = {}\n _this.$get = [() => new Adapter(_this.defaults)]\n })\n }\n}\n\nclass DSHttpAdapterProvider {\n constructor () {\n let defaults = {}\n this.defaults = defaults\n\n this.$get = ['$http', 'DS', ($http, DS) => {\n defaults.http = defaults.http || $http\n let adapter = new DSHttpAdapter(defaults)\n DS.registerAdapter('http', adapter, { 'default': true })\n return adapter\n }]\n }\n}\n\nclass DSProvider {\n constructor () {\n let _this = this\n let deps = []\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].loaded) {\n deps.push(adapters[i].class)\n }\n }\n\n _this.defaults = {}\n\n JSData.DS.prototype.bindAll = function (resourceName, params, scope, expr, cb) {\n let _this = this\n\n params = params || {}\n\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isObject(params)) {\n throw new DSErrors.IA('\"params\" must be an object!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n let idAttribute = _this.definitions[resourceName].idAttribute\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName), () => {\n let items = _this.filter(resourceName, params)\n if (items && items.length) {\n angular.forEach(items, (item) => {\n _this.compute(resourceName, get(item, idAttribute))\n })\n }\n set(scope, expr, items)\n if (cb) {\n cb(null, items)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n JSData.DS.prototype.bindOne = function (resourceName, id, scope, expr, cb) {\n let _this = this\n\n id = resolveId(_this.definitions[resourceName], id)\n if (!_this.definitions[resourceName]) {\n throw new DSErrors.NER(resourceName)\n } else if (!isString(id) && !isNumber(id)) {\n throw new DSErrors.IA('\"id\" must be a string or a number!')\n } else if (!isObject(scope)) {\n throw new DSErrors.IA('\"scope\" must be an object!')\n } else if (!isString(expr)) {\n throw new DSErrors.IA('\"expr\" must be a string!')\n }\n\n try {\n return scope.$watch(() => _this.lastModified(resourceName, id), () => {\n let item = _this.get(resourceName, id)\n if (item) {\n _this.compute(resourceName, id)\n }\n set(scope, expr, item)\n if (cb) {\n cb(null, item)\n }\n })\n } catch (err) {\n if (cb) {\n cb(err)\n } else {\n throw err\n }\n }\n }\n\n function load (...args) {\n let $rootScope = args[args.length - 2]\n let $q = args[args.length - 1]\n let store = new JSData.DS(_this.defaults)\n let originals = {}\n\n function QPromise (executor) {\n let deferred = $q.defer()\n\n try {\n executor(\n angular.bind(deferred, deferred.resolve),\n angular.bind(deferred, deferred.reject)\n )\n } catch (err) {\n deferred.reject(err)\n }\n\n return deferred.promise\n }\n\n QPromise.all = $q.all\n QPromise.when = $q.when\n QPromise.reject = $q.reject\n\n DSUtils.Promise = QPromise\n\n // Register any adapters that have been loaded\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n for (var j = 0; j < adapters.length; j++) {\n if (adapters[j].loaded && !adapters[j].registered) {\n adapters[j].registered = true\n store.registerAdapter(adapters[j].name, args[i])\n break\n }\n }\n }\n }\n\n // Wrap certain sync functions with $apply\n for (var k = 0; k < functionsToWrap.length; k++) {\n let name = functionsToWrap[k]\n originals[name] = store[name]\n store[name] = (...args) => {\n if (!$rootScope.$$phase) {\n return $rootScope.$apply(() => originals[name].apply(store, args))\n }\n return originals[name].apply(store, args)\n }\n }\n\n // Hook into the digest loop\n if (typeof Object.observe !== 'function' || typeof Array.observe !== 'function') {\n $rootScope.$watch(() => store.observe.Platform.performMicrotaskCheckpoint())\n }\n\n return store\n }\n\n deps.push('$rootScope')\n deps.push('$q')\n deps.push(load)\n\n _this.$get = deps\n }\n}\nangular.module('js-data', ['ng'])\n .value('DSUtils', DSUtils)\n .value('DSErrors', DSErrors)\n .value('DSVersion', JSData.version)\n .provider('DS', DSProvider)\n .provider('DSHttpAdapter', DSHttpAdapterProvider)\n .run(['DS', 'DSHttpAdapter', (DS, DSHttpAdapter) => {\n DS.registerAdapter('http', DSHttpAdapter, { 'default': true })\n }])\n\nfor (var i = 0; i < adapters.length; i++) {\n registerAdapter(adapters[i])\n}\n\n// return the module name\nmodule.exports = 'js-data'\ntry {\n module.exports.name = 'js-data'\n} catch (e) {}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/index.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"amd\":\"js-data\",\"commonjs\":\"js-data\",\"commonjs2\":\"js-data\",\"root\":\"JSData\"}\n ** module id = 1\n ** module chunks = 0\n **/","let JSData = require('js-data')\nlet axios = null\n\ntry {\n axios = require('axios')\n} catch (e) {}\n\nlet { DSUtils } = JSData\nlet { deepMixIn, removeCircular, copy, makePath, isString, isNumber } = DSUtils\n\nfunction isUndefined (value) {\n return value === undefined\n}\n\nclass Defaults {\n queryTransform (resourceConfig, params) {\n return params\n }\n\n deserialize (resourceConfig, data) {\n return data ? ('data' in data ? data.data : data) : data\n }\n\n serialize (resourceConfig, data) {\n return data\n }\n\n log () {}\n\n error () {}\n}\n\nlet defaultsPrototype = Defaults.prototype\n\ndefaultsPrototype.basePath = ''\n\ndefaultsPrototype.forceTrailingSlash = ''\n\ndefaultsPrototype.httpConfig = {}\n\ndefaultsPrototype.verbsUseBasePath = false\n\nclass DSHttpAdapter {\n constructor (options) {\n options || (options = {})\n this.defaults = new Defaults()\n if (console) {\n this.defaults.log = (a, b) => console[typeof console.info === 'function' ? 'info' : 'log'](a, b)\n }\n if (console) {\n this.defaults.error = (a, b) => console[typeof console.error === 'function' ? 'error' : 'log'](a, b)\n }\n deepMixIn(this.defaults, options)\n this.http = options.http || axios\n }\n\n getEndpoint (resourceConfig, id, options) {\n options || (options = {})\n options.params = isUndefined(options.params) ? {} : options.params\n\n let endpoint = options.hasOwnProperty('endpoint') ? options.endpoint : resourceConfig.endpoint\n let parents = resourceConfig.parents || (resourceConfig.parent ? {\n [resourceConfig.parent]: {\n key: resourceConfig.parentKey,\n field: resourceConfig.parentField\n }\n } : {})\n\n DSUtils.forOwn(parents, function (parent, parentName) {\n let item\n let parentKey = parent.key\n let parentField = parent.field\n let parentDef = resourceConfig.getResource(parentName)\n let parentId = options.params[parentKey]\n\n if (parentId === false || !parentKey || !parentDef) {\n if (parentId === false) {\n delete options.params[parentKey]\n }\n } else {\n delete options.params[parentKey]\n\n if (DSUtils._sn(id)) {\n item = resourceConfig.get(id)\n } else if (DSUtils._o(id)) {\n item = id\n }\n\n if (item) {\n parentId = parentId || item[parentKey] || (item[parentField] ? item[parentField][parentDef.idAttribute] : null)\n }\n\n if (parentId) {\n delete options.endpoint\n let _options = {}\n DSUtils.forOwn(options, (value, key) => {\n _options[key] = value\n })\n endpoint = DSUtils.makePath(this.getEndpoint(parentDef, parentId, DSUtils._(parentDef, _options)), parentId, endpoint)\n }\n }\n }, this)\n\n return endpoint\n }\n\n getPath (method, resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n if (isString(options.urlPath)) {\n return makePath.apply(DSUtils, [options.basePath || resourceConfig.basePath || _this.defaults.basePath, options.urlPath])\n } else {\n let args = [\n options.basePath || resourceConfig.basePath || _this.defaults.basePath,\n this.getEndpoint(resourceConfig, (isString(id) || isNumber(id) || method === 'create') ? id : null, options)\n ]\n if (method === 'find' || method === 'update' || method === 'destroy') {\n args.push(id)\n }\n return makePath.apply(DSUtils, args)\n }\n }\n\n HTTP (config) {\n let _this = this\n let start = new Date()\n\n // blacklist `data` as it can be large and will take a lot of time to copy\n let payload = config.data\n let cache = config.cache\n let timeout = config.timeout\n let params = config.params\n config = copy(config, null, null, null, ['data', 'cache', 'timeout', 'params']) // params could have data, cache, timeout\n config.params = copy(params)\n config = deepMixIn(config, _this.defaults.httpConfig)\n config.data = payload\n config.cache = cache\n config.timeout = timeout\n if (!('verbsUseBasePath' in config)) {\n config.verbsUseBasePath = _this.defaults.verbsUseBasePath\n }\n if (!config.urlOverride && config.verbsUseBasePath) {\n config.url = makePath(config.basePath || _this.defaults.basePath, config.url)\n }\n if (_this.defaults.forceTrailingSlash && config.url[config.url.length - 1] !== '/' && !config.urlOverride) {\n config.url += '/'\n }\n if (typeof config.data === 'object') {\n config.data = removeCircular(config.data)\n }\n config.method = config.method.toUpperCase()\n let suffix = isUndefined(config.suffix) ? _this.defaults.suffix : config.suffix\n if (suffix && config.url.substr(config.url.length - suffix.length) !== suffix && !config.urlOverride) {\n config.url += suffix\n }\n\n // logs the HTTP response\n function logResponse (data, isRejection) {\n data = data || {}\n // examine the data object\n if (data instanceof Error) {\n // log the Error object\n _this.defaults.error(`FAILED: ${data.message || 'Unknown Error'}`, data)\n return DSUtils.Promise.reject(data)\n } else if (typeof data === 'object') {\n let str = `${start.toUTCString()} - ${config.method} ${config.url} - ${data.status} ${(new Date().getTime() - start.getTime())}ms`\n\n if (data.status >= 200 && data.status < 300 && !isRejection) {\n if (_this.defaults.log) {\n _this.defaults.log(str, data)\n }\n return data\n } else {\n if (_this.defaults.error) {\n _this.defaults.error(`FAILED: ${str}`, data)\n }\n return DSUtils.Promise.reject(data)\n }\n } else {\n // unknown type for 'data' that is not an Object or Error\n _this.defaults.error('FAILED', data)\n return DSUtils.Promise.reject(data)\n }\n }\n\n if (!this.http) {\n throw new Error('You have not configured this adapter with an http library!')\n }\n\n return this.http(config).then(logResponse, function (data) {\n return logResponse(data, true)\n })\n }\n\n GET (url, config) {\n config = config || {}\n config.method = config.method || 'get'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n POST (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'post'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n PUT (url, attrs, config) {\n config = config || {}\n config.method = config.method || 'put'\n config.urlOverride = !!config.url\n config.url = config.url || url\n config.data = config.data || attrs\n return this.HTTP(config)\n }\n\n DEL (url, config) {\n config = config || {}\n config.method = config.method || 'delete'\n config.urlOverride = !!config.url\n config.url = config.url || url\n return this.HTTP(config)\n }\n\n find (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.GET(\n _this.getPath('find', resourceConfig, id, options),\n options\n ).then((data) => {\n let item = (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data)\n return !item ? DSUtils.Promise.reject(new Error('Not Found!')) : item\n })\n }\n\n findAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return _this.GET(\n _this.getPath('findAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n create (resourceConfig, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.POST(\n _this.getPath('create', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n update (resourceConfig, id, attrs, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.PUT(\n _this.getPath('update', resourceConfig, id, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n updateAll (resourceConfig, attrs, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.PUT(\n _this.getPath('updateAll', resourceConfig, attrs, options),\n options.serialize ? options.serialize(resourceConfig, attrs) : _this.defaults.serialize(resourceConfig, attrs),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroy (resourceConfig, id, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n options.params = _this.defaults.queryTransform(resourceConfig, options.params)\n return _this.DEL(\n _this.getPath('destroy', resourceConfig, id, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n\n destroyAll (resourceConfig, params, options) {\n let _this = this\n options || (options = {})\n options.suffix = isUndefined(options.suffix) ? resourceConfig.suffix : options.suffix\n options.params = isUndefined(options.params) ? {} : copy(options.params)\n if (params) {\n params = _this.defaults.queryTransform(resourceConfig, params)\n deepMixIn(options.params, params)\n }\n return this.DEL(\n _this.getPath('destroyAll', resourceConfig, params, options),\n options\n ).then((data) => (options.deserialize ? options.deserialize : _this.defaults.deserialize)(resourceConfig, data))\n }\n}\n\nDSHttpAdapter.version = {\n full: '<%= pkg.version %>',\n major: parseInt('<%= major %>', 10),\n minor: parseInt('<%= minor %>', 10),\n patch: parseInt('<%= patch %>', 10),\n alpha: '<%= alpha %>' !== 'false' ? '<%= alpha %>' : false,\n beta: '<%= beta %>' !== 'false' ? '<%= beta %>' : false\n}\n\nmodule.exports = DSHttpAdapter\n\n\n\n/** WEBPACK FOOTER **\n ** ./.js-data-http.js\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_3__ === 'undefined') {var e = new Error(\"Cannot find module \\\"axios\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"axios\"\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 4\n ** module chunks = 0\n **/","var map = {};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src ^\\.\\/.*$\n ** module id = 5\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index ecc3c53..973552f 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -6,5 +6,5 @@ * * @overview Angular wrapper for js-data. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,u.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),s=r(2),u=r(4),o=i.DSUtils,f=i.DSErrors,l=o.get,d=o.isString,c=o.isNumber,p=o.isObject,h=o.set,m=o.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new s(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=f.defer();try{e(u.bind(t,t.resolve),u.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var s=a[a.length-2],f=a[a.length-1],l=new i.DS(r.defaults),d={};if(e.all=f.all,e.when=f.when,e.reject=f.reject,o.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,l.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=l[e],l[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return s.$$phase?d[e].apply(l,r):s.$apply(function(){return d[e].apply(l,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||s.$watch(function(){return l.observe.Platform.performMicrotaskCheckpoint()}),l}a(this,e);for(var r=this,n=[],s=0;s<v.length;s++)v[s].loaded&&n.push(v[s].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new f.NER(e);if(!p(t))throw new f.IA('"params" must be an object!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');var s=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var o=i.filter(e,t);o&&o.length&&u.forEach(o,function(t){i.compute(e,l(t,s))}),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new f.NER(e);if(!d(t)&&!c(t))throw new f.IA('"id" must be a string or a number!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var s=i.get(e,t);s&&i.compute(e,t),h(r,a,s),n&&n(null,s)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};u.module("js-data",["ng"]).value("DSUtils",o).value("DSErrors",f).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var x=0;x<v.length;x++)n(v[x]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return void 0===e}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(1),f=null;try{f=r(3)}catch(e){}var l=o.DSUtils,d=l.deepMixIn,c=l.removeCircular,p=l.copy,h=l.makePath,m=l.isString,v=l.isNumber,y=function(){function e(){n(this,e)}return u(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),g=y.prototype;g.basePath="",g.forceTrailingSlash="",g.httpConfig={},g.verbsUseBasePath=!1;var b=function(){function e(t){n(this,e),t||(t={}),this.defaults=new y,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),d(this.defaults,t),this.http=t.http||f}return u(e,[{key:"getEndpoint",value:function(e,t,r){r||(r={}),r.params=i(r.params)?{}:r.params;var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,s=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(s,function(a,i){var s=void 0,u=a.key,o=a.field,f=e.getResource(i),d=r.params[u];if(d!==!1&&u&&f){if(delete r.params[u],l._sn(t)?s=e.get(t):l._o(t)&&(s=t),s&&(d=d||s[u]||(s[o]?s[o][f.idAttribute]:null)),d){delete r.endpoint;var c={};l.forOwn(r,function(e,t){c[t]=e}),n=l.makePath(this.getEndpoint(f,d,l._(f,c)),d,n)}}else d===!1&&delete r.params[u]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a||(a={}),m(a.urlPath))return h.apply(l,[a.basePath||t.basePath||n.defaults.basePath,a.urlPath]);var i=[a.basePath||t.basePath||n.defaults.basePath,this.getEndpoint(t,m(r)||v(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),h.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":s(t))){var i=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(i,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+i,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,u=e.cache,o=e.timeout;e=p(e,null,null,null,["data","cache","timeout"]),e=d(e,r.defaults.httpConfig),e.data=n,e.cache=u,e.timeout=o,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=h(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===s(e.data)&&(e.data=c(e.data)),e.method=e.method.toUpperCase();var f=i(e.suffix)?r.defaults.suffix:e.suffix;if(f&&e.url.substr(e.url.length-f.length)!==f&&!e.urlOverride&&(e.url+=f),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),r&&(r=n.defaults.queryTransform(e,r),d(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();b.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=b},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):"function"==typeof define&&define.amd?define(["js-data","angular"],function(r,a){return t(r,a,e.axios)}):"object"==typeof exports?exports.jsDataAngularModuleName=t(require("js-data"),require("angular"),function(){try{return require("axios")}catch(e){}}()):e.jsDataAngularModuleName=t(e.JSData,e.angular,e.axios)}(this,function(e,t,r){return function(e){function t(a){if(r[a])return r[a].exports;var n=r[a]={exports:{},id:a,loaded:!1};return e[a].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e){var t=void 0;try{t=r(5)(e.project)}catch(e){}t||(t=window[e.class]),t&&(e.loaded=!0,u.module("js-data").provider(e.class,function(){var e=this;e.defaults={},e.$get=[function(){return new t(e.defaults)}]}))}var i=r(1),s=r(2),u=r(4),o=i.DSUtils,f=i.DSErrors,l=o.get,d=o.isString,c=o.isNumber,p=o.isObject,h=o.set,m=o.resolveId,v=[{project:"js-data-localstorage",name:"localstorage",class:"DSLocalStorageAdapter"},{project:"js-data-localforage",name:"localforage",class:"DSLocalForageAdapter"},{project:"js-data-firebase",name:"firebase",class:"DSFirebaseAdapter"},{project:"js-data-sql",name:"sql",class:"DSSqlAdapter"}],y=["compute","digest","eject","inject"],g=function e(){a(this,e);var t={};this.defaults=t,this.$get=["$http","DS",function(e,r){t.http=t.http||e;var a=new s(t);return r.registerAdapter("http",a,{default:!0}),a}]},b=function e(){function t(){function e(e){var t=f.defer();try{e(u.bind(t,t.resolve),u.bind(t,t.reject))}catch(e){t.reject(e)}return t.promise}for(var t=arguments.length,a=Array(t),n=0;t>n;n++)a[n]=arguments[n];var s=a[a.length-2],f=a[a.length-1],l=new i.DS(r.defaults),d={};if(e.all=f.all,e.when=f.when,e.reject=f.reject,o.Promise=e,a.length)for(var c=0;c<a.length;c++)for(var p=0;p<v.length;p++)if(v[p].loaded&&!v[p].registered){v[p].registered=!0,l.registerAdapter(v[p].name,a[c]);break}for(var h=function(){var e=y[m];d[e]=l[e],l[e]=function(){for(var t=arguments.length,r=Array(t),a=0;t>a;a++)r[a]=arguments[a];return s.$$phase?d[e].apply(l,r):s.$apply(function(){return d[e].apply(l,r)})}},m=0;m<y.length;m++)h();return"function"==typeof Object.observe&&"function"==typeof Array.observe||s.$watch(function(){return l.observe.Platform.performMicrotaskCheckpoint()}),l}a(this,e);for(var r=this,n=[],s=0;s<v.length;s++)v[s].loaded&&n.push(v[s].class);r.defaults={},i.DS.prototype.bindAll=function(e,t,r,a,n){var i=this;if(t=t||{},!i.definitions[e])throw new f.NER(e);if(!p(t))throw new f.IA('"params" must be an object!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');var s=i.definitions[e].idAttribute;try{return r.$watch(function(){return i.lastModified(e)},function(){var o=i.filter(e,t);o&&o.length&&u.forEach(o,function(t){i.compute(e,l(t,s))}),h(r,a,o),n&&n(null,o)})}catch(e){if(!n)throw e;n(e)}},i.DS.prototype.bindOne=function(e,t,r,a,n){var i=this;if(t=m(i.definitions[e],t),!i.definitions[e])throw new f.NER(e);if(!d(t)&&!c(t))throw new f.IA('"id" must be a string or a number!');if(!p(r))throw new f.IA('"scope" must be an object!');if(!d(a))throw new f.IA('"expr" must be a string!');try{return r.$watch(function(){return i.lastModified(e,t)},function(){var s=i.get(e,t);s&&i.compute(e,t),h(r,a,s),n&&n(null,s)})}catch(e){if(!n)throw e;n(e)}},n.push("$rootScope"),n.push("$q"),n.push(t),r.$get=n};u.module("js-data",["ng"]).value("DSUtils",o).value("DSErrors",f).value("DSVersion",i.version).provider("DS",b).provider("DSHttpAdapter",g).run(["DS","DSHttpAdapter",function(e,t){e.registerAdapter("http",t,{default:!0})}]);for(var x=0;x<v.length;x++)n(v[x]);e.exports="js-data";try{e.exports.name="js-data"}catch(e){}},function(t,r){t.exports=e},function(e,t,r){"use strict";function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return void 0===e}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},u=function(){function e(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,r,a){return r&&e(t.prototype,r),a&&e(t,a),t}}(),o=r(1),f=null;try{f=r(3)}catch(e){}var l=o.DSUtils,d=l.deepMixIn,c=l.removeCircular,p=l.copy,h=l.makePath,m=l.isString,v=l.isNumber,y=function(){function e(){n(this,e)}return u(e,[{key:"queryTransform",value:function(e,t){return t}},{key:"deserialize",value:function(e,t){return t&&"data"in t?t.data:t}},{key:"serialize",value:function(e,t){return t}},{key:"log",value:function(){}},{key:"error",value:function(){}}]),e}(),g=y.prototype;g.basePath="",g.forceTrailingSlash="",g.httpConfig={},g.verbsUseBasePath=!1;var b=function(){function e(t){n(this,e),t||(t={}),this.defaults=new y,console&&(this.defaults.log=function(e,t){return console["function"==typeof console.info?"info":"log"](e,t)}),console&&(this.defaults.error=function(e,t){return console["function"==typeof console.error?"error":"log"](e,t)}),d(this.defaults,t),this.http=t.http||f}return u(e,[{key:"getEndpoint",value:function(e,t,r){r||(r={}),r.params=i(r.params)?{}:r.params;var n=r.hasOwnProperty("endpoint")?r.endpoint:e.endpoint,s=e.parents||(e.parent?a({},e.parent,{key:e.parentKey,field:e.parentField}):{});return l.forOwn(s,function(a,i){var s=void 0,u=a.key,o=a.field,f=e.getResource(i),d=r.params[u];if(d!==!1&&u&&f){if(delete r.params[u],l._sn(t)?s=e.get(t):l._o(t)&&(s=t),s&&(d=d||s[u]||(s[o]?s[o][f.idAttribute]:null)),d){delete r.endpoint;var c={};l.forOwn(r,function(e,t){c[t]=e}),n=l.makePath(this.getEndpoint(f,d,l._(f,c)),d,n)}}else d===!1&&delete r.params[u]},this),n}},{key:"getPath",value:function(e,t,r,a){var n=this;if(a||(a={}),m(a.urlPath))return h.apply(l,[a.basePath||t.basePath||n.defaults.basePath,a.urlPath]);var i=[a.basePath||t.basePath||n.defaults.basePath,this.getEndpoint(t,m(r)||v(r)||"create"===e?r:null,a)];return"find"!==e&&"update"!==e&&"destroy"!==e||i.push(r),h.apply(l,i)}},{key:"HTTP",value:function(e){function t(t,n){if(t=t||{},t instanceof Error)return r.defaults.error("FAILED: "+(t.message||"Unknown Error"),t),l.Promise.reject(t);if("object"===("undefined"==typeof t?"undefined":s(t))){var i=a.toUTCString()+" - "+e.method+" "+e.url+" - "+t.status+" "+((new Date).getTime()-a.getTime())+"ms";return t.status>=200&&t.status<300&&!n?(r.defaults.log&&r.defaults.log(i,t),t):(r.defaults.error&&r.defaults.error("FAILED: "+i,t),l.Promise.reject(t))}return r.defaults.error("FAILED",t),l.Promise.reject(t)}var r=this,a=new Date,n=e.data,u=e.cache,o=e.timeout,f=e.params;e=p(e,null,null,null,["data","cache","timeout","params"]),e.params=p(f),e=d(e,r.defaults.httpConfig),e.data=n,e.cache=u,e.timeout=o,"verbsUseBasePath"in e||(e.verbsUseBasePath=r.defaults.verbsUseBasePath),!e.urlOverride&&e.verbsUseBasePath&&(e.url=h(e.basePath||r.defaults.basePath,e.url)),r.defaults.forceTrailingSlash&&"/"!==e.url[e.url.length-1]&&!e.urlOverride&&(e.url+="/"),"object"===s(e.data)&&(e.data=c(e.data)),e.method=e.method.toUpperCase();var m=i(e.suffix)?r.defaults.suffix:e.suffix;if(m&&e.url.substr(e.url.length-m.length)!==m&&!e.urlOverride&&(e.url+=m),!this.http)throw new Error("You have not configured this adapter with an http library!");return this.http(e).then(t,function(e){return t(e,!0)})}},{key:"GET",value:function(e,t){return t=t||{},t.method=t.method||"get",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"POST",value:function(e,t,r){return r=r||{},r.method=r.method||"post",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"PUT",value:function(e,t,r){return r=r||{},r.method=r.method||"put",r.urlOverride=!!r.url,r.url=r.url||e,r.data=r.data||t,this.HTTP(r)}},{key:"DEL",value:function(e,t){return t=t||{},t.method=t.method||"delete",t.urlOverride=!!t.url,t.url=t.url||e,this.HTTP(t)}},{key:"find",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.GET(a.getPath("find",e,t,r),r).then(function(t){var n=(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t);return n?n:l.Promise.reject(new Error("Not Found!"))})}},{key:"findAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),a.GET(a.getPath("findAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"create",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.POST(a.getPath("create",e,t,r),r.serialize?r.serialize(e,t):a.defaults.serialize(e,t),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"update",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),a.params=n.defaults.queryTransform(e,a.params),n.PUT(n.getPath("update",e,t,a),a.serialize?a.serialize(e,r):n.defaults.serialize(e,r),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"updateAll",value:function(e,t,r,a){var n=this;return a||(a={}),a.suffix=i(a.suffix)?e.suffix:a.suffix,a.params=i(a.params)?{}:p(a.params),r&&(r=n.defaults.queryTransform(e,r),d(a.params,r)),this.PUT(n.getPath("updateAll",e,t,a),a.serialize?a.serialize(e,t):n.defaults.serialize(e,t),a).then(function(t){return(a.deserialize?a.deserialize:n.defaults.deserialize)(e,t)})}},{key:"destroy",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),r.params=a.defaults.queryTransform(e,r.params),a.DEL(a.getPath("destroy",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}},{key:"destroyAll",value:function(e,t,r){var a=this;return r||(r={}),r.suffix=i(r.suffix)?e.suffix:r.suffix,r.params=i(r.params)?{}:p(r.params),t&&(t=a.defaults.queryTransform(e,t),d(r.params,t)),this.DEL(a.getPath("destroyAll",e,t,r),r).then(function(t){return(r.deserialize?r.deserialize:a.defaults.deserialize)(e,t)})}}]),e}();b.version={full:"<%= pkg.version %>",major:parseInt("<%= major %>",10),minor:parseInt("<%= minor %>",10),patch:parseInt("<%= patch %>",10),alpha:"<%= alpha %>",beta:"<%= beta %>"},e.exports=b},function(e,t){if("undefined"==typeof r){var a=new Error('Cannot find module "axios"');throw a.code="MODULE_NOT_FOUND",a}e.exports=r},function(e,r){e.exports=t},function(e,t,r){function a(e){return r(n(e))}function n(e){return i[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var i={};a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id=5}])}); //# sourceMappingURL=js-data-angular.min.map \ No newline at end of file diff --git a/dist/js-data-angular.min.map b/dist/js-data-angular.min.map index de1c756..b85a53a 100644 --- a/dist/js-data-angular.min.map +++ b/dist/js-data-angular.min.map @@ -1 +1 @@ -{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","isUndefined","undefined","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file +{"version":3,"sources":["dist/js-data-angular.js"],"names":["root","factory","exports","module","require","e","define","amd","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_4__","this","__WEBPACK_EXTERNAL_MODULE_3__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","registerAdapter","adapter","Adapter","project","window","class","angular","provider","_this","defaults","$get","JSData","DSHttpAdapter","DSUtils","DSErrors","get","isString","isNumber","isObject","set","resolveId","adapters","name","functionsToWrap","DSHttpAdapterProvider","$http","DS","http","default","DSProvider","load","QPromise","executor","deferred","$q","defer","bind","resolve","reject","err","promise","_len","arguments","length","args","Array","_key","$rootScope","store","originals","all","when","Promise","i","j","registered","_loop","k","_len2","_key2","$$phase","apply","$apply","Object","observe","$watch","Platform","performMicrotaskCheckpoint","deps","push","prototype","bindAll","resourceName","params","scope","expr","cb","definitions","NER","IA","idAttribute","lastModified","items","filter","forEach","item","compute","bindOne","value","version","run","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","isUndefined","undefined","_typeof","Symbol","iterator","constructor","_createClass","defineProperties","target","props","descriptor","protoProps","staticProps","axios","deepMixIn","removeCircular","copy","makePath","Defaults","resourceConfig","data","defaultsPrototype","basePath","forceTrailingSlash","httpConfig","verbsUseBasePath","options","console","log","a","b","info","error","endpoint","hasOwnProperty","parents","parent","parentKey","field","parentField","forOwn","parentName","parentDef","getResource","parentId","_sn","_o","_options","getEndpoint","_","method","urlPath","config","logResponse","isRejection","Error","message","str","start","toUTCString","url","status","Date","getTime","payload","cache","timeout","urlOverride","toUpperCase","suffix","substr","then","HTTP","attrs","queryTransform","GET","getPath","deserialize","POST","serialize","PUT","DEL","full","major","parseInt","minor","patch","alpha","beta","code","webpackContext","req","webpackContextResolve","map","keys"],"mappings":"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","file":"dist/js-data-angular.min.js"} \ No newline at end of file From abf9f54c3358de7539e37e489f4e881286498ac5 Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Tue, 25 Sep 2018 09:37:36 -0700 Subject: [PATCH 31/32] 3.2.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 864f741..55e2e70 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "js-data-angular", "description": "Angular wrapper for js-data.", - "version": "3.2.3", + "version": "3.2.4", "homepage": "http://www.js-data.io/docs/js-data-angular", "repository": { "type": "git", From 2890d89a5951c225a3870b7711b65b4889042170 Mon Sep 17 00:00:00 2001 From: Cory Robinson <coryrobinson42@gmail.com> Date: Tue, 25 Sep 2018 09:38:54 -0700 Subject: [PATCH 32/32] release(v3.2.4): update dist/ --- dist/js-data-angular.js | 6 +++--- dist/js-data-angular.min.js | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/js-data-angular.js b/dist/js-data-angular.js index 13b2c39..b62c48d 100644 --- a/dist/js-data-angular.js +++ b/dist/js-data-angular.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.2.3 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.4 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> * @@ -701,10 +701,10 @@ return /******/ (function(modules) { // webpackBootstrap }(); DSHttpAdapter.version = { - full: '3.2.3', + full: '3.2.4', major: parseInt('3', 10), minor: parseInt('2', 10), - patch: parseInt('3', 10), + patch: parseInt('4', 10), alpha: true ? 'false' : false, beta: true ? 'false' : false }; diff --git a/dist/js-data-angular.min.js b/dist/js-data-angular.min.js index 973552f..cfb64ab 100644 --- a/dist/js-data-angular.min.js +++ b/dist/js-data-angular.min.js @@ -1,6 +1,6 @@ /*! * js-data-angular -* @version 3.2.3 - Homepage <https://github.com/js-data/js-data-angular> +* @version 3.2.4 - Homepage <https://github.com/js-data/js-data-angular> * @copyright (c) 2014-2016 js-data-angular project authors * @license MIT <https://github.com/js-data/js-data-angular/blob/master/LICENSE> *