ngx-restangular
Version:
16 lines (14 loc) • 25 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common/http"),require("lodash"),require("core-js/features/object"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("ngx-restangular",["exports","@angular/core","@angular/common/http","lodash","core-js/features/object","rxjs","rxjs/operators"],t):t((e=e||self)["ngx-restangular"]={},e.ng.core,e.ng.common.http,e.lodash,e.object,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,n,s,a,i){"use strict";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */Object.create;function o(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,s,a=r.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(e){s={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(s)throw s.error}}return i}function u(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(o(arguments[t]));return e}Object.create;var l=new t.InjectionToken("restangularWithConfig");function d(e){var t=o(e,2),r=t[0],s=t[1],a=[],i=r;return n.isArray(r)&&(a=r,i=s),{fn:i,arrServices:a}}var c=function(){function e(){}return e.createRequest=function(t){var n=e.createRequestQueryParams(t.params),s=e.createRequestHeaders(t.headers),a=t.method.toUpperCase(),i=t.withCredentials||!1,o=new r.HttpRequest(a,t.url,t.data,{headers:s,params:n,responseType:t.responseType,withCredentials:i});return["GET","DELETE","HEAD","JSONP","OPTIONS"].indexOf(a)>=0&&(o=new r.HttpRequest(a,t.url,{headers:s,params:n,responseType:t.responseType,withCredentials:i})),o},e.createRequestQueryParams=function(e){var t=s.assign({},e),n=new r.HttpParams,a=function(e){var r=t[e];Array.isArray(r)?r.forEach((function(t){n=n.append(e,t)})):("object"==typeof r&&(r=JSON.stringify(r)),n=n.append(e,r))};for(var i in t)a(i);return n},e.createRequestHeaders=function(e){for(var t in e){void 0===e[t]&&delete e[t]}return new r.HttpHeaders(s.assign({},e))},e}(),f=function(){function e(e){this.http=e}return e.prototype.createRequest=function(e){var t=c.createRequest(e);return this.request(t)},e.prototype.request=function(e){var t=this;return this.http.handle(e).pipe(i.filter((function(e){return e instanceof r.HttpResponse})),i.map((function(e){return e.ok?e:a.throwError(new r.HttpErrorResponse(e))})),i.map((function(t){return t.config={params:e},t})),i.catchError((function(r){return r.request=e,r.data=r.error,r.repeatRequest=function(r){return t.request(r||e)},a.throwError(r)})))},e}();function p(e,t){e.configuration=t;var r=["get","head","options","trace","getlist"];t.isSafe=function(e){return n.includes(r,e.toLowerCase())};var s=/^https?:\/\//i;t.isAbsoluteUrl=function(e){return n.isUndefined(t.absoluteUrl)||n.isNull(t.absoluteUrl)?e&&s.test(e):t.absoluteUrl},t.absoluteUrl=!!n.isUndefined(t.absoluteUrl)||t.absoluteUrl,e.setSelfLinkAbsoluteUrl=function(e){t.absoluteUrl=e},t.baseUrl=n.isUndefined(t.baseUrl)?"":t.baseUrl,e.setBaseUrl=function(e){return t.baseUrl=/\/$/.test(e)?e.substring(0,e.length-1):e,this},t.extraFields=t.extraFields||[],e.setExtraFields=function(e){return t.extraFields=e,this},t.defaultHttpFields=t.defaultHttpFields||{},e.setDefaultHttpFields=function(e){return t.defaultHttpFields=e,this},t.plainByDefault=t.plainByDefault||!1,e.setPlainByDefault=function(e){return t.plainByDefault=!0===e,this},t.withHttpValues=function(e,r){return n.defaults(r,e,t.defaultHttpFields)},t.encodeIds=!!n.isUndefined(t.encodeIds)||t.encodeIds,e.setEncodeIds=function(e){t.encodeIds=e},t.defaultRequestParams=t.defaultRequestParams||{get:{},post:{},put:{},remove:{},common:{}},e.setDefaultRequestParams=function(e,r){var s=[],a=r||e;return n.isUndefined(r)?s.push("common"):n.isArray(e)?s=e:s.push(e),n.each(s,(function(e){t.defaultRequestParams[e]=a})),this},e.requestParams=t.defaultRequestParams,t.defaultHeaders=t.defaultHeaders||{},e.setDefaultHeaders=function(r){return t.defaultHeaders=r,e.defaultHeaders=t.defaultHeaders,this},e.defaultHeaders=t.defaultHeaders,t.defaultResponseMethod=t.defaultResponseMethod||"promise",e.setDefaultResponseMethod=function(r){return t.defaultResponseMethod=r,e.defaultResponseMethod=t.defaultResponseMethod,this},e.defaultResponseMethod=t.defaultResponseMethod,t.methodOverriders=t.methodOverriders||[],e.setMethodOverriders=function(e){var r=n.extend([],e);return t.isOverridenMethod("delete",r)&&r.push("remove"),t.methodOverriders=r,this},t.jsonp=!n.isUndefined(t.jsonp)&&t.jsonp,e.setJsonp=function(e){t.jsonp=e},t.isOverridenMethod=function(e,r){var s=r||t.methodOverriders;return!n.isUndefined(n.find(s,(function(t){return t.toLowerCase()===e.toLowerCase()})))},t.urlCreator=t.urlCreator||"path",e.setUrlCreator=function(e){if(!n.has(t.urlCreatorFactory,e))throw new Error("URL Path selected isn't valid");return t.urlCreator=e,this},t.restangularFields=t.restangularFields||{id:"id",route:"route",parentResource:"parentResource",restangularCollection:"restangularCollection",cannonicalId:"__cannonicalId",etag:"restangularEtag",selfLink:"href",get:"get",getList:"getList",put:"put",post:"post",remove:"remove",head:"head",trace:"trace",options:"options",patch:"patch",getRestangularUrl:"getRestangularUrl",getRequestedUrl:"getRequestedUrl",putElement:"putElement",addRestangularMethod:"addRestangularMethod",getParentList:"getParentList",clone:"clone",ids:"ids",httpConfig:"_$httpConfig",reqParams:"reqParams",one:"one",all:"all",several:"several",oneUrl:"oneUrl",allUrl:"allUrl",customPUT:"customPUT",customPATCH:"customPATCH",customPOST:"customPOST",customDELETE:"customDELETE",customGET:"customGET",customGETLIST:"customGETLIST",customOperation:"customOperation",doPUT:"doPUT",doPATCH:"doPATCH",doPOST:"doPOST",doDELETE:"doDELETE",doGET:"doGET",doGETLIST:"doGETLIST",fromServer:"fromServer",withConfig:"withConfig",withHttpConfig:"withHttpConfig",singleOne:"singleOne",plain:"plain",save:"save",restangularized:"restangularized"},e.setRestangularFields=function(e){return t.restangularFields=n.extend({},t.restangularFields,e),this},t.isRestangularized=function(e){return!!e[t.restangularFields.restangularized]},t.setFieldToElem=function(e,t,r){var s=e.split("."),a=t;n.each(n.initial(s),(function(e){a[e]={},a=a[e]}));var i=n.last(s);return a[i]=r,this},t.getFieldFromElem=function(e,t){var r=e.split("."),s=t;return n.each(r,(function(e){s&&(s=s[e])})),n.clone(s)},t.setIdToElem=function(e,r){return t.setFieldToElem(t.restangularFields.id,e,r),this},t.getIdFromElem=function(e){return t.getFieldFromElem(t.restangularFields.id,e)},t.isValidId=function(e){return""!==e&&!n.isUndefined(e)&&!n.isNull(e)},t.setUrlToElem=function(e,r){return t.setFieldToElem(t.restangularFields.selfLink,e,r),this},t.getUrlFromElem=function(e){return t.getFieldFromElem(t.restangularFields.selfLink,e)},t.useCannonicalId=!n.isUndefined(t.useCannonicalId)&&t.useCannonicalId,e.setUseCannonicalId=function(e){return t.useCannonicalId=e,this},t.getCannonicalIdFromElem=function(e){var r=e[t.restangularFields.cannonicalId];return t.isValidId(r)?r:t.getIdFromElem(e)},t.responseInterceptors=t.responseInterceptors?u(t.responseInterceptors):[],t.defaultResponseInterceptor=function(e){return e||{}},t.responseExtractor=function(e,r,s,a,i,o){var u=n.clone(t.responseInterceptors);u.push(t.defaultResponseInterceptor);var l=e;return n.each(u,(function(e){l=e(l,r,s,a,i,o)})),l},e.addResponseInterceptor=function(e){return t.responseInterceptors.push(e),this},t.errorInterceptors=t.errorInterceptors?u(t.errorInterceptors):[],e.addErrorInterceptor=function(e){return t.errorInterceptors=u([e],t.errorInterceptors),this},e.setResponseInterceptor=e.addResponseInterceptor,e.setResponseExtractor=e.addResponseInterceptor,e.setErrorInterceptor=e.addErrorInterceptor,t.requestInterceptors=t.requestInterceptors?u(t.requestInterceptors):[],t.defaultInterceptor=function(e,t,r,n,s,a,i){return{element:e,headers:s,params:a,httpConfig:i}},t.fullRequestInterceptor=function(e,r,s,a,i,o,u){var l=n.clone(t.requestInterceptors),d=t.defaultInterceptor(e,r,s,a,i,o,u);return n.reduce(l,(function(e,t){var i=t(e.element,r,s,a,e.headers,e.params,e.httpConfig);return n.extend(e,i)}),d)},e.addRequestInterceptor=function(e){return t.requestInterceptors.push((function(t,r,n,s,a,i,o){return{headers:a,params:i,element:e(t,r,n,s),httpConfig:o}})),this},e.setRequestInterceptor=e.addRequestInterceptor,e.addFullRequestInterceptor=function(e){return t.requestInterceptors.push(e),this},e.setFullRequestInterceptor=e.addFullRequestInterceptor,t.onBeforeElemRestangularized=t.onBeforeElemRestangularized||function(e){return e},e.setOnBeforeElemRestangularized=function(e){return t.onBeforeElemRestangularized=e,this},e.setRestangularizePromiseInterceptor=function(e){return t.restangularizePromiseInterceptor=e,this},t.onElemRestangularized=t.onElemRestangularized||function(e){return e},e.setOnElemRestangularized=function(e){return t.onElemRestangularized=e,this},t.shouldSaveParent=t.shouldSaveParent||function(){return!0},e.setParentless=function(e){return n.isArray(e)?t.shouldSaveParent=function(t){return!n.includes(e,t)}:n.isBoolean(e)&&(t.shouldSaveParent=function(){return!e}),this},t.suffix=n.isUndefined(t.suffix)?null:t.suffix,e.setRequestSuffix=function(e){return t.suffix=e,this},t.transformers=t.transformers||{},e.addElementTransformer=function(r,s,a){var i=null,o=null;2===arguments.length?o=s:(o=a,i=s);var u=t.transformers[r];return u||(u=t.transformers[r]=[]),u.push((function(e,t){return n.isNull(i)||e===i?o(t):t})),e},e.extendCollection=function(t,r){return e.addElementTransformer(t,!0,r)},e.extendModel=function(t,r){return e.addElementTransformer(t,!1,r)},t.transformElem=function(e,r,s,a,i){if(!i&&!t.transformLocalElements&&!e[t.restangularFields.fromServer])return e;var o=t.transformers[s],u=e;return o&&n.each(o,(function(e){u=e(r,u)})),t.onElemRestangularized(u,r,s,a)},t.transformLocalElements=!n.isUndefined(t.transformLocalElements)&&t.transformLocalElements,e.setTransformOnlyServerElements=function(e){t.transformLocalElements=!e},t.fullResponse=!n.isUndefined(t.fullResponse)&&t.fullResponse,e.setFullResponse=function(e){return t.fullResponse=e,this},t.urlCreatorFactory={};var a=function(){};a.prototype.setConfig=function(e){return this.config=e,this},a.prototype.parentsArray=function(e){for(var t=[];e;)t.push(e),e=e[this.config.restangularFields.parentResource];return t.reverse()},a.prototype.resource=function(e,r,s,a,i,o,u,l){var d=n.defaults(i||{},this.config.defaultRequestParams.common),c=n.defaults(a||{},this.config.defaultHeaders);u&&(t.isSafe(l)?c["If-None-Match"]=u:c["If-Match"]=u);var f=this.base(e);if(o){var p="";/\/$/.test(f)||(p+="/"),f+=p+=o}return this.config.suffix&&-1===f.indexOf(this.config.suffix,f.length-this.config.suffix.length)&&!this.config.getUrlFromElem(e)&&(f+=this.config.suffix),e[this.config.restangularFields.httpConfig]=void 0,function(e,t,r,s){var a={};return n.each(n.keys(s),(function(i){var o=s[i];o.params=n.extend({},o.params,e.defaultRequestParams[o.method.toLowerCase()]),n.isEmpty(o.params)&&delete o.params,e.isSafe(o.method)?a[i]=function(){var e=n.extend(o,{url:r});return t.createRequest(e)}:a[i]=function(e){var s=n.extend(o,{url:r,data:e});return t.createRequest(s)}})),a}(this.config,r,f,{getList:this.config.withHttpValues(s,{method:"GET",params:d,headers:c}),get:this.config.withHttpValues(s,{method:"GET",params:d,headers:c}),jsonp:this.config.withHttpValues(s,{method:"jsonp",params:d,headers:c}),put:this.config.withHttpValues(s,{method:"PUT",params:d,headers:c}),post:this.config.withHttpValues(s,{method:"POST",params:d,headers:c}),remove:this.config.withHttpValues(s,{method:"DELETE",params:d,headers:c}),head:this.config.withHttpValues(s,{method:"HEAD",params:d,headers:c}),trace:this.config.withHttpValues(s,{method:"TRACE",params:d,headers:c}),options:this.config.withHttpValues(s,{method:"OPTIONS",params:d,headers:c}),patch:this.config.withHttpValues(s,{method:"PATCH",params:d,headers:c})})};var i=function(){};(i.prototype=new a).normalizeUrl=function(e){var t=/((?:http[s]?:)?\/\/)?(.*)?/.exec(e);return t[2]=t[2].replace(/[\\\/]+/g,"/"),void 0!==t[1]?t[1]+t[2]:t[2]},i.prototype.base=function(e){var r=this;return n.reduce(this.parentsArray(e),(function(e,n){var s,a=r.config.getUrlFromElem(n);if(a){if(r.config.isAbsoluteUrl(a))return a;s=a}else if(s=n[r.config.restangularFields.route],n[r.config.restangularFields.restangularCollection]){var i=n[r.config.restangularFields.ids];i&&(s+="/"+i.join(","))}else{var o=void 0;o=r.config.useCannonicalId?r.config.getCannonicalIdFromElem(n):r.config.getIdFromElem(n),t.isValidId(o)&&!n.singleOne&&(s+="/"+(r.config.encodeIds?encodeURIComponent(o):o))}return e=e.replace(/\/$/,"")+"/"+s,r.normalizeUrl(e)}),this.config.baseUrl)},i.prototype.fetchUrl=function(e,t){var r=this.base(e);return t&&(r+="/"+t),r},i.prototype.fetchRequestedUrl=function(e,r){var s=this.fetchUrl(e,r),a=e[t.restangularFields.reqParams];function i(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}if(!a)return s+(this.config.suffix||"");var o=[];return function(e,t,r){for(var n=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r);return t.sort()}(e),s=0;s<n.length;s++)t.call(r,e[n[s]],n[s])}(a,(function(e,t){null!=e&&(n.isArray(e)||(e=[e]),n.forEach(e,(function(e){n.isObject(e)&&(e=JSON.stringify(e)),o.push(i(t)+"="+i(e))})))})),s+(this.config.suffix||"")+(-1===s.indexOf("?")?"?":"&")+o.join("&")},t.urlCreatorFactory.path=i}f.decorators=[{type:t.Injectable}],f.ctorParameters=function(){return[{type:r.HttpBackend}]};var g=function(){function e(e,t,r){this.configObj=e,this.injector=t,this.http=r,this.provider=new h(r);var n=this.provider.$get();s.assign(this,n),this.setDefaultConfig()}return e.prototype.setDefaultConfig=function(){var e,t=this;if(this.configObj&&n.isFunction(this.configObj.fn)){var r=n.map(this.configObj.arrServices,(function(e){return t.injector.get(e)}));(e=this.configObj).fn.apply(e,u([this.provider],r))}},e}();function h(e){var t={};p(this,t),this.$get=function(){return function t(r){var o={},u=new r.urlCreatorFactory[r.urlCreator];function l(e,t,s,a,i){if(t[r.restangularFields.route]=s,t[r.restangularFields.getRestangularUrl]=n.bind(u.fetchUrl,u,t),t[r.restangularFields.getRequestedUrl]=n.bind(u.fetchRequestedUrl,u,t),t[r.restangularFields.addRestangularMethod]=n.bind(D,t),t[r.restangularFields.clone]=n.bind(E,t),t[r.restangularFields.reqParams]=n.isEmpty(a)?null:a,t[r.restangularFields.withHttpConfig]=n.bind(w,t),t[r.restangularFields.plain]=n.bind(F,t,t),t[r.restangularFields.restangularized]=!0,t[r.restangularFields.one]=n.bind(d,t,t),t[r.restangularFields.all]=n.bind(c,t,t),t[r.restangularFields.several]=n.bind(f,t,t),t[r.restangularFields.oneUrl]=n.bind(g,t,t),t[r.restangularFields.allUrl]=n.bind(h,t,t),t[r.restangularFields.fromServer]=!!i,e&&r.shouldSaveParent(s)){var o=r.getIdFromElem(e),l=r.getUrlFromElem(e),p=n.union(n.values(n.pick(r.restangularFields,["route","singleOne","parentResource"])),r.extraFields),m=n.pick(e,p);r.isValidId(o)&&r.setIdToElem(m,o,s),r.isValidId(l)&&r.setUrlToElem(m,l,s),t[r.restangularFields.parentResource]=m}else t[r.restangularFields.parentResource]=null;return t}function d(e,t,s,a){var i;if(n.isNumber(t)||n.isNumber(e))throw i="You're creating a Restangular entity with the number ",i+="instead of the route or the parent. For example, you can't call .one(12).",new Error(i);if(n.isUndefined(t))throw i="You're creating a Restangular entity either without the path. ",i+="For example you can't call .one(). Please check if your arguments are valid.",new Error(i);var o={};return r.setIdToElem(o,s,t),r.setFieldToElem(r.restangularFields.singleOne,o,a),R(e,o,t,!1)}function c(e,t){return I(e,[],t,!1)}function f(e,t){var n=[];return n[r.restangularFields.ids]=Array.prototype.splice.call(arguments,2),I(e,n,t,!1)}function g(e,t,n){if(!t)throw new Error("Route is mandatory when creating new Restangular objects.");var s={};return r.setUrlToElem(s,n,t),R(e,s,t,!1)}function h(e,t,n){if(!t)throw new Error("Route is mandatory when creating new Restangular objects.");var s={};return r.setUrlToElem(s,n,t),I(e,s,t,!1)}function m(e,t,r){return e.pipe(i.filter((function(e){return!!e})))}function v(e,t,s,a){n.extend(a,s),r.fullResponse?e.next(n.extend(t,{data:s})):e.next(s),e.complete()}function F(e){if(n.isArray(e)){var t=[];return n.each(e,(function(e){t.push(r.isRestangularized(e)?F(e):e)})),t}return n.omit(e,n.values(n.omit(r.restangularFields,"id")))}function b(e){e[r.restangularFields.customOperation]=n.bind(A,e);var t={get:A,delete:A};n.each(["put","patch","post"],(function(e){t[e]=function(e,t,r,s,a){return n.bind(A,this)(e,r,s,a,t)}})),n.each(t,(function(t,r){var s="delete"===r?"remove":r;n.each(["do","custom"],(function(a){e[a+r.toUpperCase()]=n.bind(t,e,s)}))})),e[r.restangularFields.customGETLIST]=n.bind(T,e),e[r.restangularFields.doGETLIST]=e[r.restangularFields.customGETLIST]}function E(e,t){void 0===t&&(t={});var n=s.assign(t,e);return R(n[r.restangularFields.parentResource],n,n[r.restangularFields.route],!0)}function R(e,t,s,a,i,u){var d=l(e,r.onBeforeElemRestangularized(t,!1,s),s,u,a);return r.useCannonicalId&&(d[r.restangularFields.cannonicalId]=r.getIdFromElem(d)),i&&(d[r.restangularFields.getParentList]=function(){return i}),d[r.restangularFields.restangularCollection]=!1,d[r.restangularFields.get]=n.bind(x,d),d[r.restangularFields.getList]=n.bind(T,d),d[r.restangularFields.put]=n.bind(H,d),d[r.restangularFields.post]=n.bind(j,d),d[r.restangularFields.remove]=n.bind(O,d),d[r.restangularFields.head]=n.bind(S,d),d[r.restangularFields.trace]=n.bind(L,d),d[r.restangularFields.options]=n.bind(M,d),d[r.restangularFields.patch]=n.bind(z,d),d[r.restangularFields.save]=n.bind(q,d),b(d),r.transformElem(d,!1,s,o,!0)}function I(e,t,s,a,i){var u=l(e,r.onBeforeElemRestangularized(t,!0,s),s,i,a);return u[r.restangularFields.restangularCollection]=!0,u[r.restangularFields.post]=n.bind(j,u,null),u[r.restangularFields.remove]=n.bind(O,u),u[r.restangularFields.head]=n.bind(S,u),u[r.restangularFields.trace]=n.bind(L,u),u[r.restangularFields.putElement]=n.bind(C,u),u[r.restangularFields.options]=n.bind(M,u),u[r.restangularFields.patch]=n.bind(z,u),u[r.restangularFields.get]=n.bind(y,u),u[r.restangularFields.getList]=n.bind(T,u,null),b(u),r.transformElem(u,!0,s,o,!0)}function y(e,t,r){return this.customGET(e.toString(),t,r)}function C(e,t,n){var s=this,i=this[e],u=new a.BehaviorSubject(null),l=[];return l=r.transformElem(l,!0,i[r.restangularFields.route],o),i.put(t,n).subscribe((function(t){var r=E(s);r[e]=t,l=r,u.next(r)}),(function(e){u.error(e)}),(function(){u.complete()})),m(u)}function U(e,t,n,s,a,i){var o=r.responseExtractor(e,t,n,s,a,i),u=a.headers.get("ETag");return o&&u&&(o[r.restangularFields.etag]=u),o}function T(t,s,i){var l=this,d=new a.BehaviorSubject(null),c=u.fetchUrl(this,t),f=t||l[r.restangularFields.route],p=r.fullRequestInterceptor(null,"getList",f,c,i||{},s||{},this[r.restangularFields.httpConfig]||{}),g=[];g=r.transformElem(g,!0,f,o);var h="getList";r.jsonp&&(h="jsonp");var F=function(e){var s=e.body,a=e.config.params,i=U(s,"getList",f,c,e,d);if((n.isUndefined(i)||""===i)&&(i=[]),!n.isArray(i))throw new Error("Response for getList SHOULD be an array and not an object or something else");if(!0===r.plainByDefault)return v(d,e,i,g);var o=n.map(i,(function(e){return l[r.restangularFields.restangularCollection]?R(l[r.restangularFields.parentResource],e,l[r.restangularFields.route],!0,i):R(l,e,t,!0,i)}));o=n.extend(i,o),l[r.restangularFields.restangularCollection]?v(d,e,I(l[r.restangularFields.parentResource],o,l[r.restangularFields.route],!0,a),g):v(d,e,I(l,o,t,!0,a),g)};return u.resource(this,e,p.httpConfig,p.headers,p.params,t,this[r.restangularFields.etag],"getList")[h]().subscribe(F,(function(e){304===e.status&&l[r.restangularFields.restangularCollection]?v(d,e,l,g):n.every(r.errorInterceptors,(function(t){return!1!==t(e,d,F)}))&&d.error(e)})),m(d)}function w(e){return this[r.restangularFields.httpConfig]=e,this}function q(e,t){return this[r.restangularFields.fromServer]?this[r.restangularFields.put](e,t):n.bind(P,this)("post",void 0,e,void 0,t)}function P(t,s,i,l,d){var c=this,f=new a.BehaviorSubject(null),p=i||{},g=s||this[r.restangularFields.route],h=u.fetchUrl(this,s),b=l||this,E=b[r.restangularFields.etag]||("post"!==t?this[r.restangularFields.etag]:null);n.isObject(b)&&r.isRestangularized(b)&&(b=F(b));var I=r.fullRequestInterceptor(b,t,g,h,d||{},p||{},this[r.restangularFields.httpConfig]||{}),y={};y=r.transformElem(y,!1,g,o);var C=function(e){var s=n.get(e,"body"),a=n.get(e,"config.params"),i=U(s,t,g,h,e,f);if(i){var o=void 0;if(!0===r.plainByDefault)return v(f,e,i,y);"post"!==t||c[r.restangularFields.restangularCollection]?((o=R(c[r.restangularFields.parentResource],i,c[r.restangularFields.route],!0,null,a))[r.restangularFields.singleOne]=c[r.restangularFields.singleOne],v(f,e,o,y)):(o=R(c[r.restangularFields.parentResource],i,g,!0,null,a),v(f,e,o,y))}else v(f,e,void 0,y)},T=function(e){304===e.status&&r.isSafe(t)?v(f,e,c,y):n.every(r.errorInterceptors,(function(t){return!1!==t(e,f,C)}))&&f.error(e)},w=t,q=n.extend({},I.headers),P=r.isOverridenMethod(t);return P?(w="post",q=n.extend(q,{"X-HTTP-Method-Override":"remove"===t?"DELETE":t.toUpperCase()})):r.jsonp&&"get"===w&&(w="jsonp"),r.isSafe(t)?P?u.resource(this,e,I.httpConfig,q,I.params,s,E,w)[w]({}).subscribe(C,T):u.resource(this,e,I.httpConfig,q,I.params,s,E,w)[w]().subscribe(C,T):u.resource(this,e,I.httpConfig,q,I.params,s,E,w)[w](I.element).subscribe(C,T),m(f)}function x(e,t){return n.bind(P,this)("get",void 0,e,void 0,t)}function O(e,t){return n.bind(P,this)("remove",void 0,e,void 0,t)}function H(e,t){return n.bind(P,this)("put",void 0,e,void 0,t)}function j(e,t,r,s){return n.bind(P,this)("post",e,r,t,s)}function S(e,t){return n.bind(P,this)("head",void 0,e,void 0,t)}function L(e,t){return n.bind(P,this)("trace",void 0,e,void 0,t)}function M(e,t){return n.bind(P,this)("options",void 0,e,void 0,t)}function z(e,t,r){return n.bind(P,this)("patch",void 0,t,e,r)}function A(e,t,r,s,a){return n.bind(P,this)(e,t,r,a,s)}function D(e,t,s,a,i,o){var u;u="getList"===t?n.bind(T,this,s):n.bind(A,this,t,s);var l=function(e,t,r){var s=n.defaults({params:e,headers:t,elem:r},{params:a,headers:i,elem:o});return u(s.params,s.headers,s.elem)};r.isSafe(t)?this[e]=l:this[e]=function(e,t,r){return l(t,r,e)}}return u.setConfig(r),p(o,r),o.copy=n.bind(E,o),o.service=n.bind((function(e,t){var s=n.values(r.restangularFields),a={},i=(t||o).all(e);for(var u in a.one=n.bind(d,t||o,t,e),a.all=n.bind(i.all,i),a.post=n.bind(i.post,i),a.getList=n.bind(i.getList,i),a.withHttpConfig=n.bind(i.withHttpConfig,i),a.get=n.bind(i.get,i),i)i.hasOwnProperty(u)&&n.isFunction(i[u])&&!n.includes(s,u)&&(a[u]=n.bind(i[u],i));return a}),o),o.withConfig=n.bind((function(e){var s=n.clone(n.omit(r,"configuration"));return p(s,s),e(s),t(s)}),o),o.one=n.bind(d,o,null),o.all=n.bind(c,o,null),o.several=n.bind(f,o,null),o.oneUrl=n.bind(g,o,null),o.allUrl=n.bind(h,o,null),o.stripRestangular=n.bind(F,o),o.restangularizeElement=n.bind(R,o),o.restangularizeCollection=n.bind((function(e,t,r){var s=I(e,t,r,!1);return n.each(s,(function(t){t&&R(e,t,r,!1)})),s}),o),o}(t)}}g.decorators=[{type:t.Injectable}],g.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Optional},{type:t.Inject,args:[l]}]},{type:t.Injector},{type:f}]};var m=new t.InjectionToken("configObj"),v=function(){function e(e){if(e)throw new Error("RestangularModule is already loaded. Import it in the AppModule only")}return e.forRoot=function(t,r){return{ngModule:e,providers:[{provide:m,useValue:[t,r]},{provide:l,useFactory:d,deps:[m]}]}},e}();v.decorators=[{type:t.NgModule,args:[{imports:[r.HttpClientModule],providers:[f,g]}]}],v.ctorParameters=function(){return[{type:v,decorators:[{type:t.Optional},{type:t.SkipSelf}]}]},e.Restangular=g,e.RestangularHttp=f,e.RestangularModule=v,e.ɵa=m,e.ɵb=l,e.ɵc=d,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-restangular.umd.min.js.map