// Knockout Mapping plugin v2.2.0 // (c) 2012 Steven Sanderson, Roy Jacobs - http://knockoutjs.com/ // License: MIT (http://www.opensource.org/licenses/mit-license.php) (function(d){"function"===typeof require&&"object"===typeof exports&&"object"===typeof module?d(require("knockout"),exports):"function"===typeof define&&define.amd?define(["knockout","exports"],d):d(ko,ko.mapping={})})(function(d,e){function u(a,c){for(var b in c)c.hasOwnProperty(b)&&c[b]&&(b&&a[b]&&"array"!==e.getType(a[b])?u(a[b],c[b]):a[b]=c[b])}function E(a,c){var b={};u(b,a);u(b,c);return b}function F(a,c){a=a||{};if(a.create instanceof Function||a.update instanceof Function||a.key instanceof Function||a.arrayChanged instanceof Function)a={"":a};c&&(a.ignore=i(c.ignore,a.ignore),a.include=i(c.include,a.include),a.copy=i(c.copy,a.copy));a.ignore=i(a.ignore,g.ignore);a.include=i(a.include,g.include);a.copy=i(a.copy,g.copy);a.mappedProperties=a.mappedProperties||{};return a}function i(a,c){"array"!==e.getType(a)&&(a="undefined"===e.getType(a)?[]:[a]);"array"!==e.getType(c)&&(c="undefined"===e.getType(c)?[]:[c]);return a.concat(c)}function O(a,c){var b=d.dependentObservable;d.dependentObservable= function(b,c,f){f=f||{};b&&"object"==typeof b&&(f=b);var e=f.deferEvaluation,l=!1,k=function(b){return G({read:function(){l||(d.utils.arrayRemoveItem(a,b),l=!0);return b.apply(b,arguments)},write:function(a){return b(a)},deferEvaluation:!0})};f.deferEvaluation=!0;b=new G(b,c,f);e||(b=k(b),a.push(b));return b};d.dependentObservable.fn=G.fn;d.computed=d.dependentObservable;var f=c();d.dependentObservable=b;d.computed=d.dependentObservable;return f}function A(a,c,b,f,I,g){var z="array"===e.getType(d.utils.unwrapObservable(c)), g=g||"";if(e.isMapped(a))var j=d.utils.unwrapObservable(a)[o],b=E(j,b);var l=function(){return b[f]&&b[f].create instanceof Function},k=function(a){return O(B,function(){return b[f].create({data:a||c,parent:I})})},v=function(){return b[f]&&b[f].update instanceof Function},r=function(a,e){var h={data:e||c,parent:I,target:d.utils.unwrapObservable(a)};d.isWriteableObservable(a)&&(h.observable=a);return b[f].update(h)};if(j=C.get(c))return j;f=f||"";if(z){var z=[],p=!1,h=function(a){return a};b[f]&&b[f].key&& (h=b[f].key,p=!0);d.isObservable(a)||(a=d.observableArray([]),a.mappedRemove=function(b){var c=typeof b=="function"?b:function(a){return a===h(b)};return a.remove(function(a){return c(h(a))})},a.mappedRemoveAll=function(b){var c=x(b,h);return a.remove(function(a){return d.utils.arrayIndexOf(c,h(a))!=-1})},a.mappedDestroy=function(b){var c=typeof b=="function"?b:function(a){return a===h(b)};return a.destroy(function(a){return c(h(a))})},a.mappedDestroyAll=function(b){var c=x(b,h);return a.destroy(function(a){return d.utils.arrayIndexOf(c, h(a))!=-1})},a.mappedIndexOf=function(b){var c=x(a(),h),b=h(b);return d.utils.arrayIndexOf(c,b)},a.mappedCreate=function(b){if(a.mappedIndexOf(b)!==-1)throw Error("There already is an object with the key that you specified.");var c=l()?k(b):b;if(v()){b=r(c,b);d.isWriteableObservable(c)?c(b):c=b}a.push(c);return c});var j=x(d.utils.unwrapObservable(a),h).sort(),m=x(c,h);p&&m.sort();var p=d.utils.compareArrays(j,m),j={},i,w=d.utils.unwrapObservable(c),t={},u=!0,m=0;for(i=w.length;m