ember-data-source 2.6.2 → 2.7.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
- !function(){"use strict";var e,t,r,i,a;!function(n){function o(){m={define:0,require:0,reify:0,findDeps:0,modules:0,exports:0,resolve:0,resolveRelative:0,findModule:0,pendingQueueLength:0},a._stats=m}function s(e){throw new Error("an unsupported module was defined, expected `define(name, deps, module)` instead got: `"+e+"` arguments to define`")}function d(e,t,r,i){m.modules++,this.id=g++,this.name=e,this.deps=!t.length&&r.length?R:t,this.module={exports:{}},this.callback=r,this.finalized=!1,this.hasExportsAsDep=!1,this.isAlias=i,this.reified=new Array(t.length),this._foundDeps=!1,this.isPending=!1}function l(e){this.name=e}function u(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}function c(e,t,r){m.findModule++;for(var i=v[e]||v[e+"/index"];i&&i.isAlias;)i=v[i.name];return i||u(e,t),!r||i.finalized||i.isPending||(i.findDeps(r),r.push(i),m.pendingQueueLength++),i}function h(e,t){if(m.resolve++,"."!==e.charAt(0))return e;m.resolveRelative++;for(var r=e.split("/"),i=t.split("/"),a=i.slice(0,-1),n=0,o=r.length;n<o;n++){var s=r[n];if(".."===s){if(0===a.length)throw new Error("Cannot access parent module of root");a.pop()}else{if("."===s)continue;a.push(s)}}return a.join("/")}function p(e){return!(!v[e]&&!v[e+"/index"])}var f={loader:e,define:t,requireModule:r,require:i,requirejs:a};a=i=r=function(e){m.require++;for(var t=[],r=c(e,"(require)",t),i=t.length-1;i>=0;i--)t[i].exports();return r.module.exports};var m;o(),e={noConflict:function(e){var t,r;for(t in e)e.hasOwnProperty(t)&&f.hasOwnProperty(t)&&(r=e[t],n[r]=n[t],n[t]=f[t])}};var y;y=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var v={},b={},g=0,R=["require","exports","module"];d.prototype.makeDefaultExport=function(){var e=this.module.exports;null===e||"object"!=typeof e&&"function"!=typeof e||void 0!==e.default||(e.default=e)},d.prototype.exports=function(){if(this.finalized)return this.module.exports;m.exports++,this.finalized=!0,this.isPending=!1,e.wrapModules&&(this.callback=e.wrapModules(this.name,this.callback)),this.reify();var t=this.callback.apply(this,this.reified);return this.hasExportsAsDep&&void 0===t||(this.module.exports=t),this.makeDefaultExport(),this.module.exports},d.prototype.unsee=function(){this.finalized=!1,this._foundDeps=!1,this.isPending=!1,this.module={exports:{}}},d.prototype.reify=function(){m.reify++;for(var e=this.reified,t=0;t<e.length;t++){var r=e[t];e[t]=r.exports?r.exports:r.module.exports()}},d.prototype.findDeps=function(e){if(!this._foundDeps){m.findDeps++,this._foundDeps=!0,this.isPending=!0;for(var t=this.deps,r=0;r<t.length;r++){var i=t[r],a=this.reified[r]={exports:void 0,module:void 0};"exports"===i?(this.hasExportsAsDep=!0,a.exports=this.module.exports):"require"===i?a.exports=this.makeRequire():"module"===i?a.exports=this.module:a.module=c(h(i,this.name),this.name,e)}}},d.prototype.makeRequire=function(){var e=this.name,t=function(t){return i(h(t,e))};return t.default=t,t.has=function(t){return p(h(t,e))},t},t=function(e,t,r){m.define++,arguments.length<2&&s(arguments.length),y(t)||(r=t,t=[]),r instanceof l?v[e]=new d(r.name,t,r,(!0)):v[e]=new d(e,t,r,(!1))},t.petal={},t.alias=function(e){return new l(e)},a.entries=a._eak_seen=v,a.has=p,a.unsee=function(e){c(e,"(unsee)",!1).unsee()},a.clear=function(){o(),a.entries=a._eak_seen=v={},b={}},t("foo",function(){}),t("foo/bar",[],function(){}),t("foo/asdf",["module","exports","require"],function(e,t,r){r.has("foo/bar")&&r("foo/bar")}),t("foo/baz",[],t.alias("foo")),t("foo/quz",t.alias("foo")),t("foo/bar",["foo","./quz","./baz","./asdf","./bar","../foo"],function(){}),t("foo/main",["foo/bar"],function(){}),i("foo/main"),i.unsee("foo/bar"),a.clear(),"object"==typeof exports&&"object"==typeof module&&module.exports&&(module.exports={require:i,define:t})}(this),t("ember-data/-private/adapters",["exports","ember-data/adapters/json-api","ember-data/adapters/rest"],function(e,t,r){e.JSONAPIAdapter=t.default,e.RESTAdapter=r.default}),t("ember-data/-private/adapters/build-url-mixin",["exports","ember"],function(e,t){var r=t.default.get;e.default=t.default.Mixin.create({buildURL:function(e,t,r,i,a){switch(i){case"findRecord":return this.urlForFindRecord(t,e,r);case"findAll":return this.urlForFindAll(e,r);case"query":return this.urlForQuery(a,e);case"queryRecord":return this.urlForQueryRecord(a,e);case"findMany":return this.urlForFindMany(t,e,r);case"findHasMany":return this.urlForFindHasMany(t,e,r);case"findBelongsTo":return this.urlForFindBelongsTo(t,e,r);case"createRecord":return this.urlForCreateRecord(e,r);case"updateRecord":return this.urlForUpdateRecord(t,e,r);case"deleteRecord":return this.urlForDeleteRecord(t,e,r);default:return this._buildURL(e,t)}},_buildURL:function(e,t){var i,a=[],n=r(this,"host"),o=this.urlPrefix();return e&&(i=this.pathForType(e),i&&a.push(i)),t&&a.push(encodeURIComponent(t)),o&&a.unshift(o),a=a.join("/"),!n&&a&&"/"!==a.charAt(0)&&(a="/"+a),a},urlForFindRecord:function(e,t,r){return this._buildURL(t,e)},urlForFindAll:function(e,t){return this._buildURL(e)},urlForQuery:function(e,t){return this._buildURL(t)},urlForQueryRecord:function(e,t){return this._buildURL(t)},urlForFindMany:function(e,t,r){return this._buildURL(t)},urlForFindHasMany:function(e,t,r){return this._buildURL(t,e)},urlForFindBelongsTo:function(e,t,r){return this._buildURL(t,e)},urlForCreateRecord:function(e,t){return this._buildURL(e)},urlForUpdateRecord:function(e,t,r){return this._buildURL(t,e)},urlForDeleteRecord:function(e,t,r){return this._buildURL(t,e)},urlPrefix:function(e,t){var i=r(this,"host"),a=r(this,"namespace");if(i&&"/"!==i||(i=""),e)return/^\/\//.test(e)||/http(s)?:\/\//.test(e)?e:"/"===e.charAt(0)?""+i+e:t+"/"+e;var n=[];return i&&n.push(i),a&&n.push(a),n.join("/")},pathForType:function(e){var r=t.default.String.camelize(e);return t.default.String.pluralize(r)}})}),t("ember-data/-private/core",["exports","ember","ember-data/version"],function(e,t,r){var i=t.default.Namespace.create({VERSION:r.default});t.default.libraries&&t.default.libraries.registerCoreLibrary("Ember Data",i.VERSION),e.default=i}),t("ember-data/-private/debug",["exports","ember"],function(e,t){function r(){return t.default.assert.apply(t.default,arguments)}function i(){return t.default.debug.apply(t.default,arguments)}function a(){return t.default.deprecate.apply(t.default,arguments)}function n(){return t.default.info.apply(t.default,arguments)}function o(){return t.default.runInDebug.apply(t.default,arguments)}function s(){return t.default.warn.apply(t.default,arguments)}function d(){return t.default.debugSeal.apply(t.default,arguments)}function l(e,r){return e.__isMixin?e.__mixin.detect(r.type.PrototypeMixin):(t.default.MODEL_FACTORY_INJECTIONS&&(e=e.superclass),e.detect(r.type))}function u(e,t,i){var a=i.type.modelName,n=e.type.modelName,o=t.key,s=e.store.modelFor(t.type),d="You cannot add a record of type '"+a+"' to the '"+n+"."+o+"' relationship (only '"+s.modelName+"' allowed)";r(d,l(s,i))}e.assert=r,e.debug=i,e.deprecate=a,e.info=n,e.runInDebug=o,e.warn=s,e.debugSeal=d,e.assertPolymorphicType=u}),t("ember-data/-private/ext/date",["exports","ember"],function(e,t){t.default.Date=t.default.Date||{};var r=Date.parse,i=[1,4,5,6,7,10,11];t.default.Date.parse=function(e){var t,a,n=0;if(a=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(e)){for(var o,s=0;o=i[s];++s)a[o]=+a[o]||0;a[2]=(+a[2]||1)-1,a[3]=+a[3]||1,"Z"!==a[8]&&void 0!==a[9]&&(n=60*a[10]+a[11],"+"===a[9]&&(n=0-n)),t=Date.UTC(a[1],a[2],a[3],a[4],a[5]+n,a[6],a[7])}else t=r?r(e):NaN;return t},(t.default.EXTEND_PROTOTYPES===!0||t.default.EXTEND_PROTOTYPES.Date)&&(Date.parse=t.default.Date.parse)}),t("ember-data/-private/features",["exports","ember"],function(e,t){function r(){var e;return(e=t.default.FEATURES).isEnabled.apply(e,arguments)}e.default=r}),t("ember-data/-private/initializers/data-adapter",["exports","ember-data/-private/system/debug/debug-adapter"],function(e,t){function r(e){e.register("data-adapter:main",t.default)}e.default=r}),t("ember-data/-private/initializers/store-injections",["exports"],function(e){function t(e){var t=e.inject||e.injection;t.call(e,"controller","store","service:store"),t.call(e,"route","store","service:store"),t.call(e,"data-adapter","store","service:store")}e.default=t}),t("ember-data/-private/initializers/store",["exports","ember-data/-private/system/store","ember-data/-private/serializers","ember-data/-private/adapters"],function(e,t,r,i){function a(e,t){return e.has?e.has(t):e.hasRegistration(t)}function n(e){var n=e.registerOptionsForType||e.optionsForType;n.call(e,"serializer",{singleton:!1}),n.call(e,"adapter",{singleton:!1}),e.register("serializer:-default",r.JSONSerializer),e.register("serializer:-rest",r.RESTSerializer),e.register("adapter:-rest",i.RESTAdapter),e.register("adapter:-json-api",i.JSONAPIAdapter),e.register("serializer:-json-api",r.JSONAPISerializer),a(e,"service:store")||e.register("service:store",t.default)}e.default=n}),t("ember-data/-private/initializers/transforms",["exports","ember-data/-private/transforms"],function(e,t){function r(e){e.register("transform:boolean",t.BooleanTransform),e.register("transform:date",t.DateTransform),e.register("transform:number",t.NumberTransform),e.register("transform:string",t.StringTransform)}e.default=r}),t("ember-data/-private/instance-initializers/initialize-store-service",["exports"],function(e){function t(e){var t=e.lookup?e:e.container;t.lookup("service:store")}e.default=t}),t("ember-data/-private/serializers",["exports","ember-data/serializers/json-api","ember-data/serializers/json","ember-data/serializers/rest"],function(e,t,r,i){e.JSONAPISerializer=t.default,e.JSONSerializer=r.default,e.RESTSerializer=i.default}),t("ember-data/-private/system/clone-null",["exports","ember-data/-private/system/empty-object"],function(e,t){function r(e){var r=new t.default;for(var i in e)r[i]=e[i];return r}e.default=r}),t("ember-data/-private/system/coerce-id",["exports"],function(e){function t(e){return null==e||""===e?null:e+""}e.default=t}),t("ember-data/-private/system/container-proxy",["exports","ember-data/-private/debug"],function(e,t){function r(e){this.container=e}e.default=r,r.prototype.aliasedFactory=function(e,t){var r=this;return{create:function(){return t&&t(),r.container.lookup(e)}}},r.prototype.registerAlias=function(e,t,r){var i=this.aliasedFactory(t,r);return this.container.register(e,i)},r.prototype.registerDeprecation=function(e,t){var r=function(){};return this.registerAlias(e,t,r)},r.prototype.registerDeprecations=function(e){var t,r,i,a;for(t=e.length;t>0;t--)r=e[t-1],i=r.deprecated,a=r.valid,this.registerDeprecation(i,a)}}),t("ember-data/-private/system/debug",["exports","ember-data/-private/system/debug/debug-adapter"],function(e,t){e.default=t.default}),t("ember-data/-private/system/debug/debug-adapter",["exports","ember","ember-data/model"],function(e,t,r){var i=t.default.get,a=t.default.String.capitalize,n=t.default.String.underscore,o=t.default.assert;e.default=t.default.DataAdapter.extend({getFilters:function(){return[{name:"isNew",desc:"New"},{name:"isModified",desc:"Modified"},{name:"isClean",desc:"Clean"}]},detect:function(e){return e!==r.default&&r.default.detect(e)},columnsForType:function(e){var t=[{name:"id",desc:"Id"}],r=0,o=this;return i(e,"attributes").forEach(function(e,i){if(r++>o.attributeLimit)return!1;var s=a(n(i).replace("_"," "));t.push({name:i,desc:s})}),t},getRecords:function(e,t){if(arguments.length<2){var r=e._debugContainerKey;if(r){var i=r.match(/model:(.*)/);i&&(t=i[1])}}return o("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support",!!t),this.get("store").peekAll(t)},getRecordColumnValues:function(e){var t=this,r=0,a={id:i(e,"id")};return e.eachAttribute(function(n){if(r++>t.attributeLimit)return!1;var o=i(e,n);a[n]=o}),a},getRecordKeywords:function(e){var r=[],a=t.default.A(["id"]);return e.eachAttribute(function(e){return a.push(e)}),a.forEach(function(t){return r.push(i(e,t))}),r},getRecordFilterValues:function(e){return{isNew:e.get("isNew"),isModified:e.get("hasDirtyAttributes")&&!e.get("isNew"),isClean:!e.get("hasDirtyAttributes")}},getRecordColor:function(e){var t="black";return e.get("isNew")?t="green":e.get("hasDirtyAttributes")&&(t="blue"),t},observeRecord:function(e,r){var i=t.default.A(),a=t.default.A(["id","isNew","hasDirtyAttributes"]);e.eachAttribute(function(e){return a.push(e)});var n=this;a.forEach(function(a){var o=function(){r(n.wrapRecord(e))};t.default.addObserver(e,a,o),i.push(function(){t.default.removeObserver(e,a,o)})});var o=function(){i.forEach(function(e){return e()})};return o}})}),t("ember-data/-private/system/debug/debug-info",["exports","ember"],function(e,t){e.default=t.default.Mixin.create({_debugInfo:function(){var e=["id"],t={belongsTo:[],hasMany:[]},r=[];this.eachAttribute(function(t,r){return e.push(t)}),this.eachRelationship(function(e,i){t[i.kind].push(e),r.push(e)});var i=[{name:"Attributes",properties:e,expand:!0},{name:"Belongs To",properties:t.belongsTo,expand:!0},{name:"Has Many",properties:t.hasMany,expand:!0},{name:"Flags",properties:["isLoaded","hasDirtyAttributes","isSaving","isDeleted","isError","isNew","isValid"]}];return{propertyInfo:{includeOtherProperties:!0,groups:i,expensiveProperties:r}}}})}),t("ember-data/-private/system/empty-object",["exports"],function(e){function t(){}e.default=t;var r=Object.create(null,{constructor:{value:void 0,enumerable:!1,writable:!0}});t.prototype=r}),t("ember-data/-private/system/is-array-like",["exports","ember"],function(e,t){function r(e){if(!e||e.setInterval)return!1;if(Array.isArray(e))return!0;if(t.default.Array.detect(e))return!0;var r=t.default.typeOf(e);return"array"===r||void 0!==e.length&&"object"===r}e.default=r}),t("ember-data/-private/system/many-array",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/store/common"],function(e,t,r,i,a){var n=t.default.get,o=t.default.set;e.default=t.default.Object.extend(t.default.MutableArray,t.default.Evented,{init:function(){this._super.apply(this,arguments),this.currentState=t.default.A([])},record:null,canonicalState:null,currentState:null,length:0,objectAt:function(e){if(this.currentState[e])return this.currentState[e].getRecord()},flushCanonical:function(){var e=this.canonicalState.filter(function(e){return!e.isDeleted()}),t=this.currentState.filter(function(t){return t.isNew()&&e.indexOf(t)===-1});e=e.concat(t);var r=this.length;this.arrayContentWillChange(0,this.length,e.length),(0,a._objectIsAlive)(this)&&this.set("length",e.length),this.currentState=e,this.arrayContentDidChange(0,r,this.length),this.relationship.notifyHasManyChanged(),this.record.updateRecordArrays()},isPolymorphic:!1,isLoaded:!1,relationship:null,meta:null,internalReplace:function(e,t,r){r||(r=[]),this.arrayContentWillChange(e,t,r.length),this.currentState.splice.apply(this.currentState,[e,t].concat(r)),this.set("length",this.currentState.length),this.arrayContentDidChange(e,t,r.length),r&&this.relationship.notifyHasManyChanged(),this.record.updateRecordArrays()},internalRemoveRecords:function(e){for(var t,r=0;r<e.length;r++)t=this.currentState.indexOf(e[r]),this.internalReplace(t,1)},internalAddRecords:function(e,t){void 0===t&&(t=this.currentState.length),this.internalReplace(t,0,e)},replace:function(e,t,r){var i;t>0&&(i=this.currentState.slice(e,e+t),this.get("relationship").removeRecords(i)),r&&this.get("relationship").addRecords(r.map(function(e){return e._internalModel}),e)},promise:null,loadingRecordsCount:function(e){this.loadingRecordsCount=e},loadedRecord:function(){this.loadingRecordsCount--,0===this.loadingRecordsCount&&(o(this,"isLoaded",!0),this.trigger("didLoad"))},reload:function(){return this.relationship.reload()},save:function(){var e=this,r="DS: ManyArray#save "+n(this,"type"),a=t.default.RSVP.all(this.invoke("save"),r).then(function(t){return e},null,"DS: ManyArray#save return ManyArray");return i.PromiseArray.create({promise:a})},createRecord:function(e){var t,r=n(this,"store"),i=n(this,"type");return t=r.createRecord(i.modelName,e),this.pushObject(t),t}})}),t("ember-data/-private/system/model",["exports","ember-data/-private/system/model/model","ember-data/attr","ember-data/-private/system/model/states","ember-data/-private/system/model/errors"],function(e,t,r,i,a){e.RootState=i.default,e.attr=r.default,e.Errors=a.default,e.default=t.default}),t("ember-data/-private/system/model/attr",["exports","ember","ember-data/-private/debug"],function(e,t,r){var i=t.default.get,a=t.default.Map,n=t.default.Mixin.create({attributes:t.default.computed(function(){var e=a.create();return this.eachComputedProperty(function(t,r){r.isAttribute&&(r.name=t,e.set(t,r))}),e}).readOnly(),transformedAttributes:t.default.computed(function(){var e=a.create();return this.eachAttribute(function(t,r){r.type&&e.set(t,r.type)}),e}).readOnly(),eachAttribute:function(e,t){i(this,"attributes").forEach(function(r,i){e.call(t,i,r)})},eachTransformedAttribute:function(e,t){i(this,"transformedAttributes").forEach(function(r,i){e.call(t,i,r)})}});e.AttrClassMethodsMixin=n;var o=t.default.Mixin.create({eachAttribute:function(e,t){this.constructor.eachAttribute(e,t)}});e.AttrInstanceMethodsMixin=o}),t("ember-data/-private/system/model/errors",["exports","ember","ember-data/-private/debug"],function(e,t,r){var i=t.default.get,a=t.default.set,n=t.default.isEmpty,o=t.default.makeArray,s=t.default.MapWithDefault;e.default=t.default.ArrayProxy.extend(t.default.Evented,{registerHandlers:function(e,t,r){this._registerHandlers(e,t,r)},_registerHandlers:function(e,t,r){this.on("becameInvalid",e,t),this.on("becameValid",e,r)},errorsByAttributeName:t.default.computed(function(){return s.create({defaultValue:function(){return t.default.A()}})}),errorsFor:function(e){return i(this,"errorsByAttributeName").get(e)},messages:t.default.computed.mapBy("content","message"),content:t.default.computed(function(){return t.default.A()}),unknownProperty:function(e){var t=this.errorsFor(e);return n(t)?null:t},isEmpty:t.default.computed.not("length").readOnly(),add:function(e,t){var r=i(this,"isEmpty");this._add(e,t),r&&!i(this,"isEmpty")&&this.trigger("becameInvalid")},_add:function(e,t){t=this._findOrCreateMessages(e,t),this.addObjects(t),i(this,"errorsByAttributeName").get(e).addObjects(t),this.notifyPropertyChange(e)},_findOrCreateMessages:function(e,t){for(var r=this.errorsFor(e),i=o(t),a=new Array(i.length),n=0;n<i.length;n++){var s=i[n],d=r.findBy("message",s);d?a[n]=d:a[n]={attribute:e,message:s}}return a},remove:function(e){i(this,"isEmpty")||(this._remove(e),i(this,"isEmpty")&&this.trigger("becameValid"))},_remove:function(e){if(!i(this,"isEmpty")){var t=this.rejectBy("attribute",e);a(this,"content",t),i(this,"errorsByAttributeName").delete(e),this.notifyPropertyChange(e)}},clear:function(){i(this,"isEmpty")||(this._clear(),this.trigger("becameValid"))},_clear:function(){if(!i(this,"isEmpty")){var e=i(this,"errorsByAttributeName"),r=t.default.A();e.forEach(function(e,t){r.push(t)}),e.clear(),r.forEach(function(e){this.notifyPropertyChange(e)},this),t.default.ArrayProxy.prototype.clear.call(this)}},has:function(e){return!n(this.errorsFor(e))}})}),t("ember-data/-private/system/model/internal-model",["exports","ember","ember-data/-private/debug","ember-data/-private/system/model/states","ember-data/-private/system/relationships/state/create","ember-data/-private/system/snapshot","ember-data/-private/system/empty-object","ember-data/-private/features","ember-data/-private/utils","ember-data/-private/system/references"],function(e,t,r,i,a,n,o,s,d,l){function u(e){return _[e]||(_[e]=e.split("."))}function c(e){return R[e]||(R[e]=u(e)[0])}function h(e){return function(){return y(this.currentState,e)}}function p(e,r,n,s,d){this.type=e,this.id=r,this.store=n,this._data=d||new o.default,this.modelName=e.modelName,this.dataHasInitialized=!1,this._deferredTriggers=[],this._attributes=new o.default,this._inFlightAttributes=new o.default,this._relationships=new a.default(this),this._recordArrays=void 0,this.currentState=i.default.empty,this.recordReference=new l.RecordReference(n,this),this.references={},this.isReloading=!1,this.isError=!1,this.error=null,this.__ember_meta__=null,this[t.default.GUID_KEY]=A++ +"internal-model",this._implicitRelationships=new o.default}var f=function(){function e(e,t){var r=[],i=!0,a=!1,n=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);i=!0);}catch(e){a=!0,n=e}finally{try{!i&&s.return&&s.return()}finally{if(a)throw n}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e.default=p;var m=t.default.RSVP.Promise,y=t.default.get,v=t.default.set,b=t.default.copy,g=t.default.assign||t.default.merge,R=new o.default,_=new o.default,A=0;p.prototype={isEmpty:h("isEmpty"),isLoading:h("isLoading"),isLoaded:h("isLoaded"),hasDirtyAttributes:h("hasDirtyAttributes"),isSaving:h("isSaving"),isDeleted:h("isDeleted"),isNew:h("isNew"),isValid:h("isValid"),dirtyType:h("dirtyType"),constructor:p,materializeRecord:function(){var e={store:this.store,_internalModel:this,id:this.id,currentState:y(this,"currentState"),isError:this.isError,adapterError:this.error};t.default.setOwner?t.default.setOwner(e,(0,d.getOwner)(this.store)):e.container=this.store.container,this.record=this.type._create(e),this._triggerDeferredTriggers()},recordObjectWillDestroy:function(){this.record=null},deleteRecord:function(){this.send("deleteRecord")},save:function(e){var r="DS: Model#save "+this,i=t.default.RSVP.defer(r);return this.store.scheduleSave(this,i,e),i.promise},startedReloading:function(){this.isReloading=!0,this.record&&v(this.record,"isReloading",!0)},finishedReloading:function(){this.isReloading=!1,this.record&&v(this.record,"isReloading",!1)},reload:function(){this.startedReloading();var e=this,t="DS: Model#reload of "+this;return new m(function(t){e.send("reloadRecord",t)},t).then(function(){return e.didCleanError(),e},function(t){throw e.didError(t),t},"DS: Model#reload complete, update flags").finally(function(){e.finishedReloading(),e.updateRecordArrays()})},getRecord:function(){return this.record||this.materializeRecord(),this.record},unloadRecord:function(){this.send("unloadRecord")},eachRelationship:function(e,t){return this.type.eachRelationship(e,t)},eachAttribute:function(e,t){return this.type.eachAttribute(e,t)},inverseFor:function(e){return this.type.inverseFor(e)},setupData:function(e){var t=this._changedKeys(e.attributes);g(this._data,e.attributes),this.pushedData(),this.record&&this.record._notifyProperties(t),this.didInitalizeData()},becameReady:function(){t.default.run.schedule("actions",this.store.recordArrayManager,this.store.recordArrayManager.recordWasLoaded,this)},didInitalizeData:function(){this.dataHasInitialized||(this.becameReady(),this.dataHasInitialized=!0)},destroy:function(){if(this.record)return this.record.destroy()},createSnapshot:function(e){return new n.default(this,e)},loadingData:function(e){this.send("loadingData",e)},loadedData:function(){this.send("loadedData"),this.didInitalizeData()},notFound:function(){this.send("notFound")},pushedData:function(){this.send("pushedData")},flushChangedAttributes:function(){this._inFlightAttributes=this._attributes,this._attributes=new o.default},hasChangedAttributes:function(){return Object.keys(this._attributes).length>0},updateChangedAttributes:function(){for(var e=this.changedAttributes(),t=Object.keys(e),r=0,i=t.length;r<i;r++){var a=t[r],n=f(e[a],2),o=n[0],s=n[1];o===s&&delete this._attributes[a]}},changedAttributes:function(){for(var e=this._data,t=this._attributes,r=this._inFlightAttributes,i=g(b(r),t),a=new o.default,n=Object.keys(i),s=0,d=n.length;s<d;s++){var l=n[s];a[l]=[e[l],i[l]]}return a},adapterWillCommit:function(){this.send("willCommit")},adapterDidDirty:function(){this.send("becomeDirty"),this.updateRecordArraysLater()},send:function(e,t){var r=y(this,"currentState");return r[e]||this._unhandledEvent(r,e,t),r[e](this,t)},notifyHasManyAdded:function(e,t,r){this.record&&this.record.notifyHasManyAdded(e,t,r)},notifyHasManyRemoved:function(e,t,r){this.record&&this.record.notifyHasManyRemoved(e,t,r)},notifyBelongsToChanged:function(e,t){this.record&&this.record.notifyBelongsToChanged(e,t)},notifyPropertyChange:function(e){this.record&&this.record.notifyPropertyChange(e)},rollbackAttributes:function(){var e=Object.keys(this._attributes);this._attributes=new o.default,y(this,"isError")&&(this._inFlightAttributes=new o.default,this.didCleanError()),this.isDeleted()&&this.becameReady(),this.isNew()&&this.clearRelationships(),this.isValid()&&(this._inFlightAttributes=new o.default),this.send("rolledBack"),this.record._notifyProperties(e)},transitionTo:function(e){var t=c(e),r=y(this,"currentState"),i=r;do i.exit&&i.exit(this),i=i.parentState;while(!i.hasOwnProperty(t));var a,n,o=u(e),s=[],d=[];for(a=0,n=o.length;a<n;a++)i=i[o[a]],i.enter&&d.push(i),i.setup&&s.push(i);for(a=0,n=d.length;a<n;a++)d[a].enter(this);for(v(this,"currentState",i),this.record&&v(this.record,"currentState",i),a=0,n=s.length;a<n;a++)s[a].setup(this);this.updateRecordArraysLater()},_unhandledEvent:function(e,r,i){var a="Attempted to handle event `"+r+"` ";throw a+="on "+String(this)+" while in state ",a+=e.stateName+". ",void 0!==i&&(a+="Called with "+t.default.inspect(i)+"."),new t.default.Error(a)},triggerLater:function(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];1===this._deferredTriggers.push(r)&&t.default.run.scheduleOnce("actions",this,"_triggerDeferredTriggers")},_triggerDeferredTriggers:function(){if(this.record){for(var e=0,t=this._deferredTriggers.length;e<t;e++)this.record.trigger.apply(this.record,this._deferredTriggers[e]);this._deferredTriggers.length=0}},clearRelationships:function(){var e=this;this.eachRelationship(function(t,r){if(e._relationships.has(t)){var i=e._relationships.get(t);i.clear(),i.destroy()}}),Object.keys(this._implicitRelationships).forEach(function(t){e._implicitRelationships[t].clear(),e._implicitRelationships[t].destroy()})},_preloadData:function(e){var t=this;Object.keys(e).forEach(function(r){var i=y(e,r),a=t.type.metaForProperty(r);a.isRelationship?t._preloadRelationship(r,i):t._data[r]=i})},_preloadRelationship:function(e,t){var r=this.type.metaForProperty(e),i=r.type;"hasMany"===r.kind?this._preloadHasMany(e,t,i):this._preloadBelongsTo(e,t,i)},_preloadHasMany:function(e,t,r){for(var i=new Array(t.length),a=0;a<t.length;a++){var n=t[a];i[a]=this._convertStringOrNumberIntoInternalModel(n,r)}this._relationships.get(e).updateRecordsFromAdapter(i)},_preloadBelongsTo:function(e,t,r){var i=this._convertStringOrNumberIntoInternalModel(t,r);this._relationships.get(e).setRecord(i)},_convertStringOrNumberIntoInternalModel:function(e,t){return"string"==typeof e||"number"==typeof e?this.store._internalModelForId(t,e):e._internalModel?e._internalModel:e},updateRecordArrays:function(){this._updatingRecordArraysLater=!1,this.store.dataWasUpdated(this.type,this)},setId:function(e){this.id=e,this.record.get("id")!==e&&this.record.set("id",e)},didError:function(e){this.error=e,this.isError=!0,this.record&&this.record.setProperties({isError:!0,adapterError:e})},didCleanError:function(){this.error=null,this.isError=!1,this.record&&this.record.setProperties({isError:!1,adapterError:null})},adapterDidCommit:function(e){e&&(e=e.attributes),this.didCleanError();var t=this._changedKeys(e);g(this._data,this._inFlightAttributes),e&&g(this._data,e),this._inFlightAttributes=new o.default,this.send("didCommit"),this.updateRecordArraysLater(),e&&this.record._notifyProperties(t)},updateRecordArraysLater:function(){this._updatingRecordArraysLater||(this._updatingRecordArraysLater=!0,t.default.run.schedule("actions",this,this.updateRecordArrays))},addErrorMessageToAttribute:function(e,t){var r=this.getRecord();y(r,"errors")._add(e,t)},removeErrorMessageFromAttribute:function(e){var t=this.getRecord();y(t,"errors")._remove(e)},clearErrorMessages:function(){var e=this.getRecord();y(e,"errors")._clear()},hasErrors:function(){var e=this.getRecord(),r=y(e,"errors");return!t.default.isEmpty(r)},adapterDidInvalidate:function(e){var t;for(t in e)e.hasOwnProperty(t)&&this.addErrorMessageToAttribute(t,e[t]);this.send("becameInvalid"),this._saveWasRejected()},adapterDidError:function(e){this.send("becameError"),this.didError(e),this._saveWasRejected()},_saveWasRejected:function(){for(var e=Object.keys(this._inFlightAttributes),t=0;t<e.length;t++)void 0===this._attributes[e[t]]&&(this._attributes[e[t]]=this._inFlightAttributes[e[t]]);this._inFlightAttributes=new o.default},_changedKeys:function(e){var r=[];if(e){var i,a,n,s,d=Object.keys(e),l=d.length;for(i=g(new o.default,this._data),i=g(i,this._inFlightAttributes),a=0;a<l;a++)s=d[a],n=e[s],void 0===this._attributes[s]&&(t.default.isEqual(i[s],n)||r.push(s))}return r},toString:function(){return this.record?this.record.toString():"<"+this.modelName+":"+this.id+">"}},p.prototype.referenceFor=function(e,t){var r=this.references[t];if(!r){var i=this._relationships.get(t);"belongsTo"===e?r=new l.BelongsToReference(this.store,this,i):"hasMany"===e&&(r=new l.HasManyReference(this.store,this,i)),this.references[t]=r}return r}}),t("ember-data/-private/system/model/model",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/model/errors","ember-data/-private/features","ember-data/-private/system/debug/debug-info","ember-data/-private/system/relationships/belongs-to","ember-data/-private/system/relationships/has-many","ember-data/-private/system/relationships/ext","ember-data/-private/system/model/attr"],function(e,t,r,i,a,n,o,s,d,l,u){var c=t.default.get,h=t.default.computed("currentState",function(e){return c(this._internalModel.currentState,e)}).readOnly(),p=t.default.Object.extend(t.default.Evented,{_internalModel:null,store:null,isEmpty:h,isLoading:h,isLoaded:h,hasDirtyAttributes:t.default.computed("currentState.isDirty",function(){return this.get("currentState.isDirty")}),isSaving:h,isDeleted:h,isNew:h,isValid:h,dirtyType:h,isError:!1,isReloading:!1,id:null,errors:t.default.computed(function(){var e=a.default.create();return e._registerHandlers(this._internalModel,function(){this.send("becameInvalid")},function(){this.send("becameValid")}),e}).readOnly(),adapterError:null,serialize:function(e){return this.store.serialize(this,e)},toJSON:function(e){var t=this.store.serializerFor("-default"),r=this._internalModel.createSnapshot();return t.serialize(r,e)},ready:t.default.K,didLoad:t.default.K,didUpdate:t.default.K,didCreate:t.default.K,didDelete:t.default.K,becameInvalid:t.default.K,becameError:t.default.K,rolledBack:t.default.K,data:t.default.computed.readOnly("_internalModel._data"),send:function(e,t){return this._internalModel.send(e,t)},transitionTo:function(e){return this._internalModel.transitionTo(e)},deleteRecord:function(){this._internalModel.deleteRecord()},destroyRecord:function(e){return this.deleteRecord(),this.save(e)},unloadRecord:function(){this.isDestroyed||this._internalModel.unloadRecord()},_notifyProperties:function(e){t.default.beginPropertyChanges();for(var r,i=0,a=e.length;i<a;i++)r=e[i],this.notifyPropertyChange(r);t.default.endPropertyChanges()},changedAttributes:function(){return this._internalModel.changedAttributes()},rollbackAttributes:function(){this._internalModel.rollbackAttributes()},_createSnapshot:function(){return this._internalModel.createSnapshot()},toStringExtension:function(){return c(this,"id")},save:function(e){var t=this;return i.PromiseObject.create({promise:this._internalModel.save(e).then(function(){return t})})},reload:function(){
2
- var e=this;return i.PromiseObject.create({promise:this._internalModel.reload().then(function(){return e})})},trigger:function(e){for(var r=arguments.length,i=new Array(r-1),a=1;a<r;a++)i[a-1]=arguments[a];t.default.tryInvoke(this,e,i),this._super.apply(this,arguments)},willDestroy:function(){this._super.apply(this,arguments),this._internalModel.clearRelationships(),this._internalModel.recordObjectWillDestroy()},willMergeMixin:function(e){this.constructor},attr:function(){},belongsTo:function(){},hasMany:function(){},setId:t.default.observer("id",function(){this._internalModel.setId(this.get("id"))})});p.reopenClass({_create:p.create,create:function(){throw new t.default.Error("You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.")},modelName:null}),t.default.setOwner&&Object.defineProperty(p.prototype,"container",{configurable:!0,enumerable:!1,get:function(){return this.store.container}}),p.reopen({belongsTo:function(e){return this._internalModel.referenceFor("belongsTo",e)},hasMany:function(e){return this._internalModel.referenceFor("hasMany",e)}}),p.reopenClass(l.RelationshipsClassMethodsMixin),p.reopenClass(u.AttrClassMethodsMixin),e.default=p.extend(o.default,s.BelongsToMixin,l.DidDefinePropertyMixin,l.RelationshipsInstanceMethodsMixin,d.HasManyMixin,u.AttrInstanceMethodsMixin)}),t("ember-data/-private/system/model/states",["exports","ember","ember-data/-private/debug"],function(e,t,r){function i(e,t){t.value===t.originalValue?(delete e._attributes[t.name],e.send("propertyWasReset",t.name)):t.value!==t.oldValue&&e.send("becomeDirty"),e.updateRecordArraysLater()}function a(e){var t,r={};for(var i in e)t=e[i],t&&"object"==typeof t?r[i]=a(t):r[i]=t;return r}function n(e,t){for(var r in t)e[r]=t[r];return e}function o(e){var t=a(c);return n(t,e)}function s(e){e.transitionTo("deleted.saved"),e.send("invokeLifecycleCallbacks")}function d(e){}function l(e,t,r){e=n(t?Object.create(t):{},e),e.parentState=t,e.stateName=r;for(var i in e)e.hasOwnProperty(i)&&"parentState"!==i&&"stateName"!==i&&"object"==typeof e[i]&&(e[i]=l(e[i],e,r+"."+i));return e}var u=t.default.get,c={initialState:"uncommitted",isDirty:!0,uncommitted:{didSetProperty:i,loadingData:t.default.K,propertyWasReset:function(e,t){e.hasChangedAttributes()||e.send("rolledBack")},pushedData:function(e){e.updateChangedAttributes(),e.hasChangedAttributes()||e.transitionTo("loaded.saved")},becomeDirty:t.default.K,willCommit:function(e){e.transitionTo("inFlight")},reloadRecord:function(e,t){t(e.store.reloadRecord(e))},rolledBack:function(e){e.transitionTo("loaded.saved")},becameInvalid:function(e){e.transitionTo("invalid")},rollback:function(e){e.rollbackAttributes(),e.triggerLater("ready")}},inFlight:{isSaving:!0,didSetProperty:i,becomeDirty:t.default.K,pushedData:t.default.K,unloadRecord:d,willCommit:t.default.K,didCommit:function(e){var t=u(this,"dirtyType");e.transitionTo("saved"),e.send("invokeLifecycleCallbacks",t)},becameInvalid:function(e){e.transitionTo("invalid"),e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted"),e.triggerLater("becameError",e)}},invalid:{isValid:!1,deleteRecord:function(e){e.transitionTo("deleted.uncommitted")},didSetProperty:function(e,t){e.removeErrorMessageFromAttribute(t.name),i(e,t),e.hasErrors()||this.becameValid(e)},becameInvalid:t.default.K,becomeDirty:t.default.K,pushedData:t.default.K,willCommit:function(e){e.clearErrorMessages(),e.transitionTo("inFlight")},rolledBack:function(e){e.clearErrorMessages(),e.transitionTo("loaded.saved"),e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")},invokeLifecycleCallbacks:function(e){e.triggerLater("becameInvalid",e)}}},h=o({dirtyType:"created",isNew:!0});h.invalid.rolledBack=function(e){e.transitionTo("deleted.saved")},h.uncommitted.rolledBack=function(e){e.transitionTo("deleted.saved")};var p=o({dirtyType:"updated"});h.uncommitted.deleteRecord=s,h.invalid.deleteRecord=s,h.uncommitted.rollback=function(e){c.uncommitted.rollback.apply(this,arguments),e.transitionTo("deleted.saved")},h.uncommitted.pushedData=function(e){e.transitionTo("loaded.updated.uncommitted"),e.triggerLater("didLoad")},h.uncommitted.propertyWasReset=t.default.K,p.inFlight.unloadRecord=d,p.uncommitted.deleteRecord=function(e){e.transitionTo("deleted.uncommitted")};var f={isEmpty:!1,isLoading:!1,isLoaded:!1,isDirty:!1,isSaving:!1,isDeleted:!1,isNew:!1,isValid:!0,rolledBack:t.default.K,unloadRecord:function(e){e.clearRelationships(),e.transitionTo("deleted.saved")},propertyWasReset:t.default.K,empty:{isEmpty:!0,loadingData:function(e,t){e._loadingPromise=t,e.transitionTo("loading")},loadedData:function(e){e.transitionTo("loaded.created.uncommitted"),e.triggerLater("ready")},pushedData:function(e){e.transitionTo("loaded.saved"),e.triggerLater("didLoad"),e.triggerLater("ready")}},loading:{isLoading:!0,exit:function(e){e._loadingPromise=null},pushedData:function(e){e.transitionTo("loaded.saved"),e.triggerLater("didLoad"),e.triggerLater("ready"),e.didCleanError()},becameError:function(e){e.triggerLater("becameError",e)},notFound:function(e){e.transitionTo("empty")}},loaded:{initialState:"saved",isLoaded:!0,loadingData:t.default.K,saved:{setup:function(e){e.hasChangedAttributes()&&e.adapterDidDirty()},didSetProperty:i,pushedData:t.default.K,becomeDirty:function(e){e.transitionTo("updated.uncommitted")},willCommit:function(e){e.transitionTo("updated.inFlight")},reloadRecord:function(e,t){t(e.store.reloadRecord(e))},deleteRecord:function(e){e.transitionTo("deleted.uncommitted")},unloadRecord:function(e){e.clearRelationships(),e.transitionTo("deleted.saved")},didCommit:function(e){e.send("invokeLifecycleCallbacks",u(e,"lastDirtyType"))},notFound:t.default.K},created:h,updated:p},deleted:{initialState:"uncommitted",dirtyType:"deleted",isDeleted:!0,isLoaded:!0,isDirty:!0,setup:function(e){e.updateRecordArrays()},uncommitted:{willCommit:function(e){e.transitionTo("inFlight")},rollback:function(e){e.rollbackAttributes(),e.triggerLater("ready")},pushedData:t.default.K,becomeDirty:t.default.K,deleteRecord:t.default.K,rolledBack:function(e){e.transitionTo("loaded.saved"),e.triggerLater("ready")}},inFlight:{isSaving:!0,unloadRecord:d,willCommit:t.default.K,didCommit:function(e){e.transitionTo("saved"),e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted"),e.triggerLater("becameError",e)},becameInvalid:function(e){e.transitionTo("invalid"),e.triggerLater("becameInvalid",e)}},saved:{isDirty:!1,setup:function(e){e.clearRelationships();var t=e.store;t._dematerializeRecord(e)},invokeLifecycleCallbacks:function(e){e.triggerLater("didDelete",e),e.triggerLater("didCommit",e)},willCommit:t.default.K,didCommit:t.default.K},invalid:{isValid:!1,didSetProperty:function(e,t){e.removeErrorMessageFromAttribute(t.name),i(e,t),e.hasErrors()||this.becameValid(e)},becameInvalid:t.default.K,becomeDirty:t.default.K,deleteRecord:t.default.K,willCommit:t.default.K,rolledBack:function(e){e.clearErrorMessages(),e.transitionTo("loaded.saved"),e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")}}},invokeLifecycleCallbacks:function(e,t){"created"===t?e.triggerLater("didCreate",e):e.triggerLater("didUpdate",e),e.triggerLater("didCommit",e)}};f=l(f,null,"root"),e.default=f}),t("ember-data/-private/system/normalize-link",["exports"],function(e){function t(e){switch(typeof e){case"object":return e;case"string":return{href:e}}return null}e.default=t}),t("ember-data/-private/system/normalize-model-name",["exports","ember"],function(e,t){function r(e){return t.default.String.dasherize(e)}e.default=r}),t("ember-data/-private/system/ordered-set",["exports","ember"],function(e,t){function r(){this._super$constructor()}e.default=r;var i=t.default.OrderedSet,a=t.default.guidFor;r.create=function(){var e=this;return new e},r.prototype=Object.create(i.prototype),r.prototype.constructor=r,r.prototype._super$constructor=i,r.prototype.addWithIndex=function(e,t){var r=a(e),i=this.presenceSet,n=this.list;if(i[r]!==!0)return i[r]=!0,void 0===t||null==t?n.push(e):n.splice(t,0,e),this.size+=1,this}}),t("ember-data/-private/system/promise-proxies",["exports","ember","ember-data/-private/debug"],function(e,t,r){function i(e){return function(){var t=n(this,"content");return t[e].apply(t,arguments)}}var a=t.default.RSVP.Promise,n=t.default.get,o=t.default.ArrayProxy.extend(t.default.PromiseProxyMixin),s=t.default.ObjectProxy.extend(t.default.PromiseProxyMixin),d=function(e,t){return s.create({promise:a.resolve(e,t)})},l=function(e,t){return o.create({promise:a.resolve(e,t)})},u=o.extend({reload:function(){return u.create({promise:n(this,"content").reload()})},createRecord:i("createRecord"),on:i("on"),one:i("one"),trigger:i("trigger"),off:i("off"),has:i("has")}),c=function(e,t){return u.create({promise:a.resolve(e,t)})};e.PromiseArray=o,e.PromiseObject=s,e.PromiseManyArray=u,e.promiseArray=l,e.promiseObject=d,e.promiseManyArray=c}),t("ember-data/-private/system/record-array-manager",["exports","ember","ember-data/-private/system/record-arrays","ember-data/-private/system/ordered-set"],function(e,t,r,i){function a(e){e.destroy()}function n(e){for(var r=e.length,i=t.default.A(),a=0;a<r;a++)i=i.concat(e[a]);return i}function o(e,t){var r=e.indexOf(t);return r!==-1&&(e.splice(r,1),!0)}var s=t.default.MapWithDefault,d=t.default.get;e.default=t.default.Object.extend({init:function(){var e=this;this.filteredRecordArrays=s.create({defaultValue:function(){return[]}}),this.liveRecordArrays=s.create({defaultValue:function(t){return e.createRecordArray(t)}}),this.changedRecords=[],this._adapterPopulatedRecordArrays=[]},recordDidChange:function(e){1===this.changedRecords.push(e)&&t.default.run.schedule("actions",this,this.updateRecordArrays)},recordArraysForRecord:function(e){return e._recordArrays=e._recordArrays||i.default.create(),e._recordArrays},updateRecordArrays:function(){var e=this;this.changedRecords.forEach(function(t){d(t,"record.isDestroyed")||d(t,"record.isDestroying")||"root.deleted.saved"===d(t,"currentState.stateName")?e._recordWasDeleted(t):e._recordWasChanged(t)}),this.changedRecords.length=0},_recordWasDeleted:function(e){var t=e._recordArrays;t&&(t.forEach(function(t){return t.removeInternalModel(e)}),e._recordArrays=null)},_recordWasChanged:function(e){var t,r=this,i=e.type,a=this.filteredRecordArrays.get(i);a.forEach(function(a){t=d(a,"filterFunction"),r.updateFilterRecordArray(a,t,i,e)})},recordWasLoaded:function(e){var t,r=this,i=e.type,a=this.filteredRecordArrays.get(i);if(a.forEach(function(a){t=d(a,"filterFunction"),r.updateFilterRecordArray(a,t,i,e)}),this.liveRecordArrays.has(i)){var n=this.liveRecordArrays.get(i);this._addRecordToRecordArray(n,e)}},updateFilterRecordArray:function(e,t,r,i){var a=t(i.getRecord()),n=this.recordArraysForRecord(i);a?this._addRecordToRecordArray(e,i):(n.delete(e),e.removeInternalModel(i))},_addRecordToRecordArray:function(e,t){var r=this.recordArraysForRecord(t);r.has(e)||(e.addInternalModel(t),r.add(e))},populateLiveRecordArray:function(e,t){for(var r,i=this.store.typeMapFor(t),a=i.records,n=0;n<a.length;n++)r=a[n],r.isDeleted()||r.isEmpty()||this._addRecordToRecordArray(e,r)},updateFilter:function(e,t,r){for(var i,a=this.store.typeMapFor(t),n=a.records,o=0;o<n.length;o++)i=n[o],i.isDeleted()||i.isEmpty()||this.updateFilterRecordArray(e,r,t,i)},liveRecordArrayFor:function(e){return this.liveRecordArrays.get(e)},createRecordArray:function(e){var i=r.RecordArray.create({type:e,content:t.default.A(),store:this.store,isLoaded:!0,manager:this});return i},createFilteredRecordArray:function(e,i,a){var n=r.FilteredRecordArray.create({query:a,type:e,content:t.default.A(),store:this.store,manager:this,filterFunction:i});return this.registerFilteredRecordArray(n,e,i),n},createAdapterPopulatedRecordArray:function(e,i){var a=r.AdapterPopulatedRecordArray.create({type:e,query:i,content:t.default.A(),store:this.store,manager:this});return this._adapterPopulatedRecordArrays.push(a),a},registerFilteredRecordArray:function(e,t,r){var i=this.filteredRecordArrays.get(t);i.push(e),this.updateFilter(e,t,r)},unregisterRecordArray:function(e){var t=e.type,r=this.filteredRecordArrays.get(t),i=o(r,e),a=o(this._adapterPopulatedRecordArrays,e);if(!i&&!a&&this.liveRecordArrays.has(t)){var n=this.liveRecordArrayFor(t);e===n&&this.liveRecordArrays.delete(t)}},willDestroy:function(){this._super.apply(this,arguments),this.filteredRecordArrays.forEach(function(e){return n(e).forEach(a)}),this.liveRecordArrays.forEach(a),this._adapterPopulatedRecordArrays.forEach(a)}})}),t("ember-data/-private/system/record-arrays",["exports","ember-data/-private/system/record-arrays/record-array","ember-data/-private/system/record-arrays/filtered-record-array","ember-data/-private/system/record-arrays/adapter-populated-record-array"],function(e,t,r,i){e.RecordArray=t.default,e.FilteredRecordArray=r.default,e.AdapterPopulatedRecordArray=i.default}),t("ember-data/-private/system/record-arrays/adapter-populated-record-array",["exports","ember","ember-data/-private/system/record-arrays/record-array","ember-data/-private/system/clone-null","ember-data/-private/features"],function(e,t,r,i,a){var n=t.default.get;e.default=r.default.extend({query:null,replace:function(){var e=n(this,"type").toString();throw new Error("The result of a server query (on "+e+") is immutable.")},_update:function(){var e=n(this,"store"),t=n(this,"type.modelName"),r=n(this,"query");return e._query(t,r,this)},loadRecords:function(e,r){var a=this,n=t.default.A(e).mapBy("_internalModel");this.setProperties({content:t.default.A(n),isLoaded:!0,isUpdating:!1,meta:(0,i.default)(r.meta)}),n.forEach(function(e){a.manager.recordArraysForRecord(e).add(a)}),t.default.run.once(this,"trigger","didLoad")}})}),t("ember-data/-private/system/record-arrays/filtered-record-array",["exports","ember","ember-data/-private/system/record-arrays/record-array"],function(e,t,r){var i=t.default.get;e.default=r.default.extend({filterFunction:null,isLoaded:!0,replace:function(){var e=i(this,"type").toString();throw new Error("The result of a client-side filter (on "+e+") is immutable.")},_updateFilter:function(){var e=i(this,"manager");e.updateFilter(this,i(this,"type"),i(this,"filterFunction"))},updateFilter:t.default.observer("filterFunction",function(){t.default.run.once(this,this._updateFilter)})})}),t("ember-data/-private/system/record-arrays/record-array",["exports","ember","ember-data/-private/system/promise-proxies","ember-data/-private/system/snapshot-record-array"],function(e,t,r,i){var a=t.default.get,n=t.default.set;e.default=t.default.ArrayProxy.extend(t.default.Evented,{type:null,content:null,isLoaded:!1,isUpdating:!1,store:null,objectAtContent:function(e){var t=a(this,"content"),r=t.objectAt(e);return r&&r.getRecord()},update:function(){if(!a(this,"isUpdating"))return this.set("isUpdating",!0),this._update()},_update:function(){var e=a(this,"store"),t=a(this,"type.modelName");return e.findAll(t,{reload:!0})},addInternalModel:function(e,t){var r=a(this,"content");void 0===t?r.addObject(e):r.contains(e)||r.insertAt(t,e)},removeInternalModel:function(e){a(this,"content").removeObject(e)},save:function(){var e=this,i="DS: RecordArray#save "+a(this,"type"),n=t.default.RSVP.all(this.invoke("save"),i).then(function(t){return e},null,"DS: RecordArray#save return RecordArray");return r.PromiseArray.create({promise:n})},_dissociateFromOwnRecords:function(){var e=this;this.get("content").forEach(function(t){var r=t._recordArrays;r&&r.delete(e)})},_unregisterFromManager:function(){var e=a(this,"manager");e.unregisterRecordArray(this)},willDestroy:function(){this._unregisterFromManager(),this._dissociateFromOwnRecords(),n(this,"content",void 0),this._super.apply(this,arguments)},createSnapshot:function(e){var t=this.get("meta");return new i.default(this,t,e)}})}),t("ember-data/-private/system/references",["exports","ember-data/-private/system/references/record","ember-data/-private/system/references/belongs-to","ember-data/-private/system/references/has-many"],function(e,t,r,i){e.RecordReference=t.default,e.BelongsToReference=r.default,e.HasManyReference=i.default}),t("ember-data/-private/system/references/belongs-to",["exports","ember-data/model","ember","ember-data/-private/system/references/reference","ember-data/-private/debug"],function(e,t,r,i,a){var n=function(e,t,r){this._super$constructor(e,t),this.belongsToRelationship=r,this.type=r.relationshipMeta.type,this.parent=t.recordReference};n.prototype=Object.create(i.default.prototype),n.prototype.constructor=n,n.prototype._super$constructor=i.default,n.prototype.remoteType=function(){return this.belongsToRelationship.link?"link":"id"},n.prototype.id=function(){var e=this.belongsToRelationship.inverseRecord;return e&&e.id},n.prototype.link=function(){return this.belongsToRelationship.link},n.prototype.meta=function(){return this.belongsToRelationship.meta},n.prototype.push=function(e){var i=this;return r.default.RSVP.resolve(e).then(function(e){var r;return r=e instanceof t.default?e:i.store.push(e),i.belongsToRelationship.setCanonicalRecord(r._internalModel),r})},n.prototype.value=function(){var e=this.belongsToRelationship.inverseRecord;return e&&e.record?e.record:null},n.prototype.load=function(){var e=this;return"id"===this.remoteType()?this.belongsToRelationship.getRecord():"link"===this.remoteType()?this.belongsToRelationship.findLink().then(function(t){return e.value()}):void 0},n.prototype.reload=function(){var e=this;return this.belongsToRelationship.reload().then(function(t){return e.value()})},e.default=n}),t("ember-data/-private/system/references/has-many",["exports","ember","ember-data/-private/system/references/reference","ember-data/-private/debug"],function(e,t,r,i){var a=t.default.get,n=function(e,t,r){this._super$constructor(e,t),this.hasManyRelationship=r,this.type=r.relationshipMeta.type,this.parent=t.recordReference};n.prototype=Object.create(r.default.prototype),n.prototype.constructor=n,n.prototype._super$constructor=r.default,n.prototype.remoteType=function(){return this.hasManyRelationship.link?"link":"ids"},n.prototype.link=function(){return this.hasManyRelationship.link},n.prototype.ids=function(){var e=this.hasManyRelationship.members,t=e.toArray().map(function(e){return e.id});return t},n.prototype.meta=function(){return this.hasManyRelationship.manyArray.meta},n.prototype.push=function(e){var r=this;return t.default.RSVP.resolve(e).then(function(e){var t=e;"object"==typeof e&&e.data&&(t=e.data);var i=t.map(function(e){var t=r.store.push(e);return t._internalModel});return r.hasManyRelationship.computeChanges(i),r.hasManyRelationship.manyArray})},n.prototype._isLoaded=function(){var e=a(this.hasManyRelationship,"hasData");if(!e)return!1;var t=this.hasManyRelationship.members.toArray(),r=t.every(function(e){return e.isLoaded()===!0});return r},n.prototype.value=function(){return this._isLoaded()?this.hasManyRelationship.manyArray:null},n.prototype.load=function(){if(!this._isLoaded())return this.hasManyRelationship.getRecords();var e=this.hasManyRelationship.manyArray;return t.default.RSVP.resolve(e)},n.prototype.reload=function(){return this.hasManyRelationship.reload()},e.default=n}),t("ember-data/-private/system/references/record",["exports","ember","ember-data/-private/system/references/reference"],function(e,t,r){var i=function(e,t){this._super$constructor(e,t),this.type=t.modelName,this._id=t.id};i.prototype=Object.create(r.default.prototype),i.prototype.constructor=i,i.prototype._super$constructor=r.default,i.prototype.id=function(){return this._id},i.prototype.remoteType=function(){return"identity"},i.prototype.push=function(e){var r=this;return t.default.RSVP.resolve(e).then(function(e){var t=r.store.push(e);return t})},i.prototype.value=function(){return this.internalModel.record},i.prototype.load=function(){return this.store.findRecord(this.type,this._id)},i.prototype.reload=function(){var e=this.value();return e?e.reload():this.load()},e.default=i}),t("ember-data/-private/system/references/reference",["exports"],function(e){var t=function(e,t){this.store=e,this.internalModel=t};t.prototype={constructor:t},e.default=t}),t("ember-data/-private/system/relationship-meta",["exports","ember-inflector","ember-data/-private/system/normalize-model-name"],function(e,t,r){function i(e){var i;return i=e.type||e.key,"hasMany"===e.kind&&(i=(0,t.singularize)((0,r.default)(i))),i}function a(e){return{key:e.key,kind:e.kind,type:i(e),options:e.options,parentType:e.parentType,isRelationship:!0}}e.typeForRelationshipMeta=i,e.relationshipFromMeta=a}),t("ember-data/-private/system/relationships/belongs-to",["exports","ember","ember-data/-private/debug","ember-data/-private/system/normalize-model-name"],function(e,t,r,i){function a(e,r){var a,n;"object"==typeof e?(a=e,n=void 0):(a=r,n=e),"string"==typeof n&&(n=(0,i.default)(n)),a=a||{};var o={type:n,isRelationship:!0,options:a,kind:"belongsTo",key:null};return t.default.computed({get:function(e){return a.hasOwnProperty("serialize"),a.hasOwnProperty("embedded"),this._internalModel._relationships.get(e).getRecord()},set:function(e,t){return void 0===t&&(t=null),t&&t.then?this._internalModel._relationships.get(e).setRecordPromise(t):t?this._internalModel._relationships.get(e).setRecord(t._internalModel):this._internalModel._relationships.get(e).setRecord(t),this._internalModel._relationships.get(e).getRecord()}}).meta(o)}e.default=a;var n=t.default.Mixin.create({notifyBelongsToChanged:function(e){this.notifyPropertyChange(e)}});e.BelongsToMixin=n}),t("ember-data/-private/system/relationships/ext",["exports","ember","ember-data/-private/debug","ember-data/-private/system/relationship-meta","ember-data/-private/system/empty-object"],function(e,t,r,i,a){var n=t.default.get,o=t.default.Map,s=t.default.MapWithDefault,d=t.default.computed(function(){t.default.testing===!0&&d._cacheable===!0&&(d._cacheable=!1);var e=new s({defaultValue:function(){return[]}});return this.eachComputedProperty(function(t,r){if(r.isRelationship){r.key=t;var a=e.get((0,i.typeForRelationshipMeta)(r));a.push({name:t,kind:r.kind})}}),e}).readOnly(),l=t.default.computed(function(){t.default.testing===!0&&l._cacheable===!0&&(l._cacheable=!1);var e,r=t.default.A();return this.eachComputedProperty(function(t,a){a.isRelationship&&(a.key=t,e=(0,i.typeForRelationshipMeta)(a),r.contains(e)||r.push(e))}),r}).readOnly(),u=t.default.computed(function(){t.default.testing===!0&&u._cacheable===!0&&(u._cacheable=!1);var e=o.create();return this.eachComputedProperty(function(t,r){if(r.isRelationship){r.key=t;var a=(0,i.relationshipFromMeta)(r);a.type=(0,i.typeForRelationshipMeta)(r),e.set(t,a)}}),e}).readOnly(),c=t.default.Mixin.create({didDefineProperty:function(e,r,i){if(i instanceof t.default.ComputedProperty){var a=i.meta();a.parentType=e.constructor}}});e.DidDefinePropertyMixin=c;var h=t.default.Mixin.create({typeForRelationship:function(e,t){var r=n(this,"relationshipsByName").get(e);return r&&t.modelFor(r.type)},inverseMap:t.default.computed(function(){return new a.default}),inverseFor:function(e,t){var r=n(this,"inverseMap");if(r[e])return r[e];var i=this._findInverseFor(e,t);return r[e]=i,i},_findInverseFor:function(e,r){function i(t,r,a){var o=a||[],s=n(r,"relationships");if(!s)return o;var d=s.get(t.modelName);return d=d.filter(function(t){var i=r.metaForProperty(t.name).options;return!i.inverse||e===i.inverse}),d&&o.push.apply(o,d),t.superclass&&i(t.superclass,r,o),o}var a=this.typeForRelationship(e,r);if(!a)return null;var o=this.metaForProperty(e),s=o.options;if(null===s.inverse)return null;var d,l,u;if(s.inverse)d=s.inverse,u=t.default.get(a,"relationshipsByName").get(d),l=u.kind;else{o.type===o.parentType.modelName;var c=i(this,a);if(0===c.length)return null;var h=c.filter(function(t){var r=a.metaForProperty(t.name).options;return e===r.inverse});1===h.length&&(c=h),d=c[0].name,l=c[0].kind}return{type:a,name:d,kind:l}},relationships:d,relationshipNames:t.default.computed(function(){var e={hasMany:[],belongsTo:[]};return this.eachComputedProperty(function(t,r){r.isRelationship&&e[r.kind].push(t)}),e}),relatedTypes:l,relationshipsByName:u,fields:t.default.computed(function(){var e=o.create();return this.eachComputedProperty(function(t,r){r.isRelationship?e.set(t,r.kind):r.isAttribute&&e.set(t,"attribute")}),e}).readOnly(),eachRelationship:function(e,t){n(this,"relationshipsByName").forEach(function(r,i){e.call(t,i,r)})},eachRelatedType:function(e,t){for(var r=n(this,"relatedTypes"),i=0;i<r.length;i++){var a=r[i];e.call(t,a)}},determineRelationshipType:function(e,t){var r=e.key,i=e.kind,a=this.inverseFor(r,t),n=void 0,o=void 0;return a?(n=a.name,o=a.kind,"belongsTo"===o?"belongsTo"===i?"oneToOne":"manyToOne":"belongsTo"===i?"oneToMany":"manyToMany"):"belongsTo"===i?"oneToNone":"manyToNone"}});e.RelationshipsClassMethodsMixin=h;var p=t.default.Mixin.create({eachRelationship:function(e,t){this.constructor.eachRelationship(e,t)},relationshipFor:function(e){return n(this.constructor,"relationshipsByName").get(e)},inverseFor:function(e){return this.constructor.inverseFor(e,this.store)}});e.RelationshipsInstanceMethodsMixin=p}),t("ember-data/-private/system/relationships/has-many",["exports","ember","ember-data/-private/debug","ember-data/-private/system/normalize-model-name","ember-data/-private/system/is-array-like"],function(e,t,r,i,a){function n(e,r){"object"==typeof e&&(r=e,e=void 0),r=r||{},"string"==typeof e&&(e=(0,i.default)(e));var a={type:e,isRelationship:!0,options:r,kind:"hasMany",key:null};return t.default.computed({get:function(e){var t=this._internalModel._relationships.get(e);return t.getRecords()},set:function(e,r){var i=this._internalModel._relationships.get(e);return i.clear(),i.addRecords(t.default.A(r).mapBy("_internalModel")),i.getRecords()}}).meta(a)}e.default=n;var o=t.default.Mixin.create({notifyHasManyAdded:function(e){this.notifyPropertyChange(e)}});e.HasManyMixin=o}),t("ember-data/-private/system/relationships/state/belongs-to",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/relationships/state/relationship"],function(e,t,r,i,a){function n(e,t,r,i){this._super$constructor(e,t,r,i),this.record=t,this.key=i.key,this.inverseRecord=null,this.canonicalState=null}e.default=n,n.prototype=Object.create(a.default.prototype),n.prototype.constructor=n,n.prototype._super$constructor=a.default,n.prototype.setRecord=function(e){e?this.addRecord(e):this.inverseRecord&&this.removeRecord(this.inverseRecord),this.setHasData(!0),this.setHasLoaded(!0)},n.prototype.setCanonicalRecord=function(e){e?this.addCanonicalRecord(e):this.canonicalState&&this.removeCanonicalRecord(this.canonicalState),this.setHasData(!0),this.setHasLoaded(!0)},n.prototype._super$addCanonicalRecord=a.default.prototype.addCanonicalRecord,n.prototype.addCanonicalRecord=function(e){this.canonicalMembers.has(e)||(this.canonicalState&&this.removeCanonicalRecord(this.canonicalState),this.canonicalState=e,this._super$addCanonicalRecord(e))},n.prototype._super$flushCanonical=a.default.prototype.flushCanonical,n.prototype.flushCanonical=function(){this.inverseRecord&&this.inverseRecord.isNew()&&!this.canonicalState||(this.inverseRecord=this.canonicalState,this.record.notifyBelongsToChanged(this.key),this._super$flushCanonical())},n.prototype._super$addRecord=a.default.prototype.addRecord,n.prototype.addRecord=function(e){this.members.has(e)||(this.inverseRecord&&this.removeRecord(this.inverseRecord),this.inverseRecord=e,this._super$addRecord(e),this.record.notifyBelongsToChanged(this.key))},n.prototype.setRecordPromise=function(e){var t=e.get&&e.get("content");this.setRecord(t?t._internalModel:t)},n.prototype._super$removeRecordFromOwn=a.default.prototype.removeRecordFromOwn,n.prototype.removeRecordFromOwn=function(e){this.members.has(e)&&(this.inverseRecord=null,this._super$removeRecordFromOwn(e),this.record.notifyBelongsToChanged(this.key))},n.prototype._super$removeCanonicalRecordFromOwn=a.default.prototype.removeCanonicalRecordFromOwn,n.prototype.removeCanonicalRecordFromOwn=function(e){this.canonicalMembers.has(e)&&(this.canonicalState=null,this._super$removeCanonicalRecordFromOwn(e))},n.prototype.findRecord=function(){return this.inverseRecord?this.store._findByInternalModel(this.inverseRecord):t.default.RSVP.Promise.resolve(null)},n.prototype.fetchLink=function(){var e=this;return this.store.findBelongsTo(this.record,this.link,this.relationshipMeta).then(function(t){return t&&e.addRecord(t),t})},n.prototype.getRecord=function(){var e=this;if(this.isAsync){var t;return t=this.link?this.hasLoaded?this.findRecord():this.findLink().then(function(){return e.findRecord()}):this.findRecord(),i.PromiseObject.create({promise:t,content:this.inverseRecord?this.inverseRecord.getRecord():null})}if(null===this.inverseRecord)return null;var r=this.inverseRecord.getRecord();return r},n.prototype.reload=function(){return this.link?this.fetchLink():this.inverseRecord&&this.inverseRecord.record?this.inverseRecord.record.reload():this.findRecord()}}),t("ember-data/-private/system/relationships/state/create",["exports","ember","ember-data/-private/system/relationships/state/has-many","ember-data/-private/system/relationships/state/belongs-to","ember-data/-private/system/empty-object"],function(e,t,r,i,a){function n(e){var t=e.options;return!(t&&null===t.inverse)}function o(e,t,a){var o=void 0,s=null;return n(t)&&(s=e.type.inverseFor(t.key,a)),s&&(o=s.name),"hasMany"===t.kind?new r.default(a,e,o,t):new i.default(a,e,o,t)}function s(e){this.record=e,this.initializedRelationships=new a.default}e.default=s;var d=t.default.get;s.prototype.has=function(e){return!!this.initializedRelationships[e]},s.prototype.get=function(e){var t=this.initializedRelationships,r=d(this.record.type,"relationshipsByName");return!t[e]&&r.get(e)&&(t[e]=o(this.record,r.get(e),this.record.store)),t[e]}}),t("ember-data/-private/system/relationships/state/has-many",["exports","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/relationships/state/relationship","ember-data/-private/system/ordered-set","ember-data/-private/system/many-array"],function(e,t,r,i,a,n){function o(e,t,r,i){this._super$constructor(e,t,r,i),this.belongsToType=i.type,this.canonicalState=[],this.manyArray=n.default.create({canonicalState:this.canonicalState,store:this.store,relationship:this,type:this.store.modelFor(this.belongsToType),record:t}),this.isPolymorphic=i.options.polymorphic,this.manyArray.isPolymorphic=this.isPolymorphic}function s(e){var t=new a.default;if(e)for(var r=0,i=e.length;r<i;r++)t.add(e[r]);return t}e.default=o,o.prototype=Object.create(i.default.prototype),o.prototype.constructor=o,o.prototype._super$constructor=i.default,o.prototype.destroy=function(){this.manyArray.destroy()},o.prototype._super$updateMeta=i.default.prototype.updateMeta,o.prototype.updateMeta=function(e){this._super$updateMeta(e),this.manyArray.set("meta",e)},o.prototype._super$addCanonicalRecord=i.default.prototype.addCanonicalRecord,o.prototype.addCanonicalRecord=function(e,t){this.canonicalMembers.has(e)||(void 0!==t?this.canonicalState.splice(t,0,e):this.canonicalState.push(e),this._super$addCanonicalRecord(e,t))},o.prototype._super$addRecord=i.default.prototype.addRecord,o.prototype.addRecord=function(e,t){this.members.has(e)||(this._super$addRecord(e,t),this.manyArray.internalAddRecords([e],t))},o.prototype._super$removeCanonicalRecordFromOwn=i.default.prototype.removeCanonicalRecordFromOwn,o.prototype.removeCanonicalRecordFromOwn=function(e,t){var r=t;this.canonicalMembers.has(e)&&(void 0===r&&(r=this.canonicalState.indexOf(e)),r>-1&&this.canonicalState.splice(r,1),this._super$removeCanonicalRecordFromOwn(e,t))},o.prototype._super$flushCanonical=i.default.prototype.flushCanonical,o.prototype.flushCanonical=function(){this.manyArray.flushCanonical(),
3
- this._super$flushCanonical()},o.prototype._super$removeRecordFromOwn=i.default.prototype.removeRecordFromOwn,o.prototype.removeRecordFromOwn=function(e,t){this.members.has(e)&&(this._super$removeRecordFromOwn(e,t),void 0!==t?this.manyArray.currentState.removeAt(t):this.manyArray.internalRemoveRecords([e]))},o.prototype.notifyRecordRelationshipAdded=function(e,t){this.record.notifyHasManyAdded(this.key,e,t)},o.prototype.reload=function(){var e=this,t=this.manyArray.get("isLoaded");if(this._loadingPromise){if(this._loadingPromise.get("isPending"))return this._loadingPromise;this._loadingPromise.get("isRejected")&&this.manyArray.set("isLoaded",t)}return this.link?(this._loadingPromise=(0,r.promiseManyArray)(this.fetchLink(),"Reload with link"),this._loadingPromise):(this._loadingPromise=(0,r.promiseManyArray)(this.store.scheduleFetchMany(this.manyArray.toArray()).then(function(){return e.manyArray}),"Reload with ids"),this._loadingPromise)},o.prototype.computeChanges=function(e){var t,r,i,a=this.canonicalMembers,n=[];for(e=s(e),a.forEach(function(t){e.has(t)||n.push(t)}),this.removeCanonicalRecords(n),e=e.toArray(),t=e.length,i=0;i<t;i++)r=e[i],this.removeCanonicalRecord(r),this.addCanonicalRecord(r,i)},o.prototype.fetchLink=function(){var e=this;return this.store.findHasMany(this.record,this.link,this.relationshipMeta).then(function(t){return t.hasOwnProperty("meta")&&e.updateMeta(t.meta),e.store._backburner.join(function(){e.updateRecordsFromAdapter(t),e.manyArray.set("isLoaded",!0)}),e.manyArray})},o.prototype.findRecords=function(){for(var e=this,t=this.manyArray.toArray(),r=new Array(t.length),i=0;i<t.length;i++)r[i]=t[i]._internalModel;return this.store.findMany(r).then(function(){return e.manyArray.get("isDestroyed")||e.manyArray.set("isLoaded",!0),e.manyArray})},o.prototype.notifyHasManyChanged=function(){this.record.notifyHasManyAdded(this.key)},o.prototype.getRecords=function(){var e=this;if(this.isAsync){var t;return t=this.link?this.hasLoaded?this.findRecords():this.findLink().then(function(){return e.findRecords()}):this.findRecords(),this._loadingPromise=r.PromiseManyArray.create({content:this.manyArray,promise:t}),this._loadingPromise}return this.manyArray.get("isDestroyed")||this.manyArray.set("isLoaded",!0),this.manyArray}}),t("ember-data/-private/system/relationships/state/relationship",["exports","ember","ember-data/-private/debug","ember-data/-private/system/ordered-set"],function(e,t,r,i){function a(e,t,r,a){var n=a.options.async;this.members=new i.default,this.canonicalMembers=new i.default,this.store=e,this.key=a.key,this.inverseKey=r,this.record=t,this.isAsync="undefined"==typeof n||n,this.relationshipMeta=a,this.inverseKeyForImplicit=this.record.constructor.modelName+this.key,this.linkPromise=null,this.meta=null,this.hasData=!1,this.hasLoaded=!1}e.default=a,a.prototype={constructor:a,destroy:t.default.K,updateMeta:function(e){this.meta=e},clear:function(){for(var e,t=this.members.list;t.length>0;)e=t[0],this.removeRecord(e)},removeRecords:function(e){var t=this;e.forEach(function(e){return t.removeRecord(e)})},addRecords:function(e,t){var r=this;e.forEach(function(e){r.addRecord(e,t),void 0!==t&&t++})},addCanonicalRecords:function(e,t){for(var r=0;r<e.length;r++)void 0!==t?this.addCanonicalRecord(e[r],r+t):this.addCanonicalRecord(e[r])},addCanonicalRecord:function(e,t){this.canonicalMembers.has(e)||(this.canonicalMembers.add(e),this.inverseKey?e._relationships.get(this.inverseKey).addCanonicalRecord(this.record):(e._implicitRelationships[this.inverseKeyForImplicit]||(e._implicitRelationships[this.inverseKeyForImplicit]=new a(this.store,e,this.key,{options:{}})),e._implicitRelationships[this.inverseKeyForImplicit].addCanonicalRecord(this.record))),this.flushCanonicalLater(),this.setHasData(!0)},removeCanonicalRecords:function(e,t){for(var r=0;r<e.length;r++)void 0!==t?this.removeCanonicalRecord(e[r],r+t):this.removeCanonicalRecord(e[r])},removeCanonicalRecord:function(e,t){this.canonicalMembers.has(e)&&(this.removeCanonicalRecordFromOwn(e),this.inverseKey?this.removeCanonicalRecordFromInverse(e):e._implicitRelationships[this.inverseKeyForImplicit]&&e._implicitRelationships[this.inverseKeyForImplicit].removeCanonicalRecord(this.record)),this.flushCanonicalLater()},addRecord:function(e,t){this.members.has(e)||(this.members.addWithIndex(e,t),this.notifyRecordRelationshipAdded(e,t),this.inverseKey?e._relationships.get(this.inverseKey).addRecord(this.record):(e._implicitRelationships[this.inverseKeyForImplicit]||(e._implicitRelationships[this.inverseKeyForImplicit]=new a(this.store,e,this.key,{options:{}})),e._implicitRelationships[this.inverseKeyForImplicit].addRecord(this.record)),this.record.updateRecordArraysLater()),this.setHasData(!0)},removeRecord:function(e){this.members.has(e)&&(this.removeRecordFromOwn(e),this.inverseKey?this.removeRecordFromInverse(e):e._implicitRelationships[this.inverseKeyForImplicit]&&e._implicitRelationships[this.inverseKeyForImplicit].removeRecord(this.record))},removeRecordFromInverse:function(e){var t=e._relationships.get(this.inverseKey);t&&t.removeRecordFromOwn(this.record)},removeRecordFromOwn:function(e){this.members.delete(e),this.notifyRecordRelationshipRemoved(e),this.record.updateRecordArrays()},removeCanonicalRecordFromInverse:function(e){var t=e._relationships.get(this.inverseKey);t&&t.removeCanonicalRecordFromOwn(this.record)},removeCanonicalRecordFromOwn:function(e){this.canonicalMembers.delete(e),this.flushCanonicalLater()},flushCanonical:function(){this.willSync=!1;for(var e=[],t=0;t<this.members.list.length;t++)this.members.list[t].isNew()&&e.push(this.members.list[t]);for(this.members=this.canonicalMembers.copy(),t=0;t<e.length;t++)this.members.add(e[t])},flushCanonicalLater:function(){var e=this;this.willSync||(this.willSync=!0,this.store._backburner.join(function(){return e.store._backburner.schedule("syncRelationships",e,e.flushCanonical)}))},updateLink:function(e){e!==this.link&&(this.link=e,this.linkPromise=null,this.setHasLoaded(!1),this.record.notifyPropertyChange(this.key))},findLink:function(){if(this.linkPromise)return this.linkPromise;var e=this.fetchLink();return this.linkPromise=e,e.then(function(e){return e})},updateRecordsFromAdapter:function(e){this.computeChanges(e),this.setHasData(!0),this.setHasLoaded(!0)},notifyRecordRelationshipAdded:t.default.K,notifyRecordRelationshipRemoved:t.default.K,setHasData:function(e){this.hasData=e},setHasLoaded:function(e){this.hasLoaded=e}}}),t("ember-data/-private/system/snapshot-record-array",["exports","ember-data/-private/features"],function(e,t){function r(e,t){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._snapshots=null,this._recordArray=e,this.length=e.get("length"),this.type=e.get("type"),this.meta=t,this.adapterOptions=r.adapterOptions,this.include=r.include}e.default=r,r.prototype.snapshots=function(){if(this._snapshots)return this._snapshots;var e=this._recordArray;return this._snapshots=e.invoke("createSnapshot"),this._snapshots}}),t("ember-data/-private/system/snapshot",["exports","ember","ember-data/-private/system/empty-object","ember-data/-private/features"],function(e,t,r,i){function a(e){var t=this,i=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];this._attributes=new r.default,this._belongsToRelationships=new r.default,this._belongsToIds=new r.default,this._hasManyRelationships=new r.default,this._hasManyIds=new r.default;var a=e.getRecord();this.record=a,a.eachAttribute(function(e){return t._attributes[e]=n(a,e)}),this.id=e.id,this._internalModel=e,this.type=e.type,this.modelName=e.type.modelName,this.adapterOptions=i.adapterOptions,this.include=i.include,this._changedAttributes=a.changedAttributes()}e.default=a;var n=t.default.get;a.prototype={constructor:a,id:null,record:null,type:null,modelName:null,attr:function(e){if(e in this._attributes)return this._attributes[e];throw new t.default.Error("Model '"+t.default.inspect(this.record)+"' has no attribute named '"+e+"' defined.")},attributes:function(){return t.default.copy(this._attributes)},changedAttributes:function(){for(var e=new r.default,i=Object.keys(this._changedAttributes),a=0,n=i.length;a<n;a++){var o=i[a];e[o]=t.default.copy(this._changedAttributes[o])}return e},belongsTo:function(e,r){var i,a,o,s,d=r&&r.id;if(d&&e in this._belongsToIds)return this._belongsToIds[e];if(!d&&e in this._belongsToRelationships)return this._belongsToRelationships[e];if(i=this._internalModel._relationships.get(e),!i||"belongsTo"!==i.relationshipMeta.kind)throw new t.default.Error("Model '"+t.default.inspect(this.record)+"' has no belongsTo relationship named '"+e+"' defined.");return o=n(i,"hasData"),a=n(i,"inverseRecord"),o&&(s=a&&!a.isDeleted()?d?n(a,"id"):a.createSnapshot():null),d?this._belongsToIds[e]=s:this._belongsToRelationships[e]=s,s},hasMany:function(e,r){var i,a,o,s,d=r&&r.ids;if(d&&e in this._hasManyIds)return this._hasManyIds[e];if(!d&&e in this._hasManyRelationships)return this._hasManyRelationships[e];if(i=this._internalModel._relationships.get(e),!i||"hasMany"!==i.relationshipMeta.kind)throw new t.default.Error("Model '"+t.default.inspect(this.record)+"' has no hasMany relationship named '"+e+"' defined.");return o=n(i,"hasData"),a=n(i,"members"),o&&(s=[],a.forEach(function(e){e.isDeleted()||(d?s.push(e.id):s.push(e.createSnapshot()))})),d?this._hasManyIds[e]=s:this._hasManyRelationships[e]=s,s},eachAttribute:function(e,t){this.record.eachAttribute(e,t)},eachRelationship:function(e,t){this.record.eachRelationship(e,t)},serialize:function(e){return this.record.store.serializerFor(this.modelName).serialize(this,e)}}}),t("ember-data/-private/system/store",["exports","ember","ember-data/model","ember-data/-private/debug","ember-data/-private/system/normalize-link","ember-data/-private/system/normalize-model-name","ember-data/adapters/errors","ember-data/-private/system/promise-proxies","ember-data/-private/system/store/common","ember-data/-private/system/store/serializer-response","ember-data/-private/system/store/serializers","ember-data/-private/system/store/finders","ember-data/-private/utils","ember-data/-private/system/coerce-id","ember-data/-private/system/record-array-manager","ember-data/-private/system/store/container-instance-cache","ember-data/-private/system/model/internal-model","ember-data/-private/system/empty-object","ember-data/-private/features"],function(e,t,r,i,a,n,o,s,d,l,u,c,h,p,f,m,y,v,b){function g(e,t){var r=e.then(function(e){return e.getRecord()});return(0,s.promiseObject)(r,t)}function R(e,t,r,i){if(!P(i))return e._internalModelForId(i.type,i.id)}function _(e,t,r,i){if(!P(i)){for(var a=new Array(i.length),n=0;n<i.length;n++)a[n]=R(e,t,r,i[n]);return a}}function A(e){return e.serializerFor("application")}function z(e,t,r,i){var a=i._internalModel,n=i.modelName,s=t.modelFor(n),c=e[r](t,s,i),h=(0,u.serializerForAdapter)(t,e,n),p="DS: Extract and notify about "+r+" completion of "+a;return c=O.resolve(c,p),c=(0,d._guard)(c,(0,d._bind)(d._objectIsAlive,t)),c=(0,d._guard)(c,(0,d._bind)(d._objectIsAlive,a)),c.then(function(e){return t._adapterRun(function(){var n,o;e&&(n=(0,l.normalizeResponseHelper)(h,t,s,e,i.id,r),n.included&&t.push({data:n.included}),o=n.data),t.didSaveRecord(a,{data:o})}),a},function(e){if(e instanceof o.InvalidError){var r=h.extractErrors(t,s,e,i.id);t.recordWasInvalid(a,r)}else t.recordWasError(a,e);throw e},p)}function F(e,t,r){r.relationships&&t.type.eachRelationship(function(i,n){var o=n.kind;if(r.relationships[i]){var s;if(r.relationships[i].links&&r.relationships[i].links.related){var d=(0,a.default)(r.relationships[i].links.related);d&&d.href&&(s=t._relationships.get(i),s.updateLink(d.href))}r.relationships[i].meta&&(s=t._relationships.get(i),s.updateMeta(r.relationships[i].meta)),M(e,i,n,r.relationships[i]);var l=r.relationships[i].data;void 0!==l&&("belongsTo"===o?(s=t._relationships.get(i),s.setCanonicalRecord(l)):"hasMany"===o&&(s=t._relationships.get(i),s.updateRecordsFromAdapter(l)))}})}function M(e,t,r,i){var a=i.data;if(a){var n=r.kind;"belongsTo"===n?i.data=R(e,t,r,a):"hasMany"===n&&(i.data=_(e,t,r,a))}}var S="`id` has to be non-empty string or number";e.badIdFormatAssertion=S;var x,T=t.default._Backburner,k=t.default.Map,E=t.default.get,w=t.default.set,D=t.default.run.once,P=t.default.isNone,O=(t.default.isPresent,t.default.RSVP.Promise),C=t.default.copy,I=t.default.Service;e.Store=x=I.extend({init:function(){this._super.apply(this,arguments),this._backburner=new T(["normalizeRelationships","syncRelationships","finished"]),this.typeMaps={},this.recordArrayManager=f.default.create({store:this}),this._pendingSave=[],this._instanceCache=new m.default((0,h.getOwner)(this)),this._pendingFetch=k.create()},adapter:"-json-api",serialize:function(e,t){var r=e._internalModel.createSnapshot();return r.serialize(t)},defaultAdapter:t.default.computed("adapter",function(){var e=E(this,"adapter");return e=this.retrieveManagedInstance("adapter",e)}),createRecord:function(e,t){var r=this.modelFor(e),i=C(t)||new v.default;P(i.id)&&(i.id=this._generateId(e,i)),i.id=(0,p.default)(i.id);var a=this.buildInternalModel(r,i.id),n=a.getRecord();return a.loadedData(),n.setProperties(i),a.eachRelationship(function(e,t){a._relationships.get(e).setHasData(!0)}),n},_generateId:function(e,t){var r=this.adapterFor(e);return r&&r.generateIdForRecord?r.generateIdForRecord(this,e,t):null},deleteRecord:function(e){e.deleteRecord()},unloadRecord:function(e){e.unloadRecord()},find:function(e,r,i){return 1===arguments.length,"object"===t.default.typeOf(r),this.findRecord(e,r)},findRecord:function(e,t,r){var i=this._internalModelForId(e,t);if(r=r||{},!this.hasRecordForId(e,t))return this._findByInternalModel(i,r);var a=this._findRecord(i,r);return g(a,"DS: Store#findRecord "+i.typeKey+" with id: "+E(i,"id"))},_findRecord:function(e,t){if(t.reload)return this.scheduleFetch(e,t);var r=e.createSnapshot(t),i=e.type,a=this.adapterFor(i.modelName);return a.shouldReloadRecord(this,r)?this.scheduleFetch(e,t):(a.shouldBackgroundReloadRecord(this,r)&&this.scheduleFetch(e,t),O.resolve(e))},_findByInternalModel:function(e,t){t=t||{},t.preload&&e._preloadData(t.preload);var r=this._findEmptyInternalModel(e,t);return g(r,"DS: Store#findRecord "+e.typeKey+" with id: "+E(e,"id"))},_findEmptyInternalModel:function(e,t){return e.isEmpty()?this.scheduleFetch(e,t):e.isLoading()?e._loadingPromise:O.resolve(e)},findByIds:function(e,r){for(var i=new Array(r.length),a=0;a<r.length;a++)i[a]=this.findRecord(e,r[a]);return(0,s.promiseArray)(t.default.RSVP.all(i).then(t.default.A,null,"DS: Store#findByIds of "+e+" complete"))},fetchRecord:function(e,t){var r=e.type,i=e.id,a=this.adapterFor(r.modelName),n=(0,c._find)(a,this,r,i,e,t);return n},scheduleFetchMany:function(e){for(var r=new Array(e.length),i=new Array(e.length),a=0;a<e.length;a++)r[a]=e[a]._internalModel;for(var a=0;a<r.length;a++)i[a]=this.scheduleFetch(r[a]);return t.default.RSVP.Promise.all(i)},scheduleFetch:function(e,r){var i=e.type;if(e._loadingPromise)return e._loadingPromise;var a=t.default.RSVP.defer("Fetching "+i+"with id: "+e.id),n={record:e,resolver:a,options:r},o=a.promise;return e.loadingData(o),this._pendingFetch.get(i)?this._pendingFetch.get(i).push(n):this._pendingFetch.set(i,[n]),t.default.run.scheduleOnce("afterRender",this,this.flushAllPendingFetches),o},flushAllPendingFetches:function(){this.isDestroyed||this.isDestroying||(this._pendingFetch.forEach(this._flushPendingFetchForType,this),this._pendingFetch=k.create())},_flushPendingFetchForType:function(e,r){function i(e){e.resolver.resolve(d.fetchRecord(e.record,e.options))}function a(r){return r.forEach(function(r){var i=t.default.A(e).findBy("record",r);if(i){var a=i.resolver;a.resolve(r)}}),r}function n(e){return function(r){r=t.default.A(r);var i=e.reject(function(e){return r.contains(e)});i.length,s(i)}}function o(e){return function(t){s(e,t)}}function s(r,i){r.forEach(function(r){var a=t.default.A(e).findBy("record",r);if(a){var n=a.resolver;n.reject(i)}})}var d=this,l=d.adapterFor(r.modelName),u=!!l.findMany&&l.coalesceFindRequests,h=t.default.A(e).mapBy("record");if(1===e.length)i(e[0]);else if(u){var p=t.default.A(h).invoke("createSnapshot"),f=l.groupRecordsForFindMany(this,p);f.forEach(function(s){var u=t.default.A(s).mapBy("_internalModel"),h=t.default.A(u),p=h.mapBy("id");if(p.length>1)(0,c._findMany)(l,d,r,p,h).then(a).then(n(h)).then(null,o(h));else if(1===p.length){var f=t.default.A(e).findBy("record",u[0]);i(f)}})}else e.forEach(i)},peekRecord:function(e,t){return this.hasRecordForId(e,t)?this._internalModelForId(e,t).getRecord():null},reloadRecord:function(e){var t=e.type.modelName;this.adapterFor(t),e.id;return this.scheduleFetch(e)},hasRecordForId:function(e,t){var r=this.modelFor(e),i=(0,p.default)(t),a=this.typeMapFor(r).idToRecord[i];return!!a&&a.isLoaded()},recordForId:function(e,t){return this._internalModelForId(e,t).getRecord()},_internalModelForId:function(e,t){var r=this.modelFor(e),i=(0,p.default)(t),a=this.typeMapFor(r).idToRecord,n=a[i];return n&&a[i]||(n=this.buildInternalModel(r,i)),n},findMany:function(e){for(var t=new Array(e.length),r=0;r<e.length;r++)t[r]=this._findByInternalModel(e[r]);return O.all(t)},findHasMany:function(e,t,r){var i=this.adapterFor(e.type.modelName);return(0,c._findHasMany)(i,this,e,t,r)},findBelongsTo:function(e,t,r){var i=this.adapterFor(e.type.modelName);return(0,c._findBelongsTo)(i,this,e,t,r)},query:function(e,t){return this._query(e,t)},_query:function(e,t,r){var i=this.modelFor(e);r=r||this.recordArrayManager.createAdapterPopulatedRecordArray(i,t);var a=this.adapterFor(e);return(0,s.promiseArray)((0,c._query)(a,this,i,t,r))},queryRecord:function(e,t){var r=this.modelFor(e),i=this.adapterFor(e);return(0,s.promiseObject)((0,c._queryRecord)(i,this,r,t))},findAll:function(e,t){var r=this.modelFor(e);return this._fetchAll(r,this.peekAll(e),t)},_fetchAll:function(e,t,r){r=r||{};var i=this.adapterFor(e.modelName),a=this.typeMapFor(e).metadata.since;if(w(t,"isUpdating",!0),r.reload)return(0,s.promiseArray)((0,c._findAll)(i,this,e,a,r));var n=t.createSnapshot(r);return i.shouldReloadAll(this,n)?(0,s.promiseArray)((0,c._findAll)(i,this,e,a,r)):(i.shouldBackgroundReloadAll(this,n)&&(0,c._findAll)(i,this,e,a,r),(0,s.promiseArray)(O.resolve(t)))},didUpdateAll:function(e){var t=this.recordArrayManager.liveRecordArrayFor(e);w(t,"isUpdating",!1)},peekAll:function(e){var t=this.modelFor(e),r=this.recordArrayManager.liveRecordArrayFor(t);return this.recordArrayManager.populateLiveRecordArray(r,t),r},unloadAll:function(e){if(0===arguments.length){for(var t=this.typeMaps,r=Object.keys(t),i=new Array(r.length),a=0;a<r.length;a++)i[a]=t[r[a]].type.modelName;i.forEach(this.unloadAll,this)}else{for(var n=this.modelFor(e),o=this.typeMapFor(n),s=o.records.slice(),d=void 0,a=0;a<s.length;a++)d=s[a],d.unloadRecord(),d.destroy();o.metadata=new v.default}},filter:function(e,r,i){!t.default.ENV.ENABLE_DS_FILTER;var a,n,o=arguments.length,d=3===o;return d?a=this.query(e,r):2===arguments.length&&(i=r),e=this.modelFor(e),n=d?this.recordArrayManager.createFilteredRecordArray(e,i,r):this.recordArrayManager.createFilteredRecordArray(e,i),a=a||O.resolve(n),(0,s.promiseArray)(a.then(function(){return n},null,"DS: Store#filter of "+e))},recordIsLoaded:function(e,t){return this.hasRecordForId(e,t)},dataWasUpdated:function(e,t){this.recordArrayManager.recordDidChange(t)},scheduleSave:function(e,t,r){var i=e.createSnapshot(r);e.flushChangedAttributes(),e.adapterWillCommit(),this._pendingSave.push({snapshot:i,resolver:t}),D(this,"flushPendingSave")},flushPendingSave:function(){var e=this,t=this._pendingSave.slice();this._pendingSave=[],t.forEach(function(t){var r,i=t.snapshot,a=t.resolver,n=i._internalModel,o=e.adapterFor(n.type.modelName);return"root.deleted.saved"===E(n,"currentState.stateName")?a.resolve():(r=n.isNew()?"createRecord":n.isDeleted()?"deleteRecord":"updateRecord",void a.resolve(z(o,e,r,i)))})},didSaveRecord:function(e,t){var r;t&&(r=t.data),r&&(this._backburner.schedule("normalizeRelationships",this,"_setupRelationships",e,r),this.updateId(e,r)),e.adapterDidCommit(r)},recordWasInvalid:function(e,t){e.adapterDidInvalidate(t)},recordWasError:function(e,t){e.adapterDidError(t)},updateId:function(e,t){var r=(e.id,(0,p.default)(t.id));this.typeMapFor(e.type).idToRecord[r]=e,e.setId(r)},typeMapFor:function(e){var r=E(this,"typeMaps"),i=t.default.guidFor(e),a=r[i];return a?a:(a={idToRecord:new v.default,records:[],metadata:new v.default,type:e},r[i]=a,a)},_load:function(e){var t=this._internalModelForId(e.type,e.id);return t.setupData(e),this.recordArrayManager.recordDidChange(t),t},_modelForMixin:function(e){var t=(0,n.default)(e),i=(0,h.getOwner)(this),a=i._lookupFactory("mixin:"+t);a&&i.register("model:"+t,r.default.extend(a));var o=this.modelFactoryFor(t);return o&&(o.__isMixin=!0,o.__mixin=a),o},modelFor:function(e){var r=this.modelFactoryFor(e);if(r||(r=this._modelForMixin(e)),!r)throw new t.default.Error("No model was found for '"+e+"'");return r.modelName=r.modelName||(0,n.default)(e),r},modelFactoryFor:function(e){var t=(0,n.default)(e),r=(0,h.getOwner)(this);return r._lookupFactory("model:"+t)},push:function(e){var t,r,i=e.included;if(i)for(t=0,r=i.length;t<r;t++)this._pushInternalModel(i[t]);if(Array.isArray(e.data)){r=e.data.length;var a=new Array(r);for(t=0;t<r;t++)a[t]=this._pushInternalModel(e.data[t]).getRecord();return a}if(null===e.data)return null;var n=this._pushInternalModel(e.data);return n.getRecord()},_hasModelFor:function(e){return!!(0,h.getOwner)(this)._lookupFactory("model:"+e)},_pushInternalModel:function(e){var t=this,r=(e.type,this._load(e));return this._backburner.join(function(){t._backburner.schedule("normalizeRelationships",t,"_setupRelationships",r,e)}),r},_setupRelationships:function(e,t){F(this,e,t)},pushPayload:function(e,t){var r,i,a=this;t?(i=t,r=this.serializerFor(e)):(i=e,r=A(this)),this._adapterRun(function(){return r.pushPayload(a,i)})},normalize:function(e,t){var r=this.serializerFor(e),i=this.modelFor(e);return r.normalize(i,t)},buildInternalModel:function(e,t,r){var i=this.typeMapFor(e),a=i.idToRecord,n=new y.default(e,t,this,null,r);return t&&(a[t]=n),i.records.push(n),n},recordWasLoaded:function(e){this.recordArrayManager.recordWasLoaded(e)},_dematerializeRecord:function(e){var t=e.type,r=this.typeMapFor(t),i=e.id;e.updateRecordArrays(),i&&delete r.idToRecord[i];var a=r.records.indexOf(e);r.records.splice(a,1)},adapterFor:function(e){return this.lookupAdapter(e)},_adapterRun:function(e){return this._backburner.run(e)},serializerFor:function(e){var t=["application",this.adapterFor(e).get("defaultSerializer"),"-default"],r=this.lookupSerializer(e,t);return r},retrieveManagedInstance:function(e,t,r){var i=(0,n.default)(t),a=this._instanceCache.get(e,i,r);return w(a,"store",this),a},lookupAdapter:function(e){return this.retrieveManagedInstance("adapter",e,this.get("_adapterFallbacks"))},_adapterFallbacks:t.default.computed("adapter",function(){var e=this.get("adapter");return["application",e,"-json-api"]}),lookupSerializer:function(e,t){return this.retrieveManagedInstance("serializer",e,t)},willDestroy:function(){this._super.apply(this,arguments),this.recordArrayManager.destroy(),this.unloadAll()}}),x.reopen({getReference:function(e,t){return this._internalModelForId(e,t).recordReference}}),e.Store=x,e.default=x}),t("ember-data/-private/system/store/common",["exports","ember"],function(e,t){function r(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(void 0,t)}}function i(e,t){var r=e.finally(function(){t()||(r._subscribers.length=0)});return r}function a(e){return!(n(e,"isDestroyed")||n(e,"isDestroying"))}e._bind=r,e._guard=i,e._objectIsAlive=a;var n=t.default.get}),t("ember-data/-private/system/store/container-instance-cache",["exports","ember","ember-data/-private/system/empty-object"],function(e,t,r){function i(e){this._owner=e,this._cache=new r.default}e.default=i;var a=t.default.assign||t.default.merge;i.prototype=new r.default,a(i.prototype,{get:function(e,t,r){var i=this._cache,a=e+":"+t;if(!(a in i)){var n=this.instanceFor(a)||this._findInstance(e,r);n&&(i[a]=n)}return i[a]},_findInstance:function(e,t){for(var r=0,i=t.length;r<i;r++){var a=t[r],n=e+":"+a,o=this.instanceFor(n);if(o)return o}},instanceFor:function(e){var t=this._cache;if(!t[e]){var r=this._owner.lookup(e);r&&(t[e]=r)}return t[e]},destroy:function(){for(var e=this._cache,t=Object.keys(e),r=0,i=t.length;r<i;r++){var a=t[r],n=e[a];n&&n.destroy()}this._owner=null},constructor:i,toString:function(){return"ContainerInstanceCache"}})}),t("ember-data/-private/system/store/finders",["exports","ember","ember-data/-private/debug","ember-data/-private/system/store/common","ember-data/-private/system/store/serializer-response","ember-data/-private/system/store/serializers"],function(e,t,r,i,a,n){function o(e,t,r,o,s,d){var l=s.createSnapshot(d),u=e.findRecord(t,r,o,l),c=(0,n.serializerForAdapter)(t,e,s.type.modelName),h="DS: Handle Adapter#findRecord of "+r+" with id: "+o;return u=p.resolve(u,h),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,t)),u.then(function(e){return t._adapterRun(function(){var i=(0,a.normalizeResponseHelper)(c,t,r,e,o,"findRecord"),n=t.push(i);return n._internalModel})},function(e){throw s.notFound(),s.isEmpty()&&s.unloadRecord(),e},"DS: Extract payload of '"+r+"'")}function s(e,r,o,s,d){var l=t.default.A(d).invoke("createSnapshot"),u=e.findMany(r,o,s,l),c=(0,n.serializerForAdapter)(r,e,o.modelName),h="DS: Handle Adapter#findMany of "+o;if(void 0===u)throw new Error("adapter.findMany returned undefined, this was very likely a mistake");return u=p.resolve(u,h),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,r)),u.then(function(e){return r._adapterRun(function(){for(var t=(0,a.normalizeResponseHelper)(c,r,o,e,null,"findMany"),i=r.push(t),n=new Array(i.length),s=0;s<i.length;s++)n[s]=i[s]._internalModel;return n})},null,"DS: Extract payload of "+o)}function d(e,t,r,o,s){var d=r.createSnapshot(),l=t.modelFor(s.type),u=e.findHasMany(t,d,o,s),c=(0,n.serializerForAdapter)(t,e,s.type),h="DS: Handle Adapter#findHasMany of "+r+" : "+s.type;return u=p.resolve(u,h),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,t)),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,r)),u.then(function(e){return t._adapterRun(function(){var r=(0,a.normalizeResponseHelper)(c,t,l,e,null,"findHasMany"),i=t.push(r),n=i.map(function(e){return e._internalModel});return n.meta=r.meta,n})},null,"DS: Extract payload of "+r+" : hasMany "+s.type)}function l(e,t,r,o,s){var d=r.createSnapshot(),l=t.modelFor(s.type),u=e.findBelongsTo(t,d,o,s),c=(0,n.serializerForAdapter)(t,e,s.type),h="DS: Handle Adapter#findBelongsTo of "+r+" : "+s.type;return u=p.resolve(u,h),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,t)),u=(0,i._guard)(u,(0,i._bind)(i._objectIsAlive,r)),u.then(function(e){return t._adapterRun(function(){var r=(0,a.normalizeResponseHelper)(c,t,l,e,null,"findBelongsTo");if(!r.data)return null;var i=t.push(r);return i._internalModel})},null,"DS: Extract payload of "+r+" : "+s.type)}function u(e,t,r,o,s){var d=r.modelName,l=t.peekAll(d),u=l.createSnapshot(s),c=e.findAll(t,r,o,u),h=(0,n.serializerForAdapter)(t,e,d),f="DS: Handle Adapter#findAll of "+r;return c=p.resolve(c,f),c=(0,i._guard)(c,(0,i._bind)(i._objectIsAlive,t)),c.then(function(e){return t._adapterRun(function(){var i=(0,a.normalizeResponseHelper)(h,t,r,e,null,"findAll");t.push(i)}),t.didUpdateAll(r),t.peekAll(d)},null,"DS: Extract payload of findAll "+r)}function c(e,t,r,o,s){var d=r.modelName,l=e.query(t,r,o,s),u=(0,n.serializerForAdapter)(t,e,d),c="DS: Handle Adapter#query of "+r;return l=p.resolve(l,c),l=(0,i._guard)(l,(0,i._bind)(i._objectIsAlive,t)),l.then(function(e){var i,n;return t._adapterRun(function(){n=(0,a.normalizeResponseHelper)(u,t,r,e,null,"query"),i=t.push(n)}),s.loadRecords(i,n),s},null,"DS: Extract payload of query "+r)}function h(e,t,r,o){var s=r.modelName,d=e.queryRecord(t,r,o),l=(0,n.serializerForAdapter)(t,e,s),u="DS: Handle Adapter#queryRecord of "+r;return d=p.resolve(d,u),d=(0,i._guard)(d,(0,i._bind)(i._objectIsAlive,t)),d.then(function(e){var i;return t._adapterRun(function(){var n=(0,a.normalizeResponseHelper)(l,t,r,e,null,"queryRecord");i=t.push(n)}),i},null,"DS: Extract payload of queryRecord "+r)}e._find=o,e._findMany=s,e._findHasMany=d,e._findBelongsTo=l,e._findAll=u,e._query=c,e._queryRecord=h;var p=t.default.RSVP.Promise}),t("ember-data/-private/system/store/serializer-response",["exports","ember","ember-data/-private/debug"],function(e,t,r){function i(e){var t=[];return e&&"object"==typeof e?("data"in e||"errors"in e||"meta"in e?"data"in e&&"errors"in e&&t.push('Top level keys "errors" and "data" cannot both be present in a JSON API document'):t.push('One or more of the following keys must be present: "data", "errors", "meta".'),"data"in e&&(null===e.data||Array.isArray(e.data)||"object"==typeof e.data||t.push("data must be null, an object, or an array")),"meta"in e&&"object"!=typeof e.meta&&t.push("meta must be an object"),"errors"in e&&(Array.isArray(e.errors)||t.push("errors must be an array")),"links"in e&&"object"!=typeof e.links&&t.push("links must be an object"),"jsonapi"in e&&"object"!=typeof e.jsonapi&&t.push("jsonapi must be an object"),"included"in e&&"object"!=typeof e.included&&t.push("included must be an array")):t.push("Top level of a JSON API document must be an object"),t}function a(e,t,r,i,a,n){var o=e.normalizeResponse(t,r,i,a,n);return o}e.validateDocumentStructure=i,e.normalizeResponseHelper=a}),t("ember-data/-private/system/store/serializers",["exports"],function(e){function t(e,t,r){var i=t.serializer;return void 0===i&&(i=e.serializerFor(r)),null!==i&&void 0!==i||(i={extract:function(e,t,r){return r}}),i}e.serializerForAdapter=t}),t("ember-data/-private/transforms",["exports","ember-data/transform","ember-data/-private/transforms/number","ember-data/-private/transforms/date","ember-data/-private/transforms/string","ember-data/-private/transforms/boolean"],function(e,t,r,i,a,n){e.Transform=t.default,e.NumberTransform=r.default,e.DateTransform=i.default,e.StringTransform=a.default,e.BooleanTransform=n.default}),t("ember-data/-private/transforms/boolean",["exports","ember","ember-data/transform","ember-data/-private/features"],function(e,t,r,i){t.default.isNone;e.default=r.default.extend({deserialize:function(e,t){var r=typeof e;return"boolean"===r?e:"string"===r?null!==e.match(/^true$|^t$|^1$/i):"number"===r&&1===e},serialize:function(e,t){return Boolean(e)}})}),t("ember-data/-private/transforms/date",["exports","ember","ember-data/-private/ext/date","ember-data/transform"],function(e,t,r,i){e.default=i.default.extend({deserialize:function(e){var r=typeof e;return"string"===r?new Date(t.default.Date.parse(e)):"number"===r?new Date(e):null===e||void 0===e?e:null},serialize:function(e){return e instanceof Date?e.toISOString():null}})}),t("ember-data/-private/transforms/number",["exports","ember","ember-data/transform"],function(e,t,r){function i(e){return e===e&&e!==1/0&&e!==-(1/0)}var a=t.default.isEmpty;e.default=r.default.extend({deserialize:function(e){var t;return a(e)?null:(t=Number(e),i(t)?t:null)},serialize:function(e){var t;return a(e)?null:(t=Number(e),i(t)?t:null)}})}),t("ember-data/-private/transforms/string",["exports","ember","ember-data/transform"],function(e,t,r){var i=t.default.isNone;e.default=r.default.extend({deserialize:function(e){return i(e)?null:String(e)},serialize:function(e){return i(e)?null:String(e)}})}),t("ember-data/-private/utils",["exports","ember"],function(e,t){function r(e){return a(e,"attributes").has("type")||a(e,"relationshipsByName").has("type")}function i(e){var r;return t.default.getOwner&&(r=t.default.getOwner(e)),!r&&e.container&&(r=e.container),r&&r.lookupFactory&&!r._lookupFactory&&(r._lookupFactory=r.lookupFactory,r.register=function(){var e=r.registry||r._registry||r;return e.register.apply(e,arguments)}),r}var a=t.default.get;e.modelHasAttributeOrRelationshipNamedType=r,
4
- e.getOwner=i}),t("ember-data/-private/utils/parse-response-headers",["exports","ember-data/-private/system/empty-object"],function(e,t){function r(e){return Array.isArray(e)?e:Array.from(e)}function i(e){var i=new t.default;if(!e)return i;var n=e.split(a);return n.forEach(function(e){var t=e.split(":"),a=r(t),n=a[0],o=a.slice(1);n=n.trim(),o=o.join(":").trim(),o&&(i[n]=o)}),i}e.default=i;var a="\r\n"}),t("ember-data/adapter",["exports","ember"],function(e,t){var r=t.default.get;e.default=t.default.Object.extend({defaultSerializer:"-default",findRecord:null,findAll:null,query:null,queryRecord:null,generateIdForRecord:null,serialize:function(e,t){return r(e.record,"store").serializerFor(e.modelName).serialize(e,t)},createRecord:null,updateRecord:null,deleteRecord:null,coalesceFindRequests:!0,findMany:null,groupRecordsForFindMany:function(e,t){return[t]},shouldReloadRecord:function(e,t){return!1},shouldReloadAll:function(e,t){return!t.length},shouldBackgroundReloadRecord:function(e,t){return!0},shouldBackgroundReloadAll:function(e,t){return!0}})}),t("ember-data/adapters/errors",["exports","ember","ember-data/-private/debug","ember-data/-private/features"],function(e,t,r,i){function a(e){var t=arguments.length<=1||void 0===arguments[1]?"Adapter operation failed":arguments[1];this.isAdapterError=!0,l.call(this,t),this.errors=e||[{title:"Adapter Error",detail:t}]}function n(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=t.message;return o(e,r)}}function o(e,t){var r=function(r,i){e.call(this,r,i||t)};return r.prototype=Object.create(e.prototype),p&&(r.extend=n(r)),r}function s(e){var r=[];return t.default.isPresent(e)&&Object.keys(e).forEach(function(i){for(var a=t.default.makeArray(e[i]),n=0;n<a.length;n++){var o="Invalid Attribute",s="/data/attributes/"+i;i===h&&(o="Invalid Document",s="/data"),r.push({title:o,detail:a[n],source:{pointer:s}})}}),r}function d(e){var r={};return t.default.isPresent(e)&&e.forEach(function(e){if(e.source&&e.source.pointer){var t=e.source.pointer.match(u);t?t=t[2]:e.source.pointer.search(c)!==-1&&(t=h),t&&(r[t]=r[t]||[],r[t].push(e.detail||e.title))}}),r}e.AdapterError=a,e.errorsHashToArray=s,e.errorsArrayToHash=d;var l=t.default.Error,u=/^\/?data\/(attributes|relationships)\/(.*)/,c=/^\/?data/,h="base",p=!1;a.prototype=Object.create(l.prototype),p&&(a.extend=n(a));var f=o(a,"The adapter rejected the commit because it was invalid");e.InvalidError=f;var m=o(a,"The adapter operation timed out");e.TimeoutError=m;var y=o(a,"The adapter operation was aborted");e.AbortError=y;var v=p?o(a,"The adapter operation is unauthorized"):null;e.UnauthorizedError=v;var b=p?o(a,"The adapter operation is forbidden"):null;e.ForbiddenError=b;var g=p?o(a,"The adapter could not find the resource"):null;e.NotFoundError=g;var R=p?o(a,"The adapter operation failed due to a conflict"):null;e.ConflictError=R;var _=p?o(a,"The adapter operation failed due to a server error"):null;e.ServerError=_}),t("ember-data/adapters/json-api",["exports","ember","ember-data/adapters/rest","ember-data/-private/features"],function(e,t,r,i){var a=r.default.extend({defaultSerializer:"-json-api",ajaxOptions:function(e,t,r){var i=this._super.apply(this,arguments);i.contentType&&(i.contentType="application/vnd.api+json");var a=i.beforeSend;return i.beforeSend=function(e){e.setRequestHeader("Accept","application/vnd.api+json"),a&&a(e)},i},coalesceFindRequests:!1,findMany:function(e,t,r,i){var a=this.buildURL(t.modelName,r,i,"findMany");return this.ajax(a,"GET",{data:{filter:{id:r.join(",")}}})},pathForType:function(e){var r=t.default.String.dasherize(e);return t.default.String.pluralize(r)},updateRecord:function(e,t,r){var i={},a=e.serializerFor(t.modelName);a.serializeIntoHash(i,t,r,{includeId:!0});var n=r.id,o=this.buildURL(t.modelName,n,r,"updateRecord");return this.ajax(o,"PATCH",{data:i})}});e.default=a}),t("ember-data/adapters/rest",["exports","ember","ember-data/adapter","ember-data/adapters/errors","ember-data/-private/adapters/build-url-mixin","ember-data/-private/features","ember-data/-private/debug","ember-data/-private/utils/parse-response-headers"],function(e,t,r,i,a,n,o,s){function d(e,t){return"function"!=typeof String.prototype.endsWith?e.indexOf(t,e.length-t.length)!==-1:e.endsWith(t)}var l=t.default.MapWithDefault,u=t.default.get,c=r.default.extend(a.default,{defaultSerializer:"-rest",sortQueryParams:function(e){var t=Object.keys(e),r=t.length;if(r<2)return e;for(var i={},a=t.sort(),n=0;n<r;n++)i[a[n]]=e[a[n]];return i},coalesceFindRequests:!1,findRecord:function(e,t,r,i){var a=this.buildURL(t.modelName,r,i,"findRecord"),n=this.buildQuery(i);return this.ajax(a,"GET",{data:n})},findAll:function(e,t,r,i){var a=this.buildQuery(i),n=this.buildURL(t.modelName,null,i,"findAll");return r&&(a.since=r),this.ajax(n,"GET",{data:a})},query:function(e,t,r){var i=this.buildURL(t.modelName,null,null,"query",r);return this.sortQueryParams&&(r=this.sortQueryParams(r)),this.ajax(i,"GET",{data:r})},queryRecord:function(e,t,r){var i=this.buildURL(t.modelName,null,null,"queryRecord",r);return this.sortQueryParams&&(r=this.sortQueryParams(r)),this.ajax(i,"GET",{data:r})},findMany:function(e,t,r,i){var a=this.buildURL(t.modelName,r,i,"findMany");return this.ajax(a,"GET",{data:{ids:r}})},findHasMany:function(e,t,r,i){var a=t.id,n=t.modelName;return r=this.urlPrefix(r,this.buildURL(n,a,t,"findHasMany")),this.ajax(r,"GET")},findBelongsTo:function(e,t,r,i){var a=t.id,n=t.modelName;return r=this.urlPrefix(r,this.buildURL(n,a,t,"findBelongsTo")),this.ajax(r,"GET")},createRecord:function(e,t,r){var i={},a=e.serializerFor(t.modelName),n=this.buildURL(t.modelName,null,r,"createRecord");return a.serializeIntoHash(i,t,r,{includeId:!0}),this.ajax(n,"POST",{data:i})},updateRecord:function(e,t,r){var i={},a=e.serializerFor(t.modelName);a.serializeIntoHash(i,t,r);var n=r.id,o=this.buildURL(t.modelName,n,r,"updateRecord");return this.ajax(o,"PUT",{data:i})},deleteRecord:function(e,t,r){var i=r.id;return this.ajax(this.buildURL(t.modelName,i,r,"deleteRecord"),"DELETE")},_stripIDFromURL:function(e,t){var r=this.buildURL(t.modelName,t.id,t),i=r.split("/"),a=i[i.length-1],n=t.id;return a===n?i[i.length-1]="":d(a,"?id="+n)&&(i[i.length-1]=a.substring(0,a.length-n.length-1)),i.join("/")},maxURLLength:2048,groupRecordsForFindMany:function(e,t){function r(t,r,i){var n=a._stripIDFromURL(e,t[0]),o=0,s=[[]];return t.forEach(function(e){var t=encodeURIComponent(e.id).length+i;n.length+o+t>=r&&(o=0,s.push([])),o+=t;var a=s.length-1;s[a].push(e)}),s}var i=l.create({defaultValue:function(){return[]}}),a=this,n=this.maxURLLength;t.forEach(function(t){var r=a._stripIDFromURL(e,t);i.get(r).push(t)});var o=[];return i.forEach(function(e,t){var i="&ids%5B%5D=".length,a=r(e,n,i);a.forEach(function(e){return o.push(e)})}),o},handleResponse:function(e,t,r,a){if(this.isSuccess(e,t,r))return r;if(this.isInvalid(e,t,r))return new i.InvalidError(r.errors);var n=this.normalizeErrorResponse(e,t,r),o=this.generatedDetailedMessage(e,t,r,a);return new i.AdapterError(n,o)},isSuccess:function(e,t,r){return e>=200&&e<300||304===e},isInvalid:function(e,t,r){return 422===e},ajax:function(e,r,a){var n=this,o={url:e,method:r};return new t.default.RSVP.Promise(function(d,l){var u=n.ajaxOptions(e,r,a);u.success=function(e,r,i){var a=n.handleResponse(i.status,(0,s.default)(i.getAllResponseHeaders()),e,o);a&&a.isAdapterError?t.default.run.join(null,l,a):t.default.run.join(null,d,a)},u.error=function(e,r,a){var d=void 0;d=a instanceof Error?a:"timeout"===r?new i.TimeoutError:"abort"===r?new i.AbortError:n.handleResponse(e.status,(0,s.default)(e.getAllResponseHeaders()),n.parseErrorResponse(e.responseText)||a,o),t.default.run.join(null,l,d)},n._ajaxRequest(u)},"DS: RESTAdapter#ajax "+r+" to "+e)},_ajaxRequest:function(e){t.default.$.ajax(e)},ajaxOptions:function(e,t,r){var i=r||{};i.url=e,i.type=t,i.dataType="json",i.context=this,i.data&&"GET"!==t&&(i.contentType="application/json; charset=utf-8",i.data=JSON.stringify(i.data));var a=u(this,"headers");return void 0!==a&&(i.beforeSend=function(e){Object.keys(a).forEach(function(t){return e.setRequestHeader(t,a[t])})}),i},parseErrorResponse:function(e){var r=e;try{r=t.default.$.parseJSON(e)}catch(e){}return r},normalizeErrorResponse:function(e,t,r){return r&&"object"==typeof r&&r.errors?r.errors:[{status:""+e,title:"The backend responded with an error",detail:""+r}]},generatedDetailedMessage:function(e,t,r,i){var a,n=t["Content-Type"]||"Empty Content-Type";a="text/html"===n&&r.length>250?"[Omitted Lengthy HTML]":r;var o=i.method+" "+i.url,s="Payload ("+n+")";return["Ember Data Request "+o+" returned a "+e,s,a].join("\n")},buildQuery:function(e){var t={};if(e){var r=e.include;r&&(t.include=r)}return t}});e.default=c}),t("ember-data/attr",["exports","ember","ember-data/-private/debug"],function(e,t,r){function i(e,t,r){if("function"==typeof t.defaultValue)return t.defaultValue.apply(null,arguments);var i=t.defaultValue;return i}function a(e,t){return t in e._attributes||t in e._inFlightAttributes||t in e._data}function n(e,t){return t in e._attributes?e._attributes[t]:t in e._inFlightAttributes?e._inFlightAttributes[t]:e._data[t]}function o(e,r){"object"==typeof e?(r=e,e=void 0):r=r||{};var o={type:e,isAttribute:!0,options:r};return t.default.computed({get:function(e){var t=this._internalModel;return a(t,e)?n(t,e):i(this,r,e)},set:function(e,t){var r,i=this._internalModel,a=n(i,e);return t!==a&&(i._attributes[e]=t,r=e in i._inFlightAttributes?i._inFlightAttributes[e]:i._data[e],this._internalModel.send("didSetProperty",{name:e,oldValue:a,originalValue:r,value:t})),t}}).meta(o)}e.default=o}),t("ember-data",["exports","ember","ember-data/-private/debug","ember-data/-private/features","ember-data/-private/core","ember-data/-private/system/normalize-model-name","ember-data/-private/system/model/internal-model","ember-data/-private/system/promise-proxies","ember-data/-private/system/store","ember-data/-private/system/model","ember-data/model","ember-data/-private/system/snapshot","ember-data/adapter","ember-data/serializer","ember-data/-private/system/debug","ember-data/adapters/errors","ember-data/-private/system/record-arrays","ember-data/-private/system/many-array","ember-data/-private/system/record-array-manager","ember-data/-private/adapters","ember-data/-private/adapters/build-url-mixin","ember-data/-private/serializers","ember-inflector","ember-data/serializers/embedded-records-mixin","ember-data/-private/transforms","ember-data/relationships","ember-data/setup-container","ember-data/-private/instance-initializers/initialize-store-service","ember-data/-private/system/container-proxy","ember-data/-private/system/relationships/state/relationship"],function(e,t,r,i,a,n,o,s,d,l,u,c,h,p,f,m,y,v,b,g,R,_,A,z,F,M,S,x,T,k){if(t.default.VERSION.match(/^1\.([0-9]|1[0-2])\./))throw new t.default.Error("Ember Data requires at least Ember 1.13.0, but you have "+t.default.VERSION+". Please upgrade your version of Ember, then upgrade Ember Data.");a.default.Store=d.Store,a.default.PromiseArray=s.PromiseArray,a.default.PromiseObject=s.PromiseObject,a.default.PromiseManyArray=s.PromiseManyArray,a.default.Model=u.default,a.default.RootState=l.RootState,a.default.attr=l.attr,a.default.Errors=l.Errors,a.default.InternalModel=o.default,a.default.Snapshot=c.default,a.default.Adapter=h.default,a.default.AdapterError=m.AdapterError,a.default.InvalidError=m.InvalidError,a.default.TimeoutError=m.TimeoutError,a.default.AbortError=m.AbortError,a.default.errorsHashToArray=m.errorsHashToArray,a.default.errorsArrayToHash=m.errorsArrayToHash,a.default.Serializer=p.default,a.default.DebugAdapter=f.default,a.default.RecordArray=y.RecordArray,a.default.FilteredRecordArray=y.FilteredRecordArray,a.default.AdapterPopulatedRecordArray=y.AdapterPopulatedRecordArray,a.default.ManyArray=v.default,a.default.RecordArrayManager=b.default,a.default.RESTAdapter=g.RESTAdapter,a.default.BuildURLMixin=R.default,a.default.RESTSerializer=_.RESTSerializer,a.default.JSONSerializer=_.JSONSerializer,a.default.JSONAPIAdapter=g.JSONAPIAdapter,a.default.JSONAPISerializer=_.JSONAPISerializer,a.default.Transform=F.Transform,a.default.DateTransform=F.DateTransform,a.default.StringTransform=F.StringTransform,a.default.NumberTransform=F.NumberTransform,a.default.BooleanTransform=F.BooleanTransform,a.default.EmbeddedRecordsMixin=z.default,a.default.belongsTo=M.belongsTo,a.default.hasMany=M.hasMany,a.default.Relationship=k.default,a.default.ContainerProxy=T.default,a.default._setupContainer=S.default,a.default._initializeStoreService=x.default,Object.defineProperty(a.default,"normalizeModelName",{enumerable:!0,writable:!1,configurable:!1,value:n.default}),t.default.lookup.DS=a.default,e.default=a.default}),t("ember-data/model",["exports","ember-data/-private/system/model"],function(e,t){e.default=t.default}),t("ember-data/relationships",["exports","ember-data/-private/system/relationships/belongs-to","ember-data/-private/system/relationships/has-many"],function(e,t,r){e.belongsTo=t.default,e.hasMany=r.default}),t("ember-data/serializer",["exports","ember"],function(e,t){e.default=t.default.Object.extend({normalizeResponse:null,serialize:null,normalize:function(e,t){return t}})}),t("ember-data/serializers/embedded-records-mixin",["exports","ember","ember-data/-private/debug","ember-data/-private/features"],function(e,t,r,i){function a(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var n=t.default.get,o=t.default.set,s=t.default.String.camelize;e.default=t.default.Mixin.create({normalize:function(e,t,r){var i=this._super(e,t,r);return this._extractEmbeddedRecords(this,this.store,e,i)},keyForRelationship:function(e,t,r){return"serialize"===r&&this.hasSerializeRecordsOption(e)||"deserialize"===r&&this.hasDeserializeRecordsOption(e)?this.keyForAttribute(e,r):this._super(e,t,r)||e},serializeBelongsTo:function(e,t,r){var i=r.key;if(this.noSerializeOptionSpecified(i))return void this._super(e,t,r);var a,n=this.hasSerializeIdsOption(i),o=this.hasSerializeRecordsOption(i),s=e.belongsTo(i);n?(a=this.keyForRelationship(i,r.kind,"serialize"),s?(t[a]=s.id,r.options.polymorphic&&this.serializePolymorphicType(e,t,r)):t[a]=null):o&&this._serializeEmbeddedBelongsTo(e,t,r)},_serializeEmbeddedBelongsTo:function(e,t,r){var i=e.belongsTo(r.key),a=this._getMappedKey(r.key,e.type);a===r.key&&this.keyForRelationship&&(a=this.keyForRelationship(r.key,r.kind,"serialize")),i?(t[a]=i.serialize({includeId:!0}),this.removeEmbeddedForeignKey(e,i,r,t[a]),r.options.polymorphic&&this.serializePolymorphicType(e,t,r)):t[a]=null},serializeHasMany:function(e,t,r){var i=r.key;if(this.noSerializeOptionSpecified(i))return void this._super(e,t,r);if(this.hasSerializeIdsOption(i)){var a=this.keyForRelationship(i,r.kind,"serialize");t[a]=e.hasMany(i,{ids:!0})}else this.hasSerializeRecordsOption(i)?this._serializeEmbeddedHasMany(e,t,r):this.hasSerializeIdsAndTypesOption(i)&&this._serializeHasManyAsIdsAndTypes(e,t,r)},_serializeHasManyAsIdsAndTypes:function(e,r,i){var a=this.keyForAttribute(i.key,"serialize"),n=e.hasMany(i.key);r[a]=t.default.A(n).map(function(e){return{id:e.id,type:e.modelName}})},_serializeEmbeddedHasMany:function(e,t,r){var i=this._getMappedKey(r.key,e.type);i===r.key&&this.keyForRelationship&&(i=this.keyForRelationship(r.key,r.kind,"serialize")),t[i]=this._generateSerializedHasMany(e,r)},_generateSerializedHasMany:function(e,r){for(var i=e.hasMany(r.key),a=t.default.A(i),n=new Array(a.length),o=0;o<a.length;o++){var s=a[o],d=s.serialize({includeId:!0});this.removeEmbeddedForeignKey(e,s,r,d),n[o]=d}return n},removeEmbeddedForeignKey:function(e,t,r,i){if("hasMany"!==r.kind&&"belongsTo"===r.kind){var a=e.type.inverseFor(r.key,this.store);if(a){var n=a.name,o=this.store.serializerFor(t.modelName),s=o.keyForRelationship(n,a.kind,"deserialize");s&&delete i[s]}}},hasEmbeddedAlwaysOption:function(e){var t=this.attrsOption(e);return t&&"always"===t.embedded},hasSerializeRecordsOption:function(e){var t=this.hasEmbeddedAlwaysOption(e),r=this.attrsOption(e);return t||r&&"records"===r.serialize},hasSerializeIdsOption:function(e){var t=this.attrsOption(e);return t&&("ids"===t.serialize||"id"===t.serialize)},hasSerializeIdsAndTypesOption:function(e){var t=this.attrsOption(e);return t&&("ids-and-types"===t.serialize||"id-and-type"===t.serialize)},noSerializeOptionSpecified:function(e){var t=this.attrsOption(e);return!(t&&(t.serialize||t.embedded))},hasDeserializeRecordsOption:function(e){var t=this.hasEmbeddedAlwaysOption(e),r=this.attrsOption(e);return t||r&&"records"===r.deserialize},attrsOption:function(e){var t=this.get("attrs");return t&&(t[s(e)]||t[e])},_extractEmbeddedRecords:function(e,t,r,i){var a=this;return r.eachRelationship(function(r,n){e.hasDeserializeRecordsOption(r)&&("hasMany"===n.kind&&a._extractEmbeddedHasMany(t,r,i,n),"belongsTo"===n.kind&&a._extractEmbeddedBelongsTo(t,r,i,n))}),i},_extractEmbeddedHasMany:function(e,t,r,i){var s=n(r,"data.relationships."+t+".data");if(s){for(var d=new Array(s.length),l=0;l<s.length;l++){var u=s[l],c=this._normalizeEmbeddedRelationship(e,i,u),h=c.data,p=c.included;if(r.included=r.included||[],r.included.push(h),p){var f;(f=r.included).push.apply(f,a(p))}d[l]={id:h.id,type:h.type}}var m={data:d};o(r,"data.relationships."+t,m)}},_extractEmbeddedBelongsTo:function(e,t,r,i){var s=n(r,"data.relationships."+t+".data");if(s){var d=this._normalizeEmbeddedRelationship(e,i,s),l=d.data,u=d.included;if(r.included=r.included||[],r.included.push(l),u){var c;(c=r.included).push.apply(c,a(u))}var h={id:l.id,type:l.type},p={data:h};o(r,"data.relationships."+t,p)}},_normalizeEmbeddedRelationship:function(e,t,r){var i=t.type;t.options.polymorphic&&(i=r.type);var a=e.modelFor(i),n=e.serializerFor(i);return n.normalize(a,r,null)},isEmbeddedRecordsMixin:!0})}),t("ember-data/serializers/json-api",["exports","ember","ember-data/-private/debug","ember-data/serializers/json","ember-data/-private/system/normalize-model-name","ember-inflector","ember-data/-private/features"],function(e,t,r,i,a,n,o){var s=t.default.String.dasherize,d=i.default.extend({_normalizeDocumentHelper:function(e){if("object"===t.default.typeOf(e.data))e.data=this._normalizeResourceHelper(e.data);else if(Array.isArray(e.data)){for(var r=new Array(e.data.length),i=0;i<e.data.length;i++){var a=e.data[i];r[i]=this._normalizeResourceHelper(a)}e.data=r}if(Array.isArray(e.included)){for(var r=new Array(e.included.length),i=0;i<e.included.length;i++){var n=e.included[i];r[i]=this._normalizeResourceHelper(n)}e.included=r}return e},_normalizeRelationshipDataHelper:function(e){var t=this.modelNameFromPayloadKey(e.type);return e.type=t,e},_normalizeResourceHelper:function(e){var t=this.modelNameFromPayloadKey(e.type);if(!this.store._hasModelFor(t))return null;var r=this.store.modelFor(t),i=this.store.serializerFor(t),a=i.normalize(r,e),n=a.data;return n},pushPayload:function(e,t){var r=this._normalizeDocumentHelper(t);e.push(r)},_normalizeResponse:function(e,t,r,i,a,n){var o=this._normalizeDocumentHelper(r);return o},normalizeQueryRecordResponse:function(){var e=this._super.apply(this,arguments);return e},extractAttributes:function(e,t){var r=this,i={};return t.attributes&&e.eachAttribute(function(e){var a=r.keyForAttribute(e,"deserialize");t.attributes.hasOwnProperty(a)&&(i[e]=t.attributes[a])}),i},extractRelationship:function(e){if("object"===t.default.typeOf(e.data)&&(e.data=this._normalizeRelationshipDataHelper(e.data)),Array.isArray(e.data)){for(var r=new Array(e.data.length),i=0;i<e.data.length;i++){var a=e.data[i];r[i]=this._normalizeRelationshipDataHelper(a)}e.data=r}return e},extractRelationships:function(e,t){var r=this,i={};return t.relationships&&e.eachRelationship(function(e,a){var n=r.keyForRelationship(e,a.kind,"deserialize");if(t.relationships.hasOwnProperty(n)){var o=t.relationships[n];i[e]=r.extractRelationship(o)}}),i},_extractType:function(e,t){return this.modelNameFromPayloadKey(t.type)},modelNameFromPayloadKey:function(e){return(0,n.singularize)((0,a.default)(e))},payloadKeyFromModelName:function(e){return(0,n.pluralize)(e)},normalize:function(e,t){t.attributes&&this.normalizeUsingDeclaredMapping(e,t.attributes),t.relationships&&this.normalizeUsingDeclaredMapping(e,t.relationships);var r={id:this.extractId(e,t),type:this._extractType(e,t),attributes:this.extractAttributes(e,t),relationships:this.extractRelationships(e,t)};return this.applyTransforms(e,r.attributes),{data:r}},keyForAttribute:function(e,t){return s(e)},keyForRelationship:function(e,t,r){return s(e)},serialize:function(e,t){var r=this._super.apply(this,arguments);return r.type=this.payloadKeyFromModelName(e.modelName),{data:r}},serializeAttribute:function(e,t,r,i){var a=i.type;if(this._canSerialize(r)){t.attributes=t.attributes||{};var n=e.attr(r);if(a){var o=this.transformFor(a);n=o.serialize(n,i.options)}var s=this._getMappedKey(r,e.type);s===r&&(s=this.keyForAttribute(r,"serialize")),t.attributes[s]=n}},serializeBelongsTo:function(e,t,r){var i=r.key;if(this._canSerialize(i)){var a=e.belongsTo(i);if(void 0!==a){t.relationships=t.relationships||{};var n=this._getMappedKey(i,e.type);n===i&&(n=this.keyForRelationship(i,"belongsTo","serialize"));var o=null;a&&(o={type:this.payloadKeyFromModelName(a.modelName),id:a.id}),t.relationships[n]={data:o}}}},serializeHasMany:function(e,t,r){var i=r.key;if(this._shouldSerializeHasMany(e,i,r)){var a=e.hasMany(i);if(void 0!==a){t.relationships=t.relationships||{};var n=this._getMappedKey(i,e.type);n===i&&this.keyForRelationship&&(n=this.keyForRelationship(i,"hasMany","serialize"));for(var o=new Array(a.length),s=0;s<a.length;s++){var d=a[s];o[s]={type:this.payloadKeyFromModelName(d.modelName),id:d.id}}t.relationships[n]={data:o}}}}});e.default=d}),t("ember-data/serializers/json",["exports","ember","ember-data/-private/debug","ember-data/serializer","ember-data/-private/system/coerce-id","ember-data/-private/system/normalize-model-name","ember-data/-private/utils","ember-data/adapters/errors","ember-data/-private/features"],function(e,t,r,i,a,n,o,s,d){function l(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var u=t.default.get,c=t.default.isNone,h=t.default.assign||t.default.merge;e.default=i.default.extend({primaryKey:"id",mergedProperties:["attrs"],applyTransforms:function(e,t){var r=this,i=void 0;return i=u(e,"attributes"),e.eachTransformedAttribute(function(e,a){if(e in t){var n=r.transformFor(a),o=i.get(e);t[e]=n.deserialize(t[e],o.options)}}),t},normalizeResponse:function(e,t,r,i,a){switch(a){case"findRecord":return this.normalizeFindRecordResponse.apply(this,arguments);case"queryRecord":return this.normalizeQueryRecordResponse.apply(this,arguments);case"findAll":return this.normalizeFindAllResponse.apply(this,arguments);case"findBelongsTo":return this.normalizeFindBelongsToResponse.apply(this,arguments);case"findHasMany":return this.normalizeFindHasManyResponse.apply(this,arguments);case"findMany":return this.normalizeFindManyResponse.apply(this,arguments);case"query":return this.normalizeQueryResponse.apply(this,arguments);case"createRecord":return this.normalizeCreateRecordResponse.apply(this,arguments);case"deleteRecord":return this.normalizeDeleteRecordResponse.apply(this,arguments);case"updateRecord":return this.normalizeUpdateRecordResponse.apply(this,arguments)}},normalizeFindRecordResponse:function(e,t,r,i,a){return this.normalizeSingleResponse.apply(this,arguments)},normalizeQueryRecordResponse:function(e,t,r,i,a){return this.normalizeSingleResponse.apply(this,arguments)},normalizeFindAllResponse:function(e,t,r,i,a){return this.normalizeArrayResponse.apply(this,arguments)},normalizeFindBelongsToResponse:function(e,t,r,i,a){return this.normalizeSingleResponse.apply(this,arguments)},normalizeFindHasManyResponse:function(e,t,r,i,a){return this.normalizeArrayResponse.apply(this,arguments)},normalizeFindManyResponse:function(e,t,r,i,a){return this.normalizeArrayResponse.apply(this,arguments)},normalizeQueryResponse:function(e,t,r,i,a){return this.normalizeArrayResponse.apply(this,arguments)},normalizeCreateRecordResponse:function(e,t,r,i,a){return this.normalizeSaveResponse.apply(this,arguments)},normalizeDeleteRecordResponse:function(e,t,r,i,a){return this.normalizeSaveResponse.apply(this,arguments)},normalizeUpdateRecordResponse:function(e,t,r,i,a){return this.normalizeSaveResponse.apply(this,arguments)},normalizeSaveResponse:function(e,t,r,i,a){return this.normalizeSingleResponse.apply(this,arguments)},normalizeSingleResponse:function(e,t,r,i,a){return this._normalizeResponse(e,t,r,i,a,!0)},normalizeArrayResponse:function(e,t,r,i,a){return this._normalizeResponse(e,t,r,i,a,!1)},_normalizeResponse:function(e,t,r,i,a,n){var o={data:null,included:[]},s=this.extractMeta(e,t,r);if(s&&(o.meta=s),n){var d=this.normalize(t,r),u=d.data,c=d.included;o.data=u,c&&(o.included=c)}else{for(var h=new Array(r.length),p=0,f=r.length;p<f;p++){var m=r[p],y=this.normalize(t,m),u=y.data,c=y.included;if(c){var v;(v=o.included).push.apply(v,l(c))}h[p]=u}o.data=h}return o},normalize:function(e,r){var i=null;return r&&(this.normalizeUsingDeclaredMapping(e,r),"object"===t.default.typeOf(r.links)&&this.normalizeUsingDeclaredMapping(e,r.links),i={id:this.extractId(e,r),type:e.modelName,attributes:this.extractAttributes(e,r),relationships:this.extractRelationships(e,r)},this.applyTransforms(e,i.attributes)),{data:i}},extractId:function(e,t){var r=u(this,"primaryKey"),i=t[r];return(0,a.default)(i)},extractAttributes:function(e,t){var r,i=this,a={};return e.eachAttribute(function(e){r=i.keyForAttribute(e,"deserialize"),t.hasOwnProperty(r)&&(a[e]=t[r])}),a},extractRelationship:function(e,r){if(t.default.isNone(r))return null;if("object"===t.default.typeOf(r)){r.id&&(r.id=(0,a.default)(r.id));var i=this.store.modelFor(e);return r.type&&!(0,o.modelHasAttributeOrRelationshipNamedType)(i)&&(r.type=this.modelNameFromPayloadKey(r.type)),r}return{id:(0,a.default)(r),type:e}},extractPolymorphicRelationship:function(e,t,r){return this.extractRelationship(e,t)},extractRelationships:function(e,r){var i=this,a={};return e.eachRelationship(function(e,n){var o=null,s=i.keyForRelationship(e,n.kind,"deserialize");if(r.hasOwnProperty(s)){var d=null,l=r[s];if("belongsTo"===n.kind)d=n.options.polymorphic?i.extractPolymorphicRelationship(n.type,l,{key:e,resourceHash:r,relationshipMeta:n}):i.extractRelationship(n.type,l);else if("hasMany"===n.kind&&!t.default.isNone(l)){d=new Array(l.length);for(var u=0,c=l.length;u<c;u++){var h=l[u];d[u]=i.extractRelationship(n.type,h)}}o={data:d}}var p=i.keyForLink(e,n.kind);if(r.links&&r.links.hasOwnProperty(p)){var f=r.links[p];o=o||{},o.links={related:f}}o&&(a[e]=o)}),a},modelNameFromPayloadKey:function(e){return(0,n.default)(e)},normalizeAttributes:function(e,t){var r,i=this;this.keyForAttribute&&e.eachAttribute(function(e){r=i.keyForAttribute(e,"deserialize"),e!==r&&t.hasOwnProperty(r)&&(t[e]=t[r],delete t[r])})},normalizeRelationships:function(e,t){var r,i=this;this.keyForRelationship&&e.eachRelationship(function(e,a){r=i.keyForRelationship(e,a.kind,"deserialize"),e!==r&&t.hasOwnProperty(r)&&(t[e]=t[r],delete t[r])})},normalizeUsingDeclaredMapping:function(e,t){var r,i,a,n=u(this,"attrs");if(n)for(a in n)r=i=this._getMappedKey(a,e),t.hasOwnProperty(i)&&(u(e,"attributes").has(a)&&(r=this.keyForAttribute(a)),u(e,"relationshipsByName").has(a)&&(r=this.keyForRelationship(a)),i!==r&&(t[r]=t[i],delete t[i]))},_getMappedKey:function(e,t){var r,i=u(this,"attrs");return i&&i[e]&&(r=i[e],r.key&&(r=r.key),"string"==typeof r&&(e=r)),e},_canSerialize:function(e){var t=u(this,"attrs");return!t||!t[e]||t[e].serialize!==!1},_mustSerialize:function(e){var t=u(this,"attrs");return t&&t[e]&&t[e].serialize===!0},_shouldSerializeHasMany:function(e,t,r){var i=e.type.determineRelationshipType(r,this.store);return!!this._mustSerialize(t)||this._canSerialize(t)&&("manyToNone"===i||"manyToMany"===i)},serialize:function(e,t){var r=this,i={};if(t&&t.includeId){var a=e.id;a&&(i[u(this,"primaryKey")]=a)}return e.eachAttribute(function(t,a){r.serializeAttribute(e,i,t,a)}),e.eachRelationship(function(t,a){"belongsTo"===a.kind?r.serializeBelongsTo(e,i,a):"hasMany"===a.kind&&r.serializeHasMany(e,i,a)}),i},serializeIntoHash:function(e,t,r,i){h(e,this.serialize(r,i))},serializeAttribute:function(e,t,r,i){var a=i.type;if(this._canSerialize(r)){var n=e.attr(r);if(a){var o=this.transformFor(a);n=o.serialize(n,i.options)}var s=this._getMappedKey(r,e.type);s===r&&this.keyForAttribute&&(s=this.keyForAttribute(r,"serialize")),t[s]=n}},serializeBelongsTo:function(e,t,r){var i=r.key;if(this._canSerialize(i)){var a=e.belongsTo(i,{id:!0}),n=this._getMappedKey(i,e.type);n===i&&this.keyForRelationship&&(n=this.keyForRelationship(i,"belongsTo","serialize")),c(a)?t[n]=null:t[n]=a,r.options.polymorphic&&this.serializePolymorphicType(e,t,r)}},serializeHasMany:function(e,t,r){var i=r.key;if(this._shouldSerializeHasMany(e,i,r)){var a=e.hasMany(i,{ids:!0});if(void 0!==a){var n=this._getMappedKey(i,e.type);n===i&&this.keyForRelationship&&(n=this.keyForRelationship(i,"hasMany","serialize")),t[n]=a}}},serializePolymorphicType:t.default.K,extractMeta:function(e,t,r){if(r&&r.hasOwnProperty("meta")){var i=r.meta;return delete r.meta,i}},extractErrors:function(e,t,r,i){var a=this;return r&&"object"==typeof r&&r.errors&&(r=(0,s.errorsArrayToHash)(r.errors),this.normalizeUsingDeclaredMapping(t,r),t.eachAttribute(function(e){var t=a.keyForAttribute(e,"deserialize");t!==e&&r.hasOwnProperty(t)&&(r[e]=r[t],delete r[t])}),t.eachRelationship(function(e){var t=a.keyForRelationship(e,"deserialize");t!==e&&r.hasOwnProperty(t)&&(r[e]=r[t],delete r[t])})),r},keyForAttribute:function(e,t){return e},keyForRelationship:function(e,t,r){return e},keyForLink:function(e,t){return e},transformFor:function(e,t){var r=(0,o.getOwner)(this).lookup("transform:"+e);return r}})}),t("ember-data/serializers/rest",["exports","ember","ember-data/-private/debug","ember-data/serializers/json","ember-data/-private/system/normalize-model-name","ember-inflector","ember-data/-private/system/coerce-id","ember-data/-private/utils","ember-data/-private/features"],function(e,t,r,i,a,n,o,s,d){function l(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var u=t.default.String.camelize,c=i.default.extend({keyForPolymorphicType:function(e,t,r){var i=this.keyForRelationship(e);return i+"Type"},normalize:function(e,t,r){return this.normalizeHash&&this.normalizeHash[r]&&this.normalizeHash[r](t),this._super(e,t)},_normalizeArray:function(e,r,i,a){var n=this,o={data:[],included:[]},s=e.modelFor(r),d=e.serializerFor(r);return t.default.makeArray(i).forEach(function(t){var r=n._normalizePolymorphicRecord(e,t,a,s,d),i=r.data,u=r.included;if(o.data.push(i),u){var c;(c=o.included).push.apply(c,l(u))}}),o},_normalizePolymorphicRecord:function(e,t,r,i,a){var n=void 0,o=void 0,d=(0,s.modelHasAttributeOrRelationshipNamedType)(i);return!d&&t.type&&e._hasModelFor(this.modelNameFromPayloadKey(t.type))?(n=e.serializerFor(this.modelNameFromPayloadKey(t.type)),o=e.modelFor(this.modelNameFromPayloadKey(t.type))):(n=a,o=i),n.normalize(o,t,r)},_normalizeResponse:function(e,r,i,a,n,s){var d={data:null,included:[]},u=this.extractMeta(e,r,i);u&&(d.meta=u);for(var c=Object.keys(i),h=0,p=c.length;h<p;h++){var f=c[h],m=f,y=!1;"_"===f.charAt(0)&&(y=!0,m=f.substr(1));var v=this.modelNameFromPayloadKey(m);if(e.modelFactoryFor(v)){var b=!y&&this.isPrimaryType(e,v,r),g=i[f];if(null!==g)if(b&&"array"!==t.default.typeOf(g)){var R=this._normalizePolymorphicRecord(e,g,f,r,this),_=R.data,A=R.included;if(d.data=_,A){var z;(z=d.included).push.apply(z,l(A))}}else{var F=this._normalizeArray(e,v,g,f),M=F.data,S=F.included;if(S){var x;(x=d.included).push.apply(x,l(S))}if(s)M.forEach(function(e){var t=b&&(0,o.default)(e.id)===a,r=b&&!a&&!d.data;r||t?d.data=e:d.included.push(e);
5
- });else if(b)d.data=M;else if(M){var T;(T=d.included).push.apply(T,l(M))}}}}return d},isPrimaryType:function(e,t,r){var i=e.modelFor(t);return i.modelName===r.modelName},pushPayload:function(e,r){var i={data:[],included:[]};for(var a in r){var n=this.modelNameFromPayloadKey(a);if(e.modelFactoryFor(n)){var o=e.modelFor(n),s=e.serializerFor(o.modelName);t.default.makeArray(r[a]).forEach(function(e){var t=s.normalize(o,e,a),r=t.data,n=t.included;if(i.data.push(r),n){var d;(d=i.included).push.apply(d,l(n))}})}}e.push(i)},modelNameFromPayloadKey:function(e){return(0,n.singularize)((0,a.default)(e))},serialize:function(e,t){return this._super.apply(this,arguments)},serializeIntoHash:function(e,t,r,i){var a=this.payloadKeyFromModelName(t.modelName);e[a]=this.serialize(r,i)},payloadKeyFromModelName:function(e){return u(e)},serializePolymorphicType:function(e,r,i){var a=i.key,n=e.belongsTo(a),o=this.keyForPolymorphicType(a,i.type,"serialize");a=this.keyForAttribute?this.keyForAttribute(a,"serialize"):a,a+="Type",a!==o&&this.keyForPolymorphicType===c.prototype.keyForPolymorphicType&&(o=a),t.default.isNone(n)?r[o]=null:r[o]=u(n.modelName)},extractPolymorphicRelationship:function(e,t,r){var i=r.key,a=r.resourceHash,n=r.relationshipMeta,o=n.options.polymorphic,s=this.keyForPolymorphicType(i,e,"deserialize");if(o&&a.hasOwnProperty(s)&&"object"!=typeof t){var d=this.modelNameFromPayloadKey(a[s]);return{id:t,type:d}}return this._super.apply(this,arguments)}});e.default=c}),t("ember-data/setup-container",["exports","ember-data/-private/initializers/store","ember-data/-private/initializers/transforms","ember-data/-private/initializers/store-injections","ember-data/-private/initializers/data-adapter"],function(e,t,r,i,a){function n(e){(0,a.default)(e),(0,r.default)(e),(0,i.default)(e),(0,t.default)(e)}e.default=n}),t("ember-data/store",["exports","ember-data/-private/system/store"],function(e,t){e.default=t.default}),t("ember-data/transform",["exports","ember"],function(e,t){e.default=t.default.Object.extend({serialize:null,deserialize:null})}),t("ember-data/version",["exports"],function(e){e.default="2.6.2"}),t("ember-inflector",["exports","ember","ember-inflector/lib/system","ember-inflector/lib/ext/string"],function(e,r,i,a){i.Inflector.defaultRules=i.defaultRules,r.default.Inflector=i.Inflector,r.default.String.pluralize=i.pluralize,r.default.String.singularize=i.singularize,e.default=i.Inflector,e.pluralize=i.pluralize,e.singularize=i.singularize,e.defaultRules=i.defaultRules,"undefined"!=typeof t&&t.amd?t("ember-inflector",["exports"],function(e){return e.default=i.Inflector,i.Inflector}):"undefined"!=typeof module&&module.exports&&(module.exports=i.Inflector)}),t("ember-inflector/lib/ext/string",["exports","ember","ember-inflector/lib/system/string"],function(e,t,r){(t.default.EXTEND_PROTOTYPES===!0||t.default.EXTEND_PROTOTYPES.String)&&(String.prototype.pluralize=function(){return(0,r.pluralize)(this)},String.prototype.singularize=function(){return(0,r.singularize)(this)})}),t("ember-inflector/lib/helpers/pluralize",["exports","ember-inflector","ember-inflector/lib/utils/make-helper"],function(e,t,r){e.default=(0,r.default)(function(e){var r=void 0,i=void 0;return 1===e.length?(i=e[0],(0,t.pluralize)(i)):(r=e[0],i=e[1],1!==parseFloat(r)&&(i=(0,t.pluralize)(i)),r+" "+i)})}),t("ember-inflector/lib/helpers/singularize",["exports","ember-inflector","ember-inflector/lib/utils/make-helper"],function(e,t,r){e.default=(0,r.default)(function(e){return(0,t.singularize)(e[0])})}),t("ember-inflector/lib/system",["exports","ember-inflector/lib/system/inflector","ember-inflector/lib/system/string","ember-inflector/lib/system/inflections"],function(e,t,r,i){t.default.inflector=new t.default(i.default),e.Inflector=t.default,e.singularize=r.singularize,e.pluralize=r.pluralize,e.defaultRules=i.default}),t("ember-inflector/lib/system/inflections",["exports"],function(e){e.default={plurals:[[/$/,"s"],[/s$/i,"s"],[/^(ax|test)is$/i,"$1es"],[/(octop|vir)us$/i,"$1i"],[/(octop|vir)i$/i,"$1i"],[/(alias|status)$/i,"$1es"],[/(bu)s$/i,"$1ses"],[/(buffal|tomat)o$/i,"$1oes"],[/([ti])um$/i,"$1a"],[/([ti])a$/i,"$1a"],[/sis$/i,"ses"],[/(?:([^f])fe|([lr])f)$/i,"$1$2ves"],[/(hive)$/i,"$1s"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/(x|ch|ss|sh)$/i,"$1es"],[/(matr|vert|ind)(?:ix|ex)$/i,"$1ices"],[/^(m|l)ouse$/i,"$1ice"],[/^(m|l)ice$/i,"$1ice"],[/^(ox)$/i,"$1en"],[/^(oxen)$/i,"$1"],[/(quiz)$/i,"$1zes"]],singular:[[/s$/i,""],[/(ss)$/i,"$1"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"$1sis"],[/(^analy)(sis|ses)$/i,"$1sis"],[/([^f])ves$/i,"$1fe"],[/(hive)s$/i,"$1"],[/(tive)s$/i,"$1"],[/([lr])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(x|ch|ss|sh)es$/i,"$1"],[/^(m|l)ice$/i,"$1ouse"],[/(bus)(es)?$/i,"$1"],[/(o)es$/i,"$1"],[/(shoe)s$/i,"$1"],[/(cris|test)(is|es)$/i,"$1is"],[/^(a)x[ie]s$/i,"$1xis"],[/(octop|vir)(us|i)$/i,"$1us"],[/(alias|status)(es)?$/i,"$1"],[/^(ox)en/i,"$1"],[/(vert|ind)ices$/i,"$1ex"],[/(matr)ices$/i,"$1ix"],[/(quiz)zes$/i,"$1"],[/(database)s$/i,"$1"]],irregularPairs:[["person","people"],["man","men"],["child","children"],["sex","sexes"],["move","moves"],["cow","kine"],["zombie","zombies"]],uncountable:["equipment","information","rice","money","species","series","fish","sheep","jeans","police"]}}),t("ember-inflector/lib/system/inflector",["exports","ember"],function(e,t){function r(e,t){for(var r=0,i=t.length;r<i;r++)e.uncountable[t[r].toLowerCase()]=!0}function i(e,t){for(var r,i=0,a=t.length;i<a;i++)r=t[i],e.irregular[r[0].toLowerCase()]=r[1],e.irregular[r[1].toLowerCase()]=r[1],e.irregularInverse[r[1].toLowerCase()]=r[0],e.irregularInverse[r[0].toLowerCase()]=r[0]}function a(e){e=e||{},e.uncountable=e.uncountable||n(),e.irregularPairs=e.irregularPairs||n();var t=this.rules={plurals:e.plurals||[],singular:e.singular||[],irregular:n(),irregularInverse:n(),uncountable:n()};r(t,e.uncountable),i(t,e.irregularPairs),this.enableCache()}function n(){var e=Object.create(null);return e._dict=null,delete e._dict,e}var o=t.default.String.capitalize,s=/^\s*$/,d=/([\w\/-]+[_\/\s-])([a-z\d]+$)/,l=/([\w\/\s-]+)([A-Z][a-z\d]*$)/,u=/[A-Z][a-z\d]*$/;if(!Object.create&&!Object.create(null).hasOwnProperty)throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");a.prototype={enableCache:function(){this.purgeCache(),this.singularize=function(e){return this._cacheUsed=!0,this._sCache[e]||(this._sCache[e]=this._singularize(e))},this.pluralize=function(e){return this._cacheUsed=!0,this._pCache[e]||(this._pCache[e]=this._pluralize(e))}},purgeCache:function(){this._cacheUsed=!1,this._sCache=n(),this._pCache=n()},disableCache:function(){this._sCache=null,this._pCache=null,this.singularize=function(e){return this._singularize(e)},this.pluralize=function(e){return this._pluralize(e)}},plural:function(e,t){this._cacheUsed&&this.purgeCache(),this.rules.plurals.push([e,t.toLowerCase()])},singular:function(e,t){this._cacheUsed&&this.purgeCache(),this.rules.singular.push([e,t.toLowerCase()])},uncountable:function(e){this._cacheUsed&&this.purgeCache(),r(this.rules,[e.toLowerCase()])},irregular:function(e,t){this._cacheUsed&&this.purgeCache(),i(this.rules,[[e,t]])},pluralize:function(e){return this._pluralize(e)},_pluralize:function(e){return this.inflect(e,this.rules.plurals,this.rules.irregular)},singularize:function(e){return this._singularize(e)},_singularize:function(e){return this.inflect(e,this.rules.singular,this.rules.irregularInverse)},inflect:function(e,t,r){var i,a,n,c,h,p,f,m,y,v,b;if(m=!e||s.test(e),y=u.test(e),p="",m)return e;if(c=e.toLowerCase(),h=d.exec(e)||l.exec(e),h&&(p=h[1],f=h[2].toLowerCase()),b=this.rules.uncountable[c]||this.rules.uncountable[f])return e;for(v in r)if(c.match(v+"$"))return a=r[v],y&&r[f]&&(a=o(a),v=o(v)),e.replace(new RegExp(v,"i"),a);for(var g=t.length,R=0;g>R&&(i=t[g-1],v=i[0],!v.test(e));g--);return i=i||[],v=i[0],a=i[1],n=e.replace(v,a)}},e.default=a}),t("ember-inflector/lib/system/string",["exports","ember-inflector/lib/system/inflector"],function(e,t){function r(e){return t.default.inflector.pluralize(e)}function i(e){return t.default.inflector.singularize(e)}e.pluralize=r,e.singularize=i}),t("ember-inflector/lib/utils/make-helper",["exports","ember"],function(e,t){function r(e){return t.default.Helper?t.default.Helper.helper(e):t.default.HTMLBars?t.default.HTMLBars.makeBoundHelper(e):t.default.Handlebars.makeBoundHelper(e)}e.default=r}),t("ember",[],function(){return{default:Ember}}),i("ember-data")}(),function(){function e(){var e={"ember-data":{default:DS},"ember-data/model":{default:DS.Model},"ember-data/mixins/embedded-records":{default:DS.EmbeddedRecordsMixin},"ember-data/serializers/rest":{default:DS.RESTSerializer},"ember-data/serializers/active-model":{default:DS.ActiveModelSerializer},"ember-data/serializers/json":{default:DS.JSONSerializer},"ember-data/serializers/json-api":{default:DS.JSONAPISerializer},"ember-data/serializer":{default:DS.Serializer},"ember-data/adapters/json-api":{default:DS.JSONAPIAdapter},"ember-data/adapters/rest":{default:DS.RESTAdapter},"ember-data/adapter":{default:DS.Adapter},"ember-data/adapters/active-model":{default:DS.ActiveModelAdapter},"ember-data/store":{default:DS.Store},"ember-data/transform":{default:DS.Transform},"ember-data/attr":{default:DS.attr},"ember-data/relationships":{hasMany:DS.hasMany,belongsTo:DS.belongsTo}};for(var r in e)t(r,e[r])}function t(e,t){define(e,[],function(){"use strict";return t})}"undefined"!=typeof define&&define&&define.petal&&e()}(),function(){var e=Ember.K;Ember.onLoad("Ember.Application",function(t){t.initializer({name:"ember-data",initialize:DS._setupContainer}),t.instanceInitializer({name:"ember-data",initialize:DS._initializeStoreService}),t.initializer({name:"store",after:"ember-data",initialize:e}),t.initializer({name:"transforms",before:"store",initialize:e}),t.initializer({name:"data-adapter",before:"store",initialize:e}),t.initializer({name:"injectStore",before:"store",initialize:e})})}();
1
+ !function(){"use strict";var e,t,r,a,i;!function(n){function o(){m={define:0,require:0,reify:0,build:0,modules:0,exports:0,ensureBuild:0,resolve:0,resolveRelative:0,findModule:0},i._stats=m}function s(e){throw new Error("an unsupported module was defined, expected `define(name, deps, module)` instead got: `"+e+"` arguments to define`")}function d(e,t,r,a){m.modules++,this.id=_++,this.name=e,this.deps=!t.length&&r.length?A:t,this.module={exports:{}},this.callback=r,this.state=void 0,this.finalized=!1,this.hasExportsAsDep=!1,this.isAlias=a,this.reified=new Array(t.length)}function l(e){this.name=e}function u(e,t){throw new Error("Could not find module `"+e+"` imported from `"+t+"`")}function c(e,t){m.findModule++;for(var r=v[e]||v[e+"/index"];r&&r.isAlias;)r=v[r.name];return r||u(e,t),r.build(),r}function h(e,t){if(m.resolve++,"."!==e.charAt(0))return e;m.resolveRelative++;for(var r=e.split("/"),a=t.split("/"),i=a.slice(0,-1),n=0,o=r.length;o>n;n++){var s=r[n];if(".."===s){if(0===i.length)throw new Error("Cannot access parent module of root");i.pop()}else{if("."===s)continue;i.push(s)}}return i.join("/")}function p(e){return!(!v[e]&&!v[e+"/index"])}var f={loader:e,define:t,requireModule:r,require:a,requirejs:i};i=a=r=function(e){return m.require++,c(e,"(require)").module.exports};var m;o(),e={noConflict:function(e){var t,r;for(t in e)e.hasOwnProperty(t)&&f.hasOwnProperty(t)&&(r=e[t],n[r]=n[t],n[t]=f[t])}};var y;y=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var v={},b={},g=!1,R=!0,_=0,A=["require","exports","module"];d.prototype.makeDefaultExport=function(){var e=this.module.exports;null===e||"object"!=typeof e&&"function"!=typeof e||void 0!==e["default"]||(e["default"]=e)},d.prototype.exports=function(){if(m.exports++,this.finalized)return this.module.exports;e.wrapModules&&(this.callback=e.wrapModules(this.name,this.callback));var t=this.callback.apply(this,this.reified);return this.hasExportsAsDep&&void 0===t||(this.module.exports=t),this.makeDefaultExport(),this.finalized=!0,this.module.exports},d.prototype.unsee=function(){this.finalized=!1,this.state=void 0,this.module={exports:{}}},d.prototype.reify=function(){m.reify++;for(var e,t=this.deps,r=this.reified,a=0;a<t.length;a++)e=t[a],"exports"===e?(this.hasExportsAsDep=!0,r[a]=this.module.exports):"require"===e?r[a]=this.makeRequire():"module"===e?r[a]=this.module:r[a]=c(h(e,this.name),this.name).module.exports},d.prototype.makeRequire=function(){var e=this.name,t=function(t){return a(h(t,e))};return t["default"]=t,t.has=function(t){return p(h(t,e))},t},d.prototype.build=function(){m.ensureBuild++,this.state!==g&&this.state!==R&&(m.build++,this.state=g,this.reify(),this.exports(),this.state=R)},t=function(e,t,r){m.define++,arguments.length<2&&s(arguments.length),y(t)||(r=t,t=[]),r instanceof l?v[e]=new d(r.name,t,r,!0):v[e]=new d(e,t,r,!1)},t.petal={},t.alias=function(e){return new l(e)},i.entries=i._eak_seen=v,i.has=p,i.unsee=function(e){c(e,"(unsee)").unsee()},i.clear=function(){o(),i.entries=i._eak_seen=v={},b={}},t("foo",function(){}),t("foo/bar",[],function(){}),t("foo/asdf",["module","exports","require"],function(e,t,r){r.has("foo/bar")&&r("foo/bar")}),t("foo/baz",[],t.alias("foo")),t("foo/quz",t.alias("foo")),t("foo/bar",["foo","./quz","./baz","./asdf","./bar","../foo"],function(){}),t("foo/main",["foo/bar"],function(){}),a("foo/main"),a.unsee("foo/bar"),i.clear(),"object"==typeof exports&&"object"==typeof module&&module.exports&&(module.exports={require:a,define:t})}(this),t("ember-data/-private/adapters",["exports","ember-data/adapters/json-api","ember-data/adapters/rest"],function(e,t,r){e.JSONAPIAdapter=t["default"],e.RESTAdapter=r["default"]}),t("ember-data/-private/adapters/build-url-mixin",["exports","ember"],function(e,t){var r=t["default"].get;e["default"]=t["default"].Mixin.create({buildURL:function(e,t,r,a,i){switch(a){case"findRecord":return this.urlForFindRecord(t,e,r);case"findAll":return this.urlForFindAll(e,r);case"query":return this.urlForQuery(i,e);case"queryRecord":return this.urlForQueryRecord(i,e);case"findMany":return this.urlForFindMany(t,e,r);case"findHasMany":return this.urlForFindHasMany(t,e,r);case"findBelongsTo":return this.urlForFindBelongsTo(t,e,r);case"createRecord":return this.urlForCreateRecord(e,r);case"updateRecord":return this.urlForUpdateRecord(t,e,r);case"deleteRecord":return this.urlForDeleteRecord(t,e,r);default:return this._buildURL(e,t)}},_buildURL:function(e,t){var a,i=[],n=r(this,"host"),o=this.urlPrefix();return e&&(a=this.pathForType(e),a&&i.push(a)),t&&i.push(encodeURIComponent(t)),o&&i.unshift(o),i=i.join("/"),!n&&i&&"/"!==i.charAt(0)&&(i="/"+i),i},urlForFindRecord:function(e,t,r){return this._buildURL(t,e)},urlForFindAll:function(e,t){return this._buildURL(e)},urlForQuery:function(e,t){return this._buildURL(t)},urlForQueryRecord:function(e,t){return this._buildURL(t)},urlForFindMany:function(e,t,r){return this._buildURL(t)},urlForFindHasMany:function(e,t,r){return this._buildURL(t,e)},urlForFindBelongsTo:function(e,t,r){return this._buildURL(t,e)},urlForCreateRecord:function(e,t){return this._buildURL(e)},urlForUpdateRecord:function(e,t,r){return this._buildURL(t,e)},urlForDeleteRecord:function(e,t,r){return this._buildURL(t,e)},urlPrefix:function(e,t){var a=r(this,"host"),i=r(this,"namespace");if(a&&"/"!==a||(a=""),e)return/^\/\//.test(e)||/http(s)?:\/\//.test(e)?e:"/"===e.charAt(0)?""+a+e:t+"/"+e;var n=[];return a&&n.push(a),i&&n.push(i),n.join("/")},pathForType:function(e){var r=t["default"].String.camelize(e);return t["default"].String.pluralize(r)}})}),t("ember-data/-private/core",["exports","ember","ember-data/version"],function(e,t,r){var a=t["default"].Namespace.create({VERSION:r["default"],name:"DS"});t["default"].libraries&&t["default"].libraries.registerCoreLibrary("Ember Data",a.VERSION),e["default"]=a}),t("ember-data/-private/debug",["exports","ember"],function(e,t){function r(){return t["default"].assert.apply(t["default"],arguments)}function a(){return t["default"].debug.apply(t["default"],arguments)}function i(){return t["default"].deprecate.apply(t["default"],arguments)}function n(){return t["default"].info.apply(t["default"],arguments)}function o(){return t["default"].runInDebug.apply(t["default"],arguments)}function s(){return t["default"].warn.apply(t["default"],arguments)}function d(){return t["default"].debugSeal.apply(t["default"],arguments)}function l(e,r){return e.__isMixin?e.__mixin.detect(r.type.PrototypeMixin):(t["default"].MODEL_FACTORY_INJECTIONS&&(e=e.superclass),e.detect(r.type))}function u(e,t,a){var i=a.type.modelName,n=e.type.modelName,o=t.key,s=e.store.modelFor(t.type),d="You cannot add a record of type '"+i+"' to the '"+n+"."+o+"' relationship (only '"+s.modelName+"' allowed)";r(d,l(s,a))}e.assert=r,e.debug=a,e.deprecate=i,e.info=n,e.runInDebug=o,e.warn=s,e.debugSeal=d,e.assertPolymorphicType=u}),t("ember-data/-private/ext/date",["exports","ember","ember-data/-private/debug"],function(e,t,r){t["default"].Date=t["default"].Date||{};var a=Date.parse,i=[1,4,5,6,7,10,11],n=function(e){var t,r,n=0;if(r=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?:(\d{2}))?)?)?$/.exec(e)){for(var o,s=0;o=i[s];++s)r[o]=+r[o]||0;r[2]=(+r[2]||1)-1,r[3]=+r[3]||1,"Z"!==r[8]&&void 0!==r[9]&&(n=60*r[10]+r[11],"+"===r[9]&&(n=0-n)),t=Date.UTC(r[1],r[2],r[3],r[4],r[5]+n,r[6],r[7])}else t=a?a(e):NaN;return t};e.parseDate=n,t["default"].Date.parse=function(e){return n(e)},(t["default"].EXTEND_PROTOTYPES===!0||t["default"].EXTEND_PROTOTYPES.Date)&&(Date.parse=n)}),t("ember-data/-private/features",["exports","ember"],function(e,t){function r(){var e;return(e=t["default"].FEATURES).isEnabled.apply(e,arguments)}e["default"]=r}),t("ember-data/-private/global",["exports"],function(e){function t(e){return e&&e.Object===Object?e:void 0}function r(e){return e&&void 0===e.nodeType?e:void 0}e["default"]=t(r("object"==typeof global&&global))||t("object"==typeof self&&self)||t("object"==typeof window&&window)||new Function("return this")()}),t("ember-data/-private/initializers/data-adapter",["exports","ember-data/-private/system/debug/debug-adapter"],function(e,t){function r(e){e.register("data-adapter:main",t["default"])}e["default"]=r}),t("ember-data/-private/initializers/store-injections",["exports"],function(e){function t(e){var t=e.inject||e.injection;t.call(e,"controller","store","service:store"),t.call(e,"route","store","service:store"),t.call(e,"data-adapter","store","service:store")}e["default"]=t}),t("ember-data/-private/initializers/store",["exports","ember-data/-private/system/store","ember-data/-private/serializers","ember-data/-private/adapters"],function(e,t,r,a){function i(e,t){return e.has?e.has(t):e.hasRegistration(t)}function n(e){var n=e.registerOptionsForType||e.optionsForType;n.call(e,"serializer",{singleton:!1}),n.call(e,"adapter",{singleton:!1}),e.register("serializer:-default",r.JSONSerializer),e.register("serializer:-rest",r.RESTSerializer),e.register("adapter:-rest",a.RESTAdapter),e.register("adapter:-json-api",a.JSONAPIAdapter),e.register("serializer:-json-api",r.JSONAPISerializer),i(e,"service:store")||e.register("service:store",t["default"])}e["default"]=n}),t("ember-data/-private/initializers/transforms",["exports","ember-data/-private/transforms"],function(e,t){function r(e){e.register("transform:boolean",t.BooleanTransform),e.register("transform:date",t.DateTransform),e.register("transform:number",t.NumberTransform),e.register("transform:string",t.StringTransform)}e["default"]=r}),t("ember-data/-private/instance-initializers/initialize-store-service",["exports"],function(e){function t(e){var t=e.lookup?e:e.container;t.lookup("service:store")}e["default"]=t}),t("ember-data/-private/serializers",["exports","ember-data/serializers/json-api","ember-data/serializers/json","ember-data/serializers/rest"],function(e,t,r,a){e.JSONAPISerializer=t["default"],e.JSONSerializer=r["default"],e.RESTSerializer=a["default"]}),t("ember-data/-private/system/clone-null",["exports","ember-data/-private/system/empty-object"],function(e,t){function r(e){var r=new t["default"];for(var a in e)r[a]=e[a];return r}e["default"]=r}),t("ember-data/-private/system/coerce-id",["exports"],function(e){function t(e){return null===e||void 0===e||""===e?null:e+""}e["default"]=t}),t("ember-data/-private/system/container-proxy",["exports","ember-data/-private/debug"],function(e,t){function r(e){this.container=e}e["default"]=r,r.prototype.aliasedFactory=function(e,t){var r=this;return{create:function(){return t&&t(),r.container.lookup(e)}}},r.prototype.registerAlias=function(e,t,r){var a=this.aliasedFactory(t,r);return this.container.register(e,a)},r.prototype.registerDeprecation=function(e,t){var r=function(){};return this.registerAlias(e,t,r)},r.prototype.registerDeprecations=function(e){var t,r,a,i;for(t=e.length;t>0;t--)r=e[t-1],a=r.deprecated,i=r.valid,this.registerDeprecation(a,i)}}),t("ember-data/-private/system/debug",["exports","ember-data/-private/system/debug/debug-adapter"],function(e,t){e["default"]=t["default"]}),t("ember-data/-private/system/debug/debug-adapter",["exports","ember","ember-data/model"],function(e,t,r){var a=t["default"].get,i=t["default"].String.capitalize,n=t["default"].String.underscore,o=t["default"].assert;e["default"]=t["default"].DataAdapter.extend({getFilters:function(){return[{name:"isNew",desc:"New"},{name:"isModified",desc:"Modified"},{name:"isClean",desc:"Clean"}]},detect:function(e){return e!==r["default"]&&r["default"].detect(e)},columnsForType:function(e){var t=[{name:"id",desc:"Id"}],r=0,o=this;return a(e,"attributes").forEach(function(e,a){if(r++>o.attributeLimit)return!1;var s=i(n(a).replace("_"," "));t.push({name:a,desc:s})}),t},getRecords:function(e,t){if(arguments.length<2){var r=e._debugContainerKey;if(r){var a=r.match(/model:(.*)/);a&&(t=a[1])}}return o("Cannot find model name. Please upgrade to Ember.js >= 1.13 for Ember Inspector support",!!t),this.get("store").peekAll(t)},getRecordColumnValues:function(e){var t=this,r=0,i={id:a(e,"id")};return e.eachAttribute(function(n){if(r++>t.attributeLimit)return!1;var o=a(e,n);i[n]=o}),i},getRecordKeywords:function(e){var r=[],i=t["default"].A(["id"]);return e.eachAttribute(function(e){return i.push(e)}),i.forEach(function(t){return r.push(a(e,t))}),r},getRecordFilterValues:function(e){return{isNew:e.get("isNew"),isModified:e.get("hasDirtyAttributes")&&!e.get("isNew"),isClean:!e.get("hasDirtyAttributes")}},getRecordColor:function(e){var t="black";return e.get("isNew")?t="green":e.get("hasDirtyAttributes")&&(t="blue"),t},observeRecord:function(e,r){var a=t["default"].A(),i=t["default"].A(["id","isNew","hasDirtyAttributes"]);e.eachAttribute(function(e){return i.push(e)});var n=this;i.forEach(function(i){var o=function(){r(n.wrapRecord(e))};t["default"].addObserver(e,i,o),a.push(function(){t["default"].removeObserver(e,i,o)})});var o=function(){a.forEach(function(e){return e()})};return o}})}),t("ember-data/-private/system/debug/debug-info",["exports","ember"],function(e,t){e["default"]=t["default"].Mixin.create({_debugInfo:function(){var e=["id"],t={belongsTo:[],hasMany:[]},r=[];this.eachAttribute(function(t,r){return e.push(t)}),this.eachRelationship(function(e,a){t[a.kind].push(e),r.push(e)});var a=[{name:"Attributes",properties:e,expand:!0},{name:"Belongs To",properties:t.belongsTo,expand:!0},{name:"Has Many",properties:t.hasMany,expand:!0},{name:"Flags",properties:["isLoaded","hasDirtyAttributes","isSaving","isDeleted","isError","isNew","isValid"]}];return{propertyInfo:{includeOtherProperties:!0,groups:a,expensiveProperties:r}}}})}),t("ember-data/-private/system/empty-object",["exports"],function(e){function t(){}e["default"]=t;var r=Object.create(null,{constructor:{value:void 0,enumerable:!1,writable:!0}});t.prototype=r}),t("ember-data/-private/system/is-array-like",["exports","ember"],function(e,t){function r(e){if(!e||e.setInterval)return!1;if(Array.isArray(e))return!0;if(t["default"].Array.detect(e))return!0;var r=t["default"].typeOf(e);return"array"===r?!0:void 0!==e.length&&"object"===r}e["default"]=r}),t("ember-data/-private/system/many-array",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/store/common"],function(e,t,r,a,i){var n=t["default"].get,o=t["default"].set;e["default"]=t["default"].Object.extend(t["default"].MutableArray,t["default"].Evented,{init:function(){this._super.apply(this,arguments),this.currentState=t["default"].A([])},record:null,canonicalState:null,currentState:null,length:0,objectAt:function(e){return this.currentState[e]?this.currentState[e].getRecord():void 0},flushCanonical:function(){var e=this.canonicalState.filter(function(e){return!e.isDeleted()}),t=this.currentState.filter(function(t){return t.isNew()&&-1===e.indexOf(t)});e=e.concat(t);var r=this.length;this.arrayContentWillChange(0,this.length,e.length),(0,i._objectIsAlive)(this)&&this.set("length",e.length),this.currentState=e,this.arrayContentDidChange(0,r,this.length),this.relationship.notifyHasManyChanged(),this.record.updateRecordArrays()},isPolymorphic:!1,isLoaded:!1,relationship:null,meta:null,internalReplace:function(e,t,r){r||(r=[]),this.arrayContentWillChange(e,t,r.length),this.currentState.splice.apply(this.currentState,[e,t].concat(r)),this.set("length",this.currentState.length),this.arrayContentDidChange(e,t,r.length),r&&this.relationship.notifyHasManyChanged(),this.record.updateRecordArrays()},internalRemoveRecords:function(e){for(var t,r=0;r<e.length;r++)t=this.currentState.indexOf(e[r]),this.internalReplace(t,1)},internalAddRecords:function(e,t){void 0===t&&(t=this.currentState.length),this.internalReplace(t,0,e)},replace:function(e,t,r){var a;t>0&&(a=this.currentState.slice(e,e+t),this.get("relationship").removeRecords(a)),r&&this.get("relationship").addRecords(r.map(function(e){return e._internalModel}),e)},promise:null,loadingRecordsCount:function(e){this.loadingRecordsCount=e},loadedRecord:function(){this.loadingRecordsCount--,0===this.loadingRecordsCount&&(o(this,"isLoaded",!0),this.trigger("didLoad"))},reload:function(){return this.relationship.reload()},save:function(){var e=this,r="DS: ManyArray#save "+n(this,"type"),i=t["default"].RSVP.all(this.invoke("save"),r).then(function(t){return e},null,"DS: ManyArray#save return ManyArray");return a.PromiseArray.create({promise:i})},createRecord:function(e){var t,r=n(this,"store"),a=n(this,"type");return t=r.createRecord(a.modelName,e),this.pushObject(t),t}})}),t("ember-data/-private/system/model",["exports","ember-data/-private/system/model/model","ember-data/attr","ember-data/-private/system/model/states","ember-data/-private/system/model/errors"],function(e,t,r,a,i){e.RootState=a["default"],e.attr=r["default"],e.Errors=i["default"],e["default"]=t["default"]}),t("ember-data/-private/system/model/attr",["exports","ember","ember-data/-private/debug"],function(e,t,r){var a=t["default"].get,i=t["default"].Map,n=t["default"].Mixin.create({attributes:t["default"].computed(function(){var e=i.create();return this.eachComputedProperty(function(t,r){r.isAttribute&&(r.name=t,e.set(t,r))}),e}).readOnly(),transformedAttributes:t["default"].computed(function(){var e=i.create();return this.eachAttribute(function(t,r){r.type&&e.set(t,r.type)}),e}).readOnly(),eachAttribute:function(e,t){a(this,"attributes").forEach(function(r,a){e.call(t,a,r)})},eachTransformedAttribute:function(e,t){a(this,"transformedAttributes").forEach(function(r,a){e.call(t,a,r)})}});e.AttrClassMethodsMixin=n;var o=t["default"].Mixin.create({eachAttribute:function(e,t){this.constructor.eachAttribute(e,t)}});e.AttrInstanceMethodsMixin=o}),t("ember-data/-private/system/model/errors",["exports","ember","ember-data/-private/debug"],function(e,t,r){var a=t["default"].get,i=t["default"].set,n=t["default"].isEmpty,o=t["default"].makeArray,s=t["default"].MapWithDefault;e["default"]=t["default"].ArrayProxy.extend(t["default"].Evented,{registerHandlers:function(e,t,r){this._registerHandlers(e,t,r)},_registerHandlers:function(e,t,r){this.on("becameInvalid",e,t),this.on("becameValid",e,r)},errorsByAttributeName:t["default"].computed(function(){return s.create({defaultValue:function(){return t["default"].A()}})}),errorsFor:function(e){return a(this,"errorsByAttributeName").get(e)},messages:t["default"].computed.mapBy("content","message"),content:t["default"].computed(function(){return t["default"].A()}),unknownProperty:function(e){var t=this.errorsFor(e);return n(t)?null:t},isEmpty:t["default"].computed.not("length").readOnly(),add:function(e,t){var r=a(this,"isEmpty");this._add(e,t),r&&!a(this,"isEmpty")&&this.trigger("becameInvalid")},_add:function(e,t){t=this._findOrCreateMessages(e,t),this.addObjects(t),a(this,"errorsByAttributeName").get(e).addObjects(t),this.notifyPropertyChange(e)},_findOrCreateMessages:function(e,t){for(var r=this.errorsFor(e),a=o(t),i=new Array(a.length),n=0;n<a.length;n++){var s=a[n],d=r.findBy("message",s);d?i[n]=d:i[n]={attribute:e,message:s}}return i},remove:function(e){a(this,"isEmpty")||(this._remove(e),a(this,"isEmpty")&&this.trigger("becameValid"))},_remove:function(e){if(!a(this,"isEmpty")){var t=this.rejectBy("attribute",e);i(this,"content",t),a(this,"errorsByAttributeName")["delete"](e),this.notifyPropertyChange(e)}},clear:function(){a(this,"isEmpty")||(this._clear(),this.trigger("becameValid"))},_clear:function(){if(!a(this,"isEmpty")){var e=a(this,"errorsByAttributeName"),r=t["default"].A();e.forEach(function(e,t){r.push(t)}),e.clear(),r.forEach(function(e){this.notifyPropertyChange(e)},this),t["default"].ArrayProxy.prototype.clear.call(this)}},has:function(e){return!n(this.errorsFor(e))}})}),t("ember-data/-private/system/model/internal-model",["exports","ember","ember-data/-private/debug","ember-data/-private/system/model/states","ember-data/-private/system/relationships/state/create","ember-data/-private/system/snapshot","ember-data/-private/system/empty-object","ember-data/-private/utils","ember-data/-private/system/references"],function(e,t,r,a,i,n,o,s,d){function l(e){return R[e]||(R[e]=e.split("."))}function u(e){return g[e]||(g[e]=l(e)[0])}function c(e){return function(){return m(this.currentState,e)}}function h(e,r,n,s,l){this.type=e,this.id=r,this.store=n,this._data=l||new o["default"],this.modelName=e.modelName,this.dataHasInitialized=!1,this._deferredTriggers=[],this._attributes=new o["default"],this._inFlightAttributes=new o["default"],this._relationships=new i["default"](this),this._recordArrays=void 0,this.currentState=a["default"].empty,this.recordReference=new d.RecordReference(n,this),this.references={},this.isReloading=!1,this.isError=!1,this.error=null,this.__ember_meta__=null,this[t["default"].GUID_KEY]=_++ +"internal-model",this._implicitRelationships=new o["default"]}var p=function(){function e(e,t){var r=[],a=!0,i=!1,n=void 0;try{for(var o,s=e[Symbol.iterator]();!(a=(o=s.next()).done)&&(r.push(o.value),!t||r.length!==t);a=!0);}catch(d){i=!0,n=d}finally{try{!a&&s["return"]&&s["return"]()}finally{if(i)throw n}}return r}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();e["default"]=h;var f=t["default"].RSVP.Promise,m=t["default"].get,y=t["default"].set,v=t["default"].copy,b=t["default"].assign||t["default"].merge,g=new o["default"],R=new o["default"],_=0;h.prototype={isEmpty:c("isEmpty"),isLoading:c("isLoading"),isLoaded:c("isLoaded"),hasDirtyAttributes:c("hasDirtyAttributes"),isSaving:c("isSaving"),isDeleted:c("isDeleted"),isNew:c("isNew"),isValid:c("isValid"),dirtyType:c("dirtyType"),constructor:h,materializeRecord:function(){var e={store:this.store,_internalModel:this,id:this.id,currentState:m(this,"currentState"),isError:this.isError,adapterError:this.error};t["default"].setOwner?t["default"].setOwner(e,(0,s.getOwner)(this.store)):e.container=this.store.container,this.record=this.type._create(e),this._triggerDeferredTriggers()},recordObjectWillDestroy:function(){this.record=null},deleteRecord:function(){this.send("deleteRecord")},save:function(e){var r="DS: Model#save "+this,a=t["default"].RSVP.defer(r);return this.store.scheduleSave(this,a,e),a.promise},startedReloading:function(){this.isReloading=!0,this.record&&y(this.record,"isReloading",!0)},finishedReloading:function(){this.isReloading=!1,this.record&&y(this.record,"isReloading",!1)},reload:function(){this.startedReloading();var e=this,t="DS: Model#reload of "+this;return new f(function(t){e.send("reloadRecord",t)},t).then(function(){return e.didCleanError(),e},function(t){throw e.didError(t),t},"DS: Model#reload complete, update flags")["finally"](function(){e.finishedReloading(),e.updateRecordArrays()})},getRecord:function(){return this.record||this.materializeRecord(),this.record},unloadRecord:function(){this.send("unloadRecord")},eachRelationship:function(e,t){return this.type.eachRelationship(e,t)},eachAttribute:function(e,t){return this.type.eachAttribute(e,t)},inverseFor:function(e){return this.type.inverseFor(e)},setupData:function(e){var t=this._changedKeys(e.attributes);b(this._data,e.attributes),this.pushedData(),this.record&&this.record._notifyProperties(t),this.didInitalizeData()},becameReady:function(){t["default"].run.schedule("actions",this.store.recordArrayManager,this.store.recordArrayManager.recordWasLoaded,this)},didInitalizeData:function(){this.dataHasInitialized||(this.becameReady(),this.dataHasInitialized=!0)},destroy:function(){return this.record?this.record.destroy():void 0},createSnapshot:function(e){return new n["default"](this,e)},loadingData:function(e){this.send("loadingData",e)},loadedData:function(){this.send("loadedData"),this.didInitalizeData()},notFound:function(){this.send("notFound")},pushedData:function(){this.send("pushedData")},flushChangedAttributes:function(){this._inFlightAttributes=this._attributes,this._attributes=new o["default"]},hasChangedAttributes:function(){return Object.keys(this._attributes).length>0},updateChangedAttributes:function(){for(var e=this.changedAttributes(),t=Object.keys(e),r=0,a=t.length;a>r;r++){var i=t[r],n=p(e[i],2),o=n[0],s=n[1];o===s&&delete this._attributes[i]}},changedAttributes:function(){for(var e=this._data,t=this._attributes,r=this._inFlightAttributes,a=b(v(r),t),i=new o["default"],n=Object.keys(a),s=0,d=n.length;d>s;s++){var l=n[s];i[l]=[e[l],a[l]]}return i},adapterWillCommit:function(){this.send("willCommit")},adapterDidDirty:function(){this.send("becomeDirty"),this.updateRecordArraysLater()},send:function(e,t){var r=m(this,"currentState");return r[e]||this._unhandledEvent(r,e,t),r[e](this,t)},notifyHasManyAdded:function(e,t,r){this.record&&this.record.notifyHasManyAdded(e,t,r)},notifyHasManyRemoved:function(e,t,r){this.record&&this.record.notifyHasManyRemoved(e,t,r)},notifyBelongsToChanged:function(e,t){this.record&&this.record.notifyBelongsToChanged(e,t)},notifyPropertyChange:function(e){this.record&&this.record.notifyPropertyChange(e)},rollbackAttributes:function(){var e=Object.keys(this._attributes);this._attributes=new o["default"],m(this,"isError")&&(this._inFlightAttributes=new o["default"],this.didCleanError()),this.isDeleted()&&this.becameReady(),this.isNew()&&this.clearRelationships(),this.isValid()&&(this._inFlightAttributes=new o["default"]),this.send("rolledBack"),this.record._notifyProperties(e)},transitionTo:function(e){var t=u(e),r=m(this,"currentState"),a=r;do a.exit&&a.exit(this),a=a.parentState;while(!a.hasOwnProperty(t));var i,n,o=l(e),s=[],d=[];for(i=0,n=o.length;n>i;i++)a=a[o[i]],a.enter&&d.push(a),a.setup&&s.push(a);for(i=0,n=d.length;n>i;i++)d[i].enter(this);for(y(this,"currentState",a),this.record&&y(this.record,"currentState",a),i=0,n=s.length;n>i;i++)s[i].setup(this);this.updateRecordArraysLater()},_unhandledEvent:function(e,r,a){var i="Attempted to handle event `"+r+"` ";throw i+="on "+String(this)+" while in state ",i+=e.stateName+". ",void 0!==a&&(i+="Called with "+t["default"].inspect(a)+"."),new t["default"].Error(i)},triggerLater:function(){for(var e=arguments.length,r=new Array(e),a=0;e>a;a++)r[a]=arguments[a];1===this._deferredTriggers.push(r)&&t["default"].run.scheduleOnce("actions",this,"_triggerDeferredTriggers")},_triggerDeferredTriggers:function(){if(this.record){for(var e=0,t=this._deferredTriggers.length;t>e;e++)this.record.trigger.apply(this.record,this._deferredTriggers[e]);this._deferredTriggers.length=0}},clearRelationships:function(){var e=this;this.eachRelationship(function(t,r){if(e._relationships.has(t)){var a=e._relationships.get(t);a.clear(),a.destroy()}}),Object.keys(this._implicitRelationships).forEach(function(t){e._implicitRelationships[t].clear(),e._implicitRelationships[t].destroy()})},_preloadData:function(e){var t=this;Object.keys(e).forEach(function(r){var a=m(e,r),i=t.type.metaForProperty(r);i.isRelationship?t._preloadRelationship(r,a):t._data[r]=a})},_preloadRelationship:function(e,t){var r=this.type.metaForProperty(e),a=r.type;"hasMany"===r.kind?this._preloadHasMany(e,t,a):this._preloadBelongsTo(e,t,a)},_preloadHasMany:function(e,t,r){for(var a=new Array(t.length),i=0;i<t.length;i++){var n=t[i];a[i]=this._convertStringOrNumberIntoInternalModel(n,r)}this._relationships.get(e).updateRecordsFromAdapter(a)},_preloadBelongsTo:function(e,t,r){var a=this._convertStringOrNumberIntoInternalModel(t,r);this._relationships.get(e).setRecord(a)},_convertStringOrNumberIntoInternalModel:function(e,t){return"string"==typeof e||"number"==typeof e?this.store._internalModelForId(t,e):e._internalModel?e._internalModel:e},updateRecordArrays:function(){this._updatingRecordArraysLater=!1,this.store.dataWasUpdated(this.type,this)},setId:function(e){this.id=e,this.record.get("id")!==e&&this.record.set("id",e)},didError:function(e){this.error=e,this.isError=!0,this.record&&this.record.setProperties({isError:!0,adapterError:e})},didCleanError:function(){this.error=null,this.isError=!1,this.record&&this.record.setProperties({isError:!1,adapterError:null})},adapterDidCommit:function(e){e&&(e=e.attributes),this.didCleanError();var t=this._changedKeys(e);b(this._data,this._inFlightAttributes),e&&b(this._data,e),this._inFlightAttributes=new o["default"],this.send("didCommit"),this.updateRecordArraysLater(),e&&this.record._notifyProperties(t)},updateRecordArraysLater:function(){this._updatingRecordArraysLater||(this._updatingRecordArraysLater=!0,t["default"].run.schedule("actions",this,this.updateRecordArrays))},addErrorMessageToAttribute:function(e,t){var r=this.getRecord();m(r,"errors")._add(e,t)},removeErrorMessageFromAttribute:function(e){var t=this.getRecord();m(t,"errors")._remove(e)},clearErrorMessages:function(){var e=this.getRecord();m(e,"errors")._clear()},hasErrors:function(){var e=this.getRecord(),r=m(e,"errors");return!t["default"].isEmpty(r)},adapterDidInvalidate:function(e){var t;for(t in e)e.hasOwnProperty(t)&&this.addErrorMessageToAttribute(t,e[t]);this.send("becameInvalid"),this._saveWasRejected()},adapterDidError:function(e){this.send("becameError"),this.didError(e),this._saveWasRejected()},_saveWasRejected:function(){for(var e=Object.keys(this._inFlightAttributes),t=0;t<e.length;t++)void 0===this._attributes[e[t]]&&(this._attributes[e[t]]=this._inFlightAttributes[e[t]]);this._inFlightAttributes=new o["default"]},_changedKeys:function(e){var r=[];if(e){var a,i,n,s,d=Object.keys(e),l=d.length;for(a=b(new o["default"],this._data),a=b(a,this._inFlightAttributes),i=0;l>i;i++)s=d[i],n=e[s],void 0===this._attributes[s]&&(t["default"].isEqual(a[s],n)||r.push(s))}return r},toString:function(){return this.record?this.record.toString():"<"+this.modelName+":"+this.id+">"},referenceFor:function(e,t){var r=this.references[t];if(!r){var a=this._relationships.get(t);"belongsTo"===e?r=new d.BelongsToReference(this.store,this,a):"hasMany"===e&&(r=new d.HasManyReference(this.store,this,a)),this.references[t]=r}return r}}}),t("ember-data/-private/system/model/model",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/model/errors","ember-data/-private/system/debug/debug-info","ember-data/-private/system/relationships/belongs-to","ember-data/-private/system/relationships/has-many","ember-data/-private/system/relationships/ext","ember-data/-private/system/model/attr"],function(e,t,r,a,i,n,o,s,d,l){var u=t["default"].get,c=t["default"].computed("currentState",function(e){return u(this._internalModel.currentState,e)}).readOnly(),h=t["default"].Object.extend(t["default"].Evented,{_internalModel:null,store:null,isEmpty:c,isLoading:c,isLoaded:c,hasDirtyAttributes:t["default"].computed("currentState.isDirty",function(){return this.get("currentState.isDirty")}),isSaving:c,isDeleted:c,isNew:c,isValid:c,dirtyType:c,isError:!1,isReloading:!1,id:null,errors:t["default"].computed(function(){var e=i["default"].create();return e._registerHandlers(this._internalModel,function(){this.send("becameInvalid")},function(){this.send("becameValid")}),e}).readOnly(),adapterError:null,serialize:function(e){return this.store.serialize(this,e)},toJSON:function(e){var t=this.store.serializerFor("-default"),r=this._internalModel.createSnapshot();return t.serialize(r,e)},ready:t["default"].K,didLoad:t["default"].K,didUpdate:t["default"].K,didCreate:t["default"].K,didDelete:t["default"].K,becameInvalid:t["default"].K,becameError:t["default"].K,rolledBack:t["default"].K,data:t["default"].computed.readOnly("_internalModel._data"),send:function(e,t){return this._internalModel.send(e,t)},transitionTo:function(e){return this._internalModel.transitionTo(e)},deleteRecord:function(){this._internalModel.deleteRecord()},destroyRecord:function(e){return this.deleteRecord(),this.save(e)},unloadRecord:function(){this.isDestroyed||this._internalModel.unloadRecord()},_notifyProperties:function(e){t["default"].beginPropertyChanges();for(var r,a=0,i=e.length;i>a;a++)r=e[a],
2
+ this.notifyPropertyChange(r);t["default"].endPropertyChanges()},changedAttributes:function(){return this._internalModel.changedAttributes()},rollbackAttributes:function(){this._internalModel.rollbackAttributes()},_createSnapshot:function(){return this._internalModel.createSnapshot()},toStringExtension:function(){return u(this,"id")},save:function(e){var t=this;return a.PromiseObject.create({promise:this._internalModel.save(e).then(function(){return t})})},reload:function(){var e=this;return a.PromiseObject.create({promise:this._internalModel.reload().then(function(){return e})})},trigger:function(e){for(var r=arguments.length,a=new Array(r-1),i=1;r>i;i++)a[i-1]=arguments[i];t["default"].tryInvoke(this,e,a),this._super.apply(this,arguments)},willDestroy:function(){this._super.apply(this,arguments),this._internalModel.clearRelationships(),this._internalModel.recordObjectWillDestroy()},willMergeMixin:function(e){this.constructor},attr:function(){},belongsTo:function(e){return this._internalModel.referenceFor("belongsTo",e)},hasMany:function(e){return this._internalModel.referenceFor("hasMany",e)},setId:t["default"].observer("id",function(){this._internalModel.setId(this.get("id"))})});h.reopenClass({_create:h.create,create:function(){throw new t["default"].Error("You should not call `create` on a model. Instead, call `store.createRecord` with the attributes you would like to set.")},modelName:null}),t["default"].setOwner&&Object.defineProperty(h.prototype,"container",{configurable:!0,enumerable:!1,get:function(){return this.store.container}}),h.reopenClass(d.RelationshipsClassMethodsMixin),h.reopenClass(l.AttrClassMethodsMixin),e["default"]=h.extend(n["default"],o.BelongsToMixin,d.DidDefinePropertyMixin,d.RelationshipsInstanceMethodsMixin,s.HasManyMixin,l.AttrInstanceMethodsMixin)}),t("ember-data/-private/system/model/states",["exports","ember","ember-data/-private/debug"],function(e,t,r){function a(e,t){t.value===t.originalValue?(delete e._attributes[t.name],e.send("propertyWasReset",t.name)):t.value!==t.oldValue&&e.send("becomeDirty"),e.updateRecordArraysLater()}function i(e){var t,r={};for(var a in e)t=e[a],t&&"object"==typeof t?r[a]=i(t):r[a]=t;return r}function n(e,t){for(var r in t)e[r]=t[r];return e}function o(e){var t=i(c);return n(t,e)}function s(e){e.transitionTo("deleted.saved"),e.send("invokeLifecycleCallbacks")}function d(e){}function l(e,t,r){e=n(t?Object.create(t):{},e),e.parentState=t,e.stateName=r;for(var a in e)e.hasOwnProperty(a)&&"parentState"!==a&&"stateName"!==a&&"object"==typeof e[a]&&(e[a]=l(e[a],e,r+"."+a));return e}var u=t["default"].get,c={initialState:"uncommitted",isDirty:!0,uncommitted:{didSetProperty:a,loadingData:t["default"].K,propertyWasReset:function(e,t){e.hasChangedAttributes()||e.send("rolledBack")},pushedData:function(e){e.updateChangedAttributes(),e.hasChangedAttributes()||e.transitionTo("loaded.saved")},becomeDirty:t["default"].K,willCommit:function(e){e.transitionTo("inFlight")},reloadRecord:function(e,t){t(e.store.reloadRecord(e))},rolledBack:function(e){e.transitionTo("loaded.saved")},becameInvalid:function(e){e.transitionTo("invalid")},rollback:function(e){e.rollbackAttributes(),e.triggerLater("ready")}},inFlight:{isSaving:!0,didSetProperty:a,becomeDirty:t["default"].K,pushedData:t["default"].K,unloadRecord:d,willCommit:t["default"].K,didCommit:function(e){var t=u(this,"dirtyType");e.transitionTo("saved"),e.send("invokeLifecycleCallbacks",t)},becameInvalid:function(e){e.transitionTo("invalid"),e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted"),e.triggerLater("becameError",e)}},invalid:{isValid:!1,deleteRecord:function(e){e.transitionTo("deleted.uncommitted")},didSetProperty:function(e,t){e.removeErrorMessageFromAttribute(t.name),a(e,t),e.hasErrors()||this.becameValid(e)},becameInvalid:t["default"].K,becomeDirty:t["default"].K,pushedData:t["default"].K,willCommit:function(e){e.clearErrorMessages(),e.transitionTo("inFlight")},rolledBack:function(e){e.clearErrorMessages(),e.transitionTo("loaded.saved"),e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")},invokeLifecycleCallbacks:function(e){e.triggerLater("becameInvalid",e)}}},h=o({dirtyType:"created",isNew:!0});h.invalid.rolledBack=function(e){e.transitionTo("deleted.saved")},h.uncommitted.rolledBack=function(e){e.transitionTo("deleted.saved")};var p=o({dirtyType:"updated"});h.uncommitted.deleteRecord=s,h.invalid.deleteRecord=s,h.uncommitted.rollback=function(e){c.uncommitted.rollback.apply(this,arguments),e.transitionTo("deleted.saved")},h.uncommitted.pushedData=function(e){e.transitionTo("loaded.updated.uncommitted"),e.triggerLater("didLoad")},h.uncommitted.propertyWasReset=t["default"].K,p.inFlight.unloadRecord=d,p.uncommitted.deleteRecord=function(e){e.transitionTo("deleted.uncommitted")};var f={isEmpty:!1,isLoading:!1,isLoaded:!1,isDirty:!1,isSaving:!1,isDeleted:!1,isNew:!1,isValid:!0,rolledBack:t["default"].K,unloadRecord:function(e){e.clearRelationships(),e.transitionTo("deleted.saved")},propertyWasReset:t["default"].K,empty:{isEmpty:!0,loadingData:function(e,t){e._loadingPromise=t,e.transitionTo("loading")},loadedData:function(e){e.transitionTo("loaded.created.uncommitted"),e.triggerLater("ready")},pushedData:function(e){e.transitionTo("loaded.saved"),e.triggerLater("didLoad"),e.triggerLater("ready")}},loading:{isLoading:!0,exit:function(e){e._loadingPromise=null},pushedData:function(e){e.transitionTo("loaded.saved"),e.triggerLater("didLoad"),e.triggerLater("ready"),e.didCleanError()},becameError:function(e){e.triggerLater("becameError",e)},notFound:function(e){e.transitionTo("empty")}},loaded:{initialState:"saved",isLoaded:!0,loadingData:t["default"].K,saved:{setup:function(e){e.hasChangedAttributes()&&e.adapterDidDirty()},didSetProperty:a,pushedData:t["default"].K,becomeDirty:function(e){e.transitionTo("updated.uncommitted")},willCommit:function(e){e.transitionTo("updated.inFlight")},reloadRecord:function(e,t){t(e.store.reloadRecord(e))},deleteRecord:function(e){e.transitionTo("deleted.uncommitted")},unloadRecord:function(e){e.clearRelationships(),e.transitionTo("deleted.saved")},didCommit:function(e){e.send("invokeLifecycleCallbacks",u(e,"lastDirtyType"))},notFound:t["default"].K},created:h,updated:p},deleted:{initialState:"uncommitted",dirtyType:"deleted",isDeleted:!0,isLoaded:!0,isDirty:!0,setup:function(e){e.updateRecordArrays()},uncommitted:{willCommit:function(e){e.transitionTo("inFlight")},rollback:function(e){e.rollbackAttributes(),e.triggerLater("ready")},pushedData:t["default"].K,becomeDirty:t["default"].K,deleteRecord:t["default"].K,rolledBack:function(e){e.transitionTo("loaded.saved"),e.triggerLater("ready")}},inFlight:{isSaving:!0,unloadRecord:d,willCommit:t["default"].K,didCommit:function(e){e.transitionTo("saved"),e.send("invokeLifecycleCallbacks")},becameError:function(e){e.transitionTo("uncommitted"),e.triggerLater("becameError",e)},becameInvalid:function(e){e.transitionTo("invalid"),e.triggerLater("becameInvalid",e)}},saved:{isDirty:!1,setup:function(e){e.clearRelationships();var t=e.store;t._dematerializeRecord(e)},invokeLifecycleCallbacks:function(e){e.triggerLater("didDelete",e),e.triggerLater("didCommit",e)},willCommit:t["default"].K,didCommit:t["default"].K},invalid:{isValid:!1,didSetProperty:function(e,t){e.removeErrorMessageFromAttribute(t.name),a(e,t),e.hasErrors()||this.becameValid(e)},becameInvalid:t["default"].K,becomeDirty:t["default"].K,deleteRecord:t["default"].K,willCommit:t["default"].K,rolledBack:function(e){e.clearErrorMessages(),e.transitionTo("loaded.saved"),e.triggerLater("ready")},becameValid:function(e){e.transitionTo("uncommitted")}}},invokeLifecycleCallbacks:function(e,t){"created"===t?e.triggerLater("didCreate",e):e.triggerLater("didUpdate",e),e.triggerLater("didCommit",e)}};f=l(f,null,"root"),e["default"]=f}),t("ember-data/-private/system/normalize-link",["exports"],function(e){function t(e){switch(typeof e){case"object":return e;case"string":return{href:e}}return null}e["default"]=t}),t("ember-data/-private/system/normalize-model-name",["exports","ember"],function(e,t){function r(e){return t["default"].String.dasherize(e)}e["default"]=r}),t("ember-data/-private/system/ordered-set",["exports","ember"],function(e,t){function r(){this._super$constructor()}e["default"]=r;var a=t["default"].OrderedSet,i=t["default"].guidFor;r.create=function(){var e=this;return new e},r.prototype=Object.create(a.prototype),r.prototype.constructor=r,r.prototype._super$constructor=a,r.prototype.addWithIndex=function(e,t){var r=i(e),a=this.presenceSet,n=this.list;return a[r]!==!0?(a[r]=!0,void 0===t||null===t?n.push(e):n.splice(t,0,e),this.size+=1,this):void 0}}),t("ember-data/-private/system/promise-proxies",["exports","ember","ember-data/-private/debug"],function(e,t,r){function a(e){return function(){var t=n(this,"content");return t[e].apply(t,arguments)}}var i=t["default"].RSVP.Promise,n=t["default"].get,o=t["default"].ArrayProxy.extend(t["default"].PromiseProxyMixin),s=t["default"].ObjectProxy.extend(t["default"].PromiseProxyMixin),d=function(e,t){return s.create({promise:i.resolve(e,t)})},l=function(e,t){return o.create({promise:i.resolve(e,t)})},u=o.extend({reload:function(){return u.create({promise:n(this,"content").reload()})},createRecord:a("createRecord"),on:a("on"),one:a("one"),trigger:a("trigger"),off:a("off"),has:a("has")}),c=function(e,t){return u.create({promise:i.resolve(e,t)})};e.PromiseArray=o,e.PromiseObject=s,e.PromiseManyArray=u,e.promiseArray=l,e.promiseObject=d,e.promiseManyArray=c}),t("ember-data/-private/system/record-array-manager",["exports","ember","ember-data/-private/system/record-arrays","ember-data/-private/system/ordered-set"],function(e,t,r,a){function i(e){e.destroy()}function n(e){for(var r=e.length,a=t["default"].A(),i=0;r>i;i++)a=a.concat(e[i]);return a}function o(e,t){var r=e.indexOf(t);return-1!==r?(e.splice(r,1),!0):!1}var s=t["default"].MapWithDefault,d=t["default"].get;e["default"]=t["default"].Object.extend({init:function(){var e=this;this.filteredRecordArrays=s.create({defaultValue:function(){return[]}}),this.liveRecordArrays=s.create({defaultValue:function(t){return e.createRecordArray(t)}}),this.changedRecords=[],this._adapterPopulatedRecordArrays=[]},recordDidChange:function(e){1===this.changedRecords.push(e)&&t["default"].run.schedule("actions",this,this.updateRecordArrays)},recordArraysForRecord:function(e){return e._recordArrays=e._recordArrays||a["default"].create(),e._recordArrays},updateRecordArrays:function(){var e=this;this.changedRecords.forEach(function(t){d(t,"record.isDestroyed")||d(t,"record.isDestroying")||"root.deleted.saved"===d(t,"currentState.stateName")?e._recordWasDeleted(t):e._recordWasChanged(t)}),this.changedRecords.length=0},_recordWasDeleted:function(e){var t=e._recordArrays;t&&(t.forEach(function(t){return t.removeInternalModel(e)}),e._recordArrays=null)},_recordWasChanged:function(e){var t,r=this,a=e.type,i=this.filteredRecordArrays.get(a);i.forEach(function(i){t=d(i,"filterFunction"),r.updateFilterRecordArray(i,t,a,e)})},recordWasLoaded:function(e){var t,r=this,a=e.type,i=this.filteredRecordArrays.get(a);if(i.forEach(function(i){t=d(i,"filterFunction"),r.updateFilterRecordArray(i,t,a,e)}),this.liveRecordArrays.has(a)){var n=this.liveRecordArrays.get(a);this._addRecordToRecordArray(n,e)}},updateFilterRecordArray:function(e,t,r,a){var i=t(a.getRecord()),n=this.recordArraysForRecord(a);i?this._addRecordToRecordArray(e,a):(n["delete"](e),e.removeInternalModel(a))},_addRecordToRecordArray:function(e,t){var r=this.recordArraysForRecord(t);r.has(e)||(e.addInternalModel(t),r.add(e))},populateLiveRecordArray:function(e,t){for(var r,a=this.store.typeMapFor(t),i=a.records,n=0;n<i.length;n++)r=i[n],r.isDeleted()||r.isEmpty()||this._addRecordToRecordArray(e,r)},updateFilter:function(e,t,r){for(var a,i=this.store.typeMapFor(t),n=i.records,o=0;o<n.length;o++)a=n[o],a.isDeleted()||a.isEmpty()||this.updateFilterRecordArray(e,r,t,a)},liveRecordArrayFor:function(e){return this.liveRecordArrays.get(e)},createRecordArray:function(e){var a=r.RecordArray.create({type:e,content:t["default"].A(),store:this.store,isLoaded:!0,manager:this});return a},createFilteredRecordArray:function(e,a,i){var n=r.FilteredRecordArray.create({query:i,type:e,content:t["default"].A(),store:this.store,manager:this,filterFunction:a});return this.registerFilteredRecordArray(n,e,a),n},createAdapterPopulatedRecordArray:function(e,a){var i=r.AdapterPopulatedRecordArray.create({type:e,query:a,content:t["default"].A(),store:this.store,manager:this});return this._adapterPopulatedRecordArrays.push(i),i},registerFilteredRecordArray:function(e,t,r){var a=this.filteredRecordArrays.get(t);a.push(e),this.updateFilter(e,t,r)},unregisterRecordArray:function(e){var t=e.type,r=this.filteredRecordArrays.get(t),a=o(r,e),i=o(this._adapterPopulatedRecordArrays,e);if(!a&&!i&&this.liveRecordArrays.has(t)){var n=this.liveRecordArrayFor(t);e===n&&this.liveRecordArrays["delete"](t)}},willDestroy:function(){this._super.apply(this,arguments),this.filteredRecordArrays.forEach(function(e){return n(e).forEach(i)}),this.liveRecordArrays.forEach(i),this._adapterPopulatedRecordArrays.forEach(i)}})}),t("ember-data/-private/system/record-arrays",["exports","ember-data/-private/system/record-arrays/record-array","ember-data/-private/system/record-arrays/filtered-record-array","ember-data/-private/system/record-arrays/adapter-populated-record-array"],function(e,t,r,a){e.RecordArray=t["default"],e.FilteredRecordArray=r["default"],e.AdapterPopulatedRecordArray=a["default"]}),t("ember-data/-private/system/record-arrays/adapter-populated-record-array",["exports","ember","ember-data/-private/system/record-arrays/record-array","ember-data/-private/system/clone-null","ember-data/-private/features"],function(e,t,r,a,i){var n=t["default"].get;e["default"]=r["default"].extend({query:null,replace:function(){var e=n(this,"type").toString();throw new Error("The result of a server query (on "+e+") is immutable.")},_update:function(){var e=n(this,"store"),t=n(this,"type.modelName"),r=n(this,"query");return e._query(t,r,this)},loadRecords:function(e,r){var i=this,n=t["default"].A(e).mapBy("_internalModel");this.setProperties({content:t["default"].A(n),isLoaded:!0,isUpdating:!1,meta:(0,a["default"])(r.meta)}),this.set("links",(0,a["default"])(r.links)),n.forEach(function(e){i.manager.recordArraysForRecord(e).add(i)}),t["default"].run.once(this,"trigger","didLoad")}})}),t("ember-data/-private/system/record-arrays/filtered-record-array",["exports","ember","ember-data/-private/system/record-arrays/record-array"],function(e,t,r){var a=t["default"].get;e["default"]=r["default"].extend({filterFunction:null,isLoaded:!0,replace:function(){var e=a(this,"type").toString();throw new Error("The result of a client-side filter (on "+e+") is immutable.")},_updateFilter:function(){var e=a(this,"manager");e.updateFilter(this,a(this,"type"),a(this,"filterFunction"))},updateFilter:t["default"].observer("filterFunction",function(){t["default"].run.once(this,this._updateFilter)})})}),t("ember-data/-private/system/record-arrays/record-array",["exports","ember","ember-data/-private/system/promise-proxies","ember-data/-private/system/snapshot-record-array"],function(e,t,r,a){var i=t["default"].get,n=t["default"].set;e["default"]=t["default"].ArrayProxy.extend(t["default"].Evented,{type:null,content:null,isLoaded:!1,isUpdating:!1,store:null,objectAtContent:function(e){var t=i(this,"content"),r=t.objectAt(e);return r&&r.getRecord()},update:function(){return i(this,"isUpdating")?void 0:(this.set("isUpdating",!0),this._update())},_update:function(){var e=i(this,"store"),t=i(this,"type.modelName");return e.findAll(t,{reload:!0})},addInternalModel:function(e,t){var r=i(this,"content");void 0===t?r.addObject(e):r.contains(e)||r.insertAt(t,e)},removeInternalModel:function(e){i(this,"content").removeObject(e)},save:function(){var e=this,a="DS: RecordArray#save "+i(this,"type"),n=t["default"].RSVP.all(this.invoke("save"),a).then(function(t){return e},null,"DS: RecordArray#save return RecordArray");return r.PromiseArray.create({promise:n})},_dissociateFromOwnRecords:function(){var e=this;this.get("content").forEach(function(t){var r=t._recordArrays;r&&r["delete"](e)})},_unregisterFromManager:function(){var e=i(this,"manager");e.unregisterRecordArray(this)},willDestroy:function(){this._unregisterFromManager(),this._dissociateFromOwnRecords(),n(this,"content",void 0),this._super.apply(this,arguments)},createSnapshot:function(e){var t=this.get("meta");return new a["default"](this,t,e)}})}),t("ember-data/-private/system/references",["exports","ember-data/-private/system/references/record","ember-data/-private/system/references/belongs-to","ember-data/-private/system/references/has-many"],function(e,t,r,a){e.RecordReference=t["default"],e.BelongsToReference=r["default"],e.HasManyReference=a["default"]}),t("ember-data/-private/system/references/belongs-to",["exports","ember-data/model","ember","ember-data/-private/system/references/reference","ember-data/-private/features","ember-data/-private/debug"],function(e,t,r,a,i,n){var o=function(e,t,r){this._super$constructor(e,t),this.belongsToRelationship=r,this.type=r.relationshipMeta.type,this.parent=t.recordReference};o.prototype=Object.create(a["default"].prototype),o.prototype.constructor=o,o.prototype._super$constructor=a["default"],o.prototype.remoteType=function(){return this.belongsToRelationship.link?"link":"id"},o.prototype.id=function(){var e=this.belongsToRelationship.inverseRecord;return e&&e.id},o.prototype.link=function(){return this.belongsToRelationship.link},o.prototype.meta=function(){return this.belongsToRelationship.meta},o.prototype.push=function(e){var a=this;return r["default"].RSVP.resolve(e).then(function(e){var r;return r=e instanceof t["default"]?e:a.store.push(e),a.belongsToRelationship.setCanonicalRecord(r._internalModel),r})},o.prototype.value=function(){var e=this.belongsToRelationship.inverseRecord;return e&&e.record?e.record:null},o.prototype.load=function(){var e=this;return"id"===this.remoteType()?this.belongsToRelationship.getRecord():"link"===this.remoteType()?this.belongsToRelationship.findLink().then(function(t){return e.value()}):void 0},o.prototype.reload=function(){var e=this;return this.belongsToRelationship.reload().then(function(t){return e.value()})},e["default"]=o}),t("ember-data/-private/system/references/has-many",["exports","ember","ember-data/-private/system/references/reference","ember-data/-private/debug","ember-data/-private/features"],function(e,t,r,a,i){var n=t["default"].get,o=function(e,t,r){this._super$constructor(e,t),this.hasManyRelationship=r,this.type=r.relationshipMeta.type,this.parent=t.recordReference};o.prototype=Object.create(r["default"].prototype),o.prototype.constructor=o,o.prototype._super$constructor=r["default"],o.prototype.remoteType=function(){return this.hasManyRelationship.link?"link":"ids"},o.prototype.link=function(){return this.hasManyRelationship.link},o.prototype.ids=function(){var e=this.hasManyRelationship.members,t=e.toArray().map(function(e){return e.id});return t},o.prototype.meta=function(){return this.hasManyRelationship.manyArray.meta},o.prototype.push=function(e){var r=this;return t["default"].RSVP.resolve(e).then(function(e){var a=e,i=!0;"object"==typeof e&&e.data&&(a=e.data,i=a.length&&a[0].data),i=!0;var n=void 0;if(i)n=a.map(function(e){var t=r.store.push(e);return t._internalModel});else{var o=r.store.push(e);n=t["default"].A(o).mapBy("_internalModel")}return r.hasManyRelationship.computeChanges(n),r.hasManyRelationship.manyArray})},o.prototype._isLoaded=function(){var e=n(this.hasManyRelationship,"hasData");if(!e)return!1;var t=this.hasManyRelationship.members.toArray(),r=t.every(function(e){return e.isLoaded()===!0});return r},o.prototype.value=function(){return this._isLoaded()?this.hasManyRelationship.manyArray:null},o.prototype.load=function(){if(!this._isLoaded())return this.hasManyRelationship.getRecords();var e=this.hasManyRelationship.manyArray;return t["default"].RSVP.resolve(e)},o.prototype.reload=function(){return this.hasManyRelationship.reload()},e["default"]=o}),t("ember-data/-private/system/references/record",["exports","ember","ember-data/-private/system/references/reference"],function(e,t,r){var a=function(e,t){this._super$constructor(e,t),this.type=t.modelName,this._id=t.id};a.prototype=Object.create(r["default"].prototype),a.prototype.constructor=a,a.prototype._super$constructor=r["default"],a.prototype.id=function(){return this._id},a.prototype.remoteType=function(){return"identity"},a.prototype.push=function(e){var r=this;return t["default"].RSVP.resolve(e).then(function(e){var t=r.store.push(e);return t})},a.prototype.value=function(){return this.internalModel.record},a.prototype.load=function(){return this.store.findRecord(this.type,this._id)},a.prototype.reload=function(){var e=this.value();return e?e.reload():this.load()},e["default"]=a}),t("ember-data/-private/system/references/reference",["exports"],function(e){var t=function(e,t){this.store=e,this.internalModel=t};t.prototype={constructor:t},e["default"]=t}),t("ember-data/-private/system/relationship-meta",["exports","ember-inflector","ember-data/-private/system/normalize-model-name"],function(e,t,r){function a(e){var a;return a=e.type||e.key,"hasMany"===e.kind&&(a=(0,t.singularize)((0,r["default"])(a))),a}function i(e){return{key:e.key,kind:e.kind,type:a(e),options:e.options,parentType:e.parentType,isRelationship:!0}}e.typeForRelationshipMeta=a,e.relationshipFromMeta=i}),t("ember-data/-private/system/relationships/belongs-to",["exports","ember","ember-data/-private/debug","ember-data/-private/system/normalize-model-name"],function(e,t,r,a){function i(e,r){var i,n;"object"==typeof e?(i=e,n=void 0):(i=r,n=e),"string"==typeof n&&(n=(0,a["default"])(n)),i=i||{};var o={type:n,isRelationship:!0,options:i,kind:"belongsTo",key:null};return t["default"].computed({get:function(e){return i.hasOwnProperty("serialize"),i.hasOwnProperty("embedded"),this._internalModel._relationships.get(e).getRecord()},set:function(e,t){return void 0===t&&(t=null),t&&t.then?this._internalModel._relationships.get(e).setRecordPromise(t):t?this._internalModel._relationships.get(e).setRecord(t._internalModel):this._internalModel._relationships.get(e).setRecord(t),this._internalModel._relationships.get(e).getRecord()}}).meta(o)}e["default"]=i;var n=t["default"].Mixin.create({notifyBelongsToChanged:function(e){this.notifyPropertyChange(e)}});e.BelongsToMixin=n}),t("ember-data/-private/system/relationships/ext",["exports","ember","ember-data/-private/debug","ember-data/-private/system/relationship-meta","ember-data/-private/system/empty-object"],function(e,t,r,a,i){var n=t["default"].get,o=t["default"].Map,s=t["default"].MapWithDefault,d=t["default"].computed(function(){t["default"].testing===!0&&d._cacheable===!0&&(d._cacheable=!1);var e=new s({defaultValue:function(){return[]}});return this.eachComputedProperty(function(t,r){if(r.isRelationship){r.key=t;var i=e.get((0,a.typeForRelationshipMeta)(r));i.push({name:t,kind:r.kind})}}),e}).readOnly(),l=t["default"].computed(function(){t["default"].testing===!0&&l._cacheable===!0&&(l._cacheable=!1);var e,r=t["default"].A();return this.eachComputedProperty(function(t,i){i.isRelationship&&(i.key=t,e=(0,a.typeForRelationshipMeta)(i),r.contains(e)||r.push(e))}),r}).readOnly(),u=t["default"].computed(function(){t["default"].testing===!0&&u._cacheable===!0&&(u._cacheable=!1);var e=o.create();return this.eachComputedProperty(function(t,r){if(r.isRelationship){r.key=t;var i=(0,a.relationshipFromMeta)(r);i.type=(0,a.typeForRelationshipMeta)(r),e.set(t,i)}}),e}).readOnly(),c=t["default"].Mixin.create({didDefineProperty:function(e,r,a){if(a instanceof t["default"].ComputedProperty){var i=a.meta();i.parentType=e.constructor}}});e.DidDefinePropertyMixin=c;var h=t["default"].Mixin.create({typeForRelationship:function(e,t){var r=n(this,"relationshipsByName").get(e);return r&&t.modelFor(r.type)},inverseMap:t["default"].computed(function(){return new i["default"]}),inverseFor:function(e,t){var r=n(this,"inverseMap");if(r[e])return r[e];var a=this._findInverseFor(e,t);return r[e]=a,a},_findInverseFor:function(e,r){function a(t,r,i){var o=i||[],s=n(r,"relationships");if(!s)return o;var d=s.get(t.modelName);return d=d.filter(function(t){var a=r.metaForProperty(t.name).options;return a.inverse?e===a.inverse:!0}),d&&o.push.apply(o,d),t.superclass&&a(t.superclass,r,o),o}var i=this.typeForRelationship(e,r);if(!i)return null;var o=this.metaForProperty(e),s=o.options;if(null===s.inverse)return null;var d,l,u;if(s.inverse)d=s.inverse,u=t["default"].get(i,"relationshipsByName").get(d),l=u.kind;else{o.type===o.parentType.modelName;var c=a(this,i);if(0===c.length)return null;var h=c.filter(function(t){var r=i.metaForProperty(t.name).options;return e===r.inverse});1===h.length&&(c=h),d=c[0].name,l=c[0].kind}return{type:i,name:d,kind:l}},relationships:d,relationshipNames:t["default"].computed(function(){var e={hasMany:[],belongsTo:[]};return this.eachComputedProperty(function(t,r){r.isRelationship&&e[r.kind].push(t)}),e}),relatedTypes:l,relationshipsByName:u,fields:t["default"].computed(function(){var e=o.create();return this.eachComputedProperty(function(t,r){r.isRelationship?e.set(t,r.kind):r.isAttribute&&e.set(t,"attribute")}),e}).readOnly(),eachRelationship:function(e,t){n(this,"relationshipsByName").forEach(function(r,a){e.call(t,a,r)})},eachRelatedType:function(e,t){for(var r=n(this,"relatedTypes"),a=0;a<r.length;a++){var i=r[a];e.call(t,i)}},determineRelationshipType:function(e,t){var r=e.key,a=e.kind,i=this.inverseFor(r,t),n=void 0;return i?(n=i.kind,"belongsTo"===n?"belongsTo"===a?"oneToOne":"manyToOne":"belongsTo"===a?"oneToMany":"manyToMany"):"belongsTo"===a?"oneToNone":"manyToNone"}});e.RelationshipsClassMethodsMixin=h;var p=t["default"].Mixin.create({eachRelationship:function(e,t){this.constructor.eachRelationship(e,t)},relationshipFor:function(e){return n(this.constructor,"relationshipsByName").get(e)},inverseFor:function(e){return this.constructor.inverseFor(e,this.store)}});e.RelationshipsInstanceMethodsMixin=p}),t("ember-data/-private/system/relationships/has-many",["exports","ember","ember-data/-private/debug","ember-data/-private/system/normalize-model-name","ember-data/-private/system/is-array-like"],function(e,t,r,a,i){function n(e,r){"object"==typeof e&&(r=e,e=void 0),r=r||{},"string"==typeof e&&(e=(0,a["default"])(e));var i={type:e,isRelationship:!0,options:r,kind:"hasMany",key:null};return t["default"].computed({get:function(e){var t=this._internalModel._relationships.get(e);return t.getRecords()},set:function(e,r){var a=this._internalModel._relationships.get(e);return a.clear(),a.addRecords(t["default"].A(r).mapBy("_internalModel")),a.getRecords()}}).meta(i)}e["default"]=n;var o=t["default"].Mixin.create({notifyHasManyAdded:function(e){this.notifyPropertyChange(e)}});e.HasManyMixin=o}),t("ember-data/-private/system/relationships/state/belongs-to",["exports","ember","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/relationships/state/relationship"],function(e,t,r,a,i){function n(e,t,r,a){this._super$constructor(e,t,r,a),this.record=t,this.key=a.key,this.inverseRecord=null,this.canonicalState=null}e["default"]=n,n.prototype=Object.create(i["default"].prototype),n.prototype.constructor=n,n.prototype._super$constructor=i["default"],n.prototype.setRecord=function(e){e?this.addRecord(e):this.inverseRecord&&this.removeRecord(this.inverseRecord),this.setHasData(!0),this.setHasLoaded(!0)},n.prototype.setCanonicalRecord=function(e){e?this.addCanonicalRecord(e):this.canonicalState&&this.removeCanonicalRecord(this.canonicalState),this.setHasData(!0),this.setHasLoaded(!0)},n.prototype._super$addCanonicalRecord=i["default"].prototype.addCanonicalRecord,n.prototype.addCanonicalRecord=function(e){this.canonicalMembers.has(e)||(this.canonicalState&&this.removeCanonicalRecord(this.canonicalState),this.canonicalState=e,this._super$addCanonicalRecord(e))},n.prototype._super$flushCanonical=i["default"].prototype.flushCanonical,n.prototype.flushCanonical=function(){this.inverseRecord&&this.inverseRecord.isNew()&&!this.canonicalState||(this.inverseRecord=this.canonicalState,this.record.notifyBelongsToChanged(this.key),this._super$flushCanonical())},n.prototype._super$addRecord=i["default"].prototype.addRecord,n.prototype.addRecord=function(e){this.members.has(e)||(this.inverseRecord&&this.removeRecord(this.inverseRecord),this.inverseRecord=e,this._super$addRecord(e),this.record.notifyBelongsToChanged(this.key))},n.prototype.setRecordPromise=function(e){var t=e.get&&e.get("content");this.setRecord(t?t._internalModel:t)},n.prototype._super$removeRecordFromOwn=i["default"].prototype.removeRecordFromOwn,n.prototype.removeRecordFromOwn=function(e){this.members.has(e)&&(this.inverseRecord=null,this._super$removeRecordFromOwn(e),this.record.notifyBelongsToChanged(this.key))},n.prototype._super$removeCanonicalRecordFromOwn=i["default"].prototype.removeCanonicalRecordFromOwn,n.prototype.removeCanonicalRecordFromOwn=function(e){this.canonicalMembers.has(e)&&(this.canonicalState=null,this._super$removeCanonicalRecordFromOwn(e))},n.prototype.findRecord=function(){return this.inverseRecord?this.store._findByInternalModel(this.inverseRecord):t["default"].RSVP.Promise.resolve(null)},n.prototype.fetchLink=function(){var e=this;return this.store.findBelongsTo(this.record,this.link,this.relationshipMeta).then(function(t){return t&&e.addRecord(t),t})},n.prototype.getRecord=function(){var e=this;if(this.isAsync){var t;return t=this.link?this.hasLoaded?this.findRecord():this.findLink().then(function(){return e.findRecord()}):this.findRecord(),a.PromiseObject.create({promise:t,content:this.inverseRecord?this.inverseRecord.getRecord():null})}if(null===this.inverseRecord)return null;var r=this.inverseRecord.getRecord();return r},n.prototype.reload=function(){return this.link?this.fetchLink():this.inverseRecord&&this.inverseRecord.record?this.inverseRecord.record.reload():this.findRecord()}}),t("ember-data/-private/system/relationships/state/create",["exports","ember","ember-data/-private/system/relationships/state/has-many","ember-data/-private/system/relationships/state/belongs-to","ember-data/-private/system/empty-object"],function(e,t,r,a,i){function n(e){var t=e.options;return!(t&&null===t.inverse)}function o(e,t,i){var o=void 0,s=null;return n(t)&&(s=e.type.inverseFor(t.key,i)),s&&(o=s.name),"hasMany"===t.kind?new r["default"](i,e,o,t):new a["default"](i,e,o,t)}function s(e){this.record=e,this.initializedRelationships=new i["default"]}e["default"]=s;var d=t["default"].get;s.prototype.has=function(e){return!!this.initializedRelationships[e]},s.prototype.get=function(e){var t=this.initializedRelationships,r=d(this.record.type,"relationshipsByName");return!t[e]&&r.get(e)&&(t[e]=o(this.record,r.get(e),this.record.store)),t[e]}}),t("ember-data/-private/system/relationships/state/has-many",["exports","ember-data/-private/debug","ember-data/-private/system/promise-proxies","ember-data/-private/system/relationships/state/relationship","ember-data/-private/system/ordered-set","ember-data/-private/system/many-array"],function(e,t,r,a,i,n){function o(e,t,r,a){this._super$constructor(e,t,r,a),this.belongsToType=a.type,this.canonicalState=[],this.manyArray=n["default"].create({canonicalState:this.canonicalState,store:this.store,relationship:this,type:this.store.modelFor(this.belongsToType),record:t}),this.isPolymorphic=a.options.polymorphic,this.manyArray.isPolymorphic=this.isPolymorphic}function s(e){var t=new i["default"];if(e)for(var r=0,a=e.length;a>r;r++)t.add(e[r]);return t}e["default"]=o,o.prototype=Object.create(a["default"].prototype),o.prototype.constructor=o,o.prototype._super$constructor=a["default"],o.prototype.destroy=function(){
3
+ this.manyArray.destroy()},o.prototype._super$updateMeta=a["default"].prototype.updateMeta,o.prototype.updateMeta=function(e){this._super$updateMeta(e),this.manyArray.set("meta",e)},o.prototype._super$addCanonicalRecord=a["default"].prototype.addCanonicalRecord,o.prototype.addCanonicalRecord=function(e,t){this.canonicalMembers.has(e)||(void 0!==t?this.canonicalState.splice(t,0,e):this.canonicalState.push(e),this._super$addCanonicalRecord(e,t))},o.prototype._super$addRecord=a["default"].prototype.addRecord,o.prototype.addRecord=function(e,t){this.members.has(e)||(this._super$addRecord(e,t),this.manyArray.internalAddRecords([e],t))},o.prototype._super$removeCanonicalRecordFromOwn=a["default"].prototype.removeCanonicalRecordFromOwn,o.prototype.removeCanonicalRecordFromOwn=function(e,t){var r=t;this.canonicalMembers.has(e)&&(void 0===r&&(r=this.canonicalState.indexOf(e)),r>-1&&this.canonicalState.splice(r,1),this._super$removeCanonicalRecordFromOwn(e,t))},o.prototype._super$flushCanonical=a["default"].prototype.flushCanonical,o.prototype.flushCanonical=function(){this.manyArray.flushCanonical(),this._super$flushCanonical()},o.prototype._super$removeRecordFromOwn=a["default"].prototype.removeRecordFromOwn,o.prototype.removeRecordFromOwn=function(e,t){this.members.has(e)&&(this._super$removeRecordFromOwn(e,t),void 0!==t?this.manyArray.currentState.removeAt(t):this.manyArray.internalRemoveRecords([e]))},o.prototype.notifyRecordRelationshipAdded=function(e,t){this.record.notifyHasManyAdded(this.key,e,t)},o.prototype.reload=function(){var e=this,t=this.manyArray.get("isLoaded");if(this._loadingPromise){if(this._loadingPromise.get("isPending"))return this._loadingPromise;this._loadingPromise.get("isRejected")&&this.manyArray.set("isLoaded",t)}return this.link?(this._loadingPromise=(0,r.promiseManyArray)(this.fetchLink(),"Reload with link"),this._loadingPromise):(this._loadingPromise=(0,r.promiseManyArray)(this.store.scheduleFetchMany(this.manyArray.toArray()).then(function(){return e.manyArray}),"Reload with ids"),this._loadingPromise)},o.prototype.computeChanges=function(e){var t,r,a,i=this.canonicalMembers,n=[];for(e=s(e),i.forEach(function(t){e.has(t)||n.push(t)}),this.removeCanonicalRecords(n),e=e.toArray(),t=e.length,a=0;t>a;a++)r=e[a],this.removeCanonicalRecord(r),this.addCanonicalRecord(r,a)},o.prototype.fetchLink=function(){var e=this;return this.store.findHasMany(this.record,this.link,this.relationshipMeta).then(function(t){return t.hasOwnProperty("meta")&&e.updateMeta(t.meta),e.store._backburner.join(function(){e.updateRecordsFromAdapter(t),e.manyArray.set("isLoaded",!0)}),e.manyArray})},o.prototype.findRecords=function(){for(var e=this,t=this.manyArray.toArray(),r=new Array(t.length),a=0;a<t.length;a++)r[a]=t[a]._internalModel;return this.store.findMany(r).then(function(){return e.manyArray.get("isDestroyed")||e.manyArray.set("isLoaded",!0),e.manyArray})},o.prototype.notifyHasManyChanged=function(){this.record.notifyHasManyAdded(this.key)},o.prototype.getRecords=function(){var e=this;if(this.isAsync){var t;return t=this.link?this.hasLoaded?this.findRecords():this.findLink().then(function(){return e.findRecords()}):this.findRecords(),this._loadingPromise=r.PromiseManyArray.create({content:this.manyArray,promise:t}),this._loadingPromise}return this.manyArray.get("isDestroyed")||this.manyArray.set("isLoaded",!0),this.manyArray}}),t("ember-data/-private/system/relationships/state/relationship",["exports","ember","ember-data/-private/debug","ember-data/-private/system/ordered-set"],function(e,t,r,a){function i(e,t,r,i){var n=i.options.async;this.members=new a["default"],this.canonicalMembers=new a["default"],this.store=e,this.key=i.key,this.inverseKey=r,this.record=t,this.isAsync="undefined"==typeof n?!0:n,this.relationshipMeta=i,this.inverseKeyForImplicit=this.record.constructor.modelName+this.key,this.linkPromise=null,this.meta=null,this.hasData=!1,this.hasLoaded=!1}e["default"]=i,i.prototype={constructor:i,destroy:t["default"].K,updateMeta:function(e){this.meta=e},clear:function(){for(var e,t=this.members.list;t.length>0;)e=t[0],this.removeRecord(e)},removeRecords:function(e){var t=this;e.forEach(function(e){return t.removeRecord(e)})},addRecords:function(e,t){var r=this;e.forEach(function(e){r.addRecord(e,t),void 0!==t&&t++})},addCanonicalRecords:function(e,t){for(var r=0;r<e.length;r++)void 0!==t?this.addCanonicalRecord(e[r],r+t):this.addCanonicalRecord(e[r])},addCanonicalRecord:function(e,t){this.canonicalMembers.has(e)||(this.canonicalMembers.add(e),this.inverseKey?e._relationships.get(this.inverseKey).addCanonicalRecord(this.record):(e._implicitRelationships[this.inverseKeyForImplicit]||(e._implicitRelationships[this.inverseKeyForImplicit]=new i(this.store,e,this.key,{options:{}})),e._implicitRelationships[this.inverseKeyForImplicit].addCanonicalRecord(this.record))),this.flushCanonicalLater(),this.setHasData(!0)},removeCanonicalRecords:function(e,t){for(var r=0;r<e.length;r++)void 0!==t?this.removeCanonicalRecord(e[r],r+t):this.removeCanonicalRecord(e[r])},removeCanonicalRecord:function(e,t){this.canonicalMembers.has(e)&&(this.removeCanonicalRecordFromOwn(e),this.inverseKey?this.removeCanonicalRecordFromInverse(e):e._implicitRelationships[this.inverseKeyForImplicit]&&e._implicitRelationships[this.inverseKeyForImplicit].removeCanonicalRecord(this.record)),this.flushCanonicalLater()},addRecord:function(e,t){this.members.has(e)||(this.members.addWithIndex(e,t),this.notifyRecordRelationshipAdded(e,t),this.inverseKey?e._relationships.get(this.inverseKey).addRecord(this.record):(e._implicitRelationships[this.inverseKeyForImplicit]||(e._implicitRelationships[this.inverseKeyForImplicit]=new i(this.store,e,this.key,{options:{}})),e._implicitRelationships[this.inverseKeyForImplicit].addRecord(this.record)),this.record.updateRecordArraysLater()),this.setHasData(!0)},removeRecord:function(e){this.members.has(e)&&(this.removeRecordFromOwn(e),this.inverseKey?this.removeRecordFromInverse(e):e._implicitRelationships[this.inverseKeyForImplicit]&&e._implicitRelationships[this.inverseKeyForImplicit].removeRecord(this.record))},removeRecordFromInverse:function(e){var t=e._relationships.get(this.inverseKey);t&&t.removeRecordFromOwn(this.record)},removeRecordFromOwn:function(e){this.members["delete"](e),this.notifyRecordRelationshipRemoved(e),this.record.updateRecordArrays()},removeCanonicalRecordFromInverse:function(e){var t=e._relationships.get(this.inverseKey);t&&t.removeCanonicalRecordFromOwn(this.record)},removeCanonicalRecordFromOwn:function(e){this.canonicalMembers["delete"](e),this.flushCanonicalLater()},flushCanonical:function(){this.willSync=!1;for(var e=[],t=0;t<this.members.list.length;t++)this.members.list[t].isNew()&&e.push(this.members.list[t]);for(this.members=this.canonicalMembers.copy(),t=0;t<e.length;t++)this.members.add(e[t])},flushCanonicalLater:function(){var e=this;this.willSync||(this.willSync=!0,this.store._backburner.join(function(){return e.store._backburner.schedule("syncRelationships",e,e.flushCanonical)}))},updateLink:function(e){e!==this.link&&(this.link=e,this.linkPromise=null,this.setHasLoaded(!1),this.record.notifyPropertyChange(this.key))},findLink:function(){if(this.linkPromise)return this.linkPromise;var e=this.fetchLink();return this.linkPromise=e,e.then(function(e){return e})},updateRecordsFromAdapter:function(e){this.computeChanges(e),this.setHasData(!0),this.setHasLoaded(!0)},notifyRecordRelationshipAdded:t["default"].K,notifyRecordRelationshipRemoved:t["default"].K,setHasData:function(e){this.hasData=e},setHasLoaded:function(e){this.hasLoaded=e}}}),t("ember-data/-private/system/snapshot-record-array",["exports"],function(e){function t(e,t){var r=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];this._snapshots=null,this._recordArray=e,this.length=e.get("length"),this.type=e.get("type"),this.meta=t,this.adapterOptions=r.adapterOptions,this.include=r.include}e["default"]=t,t.prototype.snapshots=function(){if(this._snapshots)return this._snapshots;var e=this._recordArray;return this._snapshots=e.invoke("createSnapshot"),this._snapshots}}),t("ember-data/-private/system/snapshot",["exports","ember","ember-data/-private/system/empty-object"],function(e,t,r){function a(e){var t=this,a=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];this._attributes=new r["default"],this._belongsToRelationships=new r["default"],this._belongsToIds=new r["default"],this._hasManyRelationships=new r["default"],this._hasManyIds=new r["default"];var n=e.getRecord();this.record=n,n.eachAttribute(function(e){return t._attributes[e]=i(n,e)}),this.id=e.id,this._internalModel=e,this.type=e.type,this.modelName=e.type.modelName,this.adapterOptions=a.adapterOptions,this.include=a.include,this._changedAttributes=n.changedAttributes()}e["default"]=a;var i=t["default"].get;a.prototype={constructor:a,id:null,record:null,type:null,modelName:null,attr:function(e){if(e in this._attributes)return this._attributes[e];throw new t["default"].Error("Model '"+t["default"].inspect(this.record)+"' has no attribute named '"+e+"' defined.")},attributes:function(){return t["default"].copy(this._attributes)},changedAttributes:function(){for(var e=new r["default"],a=Object.keys(this._changedAttributes),i=0,n=a.length;n>i;i++){var o=a[i];e[o]=t["default"].copy(this._changedAttributes[o])}return e},belongsTo:function(e,r){var a,n,o,s,d=r&&r.id;if(d&&e in this._belongsToIds)return this._belongsToIds[e];if(!d&&e in this._belongsToRelationships)return this._belongsToRelationships[e];if(a=this._internalModel._relationships.get(e),!a||"belongsTo"!==a.relationshipMeta.kind)throw new t["default"].Error("Model '"+t["default"].inspect(this.record)+"' has no belongsTo relationship named '"+e+"' defined.");return o=i(a,"hasData"),n=i(a,"inverseRecord"),o&&(s=n&&!n.isDeleted()?d?i(n,"id"):n.createSnapshot():null),d?this._belongsToIds[e]=s:this._belongsToRelationships[e]=s,s},hasMany:function(e,r){var a,n,o,s,d=r&&r.ids;if(d&&e in this._hasManyIds)return this._hasManyIds[e];if(!d&&e in this._hasManyRelationships)return this._hasManyRelationships[e];if(a=this._internalModel._relationships.get(e),!a||"hasMany"!==a.relationshipMeta.kind)throw new t["default"].Error("Model '"+t["default"].inspect(this.record)+"' has no hasMany relationship named '"+e+"' defined.");return o=i(a,"hasData"),n=i(a,"members"),o&&(s=[],n.forEach(function(e){e.isDeleted()||(d?s.push(e.id):s.push(e.createSnapshot()))})),d?this._hasManyIds[e]=s:this._hasManyRelationships[e]=s,s},eachAttribute:function(e,t){this.record.eachAttribute(e,t)},eachRelationship:function(e,t){this.record.eachRelationship(e,t)},serialize:function(e){return this.record.store.serializerFor(this.modelName).serialize(this,e)}}}),t("ember-data/-private/system/store",["exports","ember","ember-data/model","ember-data/-private/debug","ember-data/-private/system/normalize-link","ember-data/-private/system/normalize-model-name","ember-data/adapters/errors","ember-data/-private/system/promise-proxies","ember-data/-private/system/store/common","ember-data/-private/system/store/serializer-response","ember-data/-private/system/store/serializers","ember-data/-private/system/store/finders","ember-data/-private/utils","ember-data/-private/system/coerce-id","ember-data/-private/system/record-array-manager","ember-data/-private/system/store/container-instance-cache","ember-data/-private/system/model/internal-model","ember-data/-private/system/empty-object","ember-data/-private/features"],function(e,t,r,a,i,n,o,s,d,l,u,c,h,p,f,m,y,v,b){function g(e,t){var r=e.then(function(e){return e.getRecord()});return(0,s.promiseObject)(r,t)}function R(e,t,r,a){return P(a)?void 0:e._internalModelForId(a.type,a.id)}function _(e,t,r,a){if(!P(a)){for(var i=new Array(a.length),n=0;n<a.length;n++)i[n]=R(e,t,r,a[n]);return i}}function A(e){return e.serializerFor("application")}function F(e,t,r,a){var i=a._internalModel,n=a.modelName,s=t.modelFor(n),c=e[r](t,s,a),h=(0,u.serializerForAdapter)(t,e,n),p="DS: Extract and notify about "+r+" completion of "+i;return c=O.resolve(c,p),c=(0,d._guard)(c,(0,d._bind)(d._objectIsAlive,t)),c=(0,d._guard)(c,(0,d._bind)(d._objectIsAlive,i)),c.then(function(e){return t._adapterRun(function(){var n,o;e&&(n=(0,l.normalizeResponseHelper)(h,t,s,e,a.id,r),n.included&&t.push({data:n.included}),o=n.data),t.didSaveRecord(i,{data:o})}),i},function(e){if(e instanceof o.InvalidError){var r=h.extractErrors(t,s,e,a.id);t.recordWasInvalid(i,r)}else t.recordWasError(i,e);throw e},p)}function z(e,t,r){r.relationships&&t.type.eachRelationship(function(a,n){var o=n.kind;if(r.relationships[a]){var s;if(r.relationships[a].links&&r.relationships[a].links.related){var d=(0,i["default"])(r.relationships[a].links.related);d&&d.href&&(s=t._relationships.get(a),s.updateLink(d.href))}r.relationships[a].meta&&(s=t._relationships.get(a),s.updateMeta(r.relationships[a].meta)),M(e,a,n,r.relationships[a]);var l=r.relationships[a].data;void 0!==l&&("belongsTo"===o?(s=t._relationships.get(a),s.setCanonicalRecord(l)):"hasMany"===o&&(s=t._relationships.get(a),s.updateRecordsFromAdapter(l)))}})}function M(e,t,r,a){var i=a.data;if(i){var n=r.kind;"belongsTo"===n?a.data=R(e,t,r,i):"hasMany"===n&&(a.data=_(e,t,r,i))}}var S="`id` passed to `findRecord()` has to be non-empty string or number";e.badIdFormatAssertion=S;var T,k=t["default"]._Backburner,x=t["default"].Map,E=t["default"].get,w=t["default"].set,D=t["default"].run.once,P=t["default"].isNone,O=(t["default"].isPresent,t["default"].RSVP.Promise),C=t["default"].copy,I=t["default"].Service;e.Store=T=I.extend({init:function(){this._super.apply(this,arguments),this._backburner=new k(["normalizeRelationships","syncRelationships","finished"]),this.typeMaps={},this.recordArrayManager=f["default"].create({store:this}),this._pendingSave=[],this._instanceCache=new m["default"]((0,h.getOwner)(this)),this._pendingFetch=x.create()},adapter:"-json-api",serialize:function(e,t){var r=e._internalModel.createSnapshot();return r.serialize(t)},defaultAdapter:t["default"].computed("adapter",function(){var e=E(this,"adapter");return e=this.retrieveManagedInstance("adapter",e)}),createRecord:function(e,t){var r=this.modelFor(e),a=C(t)||new v["default"];P(a.id)&&(a.id=this._generateId(e,a)),a.id=(0,p["default"])(a.id);var i=this.buildInternalModel(r,a.id),n=i.getRecord();return i.loadedData(),n.setProperties(a),i.eachRelationship(function(e,t){i._relationships.get(e).setHasData(!0)}),n},_generateId:function(e,t){var r=this.adapterFor(e);return r&&r.generateIdForRecord?r.generateIdForRecord(this,e,t):null},deleteRecord:function(e){e.deleteRecord()},unloadRecord:function(e){e.unloadRecord()},find:function(e,r,a){return 1===arguments.length,"object"===t["default"].typeOf(r),this.findRecord(e,r)},findRecord:function(e,t,r){var a=this._internalModelForId(e,t);if(r=r||{},!this.hasRecordForId(e,t))return this._findByInternalModel(a,r);var i=this._findRecord(a,r);return g(i,"DS: Store#findRecord "+a.typeKey+" with id: "+E(a,"id"))},_findRecord:function(e,t){if(t.reload)return this.scheduleFetch(e,t);var r=e.createSnapshot(t),a=e.type,i=this.adapterFor(a.modelName);return i.shouldReloadRecord(this,r)?this.scheduleFetch(e,t):t.backgroundReload===!1?O.resolve(e):((t.backgroundReload||i.shouldBackgroundReloadRecord(this,r))&&this.scheduleFetch(e,t),O.resolve(e))},_findByInternalModel:function(e,t){t=t||{},t.preload&&e._preloadData(t.preload);var r=this._findEmptyInternalModel(e,t);return g(r,"DS: Store#findRecord "+e.typeKey+" with id: "+E(e,"id"))},_findEmptyInternalModel:function(e,t){return e.isEmpty()?this.scheduleFetch(e,t):e.isLoading()?e._loadingPromise:O.resolve(e)},findByIds:function(e,r){for(var a=new Array(r.length),i=0;i<r.length;i++)a[i]=this.findRecord(e,r[i]);return(0,s.promiseArray)(t["default"].RSVP.all(a).then(t["default"].A,null,"DS: Store#findByIds of "+e+" complete"))},fetchRecord:function(e,t){var r=e.type,a=e.id,i=this.adapterFor(r.modelName),n=(0,c._find)(i,this,r,a,e,t);return n},scheduleFetchMany:function(e){for(var r=new Array(e.length),a=new Array(e.length),i=0;i<e.length;i++)r[i]=e[i]._internalModel;for(var i=0;i<r.length;i++)a[i]=this.scheduleFetch(r[i]);return t["default"].RSVP.Promise.all(a)},scheduleFetch:function(e,r){var a=e.type;if(e._loadingPromise)return e._loadingPromise;var i=t["default"].RSVP.defer("Fetching "+a+"with id: "+e.id),n={record:e,resolver:i,options:r},o=i.promise;return e.loadingData(o),this._pendingFetch.get(a)?this._pendingFetch.get(a).push(n):this._pendingFetch.set(a,[n]),t["default"].run.scheduleOnce("afterRender",this,this.flushAllPendingFetches),o},flushAllPendingFetches:function(){this.isDestroyed||this.isDestroying||(this._pendingFetch.forEach(this._flushPendingFetchForType,this),this._pendingFetch=x.create())},_flushPendingFetchForType:function(e,r){function a(e){e.resolver.resolve(d.fetchRecord(e.record,e.options))}function i(r){return r.forEach(function(r){var a=t["default"].A(e).findBy("record",r);if(a){var i=a.resolver;i.resolve(r)}}),r}function n(e){return function(r){r=t["default"].A(r);var a=e.reject(function(e){return r.contains(e)});a.length,s(a)}}function o(e){return function(t){s(e,t)}}function s(r,a){r.forEach(function(r){var i=t["default"].A(e).findBy("record",r);if(i){var n=i.resolver;n.reject(a)}})}var d=this,l=d.adapterFor(r.modelName),u=!!l.findMany&&l.coalesceFindRequests,h=t["default"].A(e).mapBy("record");if(1===e.length)a(e[0]);else if(u){var p=t["default"].A(h).invoke("createSnapshot"),f=l.groupRecordsForFindMany(this,p);f.forEach(function(s){var u=t["default"].A(s).mapBy("_internalModel"),h=t["default"].A(u),p=h.mapBy("id");if(p.length>1)(0,c._findMany)(l,d,r,p,h).then(i).then(n(h)).then(null,o(h));else if(1===p.length){var f=t["default"].A(e).findBy("record",u[0]);a(f)}})}else e.forEach(a)},getReference:function(e,t){return this._internalModelForId(e,t).recordReference},peekRecord:function(e,t){return this.hasRecordForId(e,t)?this._internalModelForId(e,t).getRecord():null},reloadRecord:function(e){var t=e.type.modelName;this.adapterFor(t),e.id;return this.scheduleFetch(e)},hasRecordForId:function(e,t){var r=this.modelFor(e),a=(0,p["default"])(t),i=this.typeMapFor(r).idToRecord[a];return!!i&&i.isLoaded()},recordForId:function(e,t){return this._internalModelForId(e,t).getRecord()},_internalModelForId:function(e,t){var r=this.modelFor(e),a=(0,p["default"])(t),i=this.typeMapFor(r).idToRecord,n=i[a];return n&&i[a]||(n=this.buildInternalModel(r,a)),n},findMany:function(e){for(var t=new Array(e.length),r=0;r<e.length;r++)t[r]=this._findByInternalModel(e[r]);return O.all(t)},findHasMany:function(e,t,r){var a=this.adapterFor(e.type.modelName);return(0,c._findHasMany)(a,this,e,t,r)},findBelongsTo:function(e,t,r){var a=this.adapterFor(e.type.modelName);return(0,c._findBelongsTo)(a,this,e,t,r)},query:function(e,t){return this._query(e,t)},_query:function(e,t,r){var a=this.modelFor(e);r=r||this.recordArrayManager.createAdapterPopulatedRecordArray(a,t);var i=this.adapterFor(e);return(0,s.promiseArray)((0,c._query)(i,this,a,t,r))},queryRecord:function(e,t){var r=this.modelFor(e),a=this.adapterFor(e);return(0,s.promiseObject)((0,c._queryRecord)(a,this,r,t))},findAll:function(e,t){var r=this.modelFor(e);return this._fetchAll(r,this.peekAll(e),t)},_fetchAll:function(e,t,r){r=r||{};var a=this.adapterFor(e.modelName),i=this.typeMapFor(e).metadata.since;if(w(t,"isUpdating",!0),r.reload)return(0,s.promiseArray)((0,c._findAll)(a,this,e,i,r));var n=t.createSnapshot(r);return a.shouldReloadAll(this,n)?(0,s.promiseArray)((0,c._findAll)(a,this,e,i,r)):r.backgroundReload===!1?(0,s.promiseArray)(O.resolve(t)):((r.backgroundReload||a.shouldBackgroundReloadAll(this,n))&&(0,c._findAll)(a,this,e,i,r),(0,s.promiseArray)(O.resolve(t)))},didUpdateAll:function(e){var t=this.recordArrayManager.liveRecordArrayFor(e);w(t,"isUpdating",!1)},peekAll:function(e){var t=this.modelFor(e),r=this.recordArrayManager.liveRecordArrayFor(t);return this.recordArrayManager.populateLiveRecordArray(r,t),r},unloadAll:function(e){if(0===arguments.length){for(var t=this.typeMaps,r=Object.keys(t),a=new Array(r.length),i=0;i<r.length;i++)a[i]=t[r[i]].type.modelName;a.forEach(this.unloadAll,this)}else{for(var n=this.modelFor(e),o=this.typeMapFor(n),s=o.records.slice(),d=void 0,i=0;i<s.length;i++)d=s[i],d.unloadRecord(),d.destroy();o.metadata=new v["default"]}},filter:function(e,r,a){!t["default"].ENV.ENABLE_DS_FILTER;var i,n,o=arguments.length,d=3===o;return d?i=this.query(e,r):2===arguments.length&&(a=r),e=this.modelFor(e),n=d?this.recordArrayManager.createFilteredRecordArray(e,a,r):this.recordArrayManager.createFilteredRecordArray(e,a),i=i||O.resolve(n),(0,s.promiseArray)(i.then(function(){return n},null,"DS: Store#filter of "+e))},recordIsLoaded:function(e,t){return this.hasRecordForId(e,t)},dataWasUpdated:function(e,t){this.recordArrayManager.recordDidChange(t)},scheduleSave:function(e,t,r){var a=e.createSnapshot(r);e.flushChangedAttributes(),e.adapterWillCommit(),this._pendingSave.push({snapshot:a,resolver:t}),D(this,"flushPendingSave")},flushPendingSave:function(){var e=this,t=this._pendingSave.slice();this._pendingSave=[],t.forEach(function(t){var r,a=t.snapshot,i=t.resolver,n=a._internalModel,o=e.adapterFor(n.type.modelName);return"root.deleted.saved"===E(n,"currentState.stateName")?i.resolve():(r=n.isNew()?"createRecord":n.isDeleted()?"deleteRecord":"updateRecord",void i.resolve(F(o,e,r,a)))})},didSaveRecord:function(e,t){var r;t&&(r=t.data),r&&(this._backburner.schedule("normalizeRelationships",this,"_setupRelationships",e,r),this.updateId(e,r)),e.adapterDidCommit(r)},recordWasInvalid:function(e,t){e.adapterDidInvalidate(t)},recordWasError:function(e,t){e.adapterDidError(t)},updateId:function(e,t){var r=(e.id,(0,p["default"])(t.id));this.typeMapFor(e.type).idToRecord[r]=e,e.setId(r)},typeMapFor:function(e){var r=E(this,"typeMaps"),a=t["default"].guidFor(e),i=r[a];return i?i:(i={idToRecord:new v["default"],records:[],metadata:new v["default"],type:e},r[a]=i,i)},_load:function(e){var t=this._internalModelForId(e.type,e.id);return t.setupData(e),this.recordArrayManager.recordDidChange(t),t},_modelForMixin:function(e){var t=(0,n["default"])(e),a=(0,h.getOwner)(this),i=a._lookupFactory("mixin:"+t);i&&a.register("model:"+t,r["default"].extend(i));var o=this.modelFactoryFor(t);return o&&(o.__isMixin=!0,o.__mixin=i),o},modelFor:function(e){var r=this.modelFactoryFor(e);if(r||(r=this._modelForMixin(e)),!r)throw new t["default"].Error("No model was found for '"+e+"'");return r.modelName=r.modelName||(0,n["default"])(e),r},modelFactoryFor:function(e){var t=(0,n["default"])(e),r=(0,h.getOwner)(this);return r._lookupFactory("model:"+t)},push:function(e){var t,r,a=e.included;if(a)for(t=0,r=a.length;r>t;t++)this._pushInternalModel(a[t]);if(Array.isArray(e.data)){r=e.data.length;var i=new Array(r);for(t=0;r>t;t++)i[t]=this._pushInternalModel(e.data[t]).getRecord();return i}if(null===e.data)return null;var n=this._pushInternalModel(e.data);return n.getRecord()},_hasModelFor:function(e){return!!(0,h.getOwner)(this)._lookupFactory("model:"+e)},_pushInternalModel:function(e){var t=this,r=(e.type,this._load(e));return this._backburner.join(function(){t._backburner.schedule("normalizeRelationships",t,"_setupRelationships",r,e)}),r},_setupRelationships:function(e,t){z(this,e,t)},pushPayload:function(e,t){var r,a,i=this;t?(a=t,r=this.serializerFor(e)):(a=e,r=A(this)),this._adapterRun(function(){return r.pushPayload(i,a)})},normalize:function(e,t){var r=this.serializerFor(e),a=this.modelFor(e);return r.normalize(a,t)},buildInternalModel:function(e,t,r){var a=this.typeMapFor(e),i=a.idToRecord,n=new y["default"](e,t,this,null,r);return t&&(i[t]=n),a.records.push(n),n},recordWasLoaded:function(e){this.recordArrayManager.recordWasLoaded(e)},_dematerializeRecord:function(e){var t=e.type,r=this.typeMapFor(t),a=e.id;e.updateRecordArrays(),a&&delete r.idToRecord[a];var i=r.records.indexOf(e);r.records.splice(i,1)},adapterFor:function(e){return this.lookupAdapter(e)},_adapterRun:function(e){return this._backburner.run(e)},serializerFor:function(e){var t=["application",this.adapterFor(e).get("defaultSerializer"),"-default"],r=this.lookupSerializer(e,t);return r},retrieveManagedInstance:function(e,t,r){var a=(0,n["default"])(t),i=this._instanceCache.get(e,a,r);return w(i,"store",this),i},lookupAdapter:function(e){return this.retrieveManagedInstance("adapter",e,this.get("_adapterFallbacks"))},_adapterFallbacks:t["default"].computed("adapter",function(){var e=this.get("adapter");return["application",e,"-json-api"]}),lookupSerializer:function(e,t){return this.retrieveManagedInstance("serializer",e,t)},willDestroy:function(){this._super.apply(this,arguments),this.recordArrayManager.destroy(),this.unloadAll()}}),e.Store=T,e["default"]=T}),t("ember-data/-private/system/store/common",["exports","ember"],function(e,t){function r(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(void 0,t)}}function a(e,t){var r=e["finally"](function(){t()||(r._subscribers.length=0)});return r}function i(e){return!(n(e,"isDestroyed")||n(e,"isDestroying"))}e._bind=r,e._guard=a,e._objectIsAlive=i;var n=t["default"].get}),t("ember-data/-private/system/store/container-instance-cache",["exports","ember","ember-data/-private/system/empty-object"],function(e,t,r){function a(e){this._owner=e,this._cache=new r["default"]}e["default"]=a;var i=t["default"].assign||t["default"].merge;a.prototype=new r["default"],i(a.prototype,{get:function(e,t,r){var a=this._cache,i=e+":"+t;if(!(i in a)){var n=this.instanceFor(i)||this._findInstance(e,r);n&&(a[i]=n)}return a[i]},_findInstance:function(e,t){for(var r=0,a=t.length;a>r;r++){var i=t[r],n=e+":"+i,o=this.instanceFor(n);if(o)return o}},instanceFor:function(e){var t=this._cache;if(!t[e]){var r=this._owner.lookup(e);r&&(t[e]=r)}return t[e]},destroy:function(){for(var e=this._cache,t=Object.keys(e),r=0,a=t.length;a>r;r++){var i=t[r],n=e[i];n&&n.destroy()}this._owner=null},constructor:a,toString:function(){return"ContainerInstanceCache"}})}),t("ember-data/-private/system/store/finders",["exports","ember","ember-data/-private/debug","ember-data/-private/system/store/common","ember-data/-private/system/store/serializer-response","ember-data/-private/system/store/serializers"],function(e,t,r,a,i,n){function o(e,t,r,o,s,d){var l=s.createSnapshot(d),u=e.findRecord(t,r,o,l),c=(0,n.serializerForAdapter)(t,e,s.type.modelName),h="DS: Handle Adapter#findRecord of "+r+" with id: "+o;return u=p.resolve(u,h),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,t)),u.then(function(e){return t._adapterRun(function(){var a=(0,i.normalizeResponseHelper)(c,t,r,e,o,"findRecord"),n=t.push(a);return n._internalModel})},function(e){throw s.notFound(),s.isEmpty()&&s.unloadRecord(),e},"DS: Extract payload of '"+r+"'")}function s(e,r,o,s,d){var l=t["default"].A(d).invoke("createSnapshot"),u=e.findMany(r,o,s,l),c=(0,n.serializerForAdapter)(r,e,o.modelName),h="DS: Handle Adapter#findMany of "+o;if(void 0===u)throw new Error("adapter.findMany returned undefined, this was very likely a mistake");return u=p.resolve(u,h),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,r)),u.then(function(e){return r._adapterRun(function(){for(var t=(0,i.normalizeResponseHelper)(c,r,o,e,null,"findMany"),a=r.push(t),n=new Array(a.length),s=0;s<a.length;s++)n[s]=a[s]._internalModel;return n})},null,"DS: Extract payload of "+o)}function d(e,t,r,o,s){var d=r.createSnapshot(),l=t.modelFor(s.type),u=e.findHasMany(t,d,o,s),c=(0,n.serializerForAdapter)(t,e,s.type),h="DS: Handle Adapter#findHasMany of "+r+" : "+s.type;return u=p.resolve(u,h),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,t)),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,r)),u.then(function(e){return t._adapterRun(function(){var r=(0,i.normalizeResponseHelper)(c,t,l,e,null,"findHasMany"),a=t.push(r),n=a.map(function(e){return e._internalModel});return n.meta=r.meta,n})},null,"DS: Extract payload of "+r+" : hasMany "+s.type)}function l(e,t,r,o,s){var d=r.createSnapshot(),l=t.modelFor(s.type),u=e.findBelongsTo(t,d,o,s),c=(0,n.serializerForAdapter)(t,e,s.type),h="DS: Handle Adapter#findBelongsTo of "+r+" : "+s.type;return u=p.resolve(u,h),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,t)),u=(0,a._guard)(u,(0,a._bind)(a._objectIsAlive,r)),u.then(function(e){return t._adapterRun(function(){var r=(0,i.normalizeResponseHelper)(c,t,l,e,null,"findBelongsTo");if(!r.data)return null;var a=t.push(r);return a._internalModel})},null,"DS: Extract payload of "+r+" : "+s.type)}function u(e,t,r,o,s){var d=r.modelName,l=t.peekAll(d),u=l.createSnapshot(s),c=e.findAll(t,r,o,u),h=(0,n.serializerForAdapter)(t,e,d),f="DS: Handle Adapter#findAll of "+r;return c=p.resolve(c,f),c=(0,a._guard)(c,(0,a._bind)(a._objectIsAlive,t)),c.then(function(e){return t._adapterRun(function(){var a=(0,i.normalizeResponseHelper)(h,t,r,e,null,"findAll");t.push(a)}),t.didUpdateAll(r),t.peekAll(d)},null,"DS: Extract payload of findAll "+r)}function c(e,t,r,o,s){var d=r.modelName,l=e.query(t,r,o,s),u=(0,n.serializerForAdapter)(t,e,d),c="DS: Handle Adapter#query of "+r;return l=p.resolve(l,c),l=(0,a._guard)(l,(0,a._bind)(a._objectIsAlive,t)),l.then(function(e){var a,n;return t._adapterRun(function(){n=(0,i.normalizeResponseHelper)(u,t,r,e,null,"query"),a=t.push(n)}),s.loadRecords(a,n),s},null,"DS: Extract payload of query "+r)}function h(e,t,r,o){var s=r.modelName,d=e.queryRecord(t,r,o),l=(0,n.serializerForAdapter)(t,e,s),u="DS: Handle Adapter#queryRecord of "+r;return d=p.resolve(d,u),d=(0,a._guard)(d,(0,a._bind)(a._objectIsAlive,t)),d.then(function(e){var a;return t._adapterRun(function(){var n=(0,i.normalizeResponseHelper)(l,t,r,e,null,"queryRecord");a=t.push(n)}),a},null,"DS: Extract payload of queryRecord "+r)}e._find=o,e._findMany=s,e._findHasMany=d,e._findBelongsTo=l,e._findAll=u,e._query=c,e._queryRecord=h;var p=t["default"].RSVP.Promise}),t("ember-data/-private/system/store/serializer-response",["exports","ember","ember-data/-private/debug"],function(e,t,r){function a(e){var t=[];return e&&"object"==typeof e?("data"in e||"errors"in e||"meta"in e?"data"in e&&"errors"in e&&t.push('Top level keys "errors" and "data" cannot both be present in a JSON API document'):t.push('One or more of the following keys must be present: "data", "errors", "meta".'),"data"in e&&(null===e.data||Array.isArray(e.data)||"object"==typeof e.data||t.push("data must be null, an object, or an array")),"meta"in e&&"object"!=typeof e.meta&&t.push("meta must be an object"),"errors"in e&&(Array.isArray(e.errors)||t.push("errors must be an array")),"links"in e&&"object"!=typeof e.links&&t.push("links must be an object"),"jsonapi"in e&&"object"!=typeof e.jsonapi&&t.push("jsonapi must be an object"),"included"in e&&"object"!=typeof e.included&&t.push("included must be an array")):t.push("Top level of a JSON API document must be an object"),t}function i(e,t,r,a,i,n){var o=e.normalizeResponse(t,r,a,i,n);return o}e.validateDocumentStructure=a,e.normalizeResponseHelper=i}),t("ember-data/-private/system/store/serializers",["exports"],function(e){function t(e,t,r){var a=t.serializer;return void 0===a&&(a=e.serializerFor(r)),null!==a&&void 0!==a||(a={extract:function(e,t,r){return r}}),a}e.serializerForAdapter=t}),t("ember-data/-private/transforms",["exports","ember-data/transform","ember-data/-private/transforms/number","ember-data/-private/transforms/date","ember-data/-private/transforms/string","ember-data/-private/transforms/boolean"],function(e,t,r,a,i,n){e.Transform=t["default"],e.NumberTransform=r["default"],e.DateTransform=a["default"],e.StringTransform=i["default"],e.BooleanTransform=n["default"]}),t("ember-data/-private/transforms/boolean",["exports","ember","ember-data/transform","ember-data/-private/features"],function(e,t,r,a){var i=t["default"].isNone;e["default"]=r["default"].extend({deserialize:function(e,t){var r=typeof e;return i(e)&&t.allowNull===!0?null:"boolean"===r?e:"string"===r?null!==e.match(/^true$|^t$|^1$/i):"number"===r?1===e:!1;
4
+ },serialize:function(e,t){return i(e)&&t.allowNull===!0?null:Boolean(e)}})}),t("ember-data/-private/transforms/date",["exports","ember-data/-private/ext/date","ember-data/transform"],function(e,t,r){e["default"]=r["default"].extend({deserialize:function(e){var r=typeof e;return"string"===r?new Date((0,t.parseDate)(e)):"number"===r?new Date(e):null===e||void 0===e?e:null},serialize:function(e){return e instanceof Date?e.toISOString():null}})}),t("ember-data/-private/transforms/number",["exports","ember","ember-data/transform"],function(e,t,r){function a(e){return e===e&&e!==1/0&&e!==-(1/0)}var i=t["default"].isEmpty;e["default"]=r["default"].extend({deserialize:function(e){var t;return i(e)?null:(t=Number(e),a(t)?t:null)},serialize:function(e){var t;return i(e)?null:(t=Number(e),a(t)?t:null)}})}),t("ember-data/-private/transforms/string",["exports","ember","ember-data/transform"],function(e,t,r){var a=t["default"].isNone;e["default"]=r["default"].extend({deserialize:function(e){return a(e)?null:String(e)},serialize:function(e){return a(e)?null:String(e)}})}),t("ember-data/-private/utils",["exports","ember"],function(e,t){function r(e){return i(e,"attributes").has("type")||i(e,"relationshipsByName").has("type")}function a(e){var r;return t["default"].getOwner&&(r=t["default"].getOwner(e)),!r&&e.container&&(r=e.container),r&&r.lookupFactory&&!r._lookupFactory&&(r._lookupFactory=r.lookupFactory,r.register=function(){var e=r.registry||r._registry||r;return e.register.apply(e,arguments)}),r}var i=t["default"].get;e.modelHasAttributeOrRelationshipNamedType=r,e.getOwner=a}),t("ember-data/-private/utils/parse-response-headers",["exports","ember-data/-private/system/empty-object"],function(e,t){function r(e){return Array.isArray(e)?e:Array.from(e)}function a(e){var a=new t["default"];if(!e)return a;var n=e.split(i);return n.forEach(function(e){var t=e.split(":"),i=r(t),n=i[0],o=i.slice(1);n=n.trim(),o=o.join(":").trim(),o&&(a[n]=o)}),a}e["default"]=a;var i="\r\n"}),t("ember-data/adapter",["exports","ember"],function(e,t){var r=t["default"].get;e["default"]=t["default"].Object.extend({defaultSerializer:"-default",findRecord:null,findAll:null,query:null,queryRecord:null,generateIdForRecord:null,serialize:function(e,t){return r(e.record,"store").serializerFor(e.modelName).serialize(e,t)},createRecord:null,updateRecord:null,deleteRecord:null,coalesceFindRequests:!0,findMany:null,groupRecordsForFindMany:function(e,t){return[t]},shouldReloadRecord:function(e,t){return!1},shouldReloadAll:function(e,t){return!t.length},shouldBackgroundReloadRecord:function(e,t){return!0},shouldBackgroundReloadAll:function(e,t){return!0}})}),t("ember-data/adapters/errors",["exports","ember","ember-data/-private/debug","ember-data/-private/features"],function(e,t,r,a){function i(e){var t=arguments.length<=1||void 0===arguments[1]?"Adapter operation failed":arguments[1];this.isAdapterError=!0,l.call(this,t),this.errors=e||[{title:"Adapter Error",detail:t}]}function n(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],r=t.message;return o(e,r)}}function o(e,t){var r=function(r,a){e.call(this,r,a||t)};return r.prototype=Object.create(e.prototype),p&&(r.extend=n(r)),r}function s(e){var r=[];return t["default"].isPresent(e)&&Object.keys(e).forEach(function(a){for(var i=t["default"].makeArray(e[a]),n=0;n<i.length;n++){var o="Invalid Attribute",s="/data/attributes/"+a;a===h&&(o="Invalid Document",s="/data"),r.push({title:o,detail:i[n],source:{pointer:s}})}}),r}function d(e){var r={};return t["default"].isPresent(e)&&e.forEach(function(e){if(e.source&&e.source.pointer){var t=e.source.pointer.match(u);t?t=t[2]:-1!==e.source.pointer.search(c)&&(t=h),t&&(r[t]=r[t]||[],r[t].push(e.detail||e.title))}}),r}e.AdapterError=i,e.errorsHashToArray=s,e.errorsArrayToHash=d;var l=t["default"].Error,u=/^\/?data\/(attributes|relationships)\/(.*)/,c=/^\/?data/,h="base",p=!1;i.prototype=Object.create(l.prototype),p&&(i.extend=n(i));var f=o(i,"The adapter rejected the commit because it was invalid");e.InvalidError=f;var m=o(i,"The adapter operation timed out");e.TimeoutError=m;var y=o(i,"The adapter operation was aborted");e.AbortError=y;var v=p?o(i,"The adapter operation is unauthorized"):null;e.UnauthorizedError=v;var b=p?o(i,"The adapter operation is forbidden"):null;e.ForbiddenError=b;var g=p?o(i,"The adapter could not find the resource"):null;e.NotFoundError=g;var R=p?o(i,"The adapter operation failed due to a conflict"):null;e.ConflictError=R;var _=p?o(i,"The adapter operation failed due to a server error"):null;e.ServerError=_}),t("ember-data/adapters/json-api",["exports","ember","ember-data/adapters/rest","ember-data/-private/features"],function(e,t,r,a){var i=r["default"].extend({defaultSerializer:"-json-api",ajaxOptions:function(e,t,r){var a=this._super.apply(this,arguments);a.contentType&&(a.contentType="application/vnd.api+json");var i=a.beforeSend;return a.beforeSend=function(e){e.setRequestHeader("Accept","application/vnd.api+json"),i&&i(e)},a},coalesceFindRequests:!1,findMany:function(e,t,r,a){return this._super.apply(this,arguments)},pathForType:function(e){var r=t["default"].String.dasherize(e);return t["default"].String.pluralize(r)},updateRecord:function(e,t,r){return this._super.apply(this,arguments)}});i.reopen({methodForRequest:function(e){return"updateRecord"===e.requestType?"PATCH":this._super.apply(this,arguments)},dataForRequest:function(e){var t=e.requestType,r=e.ids;if("findMany"===t)return{filter:{id:r.join(",")}};if("updateRecord"===t){var a=e.store,i=e.type,n=e.snapshot,o={},s=a.serializerFor(i.modelName);return s.serializeIntoHash(o,i,n,{includeId:!0}),o}return this._super.apply(this,arguments)},headersForRequest:function(){var e=this._super.apply(this,arguments)||{};return e.Accept="application/vnd.api+json",e},_requestToJQueryAjaxHash:function(){var e=this._super.apply(this,arguments);return e.contentType&&(e.contentType="application/vnd.api+json"),e}}),e["default"]=i}),t("ember-data/adapters/rest",["exports","ember","ember-data/adapter","ember-data/adapters/errors","ember-data/-private/adapters/build-url-mixin","ember-data/-private/features","ember-data/-private/debug","ember-data/-private/utils/parse-response-headers"],function(e,t,r,a,i,n,o,s){function d(e,t){return"function"!=typeof String.prototype.endsWith?-1!==e.indexOf(t,e.length-t.length):e.endsWith(t)}var l=t["default"].MapWithDefault,u=t["default"].get,c=r["default"].extend(i["default"],{defaultSerializer:"-rest",sortQueryParams:function(e){var t=Object.keys(e),r=t.length;if(2>r)return e;for(var a={},i=t.sort(),n=0;r>n;n++)a[i[n]]=e[i[n]];return a},coalesceFindRequests:!1,findRecord:function(e,t,r,a){var i=this._requestFor({store:e,type:t,id:r,snapshot:a,requestType:"findRecord"});return this._makeRequest(i)},findAll:function(e,t,r,a){var i=this.buildQuery(a),n=this._requestFor({store:e,type:t,sinceToken:r,query:i,snapshots:a,requestType:"findAll"});return this._makeRequest(n)},query:function(e,t,r){var a=this._requestFor({store:e,type:t,query:r,requestType:"query"});return this._makeRequest(a)},queryRecord:function(e,t,r){var a=this._requestFor({store:e,type:t,query:r,requestType:"queryRecord"});return this._makeRequest(a)},findMany:function(e,t,r,a){var i=this._requestFor({store:e,type:t,ids:r,snapshots:a,requestType:"findMany"});return this._makeRequest(i)},findHasMany:function(e,t,r,a){var i=this._requestFor({store:e,snapshot:t,url:r,relationship:a,requestType:"findHasMany"});return this._makeRequest(i)},findBelongsTo:function(e,t,r,a){var i=this._requestFor({store:e,snapshot:t,url:r,relationship:a,requestType:"findBelongsTo"});return this._makeRequest(i)},createRecord:function(e,t,r){var a=this._requestFor({store:e,type:t,snapshot:r,requestType:"createRecord"});return this._makeRequest(a)},updateRecord:function(e,t,r){var a=this._requestFor({store:e,type:t,snapshot:r,requestType:"updateRecord"});return this._makeRequest(a)},deleteRecord:function(e,t,r){var a=this._requestFor({store:e,type:t,snapshot:r,requestType:"deleteRecord"});return this._makeRequest(a)},_stripIDFromURL:function(e,t){var r=this.buildURL(t.modelName,t.id,t),a=r.split("/"),i=a[a.length-1],n=t.id;return decodeURIComponent(i)===n?a[a.length-1]="":d(i,"?id="+n)&&(a[a.length-1]=i.substring(0,i.length-n.length-1)),a.join("/")},maxURLLength:2048,groupRecordsForFindMany:function(e,t){function r(t,r,a){var n=i._stripIDFromURL(e,t[0]),o=0,s=[[]];return t.forEach(function(e){var t=encodeURIComponent(e.id).length+a;n.length+o+t>=r&&(o=0,s.push([])),o+=t;var i=s.length-1;s[i].push(e)}),s}var a=l.create({defaultValue:function(){return[]}}),i=this,n=this.maxURLLength;t.forEach(function(t){var r=i._stripIDFromURL(e,t);a.get(r).push(t)});var o=[];return a.forEach(function(e,t){var a="&ids%5B%5D=".length,i=r(e,n,a);i.forEach(function(e){return o.push(e)})}),o},handleResponse:function(e,t,r,i){if(this.isSuccess(e,t,r))return r;if(this.isInvalid(e,t,r))return new a.InvalidError(r.errors);var n=this.normalizeErrorResponse(e,t,r),o=this.generatedDetailedMessage(e,t,r,i);return new a.AdapterError(n,o)},isSuccess:function(e,t,r){return e>=200&&300>e||304===e},isInvalid:function(e,t,r){return 422===e},ajax:function(e,r,i){var n=this,o={url:e,method:r};return new t["default"].RSVP.Promise(function(d,l){var u=n.ajaxOptions(e,r,i);u.success=function(e,r,a){var i=n.handleResponse(a.status,(0,s["default"])(a.getAllResponseHeaders()),e,o);i&&i.isAdapterError?t["default"].run.join(null,l,i):t["default"].run.join(null,d,i)},u.error=function(e,r,i){var d=void 0;d=i instanceof Error?i:"timeout"===r?new a.TimeoutError:"abort"===r?new a.AbortError:n.handleResponse(e.status,(0,s["default"])(e.getAllResponseHeaders()),n.parseErrorResponse(e.responseText)||i,o),t["default"].run.join(null,l,d)},n._ajaxRequest(u)},"DS: RESTAdapter#ajax "+r+" to "+e)},_ajaxRequest:function(e){t["default"].$.ajax(e)},ajaxOptions:function(e,t,r){var a=r||{};a.url=e,a.type=t,a.dataType="json",a.context=this,a.data&&"GET"!==t&&(a.contentType="application/json; charset=utf-8",a.data=JSON.stringify(a.data));var i=u(this,"headers");return void 0!==i&&(a.beforeSend=function(e){Object.keys(i).forEach(function(t){return e.setRequestHeader(t,i[t])})}),a},parseErrorResponse:function(e){var r=e;try{r=t["default"].$.parseJSON(e)}catch(a){}return r},normalizeErrorResponse:function(e,t,r){return r&&"object"==typeof r&&r.errors?r.errors:[{status:""+e,title:"The backend responded with an error",detail:""+r}]},generatedDetailedMessage:function(e,t,r,a){var i,n=t["Content-Type"]||"Empty Content-Type";i="text/html"===n&&r.length>250?"[Omitted Lengthy HTML]":r;var o=a.method+" "+a.url,s="Payload ("+n+")";return["Ember Data Request "+o+" returned a "+e,s,i].join("\n")},buildQuery:function(e){var t={};if(e){var r=e.include;r&&(t.include=r)}return t}});c.reopen({dataForRequest:function(e){var t=e.store,r=e.type,a=e.snapshot,i=e.requestType,n=e.query;r=r||a&&a.type;var o=t.serializerFor(r.modelName),s={};switch(i){case"createRecord":o.serializeIntoHash(s,r,a,{includeId:!0});break;case"updateRecord":o.serializeIntoHash(s,r,a);break;case"findRecord":s=this.buildQuery(a);break;case"findAll":e.sinceToken&&(n=n||{},n.since=e.sinceToken),s=n;break;case"query":case"queryRecord":this.sortQueryParams&&(n=this.sortQueryParams(n)),s=n;break;case"findMany":s={ids:e.ids};break;default:s=void 0}return s},methodForRequest:function(e){var t=e.requestType;switch(t){case"createRecord":return"POST";case"updateRecord":return"PUT";case"deleteRecord":return"DELETE"}return"GET"},urlForRequest:function(e){var t=e.type,r=e.id,a=e.ids,i=e.snapshot,n=e.snapshots,o=e.requestType,s=e.query;switch(t=t||i&&i.type,r=r||i&&i.id,o){case"findAll":return this.buildURL(t.modelName,null,n,o);case"query":case"queryRecord":return this.buildURL(t.modelName,null,null,o,s);case"findMany":return this.buildURL(t.modelName,a,n,o);case"findHasMany":case"findBelongsTo":var d=this.buildURL(t.modelName,r,i,o);return this.urlPrefix(e.url,d)}return this.buildURL(t.modelName,r,i,o,s)},headersForRequest:function(e){return this.get("headers")},_requestFor:function(e){var t=this.methodForRequest(e),r=this.urlForRequest(e),a=this.headersForRequest(e),i=this.dataForRequest(e);return{method:t,url:r,headers:a,data:i}},_requestToJQueryAjaxHash:function(e){var t={};t.type=e.method,t.url=e.url,t.dataType="json",t.context=this,e.data&&("GET"!==e.type?(t.contentType="application/json; charset=utf-8",t.data=JSON.stringify(e.data)):t.data=e.data);var r=e.headers;return void 0!==r&&(t.beforeSend=function(e){Object.keys(r).forEach(function(t){return e.setRequestHeader(t,r[t])})}),t},_makeRequest:function(e){var r=this,i=this._requestToJQueryAjaxHash(e),n=e.method,o=e.url,d={method:n,url:o};return new t["default"].RSVP.Promise(function(e,n){i.success=function(i,o,l){var u=r.handleResponse(l.status,(0,s["default"])(l.getAllResponseHeaders()),i,d);u instanceof a.AdapterError?t["default"].run.join(null,n,u):t["default"].run.join(null,e,u)},i.error=function(e,i,o){var l=void 0;l=o instanceof Error?o:"timeout"===i?new a.TimeoutError:"abort"===i?new a.AbortError:r.handleResponse(e.status,(0,s["default"])(e.getAllResponseHeaders()),r.parseErrorResponse(e.responseText)||o,d),t["default"].run.join(null,n,l)},r._ajaxRequest(i)},"DS: RESTAdapter#makeRequest: "+n+" "+o)}}),e["default"]=c}),t("ember-data/attr",["exports","ember","ember-data/-private/debug"],function(e,t,r){function a(e,t,r){if("function"==typeof t.defaultValue)return t.defaultValue.apply(null,arguments);var a=t.defaultValue;return a}function i(e,t){return t in e._attributes||t in e._inFlightAttributes||t in e._data}function n(e,t){return t in e._attributes?e._attributes[t]:t in e._inFlightAttributes?e._inFlightAttributes[t]:e._data[t]}function o(e,r){"object"==typeof e?(r=e,e=void 0):r=r||{};var o={type:e,isAttribute:!0,options:r};return t["default"].computed({get:function(e){var t=this._internalModel;return i(t,e)?n(t,e):a(this,r,e)},set:function(e,t){var r,a=this._internalModel,i=n(a,e);return t!==i&&(a._attributes[e]=t,r=e in a._inFlightAttributes?a._inFlightAttributes[e]:a._data[e],this._internalModel.send("didSetProperty",{name:e,oldValue:i,originalValue:r,value:t})),t}}).meta(o)}e["default"]=o}),t("ember-data",["exports","ember","ember-data/-private/debug","ember-data/-private/features","ember-data/-private/global","ember-data/-private/core","ember-data/-private/system/normalize-model-name","ember-data/-private/system/model/internal-model","ember-data/-private/system/promise-proxies","ember-data/-private/system/store","ember-data/-private/system/model","ember-data/model","ember-data/-private/system/snapshot","ember-data/adapter","ember-data/serializer","ember-data/-private/system/debug","ember-data/adapters/errors","ember-data/-private/system/record-arrays","ember-data/-private/system/many-array","ember-data/-private/system/record-array-manager","ember-data/-private/adapters","ember-data/-private/adapters/build-url-mixin","ember-data/-private/serializers","ember-inflector","ember-data/serializers/embedded-records-mixin","ember-data/-private/transforms","ember-data/relationships","ember-data/setup-container","ember-data/-private/instance-initializers/initialize-store-service","ember-data/-private/system/container-proxy","ember-data/-private/system/relationships/state/relationship"],function(e,t,r,a,i,n,o,s,d,l,u,c,h,p,f,m,y,v,b,g,R,_,A,F,z,M,S,T,k,x,E){if(t["default"].VERSION.match(/^1\.([0-9]|1[0-2])\./))throw new t["default"].Error("Ember Data requires at least Ember 1.13.0, but you have "+t["default"].VERSION+". Please upgrade your version of Ember, then upgrade Ember Data.");n["default"].Store=l.Store,n["default"].PromiseArray=d.PromiseArray,n["default"].PromiseObject=d.PromiseObject,n["default"].PromiseManyArray=d.PromiseManyArray,n["default"].Model=c["default"],n["default"].RootState=u.RootState,n["default"].attr=u.attr,n["default"].Errors=u.Errors,n["default"].InternalModel=s["default"],n["default"].Snapshot=h["default"],n["default"].Adapter=p["default"],n["default"].AdapterError=y.AdapterError,n["default"].InvalidError=y.InvalidError,n["default"].TimeoutError=y.TimeoutError,n["default"].AbortError=y.AbortError,n["default"].errorsHashToArray=y.errorsHashToArray,n["default"].errorsArrayToHash=y.errorsArrayToHash,n["default"].Serializer=f["default"],n["default"].DebugAdapter=m["default"],n["default"].RecordArray=v.RecordArray,n["default"].FilteredRecordArray=v.FilteredRecordArray,n["default"].AdapterPopulatedRecordArray=v.AdapterPopulatedRecordArray,n["default"].ManyArray=b["default"],n["default"].RecordArrayManager=g["default"],n["default"].RESTAdapter=R.RESTAdapter,n["default"].BuildURLMixin=_["default"],n["default"].RESTSerializer=A.RESTSerializer,n["default"].JSONSerializer=A.JSONSerializer,n["default"].JSONAPIAdapter=R.JSONAPIAdapter,n["default"].JSONAPISerializer=A.JSONAPISerializer,n["default"].Transform=M.Transform,n["default"].DateTransform=M.DateTransform,n["default"].StringTransform=M.StringTransform,n["default"].NumberTransform=M.NumberTransform,n["default"].BooleanTransform=M.BooleanTransform,n["default"].EmbeddedRecordsMixin=z["default"],n["default"].belongsTo=S.belongsTo,n["default"].hasMany=S.hasMany,n["default"].Relationship=E["default"],n["default"].ContainerProxy=x["default"],n["default"]._setupContainer=T["default"],n["default"]._initializeStoreService=k["default"],Object.defineProperty(n["default"],"normalizeModelName",{enumerable:!0,writable:!1,configurable:!1,value:o["default"]}),Object.defineProperty(i["default"],"DS",{configurable:!0,get:function(){return n["default"]}}),e["default"]=n["default"]}),t("ember-data/model",["exports","ember-data/-private/system/model"],function(e,t){e["default"]=t["default"]}),t("ember-data/relationships",["exports","ember-data/-private/system/relationships/belongs-to","ember-data/-private/system/relationships/has-many"],function(e,t,r){e.belongsTo=t["default"],e.hasMany=r["default"]}),t("ember-data/serializer",["exports","ember"],function(e,t){e["default"]=t["default"].Object.extend({normalizeResponse:null,serialize:null,normalize:function(e,t){return t}})}),t("ember-data/serializers/embedded-records-mixin",["exports","ember","ember-data/-private/debug","ember-data/-private/features"],function(e,t,r,a){function i(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var n=t["default"].get,o=t["default"].set,s=t["default"].String.camelize;e["default"]=t["default"].Mixin.create({normalize:function(e,t,r){var a=this._super(e,t,r);return this._extractEmbeddedRecords(this,this.store,e,a)},keyForRelationship:function(e,t,r){return"serialize"===r&&this.hasSerializeRecordsOption(e)||"deserialize"===r&&this.hasDeserializeRecordsOption(e)?this.keyForAttribute(e,r):this._super(e,t,r)||e},serializeBelongsTo:function(e,t,r){var a=r.key;if(this.noSerializeOptionSpecified(a))return void this._super(e,t,r);var i,n=this.hasSerializeIdsOption(a),o=this.hasSerializeRecordsOption(a),s=e.belongsTo(a);n?(i=this.keyForRelationship(a,r.kind,"serialize"),s?(t[i]=s.id,r.options.polymorphic&&this.serializePolymorphicType(e,t,r)):t[i]=null):o&&this._serializeEmbeddedBelongsTo(e,t,r)},_serializeEmbeddedBelongsTo:function(e,t,r){var a=e.belongsTo(r.key),i=this._getMappedKey(r.key,e.type);i===r.key&&this.keyForRelationship&&(i=this.keyForRelationship(r.key,r.kind,"serialize")),a?(t[i]=a.serialize({includeId:!0}),this.removeEmbeddedForeignKey(e,a,r,t[i]),r.options.polymorphic&&this.serializePolymorphicType(e,t,r)):t[i]=null},serializeHasMany:function(e,t,r){var a=r.key;if(this.noSerializeOptionSpecified(a))return void this._super(e,t,r);if(this.hasSerializeIdsOption(a)){var i=this.keyForRelationship(a,r.kind,"serialize");t[i]=e.hasMany(a,{ids:!0})}else this.hasSerializeRecordsOption(a)?this._serializeEmbeddedHasMany(e,t,r):this.hasSerializeIdsAndTypesOption(a)&&this._serializeHasManyAsIdsAndTypes(e,t,r)},_serializeHasManyAsIdsAndTypes:function(e,r,a){var i=this.keyForAttribute(a.key,"serialize"),n=e.hasMany(a.key);r[i]=t["default"].A(n).map(function(e){return{id:e.id,type:e.modelName}})},_serializeEmbeddedHasMany:function(e,t,r){var a=this._getMappedKey(r.key,e.type);a===r.key&&this.keyForRelationship&&(a=this.keyForRelationship(r.key,r.kind,"serialize")),t[a]=this._generateSerializedHasMany(e,r)},_generateSerializedHasMany:function(e,r){for(var a=e.hasMany(r.key),i=t["default"].A(a),n=new Array(i.length),o=0;o<i.length;o++){var s=i[o],d=s.serialize({includeId:!0});this.removeEmbeddedForeignKey(e,s,r,d),n[o]=d}return n},removeEmbeddedForeignKey:function(e,t,r,a){if("hasMany"!==r.kind&&"belongsTo"===r.kind){var i=e.type.inverseFor(r.key,this.store);if(i){var n=i.name,o=this.store.serializerFor(t.modelName),s=o.keyForRelationship(n,i.kind,"deserialize");s&&delete a[s]}}},hasEmbeddedAlwaysOption:function(e){var t=this.attrsOption(e);return t&&"always"===t.embedded},hasSerializeRecordsOption:function(e){var t=this.hasEmbeddedAlwaysOption(e),r=this.attrsOption(e);return t||r&&"records"===r.serialize},hasSerializeIdsOption:function(e){var t=this.attrsOption(e);return t&&("ids"===t.serialize||"id"===t.serialize)},hasSerializeIdsAndTypesOption:function(e){var t=this.attrsOption(e);return t&&("ids-and-types"===t.serialize||"id-and-type"===t.serialize)},noSerializeOptionSpecified:function(e){var t=this.attrsOption(e);return!(t&&(t.serialize||t.embedded))},hasDeserializeRecordsOption:function(e){var t=this.hasEmbeddedAlwaysOption(e),r=this.attrsOption(e);return t||r&&"records"===r.deserialize},attrsOption:function(e){var t=this.get("attrs");return t&&(t[s(e)]||t[e])},_extractEmbeddedRecords:function(e,t,r,a){var i=this;return r.eachRelationship(function(r,n){e.hasDeserializeRecordsOption(r)&&("hasMany"===n.kind&&i._extractEmbeddedHasMany(t,r,a,n),"belongsTo"===n.kind&&i._extractEmbeddedBelongsTo(t,r,a,n))}),a},_extractEmbeddedHasMany:function(e,t,r,a){var s=n(r,"data.relationships."+t+".data");if(s){for(var d=new Array(s.length),l=0;l<s.length;l++){var u=s[l],c=this._normalizeEmbeddedRelationship(e,a,u),h=c.data,p=c.included;if(r.included=r.included||[],r.included.push(h),p){var f;(f=r.included).push.apply(f,i(p))}d[l]={id:h.id,type:h.type}}var m={data:d};o(r,"data.relationships."+t,m)}},_extractEmbeddedBelongsTo:function(e,t,r,a){var s=n(r,"data.relationships."+t+".data");if(s){var d=this._normalizeEmbeddedRelationship(e,a,s),l=d.data,u=d.included;if(r.included=r.included||[],r.included.push(l),u){var c;(c=r.included).push.apply(c,i(u))}var h={id:l.id,type:l.type},p={data:h};o(r,"data.relationships."+t,p)}},_normalizeEmbeddedRelationship:function(e,t,r){var a=t.type;t.options.polymorphic&&(a=r.type);var i=e.modelFor(a),n=e.serializerFor(a);return n.normalize(i,r,null)},isEmbeddedRecordsMixin:!0})}),t("ember-data/serializers/json-api",["exports","ember","ember-data/-private/debug","ember-data/serializers/json","ember-data/-private/system/normalize-model-name","ember-inflector","ember-data/-private/features"],function(e,t,r,a,i,n,o){var s=t["default"].String.dasherize,d=a["default"].extend({_normalizeDocumentHelper:function(e){if("object"===t["default"].typeOf(e.data))e.data=this._normalizeResourceHelper(e.data);else if(Array.isArray(e.data)){for(var r=new Array(e.data.length),a=0;a<e.data.length;a++){var i=e.data[a];r[a]=this._normalizeResourceHelper(i)}e.data=r}if(Array.isArray(e.included)){for(var r=new Array(e.included.length),a=0;a<e.included.length;a++){var n=e.included[a];r[a]=this._normalizeResourceHelper(n)}e.included=r}return e},_normalizeRelationshipDataHelper:function(e){var t=this.modelNameFromPayloadKey(e.type);return e.type=t,e},_normalizeResourceHelper:function(e){var t=void 0,r=void 0;if(t=this.modelNameFromPayloadKey(e.type),r="modelNameFromPayloadKey",!this.store._hasModelFor(t))return null;var a=this.store.modelFor(t),i=this.store.serializerFor(t),n=i.normalize(a,e),o=n.data;return o},pushPayload:function(e,t){var r=this._normalizeDocumentHelper(t);e.push(r)},_normalizeResponse:function(e,t,r,a,i,n){var o=this._normalizeDocumentHelper(r);return o},normalizeQueryRecordResponse:function(){var e=this._super.apply(this,arguments);return e},extractAttributes:function(e,t){var r=this,a={};return t.attributes&&e.eachAttribute(function(e){var i=r.keyForAttribute(e,"deserialize");void 0!==t.attributes[i]&&(a[e]=t.attributes[i])}),a},extractRelationship:function(e){if("object"===t["default"].typeOf(e.data)&&(e.data=this._normalizeRelationshipDataHelper(e.data)),Array.isArray(e.data)){for(var r=new Array(e.data.length),a=0;a<e.data.length;a++){var i=e.data[a];r[a]=this._normalizeRelationshipDataHelper(i)}e.data=r}return e},extractRelationships:function(e,t){var r=this,a={};return t.relationships&&e.eachRelationship(function(e,i){var n=r.keyForRelationship(e,i.kind,"deserialize");if(void 0!==t.relationships[n]){var o=t.relationships[n];a[e]=r.extractRelationship(o)}}),a},_extractType:function(e,t){return this.modelNameFromPayloadKey(t.type)},modelNameFromPayloadKey:function(e){return(0,n.singularize)((0,i["default"])(e))},payloadKeyFromModelName:function(e){return(0,n.pluralize)(e)},normalize:function(e,t){t.attributes&&this.normalizeUsingDeclaredMapping(e,t.attributes),t.relationships&&this.normalizeUsingDeclaredMapping(e,t.relationships);var r={id:this.extractId(e,t),type:this._extractType(e,t),attributes:this.extractAttributes(e,t),relationships:this.extractRelationships(e,t)};return this.applyTransforms(e,r.attributes),{data:r}},keyForAttribute:function(e,t){return s(e)},keyForRelationship:function(e,t,r){return s(e)},serialize:function(e,t){var r=this._super.apply(this,arguments),a=void 0;return a=this.payloadKeyFromModelName(e.modelName),r.type=a,{data:r}},serializeAttribute:function(e,t,r,a){var i=a.type;if(this._canSerialize(r)){t.attributes=t.attributes||{};var n=e.attr(r);if(i){var o=this.transformFor(i);n=o.serialize(n)}var s=this._getMappedKey(r,e.type);s===r&&(s=this.keyForAttribute(r,"serialize")),t.attributes[s]=n}},serializeBelongsTo:function(e,t,r){var a=r.key;if(this._canSerialize(a)){var i=e.belongsTo(a);if(void 0!==i){t.relationships=t.relationships||{};var n=this._getMappedKey(a,e.type);n===a&&(n=this.keyForRelationship(a,"belongsTo","serialize"));var o=null;if(i){var s=void 0;s=this.payloadKeyFromModelName(i.modelName),o={type:s,id:i.id}}t.relationships[n]={data:o}}}},serializeHasMany:function(e,t,r){var a=r.key,i="_shouldSerializeHasMany";if(this[i](e,a,r)){var n=e.hasMany(a);if(void 0!==n){t.relationships=t.relationships||{};var o=this._getMappedKey(a,e.type);o===a&&this.keyForRelationship&&(o=this.keyForRelationship(a,"hasMany","serialize"));for(var s=new Array(n.length),d=0;d<n.length;d++){var l=n[d],u=void 0;u=this.payloadKeyFromModelName(l.modelName),s[d]={type:u,id:l.id}}t.relationships[o]={data:s}}}}});e["default"]=d}),t("ember-data/serializers/json",["exports","ember","ember-data/-private/debug","ember-data/serializer","ember-data/-private/system/coerce-id","ember-data/-private/system/normalize-model-name","ember-data/-private/utils","ember-data/-private/features","ember-data/adapters/errors"],function(e,t,r,a,i,n,o,s,d){function l(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var u=t["default"].get,c=t["default"].isNone,h=t["default"].assign||t["default"].merge,p=a["default"].extend({primaryKey:"id",mergedProperties:["attrs"],applyTransforms:function(e,t){var r=this,a=u(e,"attributes");return e.eachTransformedAttribute(function(e,i){if(void 0!==t[e]){var n=r.transformFor(i),o=a.get(e);t[e]=n.deserialize(t[e],o.options)}}),t},normalizeResponse:function(e,t,r,a,i){switch(i){case"findRecord":return this.normalizeFindRecordResponse.apply(this,arguments);case"queryRecord":return this.normalizeQueryRecordResponse.apply(this,arguments);case"findAll":return this.normalizeFindAllResponse.apply(this,arguments);case"findBelongsTo":return this.normalizeFindBelongsToResponse.apply(this,arguments);case"findHasMany":return this.normalizeFindHasManyResponse.apply(this,arguments);case"findMany":return this.normalizeFindManyResponse.apply(this,arguments);case"query":return this.normalizeQueryResponse.apply(this,arguments);case"createRecord":return this.normalizeCreateRecordResponse.apply(this,arguments);case"deleteRecord":return this.normalizeDeleteRecordResponse.apply(this,arguments);case"updateRecord":return this.normalizeUpdateRecordResponse.apply(this,arguments)}},normalizeFindRecordResponse:function(e,t,r,a,i){return this.normalizeSingleResponse.apply(this,arguments)},normalizeQueryRecordResponse:function(e,t,r,a,i){return this.normalizeSingleResponse.apply(this,arguments)},normalizeFindAllResponse:function(e,t,r,a,i){return this.normalizeArrayResponse.apply(this,arguments)},normalizeFindBelongsToResponse:function(e,t,r,a,i){return this.normalizeSingleResponse.apply(this,arguments)},normalizeFindHasManyResponse:function(e,t,r,a,i){return this.normalizeArrayResponse.apply(this,arguments)},normalizeFindManyResponse:function(e,t,r,a,i){return this.normalizeArrayResponse.apply(this,arguments)},normalizeQueryResponse:function(e,t,r,a,i){return this.normalizeArrayResponse.apply(this,arguments)},normalizeCreateRecordResponse:function(e,t,r,a,i){return this.normalizeSaveResponse.apply(this,arguments)},normalizeDeleteRecordResponse:function(e,t,r,a,i){return this.normalizeSaveResponse.apply(this,arguments)},normalizeUpdateRecordResponse:function(e,t,r,a,i){return this.normalizeSaveResponse.apply(this,arguments)},normalizeSaveResponse:function(e,t,r,a,i){return this.normalizeSingleResponse.apply(this,arguments)},normalizeSingleResponse:function(e,t,r,a,i){return this._normalizeResponse(e,t,r,a,i,!0)},normalizeArrayResponse:function(e,t,r,a,i){return this._normalizeResponse(e,t,r,a,i,!1)},_normalizeResponse:function(e,t,r,a,i,n){var o={data:null,included:[]},s=this.extractMeta(e,t,r);if(s&&(o.meta=s),n){var d=this.normalize(t,r),u=d.data,c=d.included;o.data=u,c&&(o.included=c)}else{for(var h=new Array(r.length),p=0,f=r.length;f>p;p++){var m=r[p],y=this.normalize(t,m),u=y.data,c=y.included;if(c){var v;(v=o.included).push.apply(v,l(c))}h[p]=u}o.data=h}return o},normalize:function(e,r){var a=null;return r&&(this.normalizeUsingDeclaredMapping(e,r),"object"===t["default"].typeOf(r.links)&&this.normalizeUsingDeclaredMapping(e,r.links),a={id:this.extractId(e,r),type:e.modelName,attributes:this.extractAttributes(e,r),relationships:this.extractRelationships(e,r)},this.applyTransforms(e,a.attributes)),{data:a}},extractId:function(e,t){var r=u(this,"primaryKey"),a=t[r];return(0,i["default"])(a)},extractAttributes:function(e,t){var r,a=this,i={};return e.eachAttribute(function(e){r=a.keyForAttribute(e,"deserialize"),void 0!==t[r]&&(i[e]=t[r])}),i},extractRelationship:function(e,r){if(t["default"].isNone(r))return null;if("object"===t["default"].typeOf(r)){r.id&&(r.id=(0,i["default"])(r.id));var a=this.store.modelFor(e);return r.type&&!(0,o.modelHasAttributeOrRelationshipNamedType)(a)&&(r.type=this.modelNameFromPayloadKey(r.type)),r}return{id:(0,i["default"])(r),type:e}},extractPolymorphicRelationship:function(e,t,r){return this.extractRelationship(e,t)},extractRelationships:function(e,r){var a=this,i={};return e.eachRelationship(function(e,n){var o=null,s=a.keyForRelationship(e,n.kind,"deserialize");if(void 0!==r[s]){var d=null,l=r[s];if("belongsTo"===n.kind)d=n.options.polymorphic?a.extractPolymorphicRelationship(n.type,l,{key:e,resourceHash:r,relationshipMeta:n}):a.extractRelationship(n.type,l);else if("hasMany"===n.kind&&!t["default"].isNone(l)){d=new Array(l.length);for(var u=0,c=l.length;c>u;u++){var h=l[u];d[u]=a.extractRelationship(n.type,h)}}o={data:d}}var p=a.keyForLink(e,n.kind);if(r.links&&void 0!==r.links[p]){var f=r.links[p];o=o||{},o.links={related:f}}o&&(i[e]=o)}),i},modelNameFromPayloadKey:function(e){return(0,n["default"])(e)},normalizeAttributes:function(e,t){var r,a=this;this.keyForAttribute&&e.eachAttribute(function(e){r=a.keyForAttribute(e,"deserialize"),e!==r&&void 0!==t[r]&&(t[e]=t[r],
5
+ delete t[r])})},normalizeRelationships:function(e,t){var r,a=this;this.keyForRelationship&&e.eachRelationship(function(e,i){r=a.keyForRelationship(e,i.kind,"deserialize"),e!==r&&void 0!==t[r]&&(t[e]=t[r],delete t[r])})},normalizeUsingDeclaredMapping:function(e,t){var r,a,i,n=u(this,"attrs");if(n)for(i in n)r=a=this._getMappedKey(i,e),void 0!==t[a]&&(u(e,"attributes").has(i)&&(r=this.keyForAttribute(i)),u(e,"relationshipsByName").has(i)&&(r=this.keyForRelationship(i)),a!==r&&(t[r]=t[a],delete t[a]))},_getMappedKey:function(e,t){var r,a=u(this,"attrs");return a&&a[e]&&(r=a[e],r.key&&(r=r.key),"string"==typeof r&&(e=r)),e},_canSerialize:function(e){var t=u(this,"attrs");return!t||!t[e]||t[e].serialize!==!1},_mustSerialize:function(e){var t=u(this,"attrs");return t&&t[e]&&t[e].serialize===!0},shouldSerializeHasMany:function(e,t,r){return this._shouldSerializeHasMany!==p.prototype._shouldSerializeHasMany,this._shouldSerializeHasMany(e,t,r)},_shouldSerializeHasMany:function(e,t,r){var a=e.type.determineRelationshipType(r,this.store);return this._mustSerialize(t)?!0:this._canSerialize(t)&&("manyToNone"===a||"manyToMany"===a)},serialize:function(e,t){var r=this,a={};if(t&&t.includeId){var i=e.id;i&&(a[u(this,"primaryKey")]=i)}return e.eachAttribute(function(t,i){r.serializeAttribute(e,a,t,i)}),e.eachRelationship(function(t,i){"belongsTo"===i.kind?r.serializeBelongsTo(e,a,i):"hasMany"===i.kind&&r.serializeHasMany(e,a,i)}),a},serializeIntoHash:function(e,t,r,a){h(e,this.serialize(r,a))},serializeAttribute:function(e,t,r,a){var i=a.type;if(this._canSerialize(r)){var n=e.attr(r);if(i){var o=this.transformFor(i);n=o.serialize(n,a.options)}var s=this._getMappedKey(r,e.type);s===r&&this.keyForAttribute&&(s=this.keyForAttribute(r,"serialize")),t[s]=n}},serializeBelongsTo:function(e,t,r){var a=r.key;if(this._canSerialize(a)){var i=e.belongsTo(a,{id:!0}),n=this._getMappedKey(a,e.type);n===a&&this.keyForRelationship&&(n=this.keyForRelationship(a,"belongsTo","serialize")),c(i)?t[n]=null:t[n]=i,r.options.polymorphic&&this.serializePolymorphicType(e,t,r)}},serializeHasMany:function(e,t,r){var a=r.key,i="_shouldSerializeHasMany";if(this[i](e,a,r)){var n=e.hasMany(a,{ids:!0});if(void 0!==n){var o=this._getMappedKey(a,e.type);o===a&&this.keyForRelationship&&(o=this.keyForRelationship(a,"hasMany","serialize")),t[o]=n}}},serializePolymorphicType:t["default"].K,extractMeta:function(e,t,r){if(r&&void 0!==r.meta){var a=r.meta;return delete r.meta,a}},extractErrors:function(e,t,r,a){var i=this;return r&&"object"==typeof r&&r.errors&&(r=(0,d.errorsArrayToHash)(r.errors),this.normalizeUsingDeclaredMapping(t,r),t.eachAttribute(function(e){var t=i.keyForAttribute(e,"deserialize");t!==e&&void 0!==r[t]&&(r[e]=r[t],delete r[t])}),t.eachRelationship(function(e){var t=i.keyForRelationship(e,"deserialize");t!==e&&void 0!==r[t]&&(r[e]=r[t],delete r[t])})),r},keyForAttribute:function(e,t){return e},keyForRelationship:function(e,t,r){return e},keyForLink:function(e,t){return e},transformFor:function(e,t){var r=(0,o.getOwner)(this).lookup("transform:"+e);return r}});e["default"]=p}),t("ember-data/serializers/rest",["exports","ember","ember-data/-private/debug","ember-data/serializers/json","ember-data/-private/system/normalize-model-name","ember-inflector","ember-data/-private/system/coerce-id","ember-data/-private/utils","ember-data/-private/features"],function(e,t,r,a,i,n,o,s,d){function l(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var u=t["default"].String.camelize,c=a["default"].extend({keyForPolymorphicType:function(e,t,r){var a=this.keyForRelationship(e);return a+"Type"},normalize:function(e,t,r){return this.normalizeHash&&this.normalizeHash[r]&&this.normalizeHash[r](t),this._super(e,t)},_normalizeArray:function(e,r,a,i){var n=this,o={data:[],included:[]},s=e.modelFor(r),d=e.serializerFor(r);return t["default"].makeArray(a).forEach(function(t){var r=n._normalizePolymorphicRecord(e,t,i,s,d),a=r.data,u=r.included;if(o.data.push(a),u){var c;(c=o.included).push.apply(c,l(u))}}),o},_normalizePolymorphicRecord:function(e,t,r,a,i){var n=i,o=a,d=(0,s.modelHasAttributeOrRelationshipNamedType)(a);if(!d&&t.type){var l=void 0;l=this.modelNameFromPayloadKey(t.type),e._hasModelFor(l)&&(n=e.serializerFor(l),o=e.modelFor(l))}return n.normalize(o,t,r)},_normalizeResponse:function(e,r,a,i,n,s){var d={data:null,included:[]},u=this.extractMeta(e,r,a);u&&(d.meta=u);for(var c=Object.keys(a),h=0,p=c.length;p>h;h++){var f=c[h],m=f,y=!1;"_"===f.charAt(0)&&(y=!0,m=f.substr(1));var v=this.modelNameFromPayloadKey(m);if(e.modelFactoryFor(v)){var b=!y&&this.isPrimaryType(e,v,r),g=a[f];if(null!==g)if(b&&"array"!==t["default"].typeOf(g)){var R=this._normalizePolymorphicRecord(e,g,f,r,this),_=R.data,A=R.included;if(d.data=_,A){var F;(F=d.included).push.apply(F,l(A))}}else{var z=this._normalizeArray(e,v,g,f),M=z.data,S=z.included;if(S){var T;(T=d.included).push.apply(T,l(S))}if(s)M.forEach(function(e){var t=b&&(0,o["default"])(e.id)===i,r=b&&!i&&!d.data;r||t?d.data=e:d.included.push(e)});else if(b)d.data=M;else if(M){var k;(k=d.included).push.apply(k,l(M))}}}}return d},isPrimaryType:function(e,t,r){var a=e.modelFor(t);return a.modelName===r.modelName},pushPayload:function(e,r){var a={data:[],included:[]};for(var i in r){var n=this.modelNameFromPayloadKey(i);if(e.modelFactoryFor(n)){var o=e.modelFor(n),s=e.serializerFor(o.modelName);t["default"].makeArray(r[i]).forEach(function(e){var t=s.normalize(o,e,i),r=t.data,n=t.included;if(a.data.push(r),n){var d;(d=a.included).push.apply(d,l(n))}})}}e.push(a)},modelNameFromPayloadKey:function(e){return(0,n.singularize)((0,i["default"])(e))},serialize:function(e,t){return this._super.apply(this,arguments)},serializeIntoHash:function(e,t,r,a){var i=this.payloadKeyFromModelName(t.modelName);e[i]=this.serialize(r,a)},payloadKeyFromModelName:function(e){return u(e)},serializePolymorphicType:function(e,r,a){var i=a.key,n=e.belongsTo(i),o=this.keyForPolymorphicType(i,a.type,"serialize");i=this.keyForAttribute?this.keyForAttribute(i,"serialize"):i,i+="Type",i!==o&&this.keyForPolymorphicType===c.prototype.keyForPolymorphicType&&(o=i),t["default"].isNone(n)?r[o]=null:r[o]=u(n.modelName)},extractPolymorphicRelationship:function(e,t,r){var a=r.key,i=r.resourceHash,n=r.relationshipMeta,o=n.options.polymorphic,s=this.keyForPolymorphicType(a,e,"deserialize");if(o&&void 0!==i[s]&&"object"!=typeof t){var d=this.modelNameFromPayloadKey(i[s]);return{id:t,type:d}}return this._super.apply(this,arguments)}});e["default"]=c}),t("ember-data/setup-container",["exports","ember-data/-private/initializers/store","ember-data/-private/initializers/transforms","ember-data/-private/initializers/store-injections","ember-data/-private/initializers/data-adapter"],function(e,t,r,a,i){function n(e){(0,i["default"])(e),(0,r["default"])(e),(0,a["default"])(e),(0,t["default"])(e)}e["default"]=n}),t("ember-data/store",["exports","ember-data/-private/system/store"],function(e,t){e["default"]=t["default"]}),t("ember-data/transform",["exports","ember"],function(e,t){e["default"]=t["default"].Object.extend({serialize:null,deserialize:null})}),t("ember-data/version",["exports"],function(e){e["default"]="2.7.0-beta.1"}),t("ember-inflector",["exports","ember","ember-inflector/lib/system","ember-inflector/lib/ext/string"],function(e,r,a,i){a.Inflector.defaultRules=a.defaultRules,r["default"].Inflector=a.Inflector,r["default"].String.pluralize=a.pluralize,r["default"].String.singularize=a.singularize,e["default"]=a.Inflector,e.pluralize=a.pluralize,e.singularize=a.singularize,e.defaultRules=a.defaultRules,"undefined"!=typeof t&&t.amd?t("ember-inflector",["exports"],function(e){return e["default"]=a.Inflector,a.Inflector}):"undefined"!=typeof module&&module.exports&&(module.exports=a.Inflector)}),t("ember-inflector/lib/ext/string",["exports","ember","ember-inflector/lib/system/string"],function(e,t,r){(t["default"].EXTEND_PROTOTYPES===!0||t["default"].EXTEND_PROTOTYPES.String)&&(String.prototype.pluralize=function(){return(0,r.pluralize)(this)},String.prototype.singularize=function(){return(0,r.singularize)(this)})}),t("ember-inflector/lib/helpers/pluralize",["exports","ember-inflector","ember-inflector/lib/utils/make-helper"],function(e,t,r){e["default"]=(0,r["default"])(function(e){var r=void 0,a=void 0;return 1===e.length?(a=e[0],(0,t.pluralize)(a)):(r=e[0],a=e[1],1!==parseFloat(r)&&(a=(0,t.pluralize)(a)),r+" "+a)})}),t("ember-inflector/lib/helpers/singularize",["exports","ember-inflector","ember-inflector/lib/utils/make-helper"],function(e,t,r){e["default"]=(0,r["default"])(function(e){return(0,t.singularize)(e[0])})}),t("ember-inflector/lib/system",["exports","ember-inflector/lib/system/inflector","ember-inflector/lib/system/string","ember-inflector/lib/system/inflections"],function(e,t,r,a){t["default"].inflector=new t["default"](a["default"]),e.Inflector=t["default"],e.singularize=r.singularize,e.pluralize=r.pluralize,e.defaultRules=a["default"]}),t("ember-inflector/lib/system/inflections",["exports"],function(e){e["default"]={plurals:[[/$/,"s"],[/s$/i,"s"],[/^(ax|test)is$/i,"$1es"],[/(octop|vir)us$/i,"$1i"],[/(octop|vir)i$/i,"$1i"],[/(alias|status)$/i,"$1es"],[/(bu)s$/i,"$1ses"],[/(buffal|tomat)o$/i,"$1oes"],[/([ti])um$/i,"$1a"],[/([ti])a$/i,"$1a"],[/sis$/i,"ses"],[/(?:([^f])fe|([lr])f)$/i,"$1$2ves"],[/(hive)$/i,"$1s"],[/([^aeiouy]|qu)y$/i,"$1ies"],[/(x|ch|ss|sh)$/i,"$1es"],[/(matr|vert|ind)(?:ix|ex)$/i,"$1ices"],[/^(m|l)ouse$/i,"$1ice"],[/^(m|l)ice$/i,"$1ice"],[/^(ox)$/i,"$1en"],[/^(oxen)$/i,"$1"],[/(quiz)$/i,"$1zes"]],singular:[[/s$/i,""],[/(ss)$/i,"$1"],[/(n)ews$/i,"$1ews"],[/([ti])a$/i,"$1um"],[/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"$1sis"],[/(^analy)(sis|ses)$/i,"$1sis"],[/([^f])ves$/i,"$1fe"],[/(hive)s$/i,"$1"],[/(tive)s$/i,"$1"],[/([lr])ves$/i,"$1f"],[/([^aeiouy]|qu)ies$/i,"$1y"],[/(s)eries$/i,"$1eries"],[/(m)ovies$/i,"$1ovie"],[/(x|ch|ss|sh)es$/i,"$1"],[/^(m|l)ice$/i,"$1ouse"],[/(bus)(es)?$/i,"$1"],[/(o)es$/i,"$1"],[/(shoe)s$/i,"$1"],[/(cris|test)(is|es)$/i,"$1is"],[/^(a)x[ie]s$/i,"$1xis"],[/(octop|vir)(us|i)$/i,"$1us"],[/(alias|status)(es)?$/i,"$1"],[/^(ox)en/i,"$1"],[/(vert|ind)ices$/i,"$1ex"],[/(matr)ices$/i,"$1ix"],[/(quiz)zes$/i,"$1"],[/(database)s$/i,"$1"]],irregularPairs:[["person","people"],["man","men"],["child","children"],["sex","sexes"],["move","moves"],["cow","kine"],["zombie","zombies"]],uncountable:["equipment","information","rice","money","species","series","fish","sheep","jeans","police"]}}),t("ember-inflector/lib/system/inflector",["exports","ember"],function(e,t){function r(e,t){for(var r=0,a=t.length;a>r;r++)e.uncountable[t[r].toLowerCase()]=!0}function a(e,t){for(var r,a=0,i=t.length;i>a;a++)r=t[a],e.irregular[r[0].toLowerCase()]=r[1],e.irregular[r[1].toLowerCase()]=r[1],e.irregularInverse[r[1].toLowerCase()]=r[0],e.irregularInverse[r[0].toLowerCase()]=r[0]}function i(e){e=e||{},e.uncountable=e.uncountable||n(),e.irregularPairs=e.irregularPairs||n();var t=this.rules={plurals:e.plurals||[],singular:e.singular||[],irregular:n(),irregularInverse:n(),uncountable:n()};r(t,e.uncountable),a(t,e.irregularPairs),this.enableCache()}function n(){var e=Object.create(null);return e._dict=null,delete e._dict,e}var o=t["default"].String.capitalize,s=/^\s*$/,d=/([\w\/-]+[_\/\s-])([a-z\d]+$)/,l=/([\w\/\s-]+)([A-Z][a-z\d]*$)/,u=/[A-Z][a-z\d]*$/;if(!Object.create&&!Object.create(null).hasOwnProperty)throw new Error("This browser does not support Object.create(null), please polyfil with es5-sham: http://git.io/yBU2rg");i.prototype={enableCache:function(){this.purgeCache(),this.singularize=function(e){return this._cacheUsed=!0,this._sCache[e]||(this._sCache[e]=this._singularize(e))},this.pluralize=function(e){return this._cacheUsed=!0,this._pCache[e]||(this._pCache[e]=this._pluralize(e))}},purgeCache:function(){this._cacheUsed=!1,this._sCache=n(),this._pCache=n()},disableCache:function(){this._sCache=null,this._pCache=null,this.singularize=function(e){return this._singularize(e)},this.pluralize=function(e){return this._pluralize(e)}},plural:function(e,t){this._cacheUsed&&this.purgeCache(),this.rules.plurals.push([e,t.toLowerCase()])},singular:function(e,t){this._cacheUsed&&this.purgeCache(),this.rules.singular.push([e,t.toLowerCase()])},uncountable:function(e){this._cacheUsed&&this.purgeCache(),r(this.rules,[e.toLowerCase()])},irregular:function(e,t){this._cacheUsed&&this.purgeCache(),a(this.rules,[[e,t]])},pluralize:function(e){return this._pluralize(e)},_pluralize:function(e){return this.inflect(e,this.rules.plurals,this.rules.irregular)},singularize:function(e){return this._singularize(e)},_singularize:function(e){return this.inflect(e,this.rules.singular,this.rules.irregularInverse)},inflect:function(e,t,r){var a,i,n,c,h,p,f,m,y,v,b;if(m=!e||s.test(e),y=u.test(e),p="",m)return e;if(c=e.toLowerCase(),h=d.exec(e)||l.exec(e),h&&(p=h[1],f=h[2].toLowerCase()),b=this.rules.uncountable[c]||this.rules.uncountable[f])return e;for(v in this.rules.irregular)if(c.match(v+"$"))return i=r[v],y&&r[f]&&(i=o(i),v=o(v)),e.replace(v,i);for(var g=t.length,R=0;g>R&&(a=t[g-1],v=a[0],!v.test(e));g--);return a=a||[],v=a[0],i=a[1],n=e.replace(v,i)}},e["default"]=i}),t("ember-inflector/lib/system/string",["exports","ember-inflector/lib/system/inflector"],function(e,t){function r(e){return t["default"].inflector.pluralize(e)}function a(e){return t["default"].inflector.singularize(e)}e.pluralize=r,e.singularize=a}),t("ember-inflector/lib/utils/make-helper",["exports","ember"],function(e,t){function r(e){return t["default"].Helper?t["default"].Helper.helper(e):t["default"].HTMLBars?t["default"].HTMLBars.makeBoundHelper(e):t["default"].Handlebars.makeBoundHelper(e)}e["default"]=r}),t("ember",[],function(){return{"default":Ember}}),a("ember-data"),function(){var e=a("ember-data/-private/global")["default"],t=a("ember-data")["default"];Object.defineProperty(e,"DS",{get:function(){return t}})}()}(),function(){function e(){var e={"ember-data":{"default":DS},"ember-data/model":{"default":DS.Model},"ember-data/mixins/embedded-records":{"default":DS.EmbeddedRecordsMixin},"ember-data/serializers/rest":{"default":DS.RESTSerializer},"ember-data/serializers/active-model":{"default":DS.ActiveModelSerializer},"ember-data/serializers/json":{"default":DS.JSONSerializer},"ember-data/serializers/json-api":{"default":DS.JSONAPISerializer},"ember-data/serializer":{"default":DS.Serializer},"ember-data/adapters/json-api":{"default":DS.JSONAPIAdapter},"ember-data/adapters/rest":{"default":DS.RESTAdapter},"ember-data/adapter":{"default":DS.Adapter},"ember-data/adapters/active-model":{"default":DS.ActiveModelAdapter},"ember-data/store":{"default":DS.Store},"ember-data/transform":{"default":DS.Transform},"ember-data/attr":{"default":DS.attr},"ember-data/relationships":{hasMany:DS.hasMany,belongsTo:DS.belongsTo}};for(var r in e)t(r,e[r])}function t(e,t){define(e,[],function(){"use strict";return t})}"undefined"!=typeof define&&define&&define.petal&&e()}(),function(){var e=Ember.K;Ember.onLoad("Ember.Application",function(t){t.initializer({name:"ember-data",initialize:DS._setupContainer}),t.instanceInitializer({name:"ember-data",initialize:DS._initializeStoreService}),t.initializer({name:"store",after:"ember-data",initialize:e}),t.initializer({name:"transforms",before:"store",initialize:e}),t.initializer({name:"data-adapter",before:"store",initialize:e}),t.initializer({name:"injectStore",before:"store",initialize:e})})}();
@@ -6,7 +6,7 @@
6
6
  * @copyright Copyright 2011-2016 Tilde Inc. and contributors.
7
7
  * Portions Copyright 2011 LivingSocial Inc.
8
8
  * @license Licensed under MIT license (see license.js)
9
- * @version 2.6.2
9
+ * @version 2.7.0-beta.1
10
10
  */
11
11
 
12
12
  var loader, define, requireModule, require, requirejs;
@@ -25,14 +25,7 @@ var loader, define, requireModule, require, requirejs;
25
25
 
26
26
  requirejs = require = requireModule = function(name) {
27
27
  stats.require++;
28
- var pending = [];
29
- var mod = findModule(name, '(require)', pending);
30
-
31
- for (var i = pending.length - 1; i >= 0; i--) {
32
- pending[i].exports();
33
- }
34
-
35
- return mod.module.exports;
28
+ return findModule(name, '(require)').module.exports;
36
29
  };
37
30
 
38
31
  function resetStats() {
@@ -40,19 +33,18 @@ var loader, define, requireModule, require, requirejs;
40
33
  define: 0,
41
34
  require: 0,
42
35
  reify: 0,
43
- findDeps: 0,
36
+ build: 0,
44
37
  modules: 0,
45
38
  exports: 0,
39
+ ensureBuild: 0,
46
40
  resolve: 0,
47
41
  resolveRelative: 0,
48
42
  findModule: 0,
49
- pendingQueueLength: 0
50
43
  };
51
44
  requirejs._stats = stats;
52
45
  }
53
46
 
54
47
  var stats;
55
-
56
48
  resetStats();
57
49
 
58
50
  loader = {
@@ -83,6 +75,8 @@ var loader, define, requireModule, require, requirejs;
83
75
 
84
76
  var registry = {};
85
77
  var seen = {};
78
+ var FAILED = false;
79
+ var LOADED = true;
86
80
 
87
81
  var uuid = 0;
88
82
 
@@ -94,18 +88,17 @@ var loader, define, requireModule, require, requirejs;
94
88
  var defaultDeps = ['require', 'exports', 'module'];
95
89
 
96
90
  function Module(name, deps, callback, alias) {
97
- stats.modules++;
91
+ stats.modules ++;
98
92
  this.id = uuid++;
99
93
  this.name = name;
100
94
  this.deps = !deps.length && callback.length ? defaultDeps : deps;
101
95
  this.module = { exports: {} };
102
96
  this.callback = callback;
97
+ this.state = undefined;
103
98
  this.finalized = false;
104
99
  this.hasExportsAsDep = false;
105
100
  this.isAlias = alias;
106
101
  this.reified = new Array(deps.length);
107
- this._foundDeps = false;
108
- this.isPending = false;
109
102
  }
110
103
 
111
104
  Module.prototype.makeDefaultExport = function() {
@@ -118,66 +111,46 @@ var loader, define, requireModule, require, requirejs;
118
111
  };
119
112
 
120
113
  Module.prototype.exports = function() {
121
- if (this.finalized) { return this.module.exports; }
122
- stats.exports++;
123
-
124
- this.finalized = true;
125
- this.isPending = false;
126
-
127
- if (loader.wrapModules) {
128
- this.callback = loader.wrapModules(this.name, this.callback);
129
- }
130
-
131
- this.reify();
132
-
133
- var result = this.callback.apply(this, this.reified);
134
-
135
- if (!(this.hasExportsAsDep && result === undefined)) {
136
- this.module.exports = result;
114
+ stats.exports ++;
115
+ if (this.finalized) {
116
+ return this.module.exports;
117
+ } else {
118
+ if (loader.wrapModules) {
119
+ this.callback = loader.wrapModules(this.name, this.callback);
120
+ }
121
+ var result = this.callback.apply(this, this.reified);
122
+ if (!(this.hasExportsAsDep && result === undefined)) {
123
+ this.module.exports = result;
124
+ }
125
+ this.makeDefaultExport();
126
+ this.finalized = true;
127
+ return this.module.exports;
137
128
  }
138
- this.makeDefaultExport();
139
- return this.module.exports;
140
129
  };
141
130
 
142
131
  Module.prototype.unsee = function() {
143
132
  this.finalized = false;
144
- this._foundDeps = false;
145
- this.isPending = false;
133
+ this.state = undefined;
146
134
  this.module = { exports: {}};
147
135
  };
148
136
 
149
137
  Module.prototype.reify = function() {
150
138
  stats.reify++;
151
- var reified = this.reified;
152
- for (var i = 0; i < reified.length; i++) {
153
- var mod = reified[i];
154
- reified[i] = mod.exports ? mod.exports : mod.module.exports();
155
- }
156
- };
157
-
158
- Module.prototype.findDeps = function(pending) {
159
- if (this._foundDeps) {
160
- return;
161
- }
162
-
163
- stats.findDeps++;
164
- this._foundDeps = true;
165
- this.isPending = true;
166
-
167
139
  var deps = this.deps;
140
+ var dep;
141
+ var reified = this.reified;
168
142
 
169
143
  for (var i = 0; i < deps.length; i++) {
170
- var dep = deps[i];
171
- var entry = this.reified[i] = { exports: undefined, module: undefined };
144
+ dep = deps[i];
172
145
  if (dep === 'exports') {
173
146
  this.hasExportsAsDep = true;
174
- entry.exports = this.module.exports;
147
+ reified[i] = this.module.exports;
175
148
  } else if (dep === 'require') {
176
- entry.exports = this.makeRequire();
149
+ reified[i] = this.makeRequire();
177
150
  } else if (dep === 'module') {
178
- entry.exports = this.module;
151
+ reified[i] = this.module;
179
152
  } else {
180
- entry.module = findModule(resolve(dep, this.name), this.name, pending);
153
+ reified[i] = findModule(resolve(dep, this.name), this.name).module.exports;
181
154
  }
182
155
  }
183
156
  };
@@ -194,6 +167,16 @@ var loader, define, requireModule, require, requirejs;
194
167
  return r;
195
168
  };
196
169
 
170
+ Module.prototype.build = function() {
171
+ stats.ensureBuild++;
172
+ if (this.state === FAILED || this.state === LOADED) { return; }
173
+ stats.build++;
174
+ this.state = FAILED;
175
+ this.reify()
176
+ this.exports();
177
+ this.state = LOADED;
178
+ };
179
+
197
180
  define = function(name, deps, callback) {
198
181
  stats.define++;
199
182
  if (arguments.length < 2) {
@@ -229,7 +212,7 @@ var loader, define, requireModule, require, requirejs;
229
212
  throw new Error('Could not find module `' + name + '` imported from `' + referrer + '`');
230
213
  }
231
214
 
232
- function findModule(name, referrer, pending) {
215
+ function findModule(name, referrer) {
233
216
  stats.findModule++;
234
217
  var mod = registry[name] || registry[name + '/index'];
235
218
 
@@ -239,11 +222,7 @@ var loader, define, requireModule, require, requirejs;
239
222
 
240
223
  if (!mod) { missingModule(name, referrer); }
241
224
 
242
- if (pending && !mod.finalized && !mod.isPending) {
243
- mod.findDeps(pending);
244
- pending.push(mod);
245
- stats.pendingQueueLength++;
246
- }
225
+ mod.build();
247
226
  return mod;
248
227
  }
249
228
 
@@ -279,7 +258,7 @@ var loader, define, requireModule, require, requirejs;
279
258
  requirejs.entries = requirejs._eak_seen = registry;
280
259
  requirejs.has = has;
281
260
  requirejs.unsee = function(moduleName) {
282
- findModule(moduleName, '(unsee)', false).unsee();
261
+ findModule(moduleName, '(unsee)').unsee();
283
262
  };
284
263
 
285
264
  requirejs.clear = function() {
@@ -621,7 +600,8 @@ define('ember-data/-private/core', ['exports', 'ember', 'ember-data/version'], f
621
600
  @static
622
601
  */
623
602
  var DS = _ember.default.Namespace.create({
624
- VERSION: _emberDataVersion.default
603
+ VERSION: _emberDataVersion.default,
604
+ name: "DS"
625
605
  });
626
606
 
627
607
  if (_ember.default.libraries) {
@@ -711,30 +691,14 @@ define('ember-data/-private/debug', ['exports', 'ember'], function (exports, _em
711
691
  assert(assertionMessage, checkPolymorphic(typeClass, addedRecord));
712
692
  }
713
693
  });
714
- define('ember-data/-private/ext/date', ['exports', 'ember'], function (exports, _ember) {
694
+ define('ember-data/-private/ext/date', ['exports', 'ember', 'ember-data/-private/debug'], function (exports, _ember, _emberDataPrivateDebug) {
715
695
 
716
- /**
717
- Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>
718
-
719
- © 2011 Colin Snover <http://zetafleet.com>
720
-
721
- Released under MIT license.
722
-
723
- @class Date
724
- @namespace Ember
725
- @static
726
- */
727
696
  _ember.default.Date = _ember.default.Date || {};
728
697
 
729
698
  var origParse = Date.parse;
730
699
  var numericKeys = [1, 4, 5, 6, 7, 10, 11];
731
700
 
732
- /**
733
- @method parse
734
- @param {Date} date
735
- @return {Number} timestamp
736
- */
737
- _ember.default.Date.parse = function (date) {
701
+ var parseDate = function (date) {
738
702
  var timestamp, struct;
739
703
  var minutesOffset = 0;
740
704
 
@@ -742,7 +706,7 @@ define('ember-data/-private/ext/date', ['exports', 'ember'], function (exports,
742
706
  // before falling back to any implementation-specific date parsing, so that’s what we do, even if native
743
707
  // implementations could be faster
744
708
  // 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm
745
- if (struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(date)) {
709
+ if (struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?:(\d{2}))?)?)?$/.exec(date)) {
746
710
  // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC
747
711
  for (var i = 0, k; k = numericKeys[i]; ++i) {
748
712
  struct[k] = +struct[k] || 0;
@@ -768,8 +732,16 @@ define('ember-data/-private/ext/date', ['exports', 'ember'], function (exports,
768
732
  return timestamp;
769
733
  };
770
734
 
735
+ exports.parseDate = parseDate;
736
+ _ember.default.Date.parse = function (date) {
737
+
738
+ return parseDate(date);
739
+
740
+ // throw deprecation
741
+ };
742
+
771
743
  if (_ember.default.EXTEND_PROTOTYPES === true || _ember.default.EXTEND_PROTOTYPES.Date) {
772
- Date.parse = _ember.default.Date.parse;
744
+ Date.parse = parseDate;
773
745
  }
774
746
  });
775
747
  /**
@@ -784,6 +756,25 @@ define('ember-data/-private/features', ['exports', 'ember'], function (exports,
784
756
  return (_Ember$FEATURES = _ember.default.FEATURES).isEnabled.apply(_Ember$FEATURES, arguments);
785
757
  }
786
758
  });
759
+ define('ember-data/-private/global', ['exports'], function (exports) {
760
+ /* globals global, window, self */
761
+
762
+ // originally from https://github.com/emberjs/ember.js/blob/c0bd26639f50efd6a03ee5b87035fd200e313b8e/packages/ember-environment/lib/global.js
763
+
764
+ // from lodash to catch fake globals
765
+ function checkGlobal(value) {
766
+ return value && value.Object === Object ? value : undefined;
767
+ }
768
+
769
+ // element ids can ruin global miss checks
770
+ function checkElementIdShadowing(value) {
771
+ return value && value.nodeType === undefined ? value : undefined;
772
+ }
773
+
774
+ // export real global
775
+ exports.default = checkGlobal(checkElementIdShadowing(typeof global === 'object' && global)) || checkGlobal(typeof self === 'object' && self) || checkGlobal(typeof window === 'object' && window) || new Function('return this')();
776
+ // eval outside of strict mode
777
+ });
787
778
  define("ember-data/-private/initializers/data-adapter", ["exports", "ember-data/-private/system/debug/debug-adapter"], function (exports, _emberDataPrivateSystemDebugDebugAdapter) {
788
779
  exports.default = initializeDebugAdapter;
789
780
 
@@ -921,7 +912,7 @@ define('ember-data/-private/system/coerce-id', ['exports'], function (exports) {
921
912
  // corresponding record, we will not know if it is a string or a number.
922
913
 
923
914
  function coerceId(id) {
924
- return id == null || id === '' ? null : id + '';
915
+ return id === null || id === undefined || id === '' ? null : id + '';
925
916
  }
926
917
  });
927
918
  define('ember-data/-private/system/container-proxy', ['exports', 'ember-data/-private/debug'], function (exports, _emberDataPrivateDebug) {
@@ -2103,7 +2094,7 @@ define('ember-data/-private/system/model/errors', ['exports', 'ember', 'ember-da
2103
2094
  }
2104
2095
  });
2105
2096
  });
2106
- define("ember-data/-private/system/model/internal-model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/model/states", "ember-data/-private/system/relationships/state/create", "ember-data/-private/system/snapshot", "ember-data/-private/system/empty-object", "ember-data/-private/features", "ember-data/-private/utils", "ember-data/-private/system/references"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemModelStates, _emberDataPrivateSystemRelationshipsStateCreate, _emberDataPrivateSystemSnapshot, _emberDataPrivateSystemEmptyObject, _emberDataPrivateFeatures, _emberDataPrivateUtils, _emberDataPrivateSystemReferences) {
2097
+ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/model/states", "ember-data/-private/system/relationships/state/create", "ember-data/-private/system/snapshot", "ember-data/-private/system/empty-object", "ember-data/-private/utils", "ember-data/-private/system/references"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemModelStates, _emberDataPrivateSystemRelationshipsStateCreate, _emberDataPrivateSystemSnapshot, _emberDataPrivateSystemEmptyObject, _emberDataPrivateUtils, _emberDataPrivateSystemReferences) {
2107
2098
  var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; })();
2108
2099
 
2109
2100
  exports.default = InternalModel;
@@ -2912,12 +2903,9 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2912
2903
  } else {
2913
2904
  return "<" + this.modelName + ":" + this.id + ">";
2914
2905
  }
2915
- }
2916
- };
2917
-
2918
- if (true) {
2906
+ },
2919
2907
 
2920
- InternalModel.prototype.referenceFor = function (type, name) {
2908
+ referenceFor: function (type, name) {
2921
2909
  var reference = this.references[name];
2922
2910
 
2923
2911
  if (!reference) {
@@ -2933,10 +2921,10 @@ define("ember-data/-private/system/model/internal-model", ["exports", "ember", "
2933
2921
  }
2934
2922
 
2935
2923
  return reference;
2936
- };
2937
- }
2924
+ }
2925
+ };
2938
2926
  });
2939
- define("ember-data/-private/system/model/model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/model/errors", "ember-data/-private/features", "ember-data/-private/system/debug/debug-info", "ember-data/-private/system/relationships/belongs-to", "ember-data/-private/system/relationships/has-many", "ember-data/-private/system/relationships/ext", "ember-data/-private/system/model/attr"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemModelErrors, _emberDataPrivateFeatures, _emberDataPrivateSystemDebugDebugInfo, _emberDataPrivateSystemRelationshipsBelongsTo, _emberDataPrivateSystemRelationshipsHasMany, _emberDataPrivateSystemRelationshipsExt, _emberDataPrivateSystemModelAttr) {
2927
+ define("ember-data/-private/system/model/model", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/model/errors", "ember-data/-private/system/debug/debug-info", "ember-data/-private/system/relationships/belongs-to", "ember-data/-private/system/relationships/has-many", "ember-data/-private/system/relationships/ext", "ember-data/-private/system/model/attr"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemModelErrors, _emberDataPrivateSystemDebugDebugInfo, _emberDataPrivateSystemRelationshipsBelongsTo, _emberDataPrivateSystemRelationshipsHasMany, _emberDataPrivateSystemRelationshipsExt, _emberDataPrivateSystemModelAttr) {
2940
2928
 
2941
2929
  /**
2942
2930
  @module ember-data
@@ -3409,6 +3397,22 @@ define("ember-data/-private/system/model/model", ["exports", "ember", "ember-dat
3409
3397
  }
3410
3398
  }
3411
3399
  });
3400
+ ```
3401
+ If you pass an object on the `adapterOptions` property of the options
3402
+ argument it will be passed to you adapter via the snapshot
3403
+ ```js
3404
+ record.destroyRecord({ adapterOptions: { subscribe: false } });
3405
+ ```
3406
+ ```app/adapters/post.js
3407
+ import MyCustomAdapter from './custom-adapter';
3408
+ export default MyCustomAdapter.extend({
3409
+ deleteRecord: function(store, type, snapshot) {
3410
+ if (snapshot.adapterOptions.subscribe) {
3411
+ // ...
3412
+ }
3413
+ // ...
3414
+ }
3415
+ });
3412
3416
  ```
3413
3417
  @method destroyRecord
3414
3418
  @param {Object} options
@@ -3540,7 +3544,23 @@ define("ember-data/-private/system/model/model", ["exports", "ember", "ember-dat
3540
3544
  // Error callback
3541
3545
  });
3542
3546
  ```
3543
- @method save
3547
+ If you pass an object on the `adapterOptions` property of the options
3548
+ argument it will be passed to you adapter via the snapshot
3549
+ ```js
3550
+ record.save({ adapterOptions: { subscribe: false } });
3551
+ ```
3552
+ ```app/adapters/post.js
3553
+ import MyCustomAdapter from './custom-adapter';
3554
+ export default MyCustomAdapter.extend({
3555
+ updateRecord: function(store, type, snapshot) {
3556
+ if (snapshot.adapterOptions.subscribe) {
3557
+ // ...
3558
+ }
3559
+ // ...
3560
+ }
3561
+ });
3562
+ ```
3563
+ @method save
3544
3564
  @param {Object} options
3545
3565
  @return {Promise} a promise that will be resolved when the adapter returns
3546
3566
  successfully or rejected if the adapter returns with an error.
@@ -3621,9 +3641,104 @@ define("ember-data/-private/system/model/model", ["exports", "ember", "ember-dat
3621
3641
 
3622
3642
  attr: function () {},
3623
3643
 
3624
- belongsTo: function () {},
3644
+ /**
3645
+ Get the reference for the specified belongsTo relationship.
3646
+ Example
3647
+ ```javascript
3648
+ // models/blog.js
3649
+ export default DS.Model.extend({
3650
+ user: DS.belongsTo({ async: true })
3651
+ });
3652
+ var blog = store.push({
3653
+ type: 'blog',
3654
+ id: 1,
3655
+ relationships: {
3656
+ user: { type: 'user', id: 1 }
3657
+ }
3658
+ });
3659
+ var userRef = blog.belongsTo('user');
3660
+ // check if the user relationship is loaded
3661
+ var isLoaded = userRef.value() !== null;
3662
+ // get the record of the reference (null if not yet available)
3663
+ var user = userRef.value();
3664
+ // get the identifier of the reference
3665
+ if (userRef.remoteType() === "id") {
3666
+ var id = userRef.id();
3667
+ } else if (userRef.remoteType() === "link") {
3668
+ var link = userRef.link();
3669
+ }
3670
+ // load user (via store.findRecord or store.findBelongsTo)
3671
+ userRef.load().then(...)
3672
+ // or trigger a reload
3673
+ userRef.reload().then(...)
3674
+ // provide data for reference
3675
+ userRef.push({
3676
+ type: 'user',
3677
+ id: 1,
3678
+ attributes: {
3679
+ username: "@user"
3680
+ }
3681
+ }).then(function(user) {
3682
+ userRef.value() === user;
3683
+ });
3684
+ ```
3685
+ @method belongsTo
3686
+ @param {String} name of the relationship
3687
+ @since 2.5.0
3688
+ @return {BelongsToReference} reference for this relationship
3689
+ */
3690
+ belongsTo: function (name) {
3691
+ return this._internalModel.referenceFor('belongsTo', name);
3692
+ },
3625
3693
 
3626
- hasMany: function () {},
3694
+ /**
3695
+ Get the reference for the specified hasMany relationship.
3696
+ Example
3697
+ ```javascript
3698
+ // models/blog.js
3699
+ export default DS.Model.extend({
3700
+ comments: DS.hasMany({ async: true })
3701
+ });
3702
+ var blog = store.push({
3703
+ type: 'blog',
3704
+ id: 1,
3705
+ relationships: {
3706
+ comments: {
3707
+ data: [
3708
+ { type: 'comment', id: 1 },
3709
+ { type: 'comment', id: 2 }
3710
+ ]
3711
+ }
3712
+ }
3713
+ });
3714
+ var commentsRef = blog.hasMany('comments');
3715
+ // check if the comments are loaded already
3716
+ var isLoaded = commentsRef.value() !== null;
3717
+ // get the records of the reference (null if not yet available)
3718
+ var comments = commentsRef.value();
3719
+ // get the identifier of the reference
3720
+ if (commentsRef.remoteType() === "ids") {
3721
+ var ids = commentsRef.ids();
3722
+ } else if (commentsRef.remoteType() === "link") {
3723
+ var link = commentsRef.link();
3724
+ }
3725
+ // load comments (via store.findMany or store.findHasMany)
3726
+ commentsRef.load().then(...)
3727
+ // or trigger a reload
3728
+ commentsRef.reload().then(...)
3729
+ // provide data for reference
3730
+ commentsRef.push([{ type: 'comment', id: 1 }, { type: 'comment', id: 2 }]).then(function(comments) {
3731
+ commentsRef.value() === comments;
3732
+ });
3733
+ ```
3734
+ @method hasMany
3735
+ @param {String} name of the relationship
3736
+ @since 2.5.0
3737
+ @return {HasManyReference} reference for this relationship
3738
+ */
3739
+ hasMany: function (name) {
3740
+ return this._internalModel.referenceFor('hasMany', name);
3741
+ },
3627
3742
 
3628
3743
  setId: _ember.default.observer('id', function () {
3629
3744
  this._internalModel.setId(this.get('id'));
@@ -3696,109 +3811,6 @@ define("ember-data/-private/system/model/model", ["exports", "ember", "ember-dat
3696
3811
  });
3697
3812
  }
3698
3813
 
3699
- if (true) {
3700
-
3701
- Model.reopen({
3702
-
3703
- /**
3704
- Get the reference for the specified belongsTo relationship.
3705
- Example
3706
- ```javascript
3707
- // models/blog.js
3708
- export default DS.Model.extend({
3709
- user: DS.belongsTo({ async: true })
3710
- });
3711
- var blog = store.push({
3712
- type: 'blog',
3713
- id: 1,
3714
- relationships: {
3715
- user: { type: 'user', id: 1 }
3716
- }
3717
- });
3718
- var userRef = blog.belongsTo('user');
3719
- // check if the user relationship is loaded
3720
- var isLoaded = userRef.value() !== null;
3721
- // get the record of the reference (null if not yet available)
3722
- var user = userRef.value();
3723
- // get the identifier of the reference
3724
- if (userRef.remoteType() === "id") {
3725
- var id = userRef.id();
3726
- } else if (userRef.remoteType() === "link") {
3727
- var link = userRef.link();
3728
- }
3729
- // load user (via store.findRecord or store.findBelongsTo)
3730
- userRef.load().then(...)
3731
- // or trigger a reload
3732
- userRef.reload().then(...)
3733
- // provide data for reference
3734
- userRef.push({
3735
- type: 'user',
3736
- id: 1,
3737
- attributes: {
3738
- username: "@user"
3739
- }
3740
- }).then(function(user) {
3741
- userRef.value() === user;
3742
- });
3743
- ```
3744
- @method belongsTo
3745
- @param {String} name of the relationship
3746
- @return {BelongsToReference} reference for this relationship
3747
- */
3748
- belongsTo: function (name) {
3749
- return this._internalModel.referenceFor('belongsTo', name);
3750
- },
3751
-
3752
- /**
3753
- Get the reference for the specified hasMany relationship.
3754
- Example
3755
- ```javascript
3756
- // models/blog.js
3757
- export default DS.Model.extend({
3758
- comments: DS.hasMany({ async: true })
3759
- });
3760
- var blog = store.push({
3761
- type: 'blog',
3762
- id: 1,
3763
- relationships: {
3764
- comments: {
3765
- data: [
3766
- { type: 'comment', id: 1 },
3767
- { type: 'comment', id: 2 }
3768
- ]
3769
- }
3770
- }
3771
- });
3772
- var commentsRef = blog.hasMany('comments');
3773
- // check if the comments are loaded already
3774
- var isLoaded = commentsRef.value() !== null;
3775
- // get the records of the reference (null if not yet available)
3776
- var comments = commentsRef.value();
3777
- // get the identifier of the reference
3778
- if (commentsRef.remoteType() === "ids") {
3779
- var ids = commentsRef.ids();
3780
- } else if (commentsRef.remoteType() === "link") {
3781
- var link = commentsRef.link();
3782
- }
3783
- // load comments (via store.findMany or store.findHasMany)
3784
- commentsRef.load().then(...)
3785
- // or trigger a reload
3786
- commentsRef.reload().then(...)
3787
- // provide data for reference
3788
- commentsRef.push([{ type: 'comment', id: 1 }, { type: 'comment', id: 2 }]).then(function(comments) {
3789
- commentsRef.value() === comments;
3790
- });
3791
- ```
3792
- @method hasMany
3793
- @param {String} name of the relationship
3794
- @return {HasManyReference} reference for this relationship
3795
- */
3796
- hasMany: function (name) {
3797
- return this._internalModel.referenceFor('hasMany', name);
3798
- }
3799
- });
3800
- }
3801
-
3802
3814
  Model.reopenClass(_emberDataPrivateSystemRelationshipsExt.RelationshipsClassMethodsMixin);
3803
3815
  Model.reopenClass(_emberDataPrivateSystemModelAttr.AttrClassMethodsMixin);
3804
3816
 
@@ -4543,7 +4555,6 @@ define('ember-data/-private/system/model/states', ['exports', 'ember', 'ember-da
4543
4555
  };
4544
4556
 
4545
4557
  function wireState(object, parent, name) {
4546
- /*jshint proto:true*/
4547
4558
  // TODO: Use Object.create and copy instead
4548
4559
  object = mixin(parent ? Object.create(parent) : {}, object);
4549
4560
  object.parentState = parent;
@@ -4640,7 +4651,7 @@ define('ember-data/-private/system/ordered-set', ['exports', 'ember'], function
4640
4651
 
4641
4652
  presenceSet[guid] = true;
4642
4653
 
4643
- if (idx === undefined || idx == null) {
4654
+ if (idx === undefined || idx === null) {
4644
4655
  list.push(obj);
4645
4656
  } else {
4646
4657
  list.splice(idx, 0, obj);
@@ -5182,9 +5193,7 @@ define("ember-data/-private/system/record-arrays/adapter-populated-record-array"
5182
5193
  meta: (0, _emberDataPrivateSystemCloneNull.default)(payload.meta)
5183
5194
  });
5184
5195
 
5185
- if (false) {
5186
- this.set('links', (0, _emberDataPrivateSystemCloneNull.default)(payload.links));
5187
- }
5196
+ this.set('links', (0, _emberDataPrivateSystemCloneNull.default)(payload.links));
5188
5197
 
5189
5198
  internalModels.forEach(function (record) {
5190
5199
  _this.manager.recordArraysForRecord(record).add(_this);
@@ -5465,7 +5474,7 @@ define('ember-data/-private/system/references', ['exports', 'ember-data/-private
5465
5474
  exports.BelongsToReference = _emberDataPrivateSystemReferencesBelongsTo.default;
5466
5475
  exports.HasManyReference = _emberDataPrivateSystemReferencesHasMany.default;
5467
5476
  });
5468
- define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-data/model', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/debug'], function (exports, _emberDataModel, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateDebug) {
5477
+ define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-data/model', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/features', 'ember-data/-private/debug'], function (exports, _emberDataModel, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateFeatures, _emberDataPrivateDebug) {
5469
5478
 
5470
5479
  var BelongsToReference = function (store, parentInternalModel, belongsToRelationship) {
5471
5480
  this._super$constructor(store, parentInternalModel);
@@ -5553,7 +5562,7 @@ define('ember-data/-private/system/references/belongs-to', ['exports', 'ember-da
5553
5562
 
5554
5563
  exports.default = BelongsToReference;
5555
5564
  });
5556
- define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/debug'], function (exports, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateDebug) {
5565
+ define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'ember-data/-private/system/references/reference', 'ember-data/-private/debug', 'ember-data/-private/features'], function (exports, _ember, _emberDataPrivateSystemReferencesReference, _emberDataPrivateDebug, _emberDataPrivateFeatures) {
5557
5566
 
5558
5567
  var get = _ember.default.get;
5559
5568
 
@@ -5600,15 +5609,26 @@ define('ember-data/-private/system/references/has-many', ['exports', 'ember', 'e
5600
5609
 
5601
5610
  return _ember.default.RSVP.resolve(objectOrPromise).then(function (payload) {
5602
5611
  var array = payload;
5612
+
5613
+ var useLegacyArrayPush = true;
5603
5614
  if (typeof payload === "object" && payload.data) {
5604
5615
  array = payload.data;
5616
+ useLegacyArrayPush = array.length && array[0].data;
5605
5617
  }
5606
5618
 
5607
- var internalModels = array.map(function (obj) {
5608
- var record = _this.store.push(obj);
5619
+ useLegacyArrayPush = true;
5609
5620
 
5610
- return record._internalModel;
5611
- });
5621
+ var internalModels = undefined;
5622
+ if (useLegacyArrayPush) {
5623
+ internalModels = array.map(function (obj) {
5624
+ var record = _this.store.push(obj);
5625
+
5626
+ return record._internalModel;
5627
+ });
5628
+ } else {
5629
+ var records = _this.store.push(payload);
5630
+ internalModels = _ember.default.A(records).mapBy('_internalModel');
5631
+ }
5612
5632
 
5613
5633
  _this.hasManyRelationship.computeChanges(internalModels);
5614
5634
 
@@ -6288,9 +6308,9 @@ define("ember-data/-private/system/relationships/ext", ["exports", "ember", "emb
6288
6308
  import Blog from 'app/models/blog';
6289
6309
  var relationshipsByName = Ember.get(Blog, 'relationshipsByName');
6290
6310
  relationshipsByName.get('users');
6291
- //=> { key: 'users', kind: 'hasMany', type: App.User }
6311
+ //=> { key: 'users', kind: 'hasMany', type: 'user', options: Object, isRelationship: true }
6292
6312
  relationshipsByName.get('owner');
6293
- //=> { key: 'owner', kind: 'belongsTo', type: App.User }
6313
+ //=> { key: 'owner', kind: 'belongsTo', type: 'user', options: Object, isRelationship: true }
6294
6314
  ```
6295
6315
  @property relationshipsByName
6296
6316
  @static
@@ -6383,14 +6403,14 @@ define("ember-data/-private/system/relationships/ext", ["exports", "ember", "emb
6383
6403
  var knownKey = knownSide.key;
6384
6404
  var knownKind = knownSide.kind;
6385
6405
  var inverse = this.inverseFor(knownKey, store);
6386
- var key = undefined,
6387
- otherKind = undefined;
6406
+ // let key;
6407
+ var otherKind = undefined;
6388
6408
 
6389
6409
  if (!inverse) {
6390
6410
  return knownKind === 'belongsTo' ? 'oneToNone' : 'manyToNone';
6391
6411
  }
6392
6412
 
6393
- key = inverse.name;
6413
+ // key = inverse.name;
6394
6414
  otherKind = inverse.kind;
6395
6415
 
6396
6416
  if (otherKind === 'belongsTo') {
@@ -6420,7 +6440,7 @@ define("ember-data/-private/system/relationships/ext", ["exports", "ember", "emb
6420
6440
  - **kind** <span class="type">String</span> "hasMany" or "belongsTo"
6421
6441
  - **options** <span class="type">Object</span> the original options hash passed when the relationship was declared
6422
6442
  - **parentType** <span class="type">DS.Model</span> the type of the Model that owns this relationship
6423
- - **type** <span class="type">DS.Model</span> the type of the related Model
6443
+ - **type** <span class="type">String</span> the type name of the related Model
6424
6444
  Note that in addition to a callback, you can also pass an optional target
6425
6445
  object that will be set as `this` on the context.
6426
6446
  Example
@@ -7322,8 +7342,11 @@ define("ember-data/-private/system/relationships/state/relationship", ["exports"
7322
7342
  }
7323
7343
  };
7324
7344
  });
7325
- define('ember-data/-private/system/snapshot-record-array', ['exports', 'ember-data/-private/features'], function (exports, _emberDataPrivateFeatures) {
7345
+ define('ember-data/-private/system/snapshot-record-array', ['exports'], function (exports) {
7326
7346
  exports.default = SnapshotRecordArray;
7347
+ /**
7348
+ @module ember-data
7349
+ */
7327
7350
 
7328
7351
  /**
7329
7352
  @class SnapshotRecordArray
@@ -7376,9 +7399,7 @@ define('ember-data/-private/system/snapshot-record-array', ['exports', 'ember-da
7376
7399
  */
7377
7400
  this.adapterOptions = options.adapterOptions;
7378
7401
 
7379
- if (true) {
7380
- this.include = options.include;
7381
- }
7402
+ this.include = options.include;
7382
7403
  }
7383
7404
 
7384
7405
  /**
@@ -7396,10 +7417,7 @@ define('ember-data/-private/system/snapshot-record-array', ['exports', 'ember-da
7396
7417
  return this._snapshots;
7397
7418
  };
7398
7419
  });
7399
- /**
7400
- @module ember-data
7401
- */
7402
- define('ember-data/-private/system/snapshot', ['exports', 'ember', 'ember-data/-private/system/empty-object', 'ember-data/-private/features'], function (exports, _ember, _emberDataPrivateSystemEmptyObject, _emberDataPrivateFeatures) {
7420
+ define("ember-data/-private/system/snapshot", ["exports", "ember", "ember-data/-private/system/empty-object"], function (exports, _ember, _emberDataPrivateSystemEmptyObject) {
7403
7421
  exports.default = Snapshot;
7404
7422
 
7405
7423
  var get = _ember.default.get;
@@ -7441,9 +7459,7 @@ define('ember-data/-private/system/snapshot', ['exports', 'ember', 'ember-data/-
7441
7459
  */
7442
7460
  this.adapterOptions = options.adapterOptions;
7443
7461
 
7444
- if (true) {
7445
- this.include = options.include;
7446
- }
7462
+ this.include = options.include;
7447
7463
 
7448
7464
  this._changedAttributes = record.changedAttributes();
7449
7465
  }
@@ -7728,7 +7744,7 @@ define('ember-data/-private/system/snapshot', ['exports', 'ember', 'ember-data/-
7728
7744
  @module ember-data
7729
7745
  */
7730
7746
  define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/model', 'ember-data/-private/debug', 'ember-data/-private/system/normalize-link', 'ember-data/-private/system/normalize-model-name', 'ember-data/adapters/errors', 'ember-data/-private/system/promise-proxies', 'ember-data/-private/system/store/common', 'ember-data/-private/system/store/serializer-response', 'ember-data/-private/system/store/serializers', 'ember-data/-private/system/store/finders', 'ember-data/-private/utils', 'ember-data/-private/system/coerce-id', 'ember-data/-private/system/record-array-manager', 'ember-data/-private/system/store/container-instance-cache', 'ember-data/-private/system/model/internal-model', 'ember-data/-private/system/empty-object', 'ember-data/-private/features'], function (exports, _ember, _emberDataModel, _emberDataPrivateDebug, _emberDataPrivateSystemNormalizeLink, _emberDataPrivateSystemNormalizeModelName, _emberDataAdaptersErrors, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemStoreCommon, _emberDataPrivateSystemStoreSerializerResponse, _emberDataPrivateSystemStoreSerializers, _emberDataPrivateSystemStoreFinders, _emberDataPrivateUtils, _emberDataPrivateSystemCoerceId, _emberDataPrivateSystemRecordArrayManager, _emberDataPrivateSystemStoreContainerInstanceCache, _emberDataPrivateSystemModelInternalModel, _emberDataPrivateSystemEmptyObject, _emberDataPrivateFeatures) {
7731
- var badIdFormatAssertion = '`id` has to be non-empty string or number';
7747
+ var badIdFormatAssertion = '`id` passed to `findRecord()` has to be non-empty string or number';
7732
7748
 
7733
7749
  exports.badIdFormatAssertion = badIdFormatAssertion;
7734
7750
  var Backburner = _ember.default._Backburner;
@@ -8072,6 +8088,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8072
8088
  method to find the necessary data. If the record is already present in the
8073
8089
  store, it depends on the reload behavior _when_ the returned promise
8074
8090
  resolves.
8091
+ ### Reloading
8075
8092
  The reload behavior is configured either via the passed `options` hash or
8076
8093
  the result of the adapter's `shouldReloadRecord`.
8077
8094
  If `{ reload: true }` is passed or `adapter.shouldReloadRecord` evaluates
@@ -8099,6 +8116,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8099
8116
  ```
8100
8117
  If no reload is indicated via the abovementioned ways, then the promise
8101
8118
  immediately resolves with the cached version in the store.
8119
+ ### Background Reloading
8102
8120
  Optionally, if `adapter.shouldBackgroundReloadRecord` evaluates to `true`,
8103
8121
  then a background reload is started, which updates the records' data, once
8104
8122
  it is available:
@@ -8133,6 +8151,40 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8133
8151
  // }
8134
8152
  // ]
8135
8153
  blogPost.get('revision'); // 2
8154
+ ```
8155
+ If you would like to force or prevent background reloading, you can set a
8156
+ boolean value for `backgroundReload` in the options object for
8157
+ `findRecord`.
8158
+ ```app/routes/post/edit.js
8159
+ import Ember from 'ember';
8160
+ export default Ember.Route.extend({
8161
+ model: function(params) {
8162
+ return this.store.findRecord('post', params.post_id, { backgroundReload: false });
8163
+ }
8164
+ });
8165
+ ```
8166
+ If you pass an object on the `adapterOptions` property of the options
8167
+ argument it will be passed to you adapter via the snapshot
8168
+ ```app/routes/post/edit.js
8169
+ import Ember from 'ember';
8170
+ export default Ember.Route.extend({
8171
+ model: function(params) {
8172
+ return this.store.findRecord('post', params.post_id, {
8173
+ adapterOptions: { subscribe: false }
8174
+ });
8175
+ }
8176
+ });
8177
+ ```
8178
+ ```app/adapters/post.js
8179
+ import MyCustomAdapter from './custom-adapter';
8180
+ export default MyCustomAdapter.extend({
8181
+ findRecord: function(store, type, id, snapshot) {
8182
+ if (snapshot.adapterOptions.subscribe) {
8183
+ // ...
8184
+ }
8185
+ // ...
8186
+ }
8187
+ });
8136
8188
  ```
8137
8189
  See [peekRecord](#method_peekRecord) to get the cached version of a record.
8138
8190
  @method findRecord
@@ -8161,16 +8213,21 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8161
8213
  return this.scheduleFetch(internalModel, options);
8162
8214
  }
8163
8215
 
8164
- // Refetch the record if the adapter thinks the record is stale
8165
8216
  var snapshot = internalModel.createSnapshot(options);
8166
8217
  var typeClass = internalModel.type;
8167
8218
  var adapter = this.adapterFor(typeClass.modelName);
8219
+
8220
+ // Refetch the record if the adapter thinks the record is stale
8168
8221
  if (adapter.shouldReloadRecord(this, snapshot)) {
8169
8222
  return this.scheduleFetch(internalModel, options);
8170
8223
  }
8171
8224
 
8172
- // Trigger the background refetch if all the previous checks fail
8173
- if (adapter.shouldBackgroundReloadRecord(this, snapshot)) {
8225
+ if (options.backgroundReload === false) {
8226
+ return Promise.resolve(internalModel);
8227
+ }
8228
+
8229
+ // Trigger the background refetch if backgroundReload option is passed
8230
+ if (options.backgroundReload || adapter.shouldBackgroundReloadRecord(this, snapshot)) {
8174
8231
  this.scheduleFetch(internalModel, options);
8175
8232
  }
8176
8233
 
@@ -8372,6 +8429,38 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8372
8429
  }
8373
8430
  },
8374
8431
 
8432
+ /**
8433
+ Get the reference for the specified record.
8434
+ Example
8435
+ ```javascript
8436
+ var userRef = store.getReference('user', 1);
8437
+ // check if the user is loaded
8438
+ var isLoaded = userRef.value() !== null;
8439
+ // get the record of the reference (null if not yet available)
8440
+ var user = userRef.value();
8441
+ // get the identifier of the reference
8442
+ if (userRef.remoteType() === "id") {
8443
+ var id = userRef.id();
8444
+ }
8445
+ // load user (via store.find)
8446
+ userRef.load().then(...)
8447
+ // or trigger a reload
8448
+ userRef.reload().then(...)
8449
+ // provide data for reference
8450
+ userRef.push({ id: 1, username: "@user" }).then(function(user) {
8451
+ userRef.value() === user;
8452
+ });
8453
+ ```
8454
+ @method getReference
8455
+ @param {String} type
8456
+ @param {String|Integer} id
8457
+ @since 2.5.0
8458
+ @return {RecordReference}
8459
+ */
8460
+ getReference: function (type, id) {
8461
+ return this._internalModelForId(type, id).recordReference;
8462
+ },
8463
+
8375
8464
  /**
8376
8465
  Get a record by a given type and ID without triggering a fetch.
8377
8466
  This method will synchronously return the record if it is available in the store,
@@ -8637,7 +8726,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8637
8726
  },
8638
8727
 
8639
8728
  /**
8640
- `findAll` ask the adapter's `findAll` method to find the records for the
8729
+ `findAll` asks the adapter's `findAll` method to find the records for the
8641
8730
  given type, and returns a promise which will resolve with all records of
8642
8731
  this type present in the store, even if the adapter only returns a subset
8643
8732
  of them.
@@ -8652,6 +8741,7 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8652
8741
  _When_ the returned promise resolves depends on the reload behavior,
8653
8742
  configured via the passed `options` hash and the result of the adapter's
8654
8743
  `shouldReloadAll` method.
8744
+ ### Reloading
8655
8745
  If `{ reload: true }` is passed or `adapter.shouldReloadAll` evaluates to
8656
8746
  `true`, then the returned promise resolves once the adapter returns data,
8657
8747
  regardless if there are already records in the store:
@@ -8675,7 +8765,8 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8675
8765
  ```
8676
8766
  If no reload is indicated via the abovementioned ways, then the promise
8677
8767
  immediately resolves with all the records currently loaded in the store.
8678
- Optionally, if `adapter.shouldBackgroundReloadAll` evaluates to `true`,
8768
+ ### Background Reloading
8769
+ Optionally, if `adapter.shouldBackgroundReloadAll` evaluates to `true`,
8679
8770
  then a background reload is started. Once this resolves, the array with
8680
8771
  which the promise resolves, is updated automatically so it contains all the
8681
8772
  records in the store:
@@ -8710,7 +8801,41 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8710
8801
  // ]
8711
8802
  allAuthors.getEach('id'); // ['first', 'second']
8712
8803
  ```
8713
- See [peekAll](#method_peekAll) to get an array of current records in the
8804
+ If you would like to force or prevent background reloading, you can set a
8805
+ boolean value for `backgroundReload` in the options object for
8806
+ `findAll`.
8807
+ ```app/routes/post/edit.js
8808
+ import Ember from 'ember';
8809
+ export default Ember.Route.extend({
8810
+ model: function() {
8811
+ return this.store.findAll('post', { backgroundReload: false });
8812
+ }
8813
+ });
8814
+ ```
8815
+ If you pass an object on the `adapterOptions` property of the options
8816
+ argument it will be passed to you adapter via the `snapshotRecordArray`
8817
+ ```app/routes/posts.js
8818
+ import Ember from 'ember';
8819
+ export default Ember.Route.extend({
8820
+ model: function(params) {
8821
+ return this.store.findAll('post', {
8822
+ adapterOptions: { subscribe: false }
8823
+ });
8824
+ }
8825
+ });
8826
+ ```
8827
+ ```app/adapters/post.js
8828
+ import MyCustomAdapter from './custom-adapter';
8829
+ export default MyCustomAdapter.extend({
8830
+ findAll: function(store, type, sinceToken, snapshotRecordArray) {
8831
+ if (snapshotRecordArray.adapterOptions.subscribe) {
8832
+ // ...
8833
+ }
8834
+ // ...
8835
+ }
8836
+ });
8837
+ ```
8838
+ See [peekAll](#method_peekAll) to get an array of current records in the
8714
8839
  store, without waiting until a reload is finished.
8715
8840
  See [query](#method_query) to only get a subset of records from the server.
8716
8841
  @method findAll
@@ -8741,13 +8866,21 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
8741
8866
  if (options.reload) {
8742
8867
  return (0, _emberDataPrivateSystemPromiseProxies.promiseArray)((0, _emberDataPrivateSystemStoreFinders._findAll)(adapter, this, typeClass, sinceToken, options));
8743
8868
  }
8869
+
8744
8870
  var snapshotArray = array.createSnapshot(options);
8871
+
8745
8872
  if (adapter.shouldReloadAll(this, snapshotArray)) {
8746
8873
  return (0, _emberDataPrivateSystemPromiseProxies.promiseArray)((0, _emberDataPrivateSystemStoreFinders._findAll)(adapter, this, typeClass, sinceToken, options));
8747
8874
  }
8748
- if (adapter.shouldBackgroundReloadAll(this, snapshotArray)) {
8875
+
8876
+ if (options.backgroundReload === false) {
8877
+ return (0, _emberDataPrivateSystemPromiseProxies.promiseArray)(Promise.resolve(array));
8878
+ }
8879
+
8880
+ if (options.backgroundReload || adapter.shouldBackgroundReloadAll(this, snapshotArray)) {
8749
8881
  (0, _emberDataPrivateSystemStoreFinders._findAll)(adapter, this, typeClass, sinceToken, options);
8750
8882
  }
8883
+
8751
8884
  return (0, _emberDataPrivateSystemPromiseProxies.promiseArray)(Promise.resolve(array));
8752
8885
  },
8753
8886
 
@@ -9421,15 +9554,10 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
9421
9554
 
9422
9555
  serializer = this.serializerFor(modelName);
9423
9556
  }
9424
- if (false) {
9425
- return this._adapterRun(function () {
9426
- return serializer.pushPayload(_this3, payload);
9427
- });
9428
- } else {
9429
- this._adapterRun(function () {
9430
- return serializer.pushPayload(_this3, payload);
9431
- });
9432
- }
9557
+
9558
+ this._adapterRun(function () {
9559
+ return serializer.pushPayload(_this3, payload);
9560
+ });
9433
9561
  },
9434
9562
 
9435
9563
  /**
@@ -9613,42 +9741,6 @@ define('ember-data/-private/system/store', ['exports', 'ember', 'ember-data/mode
9613
9741
 
9614
9742
  });
9615
9743
 
9616
- if (true) {
9617
-
9618
- Store.reopen({
9619
- /**
9620
- Get the reference for the specified record.
9621
- Example
9622
- ```javascript
9623
- var userRef = store.getReference('user', 1);
9624
- // check if the user is loaded
9625
- var isLoaded = userRef.value() !== null;
9626
- // get the record of the reference (null if not yet available)
9627
- var user = userRef.value();
9628
- // get the identifier of the reference
9629
- if (userRef.remoteType() === "id") {
9630
- var id = userRef.id();
9631
- }
9632
- // load user (via store.find)
9633
- userRef.load().then(...)
9634
- // or trigger a reload
9635
- userRef.reload().then(...)
9636
- // provide data for reference
9637
- userRef.push({ id: 1, username: "@user" }).then(function(user) {
9638
- userRef.value() === user;
9639
- });
9640
- ```
9641
- @method getReference
9642
- @param {String} type
9643
- @param {String|Integer} id
9644
- @return {RecordReference}
9645
- */
9646
- getReference: function (type, id) {
9647
- return this._internalModelForId(type, id).recordReference;
9648
- }
9649
- });
9650
- }
9651
-
9652
9744
  function deserializeRecordId(store, key, relationship, id) {
9653
9745
  if (isNone(id)) {
9654
9746
  return;
@@ -10238,12 +10330,8 @@ define('ember-data/-private/transforms/boolean', ['exports', 'ember', 'ember-dat
10238
10330
  deserialize: function (serialized, options) {
10239
10331
  var type = typeof serialized;
10240
10332
 
10241
- if (true) {
10242
- if (false) {
10243
- if (isNone(serialized) && options.allowNull === true) {
10244
- return null;
10245
- }
10246
- }
10333
+ if (isNone(serialized) && options.allowNull === true) {
10334
+ return null;
10247
10335
  }
10248
10336
 
10249
10337
  if (type === "boolean") {
@@ -10258,25 +10346,21 @@ define('ember-data/-private/transforms/boolean', ['exports', 'ember', 'ember-dat
10258
10346
  },
10259
10347
 
10260
10348
  serialize: function (deserialized, options) {
10261
- if (true) {
10262
- if (false) {
10263
- if (isNone(deserialized) && options.allowNull === true) {
10264
- return null;
10265
- }
10266
- }
10349
+ if (isNone(deserialized) && options.allowNull === true) {
10350
+ return null;
10267
10351
  }
10268
10352
 
10269
10353
  return Boolean(deserialized);
10270
10354
  }
10271
10355
  });
10272
10356
  });
10273
- define("ember-data/-private/transforms/date", ["exports", "ember", "ember-data/-private/ext/date", "ember-data/transform"], function (exports, _ember, _emberDataPrivateExtDate, _emberDataTransform) {
10357
+ define("ember-data/-private/transforms/date", ["exports", "ember-data/-private/ext/date", "ember-data/transform"], function (exports, _emberDataPrivateExtDate, _emberDataTransform) {
10274
10358
  exports.default = _emberDataTransform.default.extend({
10275
10359
  deserialize: function (serialized) {
10276
10360
  var type = typeof serialized;
10277
10361
 
10278
10362
  if (type === "string") {
10279
- return new Date(_ember.default.Date.parse(serialized));
10363
+ return new Date((0, _emberDataPrivateExtDate.parseDate)(serialized));
10280
10364
  } else if (type === "number") {
10281
10365
  return new Date(serialized);
10282
10366
  } else if (serialized === null || serialized === undefined) {
@@ -10573,8 +10657,8 @@ define('ember-data/adapter', ['exports', 'ember'], function (exports, _ember) {
10573
10657
  /**
10574
10658
  The `findRecord()` method is invoked when the store is asked for a record that
10575
10659
  has not previously been loaded. In response to `findRecord()` being called, you
10576
- should query your persistence layer for a record with the given ID. The `findRecord`
10577
- method should return a promise that will resolve to a JavaScript object that will be
10660
+ should query your persistence layer for a record with the given ID. The `findRecord`
10661
+ method should return a promise that will resolve to a JavaScript object that will be
10578
10662
  normalized by the serializer.
10579
10663
  Here is an example `findRecord` implementation:
10580
10664
  ```app/adapters/application.js
@@ -11064,9 +11148,6 @@ define('ember-data/adapters/errors', ['exports', 'ember', 'ember-data/-private/d
11064
11148
  }
11065
11149
 
11066
11150
  var extendedErrorsEnabled = false;
11067
- if (false) {
11068
- extendedErrorsEnabled = true;
11069
- }
11070
11151
 
11071
11152
  function extendFn(ErrorClass) {
11072
11153
  return function () {
@@ -11353,12 +11434,7 @@ define('ember-data/adapters/json-api', ['exports', 'ember', 'ember-data/adapters
11353
11434
  @return {Promise} promise
11354
11435
  */
11355
11436
  findMany: function (store, type, ids, snapshots) {
11356
- if (false) {
11357
- return this._super.apply(this, arguments);
11358
- } else {
11359
- var url = this.buildURL(type.modelName, ids, snapshots, 'findMany');
11360
- return this.ajax(url, 'GET', { data: { filter: { id: ids.join(',') } } });
11361
- }
11437
+ return this._super.apply(this, arguments);
11362
11438
  },
11363
11439
 
11364
11440
  /**
@@ -11380,80 +11456,65 @@ define('ember-data/adapters/json-api', ['exports', 'ember', 'ember-data/adapters
11380
11456
  @return {Promise} promise
11381
11457
  */
11382
11458
  updateRecord: function (store, type, snapshot) {
11383
- if (false) {
11384
- return this._super.apply(this, arguments);
11385
- } else {
11386
- var data = {};
11387
- var serializer = store.serializerFor(type.modelName);
11388
-
11389
- serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
11390
-
11391
- var id = snapshot.id;
11392
- var url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');
11393
-
11394
- return this.ajax(url, 'PATCH', { data: data });
11395
- }
11459
+ return this._super.apply(this, arguments);
11396
11460
  }
11397
11461
  });
11398
11462
 
11399
- if (false) {
11463
+ JSONAPIAdapter.reopen({
11400
11464
 
11401
- JSONAPIAdapter.reopen({
11465
+ methodForRequest: function (params) {
11466
+ if (params.requestType === 'updateRecord') {
11467
+ return 'PATCH';
11468
+ }
11402
11469
 
11403
- methodForRequest: function (params) {
11404
- if (params.requestType === 'updateRecord') {
11405
- return 'PATCH';
11406
- }
11470
+ return this._super.apply(this, arguments);
11471
+ },
11407
11472
 
11408
- return this._super.apply(this, arguments);
11409
- },
11473
+ dataForRequest: function (params) {
11474
+ var requestType = params.requestType;
11475
+ var ids = params.ids;
11410
11476
 
11411
- dataForRequest: function (params) {
11412
- var requestType = params.requestType;
11413
- var ids = params.ids;
11477
+ if (requestType === 'findMany') {
11478
+ return {
11479
+ filter: { id: ids.join(',') }
11480
+ };
11481
+ }
11414
11482
 
11415
- if (requestType === 'findMany') {
11416
- return {
11417
- filter: { id: ids.join(',') }
11418
- };
11419
- }
11420
-
11421
- if (requestType === 'updateRecord') {
11422
- var store = params.store;
11423
- var type = params.type;
11424
- var snapshot = params.snapshot;
11425
-
11426
- var data = {};
11427
- var serializer = store.serializerFor(type.modelName);
11483
+ if (requestType === 'updateRecord') {
11484
+ var store = params.store;
11485
+ var type = params.type;
11486
+ var snapshot = params.snapshot;
11428
11487
 
11429
- serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
11488
+ var data = {};
11489
+ var serializer = store.serializerFor(type.modelName);
11430
11490
 
11431
- return data;
11432
- }
11491
+ serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
11433
11492
 
11434
- return this._super.apply(this, arguments);
11435
- },
11493
+ return data;
11494
+ }
11436
11495
 
11437
- headersForRequest: function () {
11438
- var headers = this._super.apply(this, arguments) || {};
11496
+ return this._super.apply(this, arguments);
11497
+ },
11439
11498
 
11440
- headers['Accept'] = 'application/vnd.api+json';
11499
+ headersForRequest: function () {
11500
+ var headers = this._super.apply(this, arguments) || {};
11441
11501
 
11442
- return headers;
11443
- },
11502
+ headers['Accept'] = 'application/vnd.api+json';
11444
11503
 
11445
- _requestToJQueryAjaxHash: function () {
11446
- var hash = this._super.apply(this, arguments);
11504
+ return headers;
11505
+ },
11447
11506
 
11448
- if (hash.contentType) {
11449
- hash.contentType = 'application/vnd.api+json';
11450
- }
11507
+ _requestToJQueryAjaxHash: function () {
11508
+ var hash = this._super.apply(this, arguments);
11451
11509
 
11452
- return hash;
11510
+ if (hash.contentType) {
11511
+ hash.contentType = 'application/vnd.api+json';
11453
11512
  }
11454
11513
 
11455
- });
11456
- }
11514
+ return hash;
11515
+ }
11516
+
11517
+ });
11457
11518
 
11458
11519
  exports.default = JSONAPIAdapter;
11459
11520
  });
@@ -11821,19 +11882,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11821
11882
  @return {Promise} promise
11822
11883
  */
11823
11884
  findRecord: function (store, type, id, snapshot) {
11824
- if (false) {
11825
- var request = this._requestFor({
11826
- store: store, type: type, id: id, snapshot: snapshot,
11827
- requestType: 'findRecord'
11828
- });
11829
-
11830
- return this._makeRequest(request);
11831
- } else {
11832
- var url = this.buildURL(type.modelName, id, snapshot, 'findRecord');
11833
- var query = this.buildQuery(snapshot);
11885
+ var request = this._requestFor({
11886
+ store: store, type: type, id: id, snapshot: snapshot,
11887
+ requestType: 'findRecord'
11888
+ });
11834
11889
 
11835
- return this.ajax(url, 'GET', { data: query });
11836
- }
11890
+ return this._makeRequest(request);
11837
11891
  },
11838
11892
 
11839
11893
  /**
@@ -11851,23 +11905,13 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11851
11905
  findAll: function (store, type, sinceToken, snapshotRecordArray) {
11852
11906
  var query = this.buildQuery(snapshotRecordArray);
11853
11907
 
11854
- if (false) {
11855
- var request = this._requestFor({
11856
- store: store, type: type, sinceToken: sinceToken, query: query,
11857
- snapshots: snapshotRecordArray,
11858
- requestType: 'findAll'
11859
- });
11860
-
11861
- return this._makeRequest(request);
11862
- } else {
11863
- var url = this.buildURL(type.modelName, null, snapshotRecordArray, 'findAll');
11864
-
11865
- if (sinceToken) {
11866
- query.since = sinceToken;
11867
- }
11908
+ var request = this._requestFor({
11909
+ store: store, type: type, sinceToken: sinceToken, query: query,
11910
+ snapshots: snapshotRecordArray,
11911
+ requestType: 'findAll'
11912
+ });
11868
11913
 
11869
- return this.ajax(url, 'GET', { data: query });
11870
- }
11914
+ return this._makeRequest(request);
11871
11915
  },
11872
11916
 
11873
11917
  /**
@@ -11885,22 +11929,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11885
11929
  @return {Promise} promise
11886
11930
  */
11887
11931
  query: function (store, type, query) {
11888
- if (false) {
11889
- var request = this._requestFor({
11890
- store: store, type: type, query: query,
11891
- requestType: 'query'
11892
- });
11893
-
11894
- return this._makeRequest(request);
11895
- } else {
11896
- var url = this.buildURL(type.modelName, null, null, 'query', query);
11897
-
11898
- if (this.sortQueryParams) {
11899
- query = this.sortQueryParams(query);
11900
- }
11932
+ var request = this._requestFor({
11933
+ store: store, type: type, query: query,
11934
+ requestType: 'query'
11935
+ });
11901
11936
 
11902
- return this.ajax(url, 'GET', { data: query });
11903
- }
11937
+ return this._makeRequest(request);
11904
11938
  },
11905
11939
 
11906
11940
  /**
@@ -11918,22 +11952,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11918
11952
  @return {Promise} promise
11919
11953
  */
11920
11954
  queryRecord: function (store, type, query) {
11921
- if (false) {
11922
- var request = this._requestFor({
11923
- store: store, type: type, query: query,
11924
- requestType: 'queryRecord'
11925
- });
11926
-
11927
- return this._makeRequest(request);
11928
- } else {
11929
- var url = this.buildURL(type.modelName, null, null, 'queryRecord', query);
11930
-
11931
- if (this.sortQueryParams) {
11932
- query = this.sortQueryParams(query);
11933
- }
11955
+ var request = this._requestFor({
11956
+ store: store, type: type, query: query,
11957
+ requestType: 'queryRecord'
11958
+ });
11934
11959
 
11935
- return this.ajax(url, 'GET', { data: query });
11936
- }
11960
+ return this._makeRequest(request);
11937
11961
  },
11938
11962
 
11939
11963
  /**
@@ -11963,17 +11987,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
11963
11987
  @return {Promise} promise
11964
11988
  */
11965
11989
  findMany: function (store, type, ids, snapshots) {
11966
- if (false) {
11967
- var request = this._requestFor({
11968
- store: store, type: type, ids: ids, snapshots: snapshots,
11969
- requestType: 'findMany'
11970
- });
11990
+ var request = this._requestFor({
11991
+ store: store, type: type, ids: ids, snapshots: snapshots,
11992
+ requestType: 'findMany'
11993
+ });
11971
11994
 
11972
- return this._makeRequest(request);
11973
- } else {
11974
- var url = this.buildURL(type.modelName, ids, snapshots, 'findMany');
11975
- return this.ajax(url, 'GET', { data: { ids: ids } });
11976
- }
11995
+ return this._makeRequest(request);
11977
11996
  },
11978
11997
 
11979
11998
  /**
@@ -12003,21 +12022,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12003
12022
  @return {Promise} promise
12004
12023
  */
12005
12024
  findHasMany: function (store, snapshot, url, relationship) {
12006
- if (false) {
12007
- var request = this._requestFor({
12008
- store: store, snapshot: snapshot, url: url, relationship: relationship,
12009
- requestType: 'findHasMany'
12010
- });
12011
-
12012
- return this._makeRequest(request);
12013
- } else {
12014
- var id = snapshot.id;
12015
- var type = snapshot.modelName;
12016
-
12017
- url = this.urlPrefix(url, this.buildURL(type, id, snapshot, 'findHasMany'));
12025
+ var request = this._requestFor({
12026
+ store: store, snapshot: snapshot, url: url, relationship: relationship,
12027
+ requestType: 'findHasMany'
12028
+ });
12018
12029
 
12019
- return this.ajax(url, 'GET');
12020
- }
12030
+ return this._makeRequest(request);
12021
12031
  },
12022
12032
 
12023
12033
  /**
@@ -12047,20 +12057,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12047
12057
  @return {Promise} promise
12048
12058
  */
12049
12059
  findBelongsTo: function (store, snapshot, url, relationship) {
12050
- if (false) {
12051
- var request = this._requestFor({
12052
- store: store, snapshot: snapshot, url: url, relationship: relationship,
12053
- requestType: 'findBelongsTo'
12054
- });
12055
-
12056
- return this._makeRequest(request);
12057
- } else {
12058
- var id = snapshot.id;
12059
- var type = snapshot.modelName;
12060
+ var request = this._requestFor({
12061
+ store: store, snapshot: snapshot, url: url, relationship: relationship,
12062
+ requestType: 'findBelongsTo'
12063
+ });
12060
12064
 
12061
- url = this.urlPrefix(url, this.buildURL(type, id, snapshot, 'findBelongsTo'));
12062
- return this.ajax(url, 'GET');
12063
- }
12065
+ return this._makeRequest(request);
12064
12066
  },
12065
12067
 
12066
12068
  /**
@@ -12077,22 +12079,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12077
12079
  @return {Promise} promise
12078
12080
  */
12079
12081
  createRecord: function (store, type, snapshot) {
12080
- if (false) {
12081
- var request = this._requestFor({
12082
- store: store, type: type, snapshot: snapshot,
12083
- requestType: 'createRecord'
12084
- });
12085
-
12086
- return this._makeRequest(request);
12087
- } else {
12088
- var data = {};
12089
- var serializer = store.serializerFor(type.modelName);
12090
- var url = this.buildURL(type.modelName, null, snapshot, 'createRecord');
12091
-
12092
- serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
12082
+ var request = this._requestFor({
12083
+ store: store, type: type, snapshot: snapshot,
12084
+ requestType: 'createRecord'
12085
+ });
12093
12086
 
12094
- return this.ajax(url, "POST", { data: data });
12095
- }
12087
+ return this._makeRequest(request);
12096
12088
  },
12097
12089
 
12098
12090
  /**
@@ -12109,24 +12101,12 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12109
12101
  @return {Promise} promise
12110
12102
  */
12111
12103
  updateRecord: function (store, type, snapshot) {
12112
- if (false) {
12113
- var request = this._requestFor({
12114
- store: store, type: type, snapshot: snapshot,
12115
- requestType: 'updateRecord'
12116
- });
12117
-
12118
- return this._makeRequest(request);
12119
- } else {
12120
- var data = {};
12121
- var serializer = store.serializerFor(type.modelName);
12122
-
12123
- serializer.serializeIntoHash(data, type, snapshot);
12124
-
12125
- var id = snapshot.id;
12126
- var url = this.buildURL(type.modelName, id, snapshot, 'updateRecord');
12104
+ var request = this._requestFor({
12105
+ store: store, type: type, snapshot: snapshot,
12106
+ requestType: 'updateRecord'
12107
+ });
12127
12108
 
12128
- return this.ajax(url, "PUT", { data: data });
12129
- }
12109
+ return this._makeRequest(request);
12130
12110
  },
12131
12111
 
12132
12112
  /**
@@ -12139,28 +12119,26 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12139
12119
  @return {Promise} promise
12140
12120
  */
12141
12121
  deleteRecord: function (store, type, snapshot) {
12142
- if (false) {
12143
- var request = this._requestFor({
12144
- store: store, type: type, snapshot: snapshot,
12145
- requestType: 'deleteRecord'
12146
- });
12147
-
12148
- return this._makeRequest(request);
12149
- } else {
12150
- var id = snapshot.id;
12122
+ var request = this._requestFor({
12123
+ store: store, type: type, snapshot: snapshot,
12124
+ requestType: 'deleteRecord'
12125
+ });
12151
12126
 
12152
- return this.ajax(this.buildURL(type.modelName, id, snapshot, 'deleteRecord'), "DELETE");
12153
- }
12127
+ return this._makeRequest(request);
12154
12128
  },
12155
12129
 
12156
12130
  _stripIDFromURL: function (store, snapshot) {
12157
12131
  var url = this.buildURL(snapshot.modelName, snapshot.id, snapshot);
12158
12132
 
12159
12133
  var expandedURL = url.split('/');
12160
- //Case when the url is of the format ...something/:id
12134
+ // Case when the url is of the format ...something/:id
12135
+ // We are decodeURIComponent-ing the lastSegment because if it represents
12136
+ // the id, it has been encodeURIComponent-ified within `buildURL`. If we
12137
+ // don't do this, then records with id having special characters are not
12138
+ // coalesced correctly (see GH #4190 for the reported bug)
12161
12139
  var lastSegment = expandedURL[expandedURL.length - 1];
12162
12140
  var id = snapshot.id;
12163
- if (lastSegment === id) {
12141
+ if (decodeURIComponent(lastSegment) === id) {
12164
12142
  expandedURL[expandedURL.length - 1] = "";
12165
12143
  } else if (endsWith(lastSegment, '?id=' + id)) {
12166
12144
  //Case when the url is of the format ...something?id=:id
@@ -12270,23 +12248,6 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12270
12248
  var errors = this.normalizeErrorResponse(status, headers, payload);
12271
12249
  var detailedMessage = this.generatedDetailedMessage(status, headers, payload, requestData);
12272
12250
 
12273
- if (false) {
12274
- switch (status) {
12275
- case 401:
12276
- return new _emberDataAdaptersErrors.UnauthorizedError(errors, detailedMessage);
12277
- case 403:
12278
- return new _emberDataAdaptersErrors.ForbiddenError(errors, detailedMessage);
12279
- case 404:
12280
- return new _emberDataAdaptersErrors.NotFoundError(errors, detailedMessage);
12281
- case 409:
12282
- return new _emberDataAdaptersErrors.ConflictError(errors, detailedMessage);
12283
- default:
12284
- if (status >= 500) {
12285
- return new _emberDataAdaptersErrors.ServerError(errors, detailedMessage);
12286
- }
12287
- }
12288
- }
12289
-
12290
12251
  return new _emberDataAdaptersErrors.AdapterError(errors, detailedMessage);
12291
12252
  },
12292
12253
 
@@ -12431,7 +12392,9 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12431
12392
 
12432
12393
  try {
12433
12394
  json = _ember.default.$.parseJSON(responseText);
12434
- } catch (e) {}
12395
+ } catch (e) {
12396
+ // ignored
12397
+ }
12435
12398
 
12436
12399
  return json;
12437
12400
  },
@@ -12486,13 +12449,11 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12486
12449
  buildQuery: function (snapshot) {
12487
12450
  var query = {};
12488
12451
 
12489
- if (true) {
12490
- if (snapshot) {
12491
- var include = snapshot.include;
12452
+ if (snapshot) {
12453
+ var include = snapshot.include;
12492
12454
 
12493
- if (include) {
12494
- query.include = include;
12495
- }
12455
+ if (include) {
12456
+ query.include = include;
12496
12457
  }
12497
12458
  }
12498
12459
 
@@ -12500,258 +12461,257 @@ define('ember-data/adapters/rest', ['exports', 'ember', 'ember-data/adapter', 'e
12500
12461
  }
12501
12462
  });
12502
12463
 
12503
- if (false) {
12504
-
12505
- RESTAdapter.reopen({
12464
+ RESTAdapter.reopen({
12506
12465
 
12507
- /**
12508
- * Get the data (body or query params) for a request.
12509
- *
12510
- * @public
12511
- * @method dataForRequest
12512
- * @param {Object} params
12513
- * @return {Object} data
12514
- */
12515
- dataForRequest: function (params) {
12516
- var store = params.store;
12517
- var type = params.type;
12518
- var snapshot = params.snapshot;
12519
- var requestType = params.requestType;
12520
- var query = params.query;
12466
+ /**
12467
+ * Get the data (body or query params) for a request.
12468
+ *
12469
+ * @public
12470
+ * @method dataForRequest
12471
+ * @param {Object} params
12472
+ * @return {Object} data
12473
+ */
12474
+ dataForRequest: function (params) {
12475
+ var store = params.store;
12476
+ var type = params.type;
12477
+ var snapshot = params.snapshot;
12478
+ var requestType = params.requestType;
12479
+ var query = params.query;
12521
12480
 
12522
- // type is not passed to findBelongsTo and findHasMany
12523
- type = type || snapshot && snapshot.type;
12481
+ // type is not passed to findBelongsTo and findHasMany
12482
+ type = type || snapshot && snapshot.type;
12524
12483
 
12525
- var serializer = store.serializerFor(type.modelName);
12526
- var data = {};
12484
+ var serializer = store.serializerFor(type.modelName);
12485
+ var data = {};
12527
12486
 
12528
- switch (requestType) {
12529
- case 'createRecord':
12530
- serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
12531
- break;
12487
+ switch (requestType) {
12488
+ case 'createRecord':
12489
+ serializer.serializeIntoHash(data, type, snapshot, { includeId: true });
12490
+ break;
12532
12491
 
12533
- case 'updateRecord':
12534
- serializer.serializeIntoHash(data, type, snapshot);
12535
- break;
12492
+ case 'updateRecord':
12493
+ serializer.serializeIntoHash(data, type, snapshot);
12494
+ break;
12536
12495
 
12537
- case 'findRecord':
12538
- data = this.buildQuery(snapshot);
12539
- break;
12496
+ case 'findRecord':
12497
+ data = this.buildQuery(snapshot);
12498
+ break;
12540
12499
 
12541
- case 'findAll':
12542
- if (params.sinceToken) {
12543
- query = query || {};
12544
- query.since = params.sinceToken;
12545
- }
12546
- data = query;
12547
- break;
12500
+ case 'findAll':
12501
+ if (params.sinceToken) {
12502
+ query = query || {};
12503
+ query.since = params.sinceToken;
12504
+ }
12505
+ data = query;
12506
+ break;
12548
12507
 
12549
- case 'query':
12550
- case 'queryRecord':
12551
- if (this.sortQueryParams) {
12552
- query = this.sortQueryParams(query);
12553
- }
12554
- data = query;
12555
- break;
12508
+ case 'query':
12509
+ case 'queryRecord':
12510
+ if (this.sortQueryParams) {
12511
+ query = this.sortQueryParams(query);
12512
+ }
12513
+ data = query;
12514
+ break;
12556
12515
 
12557
- case 'findMany':
12558
- data = { ids: params.ids };
12559
- break;
12516
+ case 'findMany':
12517
+ data = { ids: params.ids };
12518
+ break;
12560
12519
 
12561
- default:
12562
- data = undefined;
12563
- break;
12564
- }
12520
+ default:
12521
+ data = undefined;
12522
+ break;
12523
+ }
12565
12524
 
12566
- return data;
12567
- },
12525
+ return data;
12526
+ },
12568
12527
 
12569
- /**
12570
- * Get the HTTP method for a request.
12571
- *
12572
- * @public
12573
- * @method methodForRequest
12574
- * @param {Object} params
12575
- * @return {String} HTTP method
12576
- */
12577
- methodForRequest: function (params) {
12578
- var requestType = params.requestType;
12579
-
12580
- switch (requestType) {
12581
- case 'createRecord':
12582
- return 'POST';
12583
- case 'updateRecord':
12584
- return 'PUT';
12585
- case 'deleteRecord':
12586
- return 'DELETE';
12587
- }
12528
+ /**
12529
+ * Get the HTTP method for a request.
12530
+ *
12531
+ * @public
12532
+ * @method methodForRequest
12533
+ * @param {Object} params
12534
+ * @return {String} HTTP method
12535
+ */
12536
+ methodForRequest: function (params) {
12537
+ var requestType = params.requestType;
12588
12538
 
12589
- return 'GET';
12590
- },
12539
+ switch (requestType) {
12540
+ case 'createRecord':
12541
+ return 'POST';
12542
+ case 'updateRecord':
12543
+ return 'PUT';
12544
+ case 'deleteRecord':
12545
+ return 'DELETE';
12546
+ }
12591
12547
 
12592
- /**
12593
- * Get the URL for a request.
12594
- *
12595
- * @public
12596
- * @method urlForRequest
12597
- * @param {Object} params
12598
- * @return {String} URL
12599
- */
12600
- urlForRequest: function (params) {
12601
- var type = params.type;
12602
- var id = params.id;
12603
- var ids = params.ids;
12604
- var snapshot = params.snapshot;
12605
- var snapshots = params.snapshots;
12606
- var requestType = params.requestType;
12607
- var query = params.query;
12548
+ return 'GET';
12549
+ },
12608
12550
 
12609
- // type and id are not passed from updateRecord and deleteRecord, hence they
12610
- // are defined if not set
12611
- type = type || snapshot && snapshot.type;
12612
- id = id || snapshot && snapshot.id;
12551
+ /**
12552
+ * Get the URL for a request.
12553
+ *
12554
+ * @public
12555
+ * @method urlForRequest
12556
+ * @param {Object} params
12557
+ * @return {String} URL
12558
+ */
12559
+ urlForRequest: function (params) {
12560
+ var type = params.type;
12561
+ var id = params.id;
12562
+ var ids = params.ids;
12563
+ var snapshot = params.snapshot;
12564
+ var snapshots = params.snapshots;
12565
+ var requestType = params.requestType;
12566
+ var query = params.query;
12567
+
12568
+ // type and id are not passed from updateRecord and deleteRecord, hence they
12569
+ // are defined if not set
12570
+ type = type || snapshot && snapshot.type;
12571
+ id = id || snapshot && snapshot.id;
12613
12572
 
12614
- switch (requestType) {
12615
- case 'findAll':
12616
- return this.buildURL(type.modelName, null, snapshots, requestType);
12573
+ switch (requestType) {
12574
+ case 'findAll':
12575
+ return this.buildURL(type.modelName, null, snapshots, requestType);
12617
12576
 
12618
- case 'query':
12619
- case 'queryRecord':
12620
- return this.buildURL(type.modelName, null, null, requestType, query);
12577
+ case 'query':
12578
+ case 'queryRecord':
12579
+ return this.buildURL(type.modelName, null, null, requestType, query);
12621
12580
 
12622
- case 'findMany':
12623
- return this.buildURL(type.modelName, ids, snapshots, requestType);
12581
+ case 'findMany':
12582
+ return this.buildURL(type.modelName, ids, snapshots, requestType);
12624
12583
 
12625
- case 'findHasMany':
12626
- case 'findBelongsTo':
12584
+ case 'findHasMany':
12585
+ case 'findBelongsTo':
12586
+ {
12627
12587
  var url = this.buildURL(type.modelName, id, snapshot, requestType);
12628
12588
  return this.urlPrefix(params.url, url);
12629
- }
12589
+ }
12590
+ }
12630
12591
 
12631
- return this.buildURL(type.modelName, id, snapshot, requestType, query);
12632
- },
12592
+ return this.buildURL(type.modelName, id, snapshot, requestType, query);
12593
+ },
12633
12594
 
12634
- /**
12635
- * Get the headers for a request.
12636
- *
12637
- * By default the value of the `headers` property of the adapter is
12638
- * returned.
12639
- *
12640
- * @public
12641
- * @method headersForRequest
12642
- * @param {Object} params
12643
- * @return {Object} headers
12644
- */
12645
- headersForRequest: function (params) {
12646
- return this.get('headers');
12647
- },
12595
+ /**
12596
+ * Get the headers for a request.
12597
+ *
12598
+ * By default the value of the `headers` property of the adapter is
12599
+ * returned.
12600
+ *
12601
+ * @public
12602
+ * @method headersForRequest
12603
+ * @param {Object} params
12604
+ * @return {Object} headers
12605
+ */
12606
+ headersForRequest: function (params) {
12607
+ return this.get('headers');
12608
+ },
12648
12609
 
12649
- /**
12650
- * Get an object which contains all properties for a request which should
12651
- * be made.
12652
- *
12653
- * @private
12654
- * @method _requestFor
12655
- * @param {Object} params
12656
- * @return {Object} request object
12657
- */
12658
- _requestFor: function (params) {
12659
- var method = this.methodForRequest(params);
12660
- var url = this.urlForRequest(params);
12661
- var headers = this.headersForRequest(params);
12662
- var data = this.dataForRequest(params);
12663
-
12664
- return { method: method, url: url, headers: headers, data: data };
12665
- },
12610
+ /**
12611
+ * Get an object which contains all properties for a request which should
12612
+ * be made.
12613
+ *
12614
+ * @private
12615
+ * @method _requestFor
12616
+ * @param {Object} params
12617
+ * @return {Object} request object
12618
+ */
12619
+ _requestFor: function (params) {
12620
+ var method = this.methodForRequest(params);
12621
+ var url = this.urlForRequest(params);
12622
+ var headers = this.headersForRequest(params);
12623
+ var data = this.dataForRequest(params);
12666
12624
 
12667
- /**
12668
- * Convert a request object into a hash which can be passed to `jQuery.ajax`.
12669
- *
12670
- * @private
12671
- * @method _requestToJQueryAjaxHash
12672
- * @param {Object} request
12673
- * @return {Object} jQuery ajax hash
12674
- */
12675
- _requestToJQueryAjaxHash: function (request) {
12676
- var hash = {};
12677
-
12678
- hash.type = request.method;
12679
- hash.url = request.url;
12680
- hash.dataType = 'json';
12681
- hash.context = this;
12682
-
12683
- if (request.data) {
12684
- if (request.type !== 'GET') {
12685
- hash.contentType = 'application/json; charset=utf-8';
12686
- hash.data = JSON.stringify(request.data);
12687
- } else {
12688
- hash.data = request.data;
12689
- }
12690
- }
12625
+ return { method: method, url: url, headers: headers, data: data };
12626
+ },
12691
12627
 
12692
- var headers = request.headers;
12693
- if (headers !== undefined) {
12694
- hash.beforeSend = function (xhr) {
12695
- Object.keys(headers).forEach(function (key) {
12696
- return xhr.setRequestHeader(key, headers[key]);
12697
- });
12698
- };
12628
+ /**
12629
+ * Convert a request object into a hash which can be passed to `jQuery.ajax`.
12630
+ *
12631
+ * @private
12632
+ * @method _requestToJQueryAjaxHash
12633
+ * @param {Object} request
12634
+ * @return {Object} jQuery ajax hash
12635
+ */
12636
+ _requestToJQueryAjaxHash: function (request) {
12637
+ var hash = {};
12638
+
12639
+ hash.type = request.method;
12640
+ hash.url = request.url;
12641
+ hash.dataType = 'json';
12642
+ hash.context = this;
12643
+
12644
+ if (request.data) {
12645
+ if (request.type !== 'GET') {
12646
+ hash.contentType = 'application/json; charset=utf-8';
12647
+ hash.data = JSON.stringify(request.data);
12648
+ } else {
12649
+ hash.data = request.data;
12699
12650
  }
12651
+ }
12700
12652
 
12701
- return hash;
12702
- },
12653
+ var headers = request.headers;
12654
+ if (headers !== undefined) {
12655
+ hash.beforeSend = function (xhr) {
12656
+ Object.keys(headers).forEach(function (key) {
12657
+ return xhr.setRequestHeader(key, headers[key]);
12658
+ });
12659
+ };
12660
+ }
12703
12661
 
12704
- /**
12705
- * Make a request using `jQuery.ajax`.
12706
- *
12707
- * @private
12708
- * @method _makeRequest
12709
- * @param {Object} request
12710
- * @return {Promise} promise
12711
- */
12712
- _makeRequest: function (request) {
12713
- var adapter = this;
12714
- var hash = this._requestToJQueryAjaxHash(request);
12662
+ return hash;
12663
+ },
12715
12664
 
12716
- var method = request.method;
12717
- var url = request.url;
12665
+ /**
12666
+ * Make a request using `jQuery.ajax`.
12667
+ *
12668
+ * @private
12669
+ * @method _makeRequest
12670
+ * @param {Object} request
12671
+ * @return {Promise} promise
12672
+ */
12673
+ _makeRequest: function (request) {
12674
+ var adapter = this;
12675
+ var hash = this._requestToJQueryAjaxHash(request);
12718
12676
 
12719
- var requestData = { method: method, url: url };
12677
+ var method = request.method;
12678
+ var url = request.url;
12720
12679
 
12721
- return new _ember.default.RSVP.Promise(function (resolve, reject) {
12680
+ var requestData = { method: method, url: url };
12722
12681
 
12723
- hash.success = function (payload, textStatus, jqXHR) {
12724
- var response = adapter.handleResponse(jqXHR.status, (0, _emberDataPrivateUtilsParseResponseHeaders.default)(jqXHR.getAllResponseHeaders()), payload, requestData);
12682
+ return new _ember.default.RSVP.Promise(function (resolve, reject) {
12725
12683
 
12726
- if (response instanceof _emberDataAdaptersErrors.AdapterError) {
12727
- _ember.default.run.join(null, reject, response);
12728
- } else {
12729
- _ember.default.run.join(null, resolve, response);
12730
- }
12731
- };
12684
+ hash.success = function (payload, textStatus, jqXHR) {
12685
+ var response = adapter.handleResponse(jqXHR.status, (0, _emberDataPrivateUtilsParseResponseHeaders.default)(jqXHR.getAllResponseHeaders()), payload, requestData);
12732
12686
 
12733
- hash.error = function (jqXHR, textStatus, errorThrown) {
12687
+ if (response instanceof _emberDataAdaptersErrors.AdapterError) {
12688
+ _ember.default.run.join(null, reject, response);
12689
+ } else {
12690
+ _ember.default.run.join(null, resolve, response);
12691
+ }
12692
+ };
12734
12693
 
12735
- var error = undefined;
12694
+ hash.error = function (jqXHR, textStatus, errorThrown) {
12736
12695
 
12737
- if (errorThrown instanceof Error) {
12738
- error = errorThrown;
12739
- } else if (textStatus === 'timeout') {
12740
- error = new _emberDataAdaptersErrors.TimeoutError();
12741
- } else if (textStatus === 'abort') {
12742
- error = new _emberDataAdaptersErrors.AbortError();
12743
- } else {
12744
- error = adapter.handleResponse(jqXHR.status, (0, _emberDataPrivateUtilsParseResponseHeaders.default)(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText) || errorThrown, requestData);
12745
- }
12696
+ var error = undefined;
12746
12697
 
12747
- _ember.default.run.join(null, reject, error);
12748
- };
12698
+ if (errorThrown instanceof Error) {
12699
+ error = errorThrown;
12700
+ } else if (textStatus === 'timeout') {
12701
+ error = new _emberDataAdaptersErrors.TimeoutError();
12702
+ } else if (textStatus === 'abort') {
12703
+ error = new _emberDataAdaptersErrors.AbortError();
12704
+ } else {
12705
+ error = adapter.handleResponse(jqXHR.status, (0, _emberDataPrivateUtilsParseResponseHeaders.default)(jqXHR.getAllResponseHeaders()), adapter.parseErrorResponse(jqXHR.responseText) || errorThrown, requestData);
12706
+ }
12749
12707
 
12750
- adapter._ajaxRequest(hash);
12751
- }, 'DS: RESTAdapter#makeRequest: ' + method + ' ' + url);
12752
- }
12753
- });
12754
- }
12708
+ _ember.default.run.join(null, reject, error);
12709
+ };
12710
+
12711
+ adapter._ajaxRequest(hash);
12712
+ }, 'DS: RESTAdapter#makeRequest: ' + method + ' ' + url);
12713
+ }
12714
+ });
12755
12715
 
12756
12716
  //From http://stackoverflow.com/questions/280634/endswith-in-javascript
12757
12717
  function endsWith(string, suffix) {
@@ -12841,6 +12801,34 @@ define('ember-data/attr', ['exports', 'ember', 'ember-data/-private/debug'], fun
12841
12801
  });
12842
12802
  ```
12843
12803
 
12804
+ The `options` hash is passed as second argument to a transforms'
12805
+ `serialize` and `deserialize` method. This allows to configure a
12806
+ transformation and adapt the corresponding value, based on the config:
12807
+
12808
+ ```app/models/post.js
12809
+ export default DS.Model.extend({
12810
+ text: DS.attr('text', {
12811
+ uppercase: true
12812
+ })
12813
+ });
12814
+ ```
12815
+
12816
+ ```app/transforms/text.js
12817
+ export default DS.Transform.extend({
12818
+ serialize: function(value, options) {
12819
+ if (options.uppercase) {
12820
+ return value.toUpperCase();
12821
+ }
12822
+
12823
+ return value;
12824
+ },
12825
+
12826
+ deserialize: function(value) {
12827
+ return value;
12828
+ }
12829
+ })
12830
+ ```
12831
+
12844
12832
  @namespace
12845
12833
  @method attr
12846
12834
  @for DS
@@ -12900,40 +12888,9 @@ define('ember-data/attr', ['exports', 'ember', 'ember-data/-private/debug'], fun
12900
12888
  }
12901
12889
  }).meta(meta);
12902
12890
  }
12903
-
12904
- // TODO add to documentation of `attr` function above, once this feature is added
12905
- // /**
12906
- // * The `options` hash is passed as second argument to a transforms'
12907
- // * `serialize` and `deserialize` method. This allows to configure a
12908
- // * transformation and adapt the corresponding value, based on the config:
12909
- // *
12910
- // * ```app/models/post.js
12911
- // * export default DS.Model.extend({
12912
- // * text: DS.attr('text', {
12913
- // * uppercase: true
12914
- // * })
12915
- // * });
12916
- // * ```
12917
- // *
12918
- // * ```app/transforms/text.js
12919
- // * export default DS.Transform.extend({
12920
- // * serialize: function(value, options) {
12921
- // * if (options.uppercase) {
12922
- // * return value.toUpperCase();
12923
- // * }
12924
- // *
12925
- // * return value;
12926
- // * },
12927
- // *
12928
- // * deserialize: function(value) {
12929
- // * return value;
12930
- // * }
12931
- // * })
12932
- // * ```
12933
- // *
12934
- // */
12935
12891
  });
12936
- define("ember-data", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/features", "ember-data/-private/core", "ember-data/-private/system/normalize-model-name", "ember-data/-private/system/model/internal-model", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/store", "ember-data/-private/system/model", "ember-data/model", "ember-data/-private/system/snapshot", "ember-data/adapter", "ember-data/serializer", "ember-data/-private/system/debug", "ember-data/adapters/errors", "ember-data/-private/system/record-arrays", "ember-data/-private/system/many-array", "ember-data/-private/system/record-array-manager", "ember-data/-private/adapters", "ember-data/-private/adapters/build-url-mixin", "ember-data/-private/serializers", "ember-inflector", "ember-data/serializers/embedded-records-mixin", "ember-data/-private/transforms", "ember-data/relationships", "ember-data/setup-container", "ember-data/-private/instance-initializers/initialize-store-service", "ember-data/-private/system/container-proxy", "ember-data/-private/system/relationships/state/relationship"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateFeatures, _emberDataPrivateCore, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateSystemModelInternalModel, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemStore, _emberDataPrivateSystemModel, _emberDataModel, _emberDataPrivateSystemSnapshot, _emberDataAdapter, _emberDataSerializer, _emberDataPrivateSystemDebug, _emberDataAdaptersErrors, _emberDataPrivateSystemRecordArrays, _emberDataPrivateSystemManyArray, _emberDataPrivateSystemRecordArrayManager, _emberDataPrivateAdapters, _emberDataPrivateAdaptersBuildUrlMixin, _emberDataPrivateSerializers, _emberInflector, _emberDataSerializersEmbeddedRecordsMixin, _emberDataPrivateTransforms, _emberDataRelationships, _emberDataSetupContainer, _emberDataPrivateInstanceInitializersInitializeStoreService, _emberDataPrivateSystemContainerProxy, _emberDataPrivateSystemRelationshipsStateRelationship) {
12892
+ define("ember-data", ["exports", "ember", "ember-data/-private/debug", "ember-data/-private/features", "ember-data/-private/global", "ember-data/-private/core", "ember-data/-private/system/normalize-model-name", "ember-data/-private/system/model/internal-model", "ember-data/-private/system/promise-proxies", "ember-data/-private/system/store", "ember-data/-private/system/model", "ember-data/model", "ember-data/-private/system/snapshot", "ember-data/adapter", "ember-data/serializer", "ember-data/-private/system/debug", "ember-data/adapters/errors", "ember-data/-private/system/record-arrays", "ember-data/-private/system/many-array", "ember-data/-private/system/record-array-manager", "ember-data/-private/adapters", "ember-data/-private/adapters/build-url-mixin", "ember-data/-private/serializers", "ember-inflector", "ember-data/serializers/embedded-records-mixin", "ember-data/-private/transforms", "ember-data/relationships", "ember-data/setup-container", "ember-data/-private/instance-initializers/initialize-store-service", "ember-data/-private/system/container-proxy", "ember-data/-private/system/relationships/state/relationship"], function (exports, _ember, _emberDataPrivateDebug, _emberDataPrivateFeatures, _emberDataPrivateGlobal, _emberDataPrivateCore, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateSystemModelInternalModel, _emberDataPrivateSystemPromiseProxies, _emberDataPrivateSystemStore, _emberDataPrivateSystemModel, _emberDataModel, _emberDataPrivateSystemSnapshot, _emberDataAdapter, _emberDataSerializer, _emberDataPrivateSystemDebug, _emberDataAdaptersErrors, _emberDataPrivateSystemRecordArrays, _emberDataPrivateSystemManyArray, _emberDataPrivateSystemRecordArrayManager, _emberDataPrivateAdapters, _emberDataPrivateAdaptersBuildUrlMixin, _emberDataPrivateSerializers, _emberInflector, _emberDataSerializersEmbeddedRecordsMixin, _emberDataPrivateTransforms, _emberDataRelationships, _emberDataSetupContainer, _emberDataPrivateInstanceInitializersInitializeStoreService, _emberDataPrivateSystemContainerProxy, _emberDataPrivateSystemRelationshipsStateRelationship) {
12893
+
12937
12894
  /**
12938
12895
  Ember Data
12939
12896
  @module ember-data
@@ -12965,14 +12922,6 @@ define("ember-data", ["exports", "ember", "ember-data/-private/debug", "ember-da
12965
12922
  _emberDataPrivateCore.default.TimeoutError = _emberDataAdaptersErrors.TimeoutError;
12966
12923
  _emberDataPrivateCore.default.AbortError = _emberDataAdaptersErrors.AbortError;
12967
12924
 
12968
- if (false) {
12969
- _emberDataPrivateCore.default.UnauthorizedError = _emberDataAdaptersErrors.UnauthorizedError;
12970
- _emberDataPrivateCore.default.ForbiddenError = _emberDataAdaptersErrors.ForbiddenError;
12971
- _emberDataPrivateCore.default.NotFoundError = _emberDataAdaptersErrors.NotFoundError;
12972
- _emberDataPrivateCore.default.ConflictError = _emberDataAdaptersErrors.ConflictError;
12973
- _emberDataPrivateCore.default.ServerError = _emberDataAdaptersErrors.ServerError;
12974
- }
12975
-
12976
12925
  _emberDataPrivateCore.default.errorsHashToArray = _emberDataAdaptersErrors.errorsHashToArray;
12977
12926
  _emberDataPrivateCore.default.errorsArrayToHash = _emberDataAdaptersErrors.errorsArrayToHash;
12978
12927
 
@@ -13021,7 +12970,13 @@ define("ember-data", ["exports", "ember", "ember-data/-private/debug", "ember-da
13021
12970
  value: _emberDataPrivateSystemNormalizeModelName.default
13022
12971
  });
13023
12972
 
13024
- _ember.default.lookup.DS = _emberDataPrivateCore.default;
12973
+ Object.defineProperty(_emberDataPrivateGlobal.default, 'DS', {
12974
+ configurable: true,
12975
+ get: function () {
12976
+
12977
+ return _emberDataPrivateCore.default;
12978
+ }
12979
+ });
13025
12980
 
13026
12981
  exports.default = _emberDataPrivateCore.default;
13027
12982
  });
@@ -13463,10 +13418,8 @@ define('ember-data/serializers/embedded-records-mixin', ['exports', 'ember', 'em
13463
13418
  } else if (this.hasSerializeRecordsOption(attr)) {
13464
13419
  this._serializeEmbeddedHasMany(snapshot, json, relationship);
13465
13420
  } else {
13466
- if (true) {
13467
- if (this.hasSerializeIdsAndTypesOption(attr)) {
13468
- this._serializeHasManyAsIdsAndTypes(snapshot, json, relationship);
13469
- }
13421
+ if (this.hasSerializeIdsAndTypesOption(attr)) {
13422
+ this._serializeHasManyAsIdsAndTypes(snapshot, json, relationship);
13470
13423
  }
13471
13424
  }
13472
13425
  },
@@ -13830,6 +13783,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13830
13783
  _normalizeRelationshipDataHelper: function (relationshipDataHash) {
13831
13784
  var type = this.modelNameFromPayloadKey(relationshipDataHash.type);
13832
13785
  relationshipDataHash.type = type;
13786
+
13833
13787
  return relationshipDataHash;
13834
13788
  },
13835
13789
 
@@ -13841,7 +13795,11 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13841
13795
  */
13842
13796
  _normalizeResourceHelper: function (resourceHash) {
13843
13797
 
13844
- var modelName = this.modelNameFromPayloadKey(resourceHash.type);
13798
+ var modelName = undefined,
13799
+ usedLookup = undefined;
13800
+
13801
+ modelName = this.modelNameFromPayloadKey(resourceHash.type);
13802
+ usedLookup = 'modelNameFromPayloadKey';
13845
13803
 
13846
13804
  if (!this.store._hasModelFor(modelName)) {
13847
13805
  return null;
@@ -13864,11 +13822,8 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13864
13822
  */
13865
13823
  pushPayload: function (store, payload) {
13866
13824
  var normalizedPayload = this._normalizeDocumentHelper(payload);
13867
- if (false) {
13868
- return store.push(normalizedPayload);
13869
- } else {
13870
- store.push(normalizedPayload);
13871
- }
13825
+
13826
+ store.push(normalizedPayload);
13872
13827
  },
13873
13828
 
13874
13829
  /**
@@ -13907,7 +13862,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13907
13862
  if (resourceHash.attributes) {
13908
13863
  modelClass.eachAttribute(function (key) {
13909
13864
  var attributeKey = _this.keyForAttribute(key, 'deserialize');
13910
- if (resourceHash.attributes.hasOwnProperty(attributeKey)) {
13865
+ if (resourceHash.attributes[attributeKey] !== undefined) {
13911
13866
  attributes[key] = resourceHash.attributes[attributeKey];
13912
13867
  }
13913
13868
  });
@@ -13955,7 +13910,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13955
13910
  if (resourceHash.relationships) {
13956
13911
  modelClass.eachRelationship(function (key, relationshipMeta) {
13957
13912
  var relationshipKey = _this2.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
13958
- if (resourceHash.relationships.hasOwnProperty(relationshipKey)) {
13913
+ if (resourceHash.relationships[relationshipKey] !== undefined) {
13959
13914
 
13960
13915
  var relationshipHash = resourceHash.relationships[relationshipKey];
13961
13916
  relationships[key] = _this2.extractRelationship(relationshipHash);
@@ -13982,6 +13937,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13982
13937
  @param {String} key
13983
13938
  @return {String} the model's modelName
13984
13939
  */
13940
+ // TODO @deprecated Use modelNameFromPayloadType instead
13985
13941
  modelNameFromPayloadKey: function (key) {
13986
13942
  return (0, _emberInflector.singularize)((0, _emberDataPrivateSystemNormalizeModelName.default)(key));
13987
13943
  },
@@ -13991,6 +13947,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
13991
13947
  @param {String} modelName
13992
13948
  @return {String}
13993
13949
  */
13950
+ // TODO @deprecated Use payloadTypeFromModelName instead
13994
13951
  payloadKeyFromModelName: function (modelName) {
13995
13952
  return (0, _emberInflector.pluralize)(modelName);
13996
13953
  },
@@ -14081,7 +14038,12 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14081
14038
  */
14082
14039
  serialize: function (snapshot, options) {
14083
14040
  var data = this._super.apply(this, arguments);
14084
- data.type = this.payloadKeyFromModelName(snapshot.modelName);
14041
+
14042
+ var payloadType = undefined;
14043
+
14044
+ payloadType = this.payloadKeyFromModelName(snapshot.modelName);
14045
+
14046
+ data.type = payloadType;
14085
14047
  return { data: data };
14086
14048
  },
14087
14049
 
@@ -14101,7 +14063,7 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14101
14063
  var value = snapshot.attr(key);
14102
14064
  if (type) {
14103
14065
  var transform = this.transformFor(type);
14104
- value = transform.serialize(value, attribute.options);
14066
+ value = transform.serialize(value);
14105
14067
  }
14106
14068
 
14107
14069
  var payloadKey = this._getMappedKey(key, snapshot.type);
@@ -14136,8 +14098,12 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14136
14098
 
14137
14099
  var data = null;
14138
14100
  if (belongsTo) {
14101
+ var payloadType = undefined;
14102
+
14103
+ payloadType = this.payloadKeyFromModelName(belongsTo.modelName);
14104
+
14139
14105
  data = {
14140
- type: this.payloadKeyFromModelName(belongsTo.modelName),
14106
+ type: payloadType,
14141
14107
  id: belongsTo.id
14142
14108
  };
14143
14109
  }
@@ -14155,8 +14121,9 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14155
14121
  */
14156
14122
  serializeHasMany: function (snapshot, json, relationship) {
14157
14123
  var key = relationship.key;
14124
+ var shouldSerializeHasMany = '_shouldSerializeHasMany';
14158
14125
 
14159
- if (this._shouldSerializeHasMany(snapshot, key, relationship)) {
14126
+ if (this[shouldSerializeHasMany](snapshot, key, relationship)) {
14160
14127
  var hasMany = snapshot.hasMany(key);
14161
14128
  if (hasMany !== undefined) {
14162
14129
 
@@ -14171,8 +14138,13 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14171
14138
 
14172
14139
  for (var i = 0; i < hasMany.length; i++) {
14173
14140
  var item = hasMany[i];
14141
+
14142
+ var payloadType = undefined;
14143
+
14144
+ payloadType = this.payloadKeyFromModelName(item.modelName);
14145
+
14174
14146
  data[i] = {
14175
- type: this.payloadKeyFromModelName(item.modelName),
14147
+ type: payloadType,
14176
14148
  id: item.id
14177
14149
  };
14178
14150
  }
@@ -14188,7 +14160,80 @@ define('ember-data/serializers/json-api', ['exports', 'ember', 'ember-data/-priv
14188
14160
  /**
14189
14161
  @module ember-data
14190
14162
  */
14191
- define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializer', 'ember-data/-private/system/coerce-id', 'ember-data/-private/system/normalize-model-name', 'ember-data/-private/utils', 'ember-data/adapters/errors', 'ember-data/-private/features'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializer, _emberDataPrivateSystemCoerceId, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateUtils, _emberDataAdaptersErrors, _emberDataPrivateFeatures) {
14163
+
14164
+ /**
14165
+ `modelNameFromPayloadType` can be used to change the mapping for a DS model
14166
+ name, taken from the value in the payload.
14167
+ Say your API namespaces the type of a model and returns the following
14168
+ payload for the `post` model:
14169
+ ```javascript
14170
+ // GET /api/posts/1
14171
+ {
14172
+ "data": {
14173
+ "id": 1,
14174
+ "type: "api::v1::post"
14175
+ }
14176
+ }
14177
+ ```
14178
+ By overwriting `modelNameFromPayloadType` you can specify that the
14179
+ `posr` model should be used:
14180
+ ```app/serializers/application.js
14181
+ import JSONAPISerializer from "ember-data/serializers/json-api";
14182
+ export default JSONAPISerializer.extend({
14183
+ modelNameFromPayloadType(payloadType) {
14184
+ return payloadType.replace('api::v1::', '');
14185
+ }
14186
+ });
14187
+ ```
14188
+ By default the modelName for a model is its singularized name in dasherized
14189
+ form. Usually, Ember Data can use the correct inflection to do this for
14190
+ you. Most of the time, you won't need to override
14191
+ `modelNameFromPayloadType` for this purpose.
14192
+ Also take a look at
14193
+ [payloadTypeFromModelName](#method_payloadTypeFromModelName) to customize
14194
+ how the type of a record should be serialized.
14195
+ @method modelNameFromPayloadType
14196
+ @public
14197
+ @param {String} payloadType type from payload
14198
+ @return {String} modelName
14199
+ */
14200
+
14201
+ /**
14202
+ `payloadTypeFromModelName` can be used to change the mapping for the type in
14203
+ the payload, taken from the model name.
14204
+ Say your API namespaces the type of a model and expects the following
14205
+ payload when you update the `post` model:
14206
+ ```javascript
14207
+ // POST /api/posts/1
14208
+ {
14209
+ "data": {
14210
+ "id": 1,
14211
+ "type": "api::v1::post"
14212
+ }
14213
+ }
14214
+ ```
14215
+ By overwriting `payloadTypeFromModelName` you can specify that the
14216
+ namespaces model name for the `post` should be used:
14217
+ ```app/serializers/application.js
14218
+ import JSONAPISerializer from "ember-data/serializers/json-api";
14219
+ export default JSONAPISerializer.extend({
14220
+ payloadTypeFromModelName(modelName) {
14221
+ return "api::v1::" + modelName;
14222
+ }
14223
+ });
14224
+ ```
14225
+ By default the payload type is the pluralized model name. Usually, Ember
14226
+ Data can use the correct inflection to do this for you. Most of the time,
14227
+ you won't need to override `payloadTypeFromModelName` for this purpose.
14228
+ Also take a look at
14229
+ [modelNameFromPayloadType](#method_modelNameFromPayloadType) to customize
14230
+ how the model name from should be mapped from the payload.
14231
+ @method payloadTypeFromModelName
14232
+ @public
14233
+ @param {String} modelname modelName from the record
14234
+ @return {String} payloadType
14235
+ */
14236
+ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/debug', 'ember-data/serializer', 'ember-data/-private/system/coerce-id', 'ember-data/-private/system/normalize-model-name', 'ember-data/-private/utils', 'ember-data/-private/features', 'ember-data/adapters/errors'], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializer, _emberDataPrivateSystemCoerceId, _emberDataPrivateSystemNormalizeModelName, _emberDataPrivateUtils, _emberDataPrivateFeatures, _emberDataAdaptersErrors) {
14192
14237
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
14193
14238
 
14194
14239
  var get = _ember.default.get;
@@ -14261,7 +14306,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14261
14306
  @namespace DS
14262
14307
  @extends DS.Serializer
14263
14308
  */
14264
- exports.default = _emberDataSerializer.default.extend({
14309
+ var JSONSerializer = _emberDataSerializer.default.extend({
14265
14310
 
14266
14311
  /**
14267
14312
  The `primaryKey` is used when serializing and deserializing
@@ -14349,23 +14394,16 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14349
14394
  applyTransforms: function (typeClass, data) {
14350
14395
  var _this = this;
14351
14396
 
14352
- var attributes = undefined;
14353
- if (true) {
14354
- attributes = get(typeClass, 'attributes');
14355
- }
14397
+ var attributes = get(typeClass, 'attributes');
14356
14398
 
14357
14399
  typeClass.eachTransformedAttribute(function (key, typeClass) {
14358
- if (!(key in data)) {
14400
+ if (data[key] === undefined) {
14359
14401
  return;
14360
14402
  }
14361
14403
 
14362
14404
  var transform = _this.transformFor(typeClass);
14363
- if (true) {
14364
- var transformMeta = attributes.get(key);
14365
- data[key] = transform.deserialize(data[key], transformMeta.options);
14366
- } else {
14367
- data[key] = transform.deserialize(data[key]);
14368
- }
14405
+ var transformMeta = attributes.get(key);
14406
+ data[key] = transform.deserialize(data[key], transformMeta.options);
14369
14407
  });
14370
14408
 
14371
14409
  return data;
@@ -14729,7 +14767,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14729
14767
 
14730
14768
  modelClass.eachAttribute(function (key) {
14731
14769
  attributeKey = _this2.keyForAttribute(key, 'deserialize');
14732
- if (resourceHash.hasOwnProperty(attributeKey)) {
14770
+ if (resourceHash[attributeKey] !== undefined) {
14733
14771
  attributes[key] = resourceHash[attributeKey];
14734
14772
  }
14735
14773
  });
@@ -14804,7 +14842,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14804
14842
  modelClass.eachRelationship(function (key, relationshipMeta) {
14805
14843
  var relationship = null;
14806
14844
  var relationshipKey = _this3.keyForRelationship(key, relationshipMeta.kind, 'deserialize');
14807
- if (resourceHash.hasOwnProperty(relationshipKey)) {
14845
+ if (resourceHash[relationshipKey] !== undefined) {
14808
14846
  var data = null;
14809
14847
  var relationshipHash = resourceHash[relationshipKey];
14810
14848
  if (relationshipMeta.kind === 'belongsTo') {
@@ -14830,7 +14868,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14830
14868
  }
14831
14869
 
14832
14870
  var linkKey = _this3.keyForLink(key, relationshipMeta.kind);
14833
- if (resourceHash.links && resourceHash.links.hasOwnProperty(linkKey)) {
14871
+ if (resourceHash.links && resourceHash.links[linkKey] !== undefined) {
14834
14872
  var related = resourceHash.links[linkKey];
14835
14873
  relationship = relationship || {};
14836
14874
  relationship.links = { related: related };
@@ -14849,6 +14887,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14849
14887
  @param {String} key
14850
14888
  @return {String} the model's modelName
14851
14889
  */
14890
+ // TODO @deprecated Use modelNameFromPayloadType instead
14852
14891
  modelNameFromPayloadKey: function (key) {
14853
14892
  return (0, _emberDataPrivateSystemNormalizeModelName.default)(key);
14854
14893
  },
@@ -14868,7 +14907,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14868
14907
  if (key === payloadKey) {
14869
14908
  return;
14870
14909
  }
14871
- if (!hash.hasOwnProperty(payloadKey)) {
14910
+ if (hash[payloadKey] === undefined) {
14872
14911
  return;
14873
14912
  }
14874
14913
 
@@ -14893,7 +14932,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14893
14932
  if (key === payloadKey) {
14894
14933
  return;
14895
14934
  }
14896
- if (!hash.hasOwnProperty(payloadKey)) {
14935
+ if (hash[payloadKey] === undefined) {
14897
14936
  return;
14898
14937
  }
14899
14938
 
@@ -14915,7 +14954,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14915
14954
  for (key in attrs) {
14916
14955
  normalizedKey = payloadKey = this._getMappedKey(key, modelClass);
14917
14956
 
14918
- if (!hash.hasOwnProperty(payloadKey)) {
14957
+ if (hash[payloadKey] === undefined) {
14919
14958
  continue;
14920
14959
  }
14921
14960
 
@@ -14991,6 +15030,21 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
14991
15030
  return attrs && attrs[key] && attrs[key].serialize === true;
14992
15031
  },
14993
15032
 
15033
+ /**
15034
+ Check if the given hasMany relationship should be serialized
15035
+ @method shouldSerializeHasMany
15036
+ @param {DS.Snapshot} snapshot
15037
+ @param {String} key
15038
+ @param {String} relationshipType
15039
+ @return {boolean} true if the hasMany relationship should be serialized
15040
+ */
15041
+
15042
+ shouldSerializeHasMany: function (snapshot, key, relationship) {
15043
+ if (this._shouldSerializeHasMany !== JSONSerializer.prototype._shouldSerializeHasMany) {}
15044
+
15045
+ return this._shouldSerializeHasMany(snapshot, key, relationship);
15046
+ },
15047
+
14994
15048
  /**
14995
15049
  Check if the given hasMany relationship should be serialized
14996
15050
  @method _shouldSerializeHasMany
@@ -15205,11 +15259,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15205
15259
  var value = snapshot.attr(key);
15206
15260
  if (type) {
15207
15261
  var transform = this.transformFor(type);
15208
- if (true) {
15209
- value = transform.serialize(value, attribute.options);
15210
- } else {
15211
- value = transform.serialize(value);
15212
- }
15262
+ value = transform.serialize(value, attribute.options);
15213
15263
  }
15214
15264
 
15215
15265
  // if provided, use the mapping provided by `attrs` in
@@ -15294,8 +15344,9 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15294
15344
  */
15295
15345
  serializeHasMany: function (snapshot, json, relationship) {
15296
15346
  var key = relationship.key;
15347
+ var shouldSerializeHasMany = '_shouldSerializeHasMany';
15297
15348
 
15298
- if (this._shouldSerializeHasMany(snapshot, key, relationship)) {
15349
+ if (this[shouldSerializeHasMany](snapshot, key, relationship)) {
15299
15350
  var hasMany = snapshot.hasMany(key, { ids: true });
15300
15351
  if (hasMany !== undefined) {
15301
15352
  // if provided, use the mapping provided by `attrs` in
@@ -15362,7 +15413,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15362
15413
  @param {Object} payload
15363
15414
  */
15364
15415
  extractMeta: function (store, modelClass, payload) {
15365
- if (payload && payload.hasOwnProperty('meta')) {
15416
+ if (payload && payload['meta'] !== undefined) {
15366
15417
  var meta = payload.meta;
15367
15418
  delete payload.meta;
15368
15419
  return meta;
@@ -15452,7 +15503,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15452
15503
 
15453
15504
  typeClass.eachAttribute(function (name) {
15454
15505
  var key = _this7.keyForAttribute(name, 'deserialize');
15455
- if (key !== name && payload.hasOwnProperty(key)) {
15506
+ if (key !== name && payload[key] !== undefined) {
15456
15507
  payload[name] = payload[key];
15457
15508
  delete payload[key];
15458
15509
  }
@@ -15460,7 +15511,7 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15460
15511
 
15461
15512
  typeClass.eachRelationship(function (name) {
15462
15513
  var key = _this7.keyForRelationship(name, 'deserialize');
15463
- if (key !== name && payload.hasOwnProperty(key)) {
15514
+ if (key !== name && payload[key] !== undefined) {
15464
15515
  payload[name] = payload[key];
15465
15516
  delete payload[key];
15466
15517
  }
@@ -15541,7 +15592,16 @@ define('ember-data/serializers/json', ['exports', 'ember', 'ember-data/-private/
15541
15592
  return transform;
15542
15593
  }
15543
15594
  });
15595
+
15596
+ exports.default = JSONSerializer;
15544
15597
  });
15598
+
15599
+ /**
15600
+ @method modelNameFromPayloadType
15601
+ @public
15602
+ @param {String} type
15603
+ @return {String} the model's modelName
15604
+ */
15545
15605
  define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/debug", "ember-data/serializers/json", "ember-data/-private/system/normalize-model-name", "ember-inflector", "ember-data/-private/system/coerce-id", "ember-data/-private/utils", "ember-data/-private/features"], function (exports, _ember, _emberDataPrivateDebug, _emberDataSerializersJson, _emberDataPrivateSystemNormalizeModelName, _emberInflector, _emberDataPrivateSystemCoerceId, _emberDataPrivateUtils, _emberDataPrivateFeatures) {
15546
15606
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }
15547
15607
 
@@ -15646,7 +15706,7 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15646
15706
  * With `App.Comment`, `"comments"` and `{ id: 1, body: "FIRST" }`
15647
15707
  * With `App.Comment`, `"comments"` and `{ id: 2, body: "Rails is unagi" }`
15648
15708
  You can use this method, for example, to normalize underscored keys to camelized
15649
- or other general-purpose normalizations. You will only need to implement
15709
+ or other general-purpose normalizations. You will only need to implement
15650
15710
  `normalize` and manipulate the payload as desired.
15651
15711
  For example, if the `IDs` under `"comments"` are provided as `_id` instead of
15652
15712
  `id`, you can specify how to normalize just the comments:
@@ -15656,14 +15716,14 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15656
15716
  normalize(model, hash, prop) {
15657
15717
  if (prop === 'comments') {
15658
15718
  hash.id = hash._id;
15659
- delete hash._id;
15719
+ delete hash._id;
15660
15720
  }
15661
15721
  return this._super(...arguments);
15662
15722
  }
15663
15723
  });
15664
15724
  ```
15665
- On each call to the `normalize` method, the third parameter (`prop`) is always
15666
- one of the keys that were in the original payload or in the result of another
15725
+ On each call to the `normalize` method, the third parameter (`prop`) is always
15726
+ one of the keys that were in the original payload or in the result of another
15667
15727
  normalization as `normalizeResponse`.
15668
15728
  @method normalize
15669
15729
  @param {DS.Model} modelClass
@@ -15700,7 +15760,6 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15700
15760
  var modelClass = store.modelFor(modelName);
15701
15761
  var serializer = store.serializerFor(modelName);
15702
15762
 
15703
- /*jshint loopfunc:true*/
15704
15763
  _ember.default.makeArray(arrayHash).forEach(function (hash) {
15705
15764
  var _normalizePolymorphicRecord = _this._normalizePolymorphicRecord(store, hash, prop, modelClass, serializer);
15706
15765
 
@@ -15719,17 +15778,23 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15719
15778
  },
15720
15779
 
15721
15780
  _normalizePolymorphicRecord: function (store, hash, prop, primaryModelClass, primarySerializer) {
15722
- var serializer = undefined,
15723
- modelClass = undefined;
15781
+ var serializer = primarySerializer;
15782
+ var modelClass = primaryModelClass;
15783
+
15724
15784
  var primaryHasTypeAttribute = (0, _emberDataPrivateUtils.modelHasAttributeOrRelationshipNamedType)(primaryModelClass);
15725
- // Support polymorphic records in async relationships
15726
- if (!primaryHasTypeAttribute && hash.type && store._hasModelFor(this.modelNameFromPayloadKey(hash.type))) {
15727
- serializer = store.serializerFor(this.modelNameFromPayloadKey(hash.type));
15728
- modelClass = store.modelFor(this.modelNameFromPayloadKey(hash.type));
15729
- } else {
15730
- serializer = primarySerializer;
15731
- modelClass = primaryModelClass;
15785
+
15786
+ if (!primaryHasTypeAttribute && hash.type) {
15787
+ // Support polymorphic records in async relationships
15788
+ var modelName = undefined;
15789
+
15790
+ modelName = this.modelNameFromPayloadKey(hash.type);
15791
+
15792
+ if (store._hasModelFor(modelName)) {
15793
+ serializer = store.serializerFor(modelName);
15794
+ modelClass = store.modelFor(modelName);
15795
+ }
15732
15796
  }
15797
+
15733
15798
  return serializer.normalize(modelClass, hash, prop);
15734
15799
  },
15735
15800
 
@@ -15832,7 +15897,6 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15832
15897
  }
15833
15898
 
15834
15899
  if (isSingle) {
15835
- /*jshint loopfunc:true*/
15836
15900
  data.forEach(function (resource) {
15837
15901
 
15838
15902
  /*
@@ -15914,7 +15978,6 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15914
15978
  var type = store.modelFor(modelName);
15915
15979
  var typeSerializer = store.serializerFor(type.modelName);
15916
15980
 
15917
- /*jshint loopfunc:true*/
15918
15981
  _ember.default.makeArray(payload[prop]).forEach(function (hash) {
15919
15982
  var _typeSerializer$normalize = typeSerializer.normalize(type, hash, prop);
15920
15983
 
@@ -15930,11 +15993,7 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
15930
15993
  });
15931
15994
  }
15932
15995
 
15933
- if (false) {
15934
- return store.push(documentHash);
15935
- } else {
15936
- store.push(documentHash);
15937
- }
15996
+ store.push(documentHash);
15938
15997
  },
15939
15998
 
15940
15999
  /**
@@ -16243,7 +16302,8 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
16243
16302
  var isPolymorphic = relationshipMeta.options.polymorphic;
16244
16303
  var typeProperty = this.keyForPolymorphicType(key, relationshipType, 'deserialize');
16245
16304
 
16246
- if (isPolymorphic && resourceHash.hasOwnProperty(typeProperty) && typeof relationshipHash !== 'object') {
16305
+ if (isPolymorphic && resourceHash[typeProperty] !== undefined && typeof relationshipHash !== 'object') {
16306
+
16247
16307
  var type = this.modelNameFromPayloadKey(resourceHash[typeProperty]);
16248
16308
  return {
16249
16309
  id: relationshipHash,
@@ -16260,6 +16320,82 @@ define("ember-data/serializers/rest", ["exports", "ember", "ember-data/-private/
16260
16320
  /**
16261
16321
  @module ember-data
16262
16322
  */
16323
+
16324
+ /**
16325
+ `modelNameFromPayloadType` can be used to change the mapping for a DS model
16326
+ name, taken from the value in the payload.
16327
+ Say your API namespaces the type of a model and returns the following
16328
+ payload for the `post` model, which has a polymorphic `user` relationship:
16329
+ ```javascript
16330
+ // GET /api/posts/1
16331
+ {
16332
+ "post": {
16333
+ "id": 1,
16334
+ "user": 1,
16335
+ "userType: "api::v1::administrator"
16336
+ }
16337
+ }
16338
+ ```
16339
+ By overwriting `modelNameFromPayloadType` you can specify that the
16340
+ `administrator` model should be used:
16341
+ ```app/serializers/application.js
16342
+ import RESTSerializer from "ember-data/serializers/rest";
16343
+ export default RESTSerializer.extend({
16344
+ modelNameFromPayloadType(payloadType) {
16345
+ return payloadType.replace('api::v1::', '');
16346
+ }
16347
+ });
16348
+ ```
16349
+ By default the modelName for a model is its name in dasherized form.
16350
+ Usually, Ember Data can use the correct inflection to do this for you. Most
16351
+ of the time, you won't need to override `modelNameFromPayloadType` for this
16352
+ purpose.
16353
+ Also take a look at
16354
+ [payloadTypeFromModelName](#method_payloadTypeFromModelName) to customize
16355
+ how the type of a record should be serialized.
16356
+ @method modelNameFromPayloadType
16357
+ @public
16358
+ @param {String} payloadType type from payload
16359
+ @return {String} modelName
16360
+ */
16361
+
16362
+ /**
16363
+ `payloadTypeFromModelName` can be used to change the mapping for the type in
16364
+ the payload, taken from the model name.
16365
+ Say your API namespaces the type of a model and expects the following
16366
+ payload when you update the `post` model, which has a polymorphic `user`
16367
+ relationship:
16368
+ ```javascript
16369
+ // POST /api/posts/1
16370
+ {
16371
+ "post": {
16372
+ "id": 1,
16373
+ "user": 1,
16374
+ "userType": "api::v1::administrator"
16375
+ }
16376
+ }
16377
+ ```
16378
+ By overwriting `payloadTypeFromModelName` you can specify that the
16379
+ namespaces model name for the `administrator` should be used:
16380
+ ```app/serializers/application.js
16381
+ import RESTSerializer from "ember-data/serializers/rest";
16382
+ export default RESTSerializer.extend({
16383
+ payloadTypeFromModelName(modelName) {
16384
+ return "api::v1::" + modelName;
16385
+ }
16386
+ });
16387
+ ```
16388
+ By default the payload type is the camelized model name. Usually, Ember
16389
+ Data can use the correct inflection to do this for you. Most of the time,
16390
+ you won't need to override `payloadTypeFromModelName` for this purpose.
16391
+ Also take a look at
16392
+ [modelNameFromPayloadType](#method_modelNameFromPayloadType) to customize
16393
+ how the model name from should be mapped from the payload.
16394
+ @method payloadTypeFromModelName
16395
+ @public
16396
+ @param {String} modelname modelName from the record
16397
+ @return {String} payloadType
16398
+ */
16263
16399
  define('ember-data/setup-container', ['exports', 'ember-data/-private/initializers/store', 'ember-data/-private/initializers/transforms', 'ember-data/-private/initializers/store-injections', 'ember-data/-private/initializers/data-adapter'], function (exports, _emberDataPrivateInitializersStore, _emberDataPrivateInitializersTransforms, _emberDataPrivateInitializersStoreInjections, _emberDataPrivateInitializersDataAdapter) {
16264
16400
  exports.default = setupContainer;
16265
16401
 
@@ -16318,12 +16454,13 @@ define('ember-data/transform', ['exports', 'ember'], function (exports, _ember)
16318
16454
  method must return the serialized value.
16319
16455
  Example
16320
16456
  ```javascript
16321
- serialize: function(deserialized) {
16457
+ serialize: function(deserialized, options) {
16322
16458
  return Ember.isEmpty(deserialized) ? null : Number(deserialized);
16323
16459
  }
16324
16460
  ```
16325
16461
  @method serialize
16326
16462
  @param deserialized The deserialized value
16463
+ @param options hash of options passed to `DS.attr`
16327
16464
  @return The serialized value
16328
16465
  */
16329
16466
  serialize: null,
@@ -16333,19 +16470,20 @@ define('ember-data/transform', ['exports', 'ember'], function (exports, _ember)
16333
16470
  return the deserialized value for the record attribute.
16334
16471
  Example
16335
16472
  ```javascript
16336
- deserialize: function(serialized) {
16473
+ deserialize: function(serialized, options) {
16337
16474
  return empty(serialized) ? null : Number(serialized);
16338
16475
  }
16339
16476
  ```
16340
16477
  @method deserialize
16341
16478
  @param serialized The serialized value
16479
+ @param options hash of options passed to `DS.attr`
16342
16480
  @return The deserialized value
16343
16481
  */
16344
16482
  deserialize: null
16345
16483
  });
16346
16484
  });
16347
16485
  define("ember-data/version", ["exports"], function (exports) {
16348
- exports.default = "2.6.2";
16486
+ exports.default = "2.7.0-beta.1";
16349
16487
  });
16350
16488
  define("ember-inflector", ["exports", "ember", "ember-inflector/lib/system", "ember-inflector/lib/ext/string"], function (exports, _ember, _emberInflectorLibSystem, _emberInflectorLibExtString) {
16351
16489
 
@@ -16740,7 +16878,7 @@ define('ember-inflector/lib/system/inflector', ['exports', 'ember'], function (e
16740
16878
  return word;
16741
16879
  }
16742
16880
 
16743
- for (rule in irregular) {
16881
+ for (rule in this.rules.irregular) {
16744
16882
  if (lowercase.match(rule + "$")) {
16745
16883
  substitution = irregular[rule];
16746
16884
 
@@ -16749,7 +16887,7 @@ define('ember-inflector/lib/system/inflector', ['exports', 'ember'], function (e
16749
16887
  rule = capitalize(rule);
16750
16888
  }
16751
16889
 
16752
- return word.replace(new RegExp(rule, 'i'), substitution);
16890
+ return word.replace(rule, substitution);
16753
16891
  }
16754
16892
  }
16755
16893
 
@@ -16810,6 +16948,15 @@ define('ember', [], function() {
16810
16948
 
16811
16949
 
16812
16950
  require("ember-data");
16951
+ ;(function() {
16952
+ var global = require('ember-data/-private/global').default;
16953
+ var DS = require('ember-data').default;
16954
+ Object.defineProperty(global, 'DS', {
16955
+ get: function() {
16956
+ return DS;
16957
+ }
16958
+ });
16959
+ })();
16813
16960
  })();
16814
16961
  ;(function() {
16815
16962
  function processEmberDataShims() {
@@ -16849,6 +16996,8 @@ require("ember-data");
16849
16996
  processEmberDataShims();
16850
16997
  }
16851
16998
  })();
16999
+ /* eslint no-extra-semi: "off" */
17000
+
16852
17001
  ;(function() {
16853
17002
  /* globals Ember */
16854
17003
  /* globals DS */