UNPKG

ng2-resource-rest

Version:

Angular2 resource module with simple decorators

1,066 lines (995 loc) 117 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("@angular/http"), require("@angular/core"), require("@angular/common"), require("rxjs/Rx")); else if(typeof define === 'function' && define.amd) define(["@angular/http", "@angular/core", "@angular/common", "rxjs/Rx"], factory); else if(typeof exports === 'object') exports["ng2-resource-rest"] = factory(require("@angular/http"), require("@angular/core"), require("@angular/common"), require("rxjs/Rx")); else root["ng2-resource-rest"] = factory(root["@angular/http"], root["@angular/core"], root["@angular/common"], root["rxjs/Rx"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_5__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_13__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 7); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__ = __webpack_require__(3); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Resource; }); var Resource = (function () { function Resource(http, injector) { this.http = http; this.injector = injector; this._url = null; this._path = null; this._headers = null; this._params = null; this._data = null; } /** * Get main url of the resource * @returns {string|Promise<string>} */ Resource.prototype.getUrl = function (methodOptions) { return this._url || this._getUrl(methodOptions) || __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].url || ''; }; /** * Set resource url * @param url */ Resource.prototype.setUrl = function (url) { this._url = url; }; /** * Get path of the resource * @returns {string|Promise<string>} */ Resource.prototype.getPath = function (methodOptions) { return this._path || this._getPath(methodOptions) || __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].path || ''; }; /** * Set resource path * @param path */ Resource.prototype.setPath = function (path) { this._path = path; }; /** * Get headers * @returns {any|Promise<any>} */ Resource.prototype.getHeaders = function (methodOptions) { return this._headers || this._getHeaders(methodOptions) || __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].headers || {}; }; /** * Set resource headers * @param headers */ Resource.prototype.setHeaders = function (headers) { this._headers = headers; }; /** * Get default params * @returns {any|Promise<any>|{}} */ Resource.prototype.getParams = function (methodOptions) { return this._params || this._getParams(methodOptions) || __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].params || {}; }; /** * Set default resource params * @param params */ Resource.prototype.setParams = function (params) { this._params = params; }; /** * Get default data * @returns {any|Promise<any>|{}} */ Resource.prototype.getData = function (methodOptions) { return this._data || this._getData(methodOptions) || __WEBPACK_IMPORTED_MODULE_0__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].data || {}; }; /** * Set default resource params * @param data */ Resource.prototype.setData = function (data) { this._data = data; }; /** * That is called before executing request * @param req */ Resource.prototype.requestInterceptor = function (req, methodOptions) { return req; }; /** * Request observable interceptor * @param observable * @returns {Observable<any>} */ Resource.prototype.responseInterceptor = function (observable, req, methodOptions) { return observable.map(function (res) { return res._body ? res.json() : null; }); }; Resource.prototype.removeTrailingSlash = function () { return true; }; Resource.prototype.initResultObject = function () { return {}; }; Resource.prototype.map = function (item) { return item; }; Resource.prototype.filter = function (item) { return true; }; Resource.prototype.getResourceOptions = function () { return null; }; Resource.prototype.createModel = function () { var ret = this.initResultObject(); ret.$resource = this; return ret; }; Resource.prototype._request = function (req, methodOptions) { if (methodOptions === void 0) { methodOptions = {}; } var requestObservable = this.http.request(req); // noinspection TypeScriptValidateTypes return methodOptions.responseInterceptor ? methodOptions.responseInterceptor(requestObservable, req, methodOptions) : this.responseInterceptor(requestObservable, req, methodOptions); }; Resource.prototype._getUrl = function (methodOptions) { return null; }; Resource.prototype._getPath = function (methodOptions) { return null; }; Resource.prototype._getHeaders = function (methodOptions) { return null; }; Resource.prototype._getParams = function (methodOptions) { return null; }; Resource.prototype._getData = function (methodOptions) { return null; }; return Resource; }()); /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_http__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ResourceGlobalConfig__ = __webpack_require__(3); /* harmony export (immutable) */ __webpack_exports__["a"] = ResourceAction; /* harmony export (immutable) */ __webpack_exports__["b"] = setDataToObject; /* harmony export (immutable) */ __webpack_exports__["c"] = appendSearchParams; function ResourceAction(methodOptions) { methodOptions = methodOptions || {}; if (methodOptions.method === undefined) { methodOptions.method = __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Get; } return function (target, propertyKey) { target[propertyKey] = function () { var _this = this; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var data = args.length ? args[0] : null; var params = args.length > 1 ? args[1] : null; var callback = args.length > 2 ? args[2] : null; if (typeof data === 'function') { callback = data; data = null; } else if (typeof params === 'function') { callback = params; params = null; } var resourceOptions = this.getResourceOptions(); var isGetRequest = methodOptions.method === __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Get; var ret = null; var map = methodOptions.map ? methodOptions.map : this.map; var filter = methodOptions.filter ? methodOptions.filter : this.filter; var initObject = methodOptions.initResultObject ? methodOptions.initResultObject : this.initResultObject; if (methodOptions.isLazy) { ret = {}; } else { if (methodOptions.isArray) { ret = []; } else { if (data && data.$resource === this) { // Setting data to ret ret = data; data = data.toJSON ? data.toJSON() : toJSON(data); } else { ret = initObject(); } } } var mainDeferredSubscriber = null; var mainObservable = null; ret.$resolved = false; ret.$observable = __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__["Observable"].create(function (subscriber) { mainDeferredSubscriber = subscriber; }).flatMap(function () { return mainObservable; }); ret.$abortRequest = function () { ret.$resolved = true; }; ret.$resource = this; function releaseMainDeferredSubscriber() { if (mainDeferredSubscriber) { mainDeferredSubscriber.next(); mainDeferredSubscriber.complete(); mainDeferredSubscriber = null; } } if (!methodOptions.isLazy) { ret.$observable = ret.$observable.publish(); ret.$observable.connect(); } Promise.all([ Promise.resolve(methodOptions.url || this.getUrl(methodOptions)), Promise.resolve(methodOptions.path || this.getPath(methodOptions)), Promise.resolve(methodOptions.headers || this.getHeaders(methodOptions)), Promise.resolve(methodOptions.params || this.getParams(methodOptions)), Promise.resolve(methodOptions.data || this.getData(methodOptions)) ]) .then(function (dataAll) { if (ret.$resolved) { mainObservable = __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__["Observable"].create(function (observer) { observer.next(null); }); releaseMainDeferredSubscriber(); } var url = dataAll[0] + dataAll[1]; var headers = new __WEBPACK_IMPORTED_MODULE_0__angular_http__["Headers"](dataAll[2]); var defPathParams = dataAll[3]; var usedPathParams = {}; if (!Array.isArray(data) || params) { if (!Array.isArray(data)) { data = Object.assign({}, dataAll[4], data); } var pathParams = url.match(/{([^}]*)}/g) || []; var _loop_1 = function (i) { var pathParam = pathParams[i]; var pathKey = pathParam.substr(1, pathParam.length - 2); var isMandatory = pathKey[0] === '!'; if (isMandatory) { pathKey = pathKey.substr(1); } var isGetOnly = pathKey[0] === ':'; if (isGetOnly) { pathKey = pathKey.substr(1); } var value = getValueForPath(pathKey, defPathParams, params || data, usedPathParams); if (isGetOnly && !params) { delete data[pathKey]; } if (isNullOrUndefined(value)) { if (isMandatory) { var consoleMsg_1 = "Mandatory " + pathParam + " path parameter is missing"; mainObservable = __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__["Observable"].create(function (observer) { observer.error(new Error(consoleMsg_1)); }); console.warn(consoleMsg_1); releaseMainDeferredSubscriber(); return { value: void 0 }; } url = url.substr(0, url.indexOf(pathParam)); return "break"; } // Replacing in the url url = url.replace(pathParam, value); }; for (var i = 0; i < pathParams.length; i++) { var state_1 = _loop_1(i); if (typeof state_1 === "object") return state_1.value; if (state_1 === "break") break; } } // Removing double slashed from final url url = url.replace(/\/\/+/g, '/'); if (url.startsWith('http')) { url = url.replace(':/', '://'); } // Remove trailing slash if (typeof methodOptions.removeTrailingSlash === 'undefined') { methodOptions.removeTrailingSlash = _this.removeTrailingSlash(); } if (methodOptions.removeTrailingSlash) { while (url[url.length - 1] === '/') { url = url.substr(0, url.length - 1); } } // Remove mapped params for (var key in defPathParams) { if (defPathParams[key][0] === '@') { delete defPathParams[key]; } } // Default search params or data var body = null; var searchParams; if (isGetRequest) { // GET searchParams = Object.assign({}, defPathParams, data); } else { // NON GET if (data) { var _body = {}; if (methodOptions.rootNode) { _body["" + methodOptions.rootNode] = data; } else { _body = data; } body = JSON.stringify(_body); } searchParams = defPathParams; } // Setting search params var search = new __WEBPACK_IMPORTED_MODULE_0__angular_http__["URLSearchParams"](); if (!params) { for (var key in searchParams) { if (searchParams.hasOwnProperty(key) && !usedPathParams[key]) { var value = searchParams[key]; appendSearchParams(search, key, value); } } } // Adding TS if needed var tsName = methodOptions.addTimestamp || resourceOptions.addTimestamp; if (tsName) { if (tsName === true) { tsName = 'ts'; } search.append(tsName, '' + new Date().getTime()); } // Removing Content-Type header if no body if (!body) { headers.delete('content-type'); } // Creating request options var requestOptions = new __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestOptions"]({ method: methodOptions.method, headers: headers, body: body, url: url, search: search, withCredentials: methodOptions.withCredentials || resourceOptions.withCredentials }); // Creating request object var req = new __WEBPACK_IMPORTED_MODULE_0__angular_http__["Request"](requestOptions); req = methodOptions.requestInterceptor ? methodOptions.requestInterceptor(req, methodOptions) : _this.requestInterceptor(req, methodOptions); if (!req) { mainObservable = __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__["Observable"].create(function (observer) { observer.error(new Error('Request is null')); }); console.warn('Request is null'); releaseMainDeferredSubscriber(); return; } // Doing the request var requestObservable = _this._request(req, methodOptions); if (methodOptions.isLazy) { mainObservable = requestObservable; } else { mainObservable = __WEBPACK_IMPORTED_MODULE_1_rxjs_Rx__["Observable"].create(function (subscriber) { var reqSubscr = requestObservable.subscribe(function (resp) { if (resp !== null) { if (methodOptions.isArray) { // Expecting array if (!Array.isArray(resp)) { console.error('Returned data should be an array. Received', resp); } else { ret.push.apply(ret, resp .filter(filter) .map(map) .map(function (respItem) { respItem.$resource = _this; return setDataToObject(initObject(), respItem); })); } } else { // Expecting object if (Array.isArray(resp)) { console.error('Returned data should be an object. Received', resp); } else { if (filter(resp)) { setDataToObject(ret, map(resp)); } } } } ret.$resolved = true; subscriber.next(ret); }, function (err) { return subscriber.error(err); }, function () { ret.$resolved = true; subscriber.complete(); if (callback) { callback(ret); } }); ret.$abortRequest = function () { if (ret.$resolved) { return; } reqSubscr.unsubscribe(); ret.$resolved = true; }; }); } releaseMainDeferredSubscriber(); }); return ret; }; }; } function setDataToObject(ret, resp) { if (ret.$setData) { ret.$setData(resp); } else { Object.assign(ret, resp); } return ret; } function appendSearchParams(search, key, value) { /// Convert dates to ISO format string if (value instanceof Date) { search.append(key, value.toISOString()); return; } if (typeof value === 'object') { switch (__WEBPACK_IMPORTED_MODULE_2__ResourceGlobalConfig__["b" /* ResourceGlobalConfig */].getParamsMappingType) { case __WEBPACK_IMPORTED_MODULE_2__ResourceGlobalConfig__["a" /* TGetParamsMappingType */].Plain: if (Array.isArray(value)) { for (var _i = 0, value_1 = value; _i < value_1.length; _i++) { var arr_value = value_1[_i]; search.append(key, arr_value); } } else { search.append(key, JSON.stringify(value)); } break; case __WEBPACK_IMPORTED_MODULE_2__ResourceGlobalConfig__["a" /* TGetParamsMappingType */].Bracket: /// Convert object and arrays to query params for (var k in value) { if (value.hasOwnProperty(k)) { appendSearchParams(search, key + '[' + k + ']', value[k]); } } break; } return; } search.append(key, value); } function getValueForPath(key, params, data, usedPathParams) { if (!isNullOrUndefined(data[key]) && typeof data[key] !== 'object') { usedPathParams[key] = true; return data[key]; } if (isNullOrUndefined(params[key])) { return null; } if (params[key][0] === '@') { return getValueForPath(params[key].substr(1), params, data, usedPathParams); } usedPathParams[key] = true; return params[key]; } function isNullOrUndefined(value) { return value === null || value === undefined; } function toJSON(obj) { var retObj = {}; for (var propName in obj) { if (!(obj[propName] instanceof Function) && !(propName.charAt(0) === '$')) { retObj[propName] = obj[propName]; } } return retObj; } /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TGetParamsMappingType; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ResourceGlobalConfig; }); var TGetParamsMappingType; (function (TGetParamsMappingType) { TGetParamsMappingType[TGetParamsMappingType["Plain"] = 0] = "Plain"; TGetParamsMappingType[TGetParamsMappingType["Bracket"] = 1] = "Bracket"; })(TGetParamsMappingType || (TGetParamsMappingType = {})); var ResourceGlobalConfig = (function () { function ResourceGlobalConfig() { } return ResourceGlobalConfig; }()); ResourceGlobalConfig.url = null; ResourceGlobalConfig.path = null; ResourceGlobalConfig.headers = { 'Accept': 'application/json', 'Content-Type': 'application/json' }; ResourceGlobalConfig.params = null; ResourceGlobalConfig.data = null; ResourceGlobalConfig.getParamsMappingType = TGetParamsMappingType.Plain; /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_http___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__angular_http__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResourceProviders; }); var ResourceProviders = (function () { function ResourceProviders() { } ResourceProviders.add = function (resource, subSet) { if (subSet === void 0) { subSet = null; } if (!subSet) { subSet = this.mainProvidersName; } if (!this.providers[subSet]) { this.providers[subSet] = []; } var deps = Reflect.getMetadata('design:paramtypes', resource); if (!deps || deps.length === 0) { deps = [__WEBPACK_IMPORTED_MODULE_1__angular_http__["Http"], __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injector"]]; } this.providers[subSet].push({ provide: resource, useFactory: function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return new (resource.bind.apply(resource, [void 0].concat(args)))(); }, deps: deps }); }; ResourceProviders.get = function (subSet) { if (subSet === void 0) { subSet = null; } if (!subSet) { subSet = this.mainProvidersName; } return this.providers[subSet] || []; }; return ResourceProviders; }()); ResourceProviders.mainProvidersName = '__mainProviders'; ResourceProviders.providers = { __mainProviders: [] }; /***/ }), /* 5 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_5__; /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(5); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_common___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__angular_common__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_http__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__angular_http___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2__angular_http__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__ = __webpack_require__(4); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_Resource__ = __webpack_require__(1); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_4__src_Resource__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_ResourceAction__ = __webpack_require__(2); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_5__src_ResourceAction__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_5__src_ResourceAction__["b"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_5__src_ResourceAction__["c"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_ResourceCRUD__ = __webpack_require__(8); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "f", function() { return __WEBPACK_IMPORTED_MODULE_6__src_ResourceCRUD__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_ResourceCRUDBase__ = __webpack_require__(9); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "g", function() { return __WEBPACK_IMPORTED_MODULE_7__src_ResourceCRUDBase__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_ResourceGlobalConfig__ = __webpack_require__(3); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "h", function() { return __WEBPACK_IMPORTED_MODULE_8__src_ResourceGlobalConfig__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "i", function() { return __WEBPACK_IMPORTED_MODULE_8__src_ResourceGlobalConfig__["b"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__src_ResourceModel__ = __webpack_require__(10); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "j", function() { return __WEBPACK_IMPORTED_MODULE_9__src_ResourceModel__["a"]; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__src_ResourceParams__ = __webpack_require__(11); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "k", function() { return __WEBPACK_IMPORTED_MODULE_10__src_ResourceParams__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "l", function() { return __WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__["a"]; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResourceModule; }); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var ResourceModule = ResourceModule_1 = (function () { function ResourceModule() { } ResourceModule.forRoot = function () { return { ngModule: ResourceModule_1, providers: __WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__["a" /* ResourceProviders */].providers[__WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__["a" /* ResourceProviders */].mainProvidersName] }; }; ResourceModule.forChild = function (subSet) { return { ngModule: ResourceModule_1, providers: __WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__["a" /* ResourceProviders */].providers[subSet] ? __WEBPACK_IMPORTED_MODULE_3__src_ResourceProviders__["a" /* ResourceProviders */].providers[subSet] : [] }; }; return ResourceModule; }()); ResourceModule = ResourceModule_1 = __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"])({ imports: [__WEBPACK_IMPORTED_MODULE_1__angular_common__["CommonModule"], __WEBPACK_IMPORTED_MODULE_2__angular_http__["HttpModule"]] }) ], ResourceModule); var ResourceModule_1; /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__index__ = __webpack_require__(6); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceModule", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["a"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "Resource", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["b"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceAction", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["c"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "setDataToObject", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["d"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "appendSearchParams", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["e"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceCRUD", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["f"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceCRUDBase", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["g"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "TGetParamsMappingType", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["h"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceGlobalConfig", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["i"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceModel", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["j"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceParams", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["k"]; }); /* harmony namespace reexport (by provided) */ __webpack_require__.d(__webpack_exports__, "ResourceProviders", function() { return __WEBPACK_IMPORTED_MODULE_0__index__["l"]; }); /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_http__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Resource__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ResourceAction__ = __webpack_require__(2); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResourceCRUD; }); var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var ResourceCRUD = (function (_super) { __extends(ResourceCRUD, _super); function ResourceCRUD() { return _super !== null && _super.apply(this, arguments) || this; } // Alias to save ResourceCRUD.prototype.create = function (data, callback) { return this.save(data, callback); }; return ResourceCRUD; }(__WEBPACK_IMPORTED_MODULE_1__Resource__["a" /* Resource */])); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ isArray: true }), __metadata("design:type", Function) ], ResourceCRUD.prototype, "query", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ path: '/{!id}' }), __metadata("design:type", Function) ], ResourceCRUD.prototype, "get", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Post }), __metadata("design:type", Function) ], ResourceCRUD.prototype, "save", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Put, path: '/{!id}' }), __metadata("design:type", Function) ], ResourceCRUD.prototype, "update", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Delete, path: '/{!id}' }), __metadata("design:type", Function) ], ResourceCRUD.prototype, "remove", void 0); /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_http___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_http__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__Resource__ = __webpack_require__(1); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__ResourceAction__ = __webpack_require__(2); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResourceCRUDBase; }); var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var ResourceCRUDBase = (function (_super) { __extends(ResourceCRUDBase, _super); function ResourceCRUDBase() { return _super !== null && _super.apply(this, arguments) || this; } // Alias to save ResourceCRUDBase.prototype.create = function (data, callback) { return this.save(data, callback); }; return ResourceCRUDBase; }(__WEBPACK_IMPORTED_MODULE_1__Resource__["a" /* Resource */])); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ isArray: true }), __metadata("design:type", Function) ], ResourceCRUDBase.prototype, "query", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])(), __metadata("design:type", Function) ], ResourceCRUDBase.prototype, "get", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Post }), __metadata("design:type", Function) ], ResourceCRUDBase.prototype, "save", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Put }), __metadata("design:type", Function) ], ResourceCRUDBase.prototype, "update", void 0); __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__ResourceAction__["a" /* ResourceAction */])({ method: __WEBPACK_IMPORTED_MODULE_0__angular_http__["RequestMethod"].Delete }), __metadata("design:type", Function) ], ResourceCRUDBase.prototype, "remove", void 0); /***/ }), /* 10 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ResourceModel; }); var ResourceModel = (function () { function ResourceModel() { } ResourceModel.create = function (data, commit) { if (data === void 0) { data = {}; } if (commit === void 0) { commit = true; } console.error('Model static create is not availbale anymore. Please use resource.createModel() method'); }; ResourceModel.prototype.$setData = function (data) { Object.assign(this, data); return this; }; ResourceModel.prototype.$save = function () { if (this.isNew()) { return this.$create(); } else { return this.$update(); } }; ResourceModel.prototype.$create = function () { return this.$resource_method('create'); }; ResourceModel.prototype.$update = function () { return this.$resource_method('update'); }; ResourceModel.prototype.$remove = function () { return this.$resource_method('remove'); }; ResourceModel.prototype.toJSON = function () { var retObj = {}; for (var propName in this) { if (!(this[propName] instanceof Function) && !(propName.charAt(0) === '$')) { retObj[propName] = this[propName]; } } return retObj; }; ResourceModel.prototype.isNew = function () { return !this['id']; }; ResourceModel.prototype.$resource_method = function (methodName) { if (!this.$resource) { console.error("Your Resource is not set. Please use resource.createModel() method to create model."); return this; } if (!this.$resource[methodName]) { console.error("Your Resource has no implemented " + methodName + " method."); return this; } this.$resource[methodName](this); return this; }; return ResourceModel; }()); /***/ }), /* 11 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__ResourceProviders__ = __webpack_require__(4); /* harmony export (immutable) */ __webpack_exports__["a"] = ResourceParams; function ResourceParams(params) { if (params === void 0) { params = {}; } return function (target) { target.prototype.getResourceOptions = function () { return params; }; if (params.add2Provides !== false) { __WEBPACK_IMPORTED_MODULE_0__ResourceProviders__["a" /* ResourceProviders */].add(target, params.providersSubSet); } if (typeof params.removeTrailingSlash !== 'undefined') { target.prototype.removeTrailingSlash = function () { return !!params.removeTrailingSlash; }; } if (params.url) { target.prototype._getUrl = function () { return params.url; }; } if (params.path) { target.prototype._getPath = function () { return params.path; }; } if (params.headers) { target.prototype._getHeaders = function () { return params.headers; }; } if (params.params) { target.prototype._getParams = function () { return params.params; }; } if (params.data) { target.prototype._getData = function () { return params.data; }; } }; } /***/ }), /* 12 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_12__; /***/ }), /* 13 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_13__; /***/ }) /******/ ]); }); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCAwYWZjMGNiMTAzYjlkNzQ3MzUxZiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAYW5ndWxhci9odHRwXCIiLCJ3ZWJwYWNrOi8vLy4vc3JjL1Jlc291cmNlLnRzIiwid2VicGFjazovLy8uL3NyYy9SZXNvdXJjZUFjdGlvbi50cyIsIndlYnBhY2s6Ly8vLi9zcmMvUmVzb3VyY2VHbG9iYWxDb25maWcudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL1Jlc291cmNlUHJvdmlkZXJzLnRzIiwid2VicGFjazovLy9leHRlcm5hbCBcIkBhbmd1bGFyL2NvcmVcIiIsIndlYnBhY2s6Ly8vLi9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9uZzItcmVzb3VyY2UtcmVzdC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvUmVzb3VyY2VDUlVELnRzIiwid2VicGFjazovLy8uL3NyYy9SZXNvdXJjZUNSVURCYXNlLnRzIiwid2VicGFjazovLy8uL3NyYy9SZXNvdXJjZU1vZGVsLnRzIiwid2VicGFjazovLy8uL3NyYy9SZXNvdXJjZVBhcmFtcy50cyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJAYW5ndWxhci9jb21tb25cIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgXCJyeGpzL1J4XCIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7O0FDaEVBLCtDOzs7Ozs7Ozs7QUNHOEQ7QUFLOUQ7SUFRRSxrQkFBc0IsSUFBVSxFQUFZLFFBQWtCO1FBQXhDLFNBQUksR0FBSixJQUFJLENBQU07UUFBWSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTnRELFNBQUksR0FBVyxJQUFJLENBQUM7UUFDcEIsVUFBSyxHQUFXLElBQUksQ0FBQztRQUNyQixhQUFRLEdBQVEsSUFBSSxDQUFDO1FBQ3JCLFlBQU8sR0FBUSxJQUFJLENBQUM7UUFDcEIsVUFBSyxHQUFRLElBQUksQ0FBQztJQUV1QyxDQUFDO0lBRWxFOzs7T0FHRztJQUNILHlCQUFNLEdBQU4sVUFBTyxhQUFrQztRQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLG1GQUFvQixDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDcEYsQ0FBQztJQUVEOzs7T0FHRztJQUNILHlCQUFNLEdBQU4sVUFBTyxHQUFXO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FB