ng2-resource-rest
Version:
Angular2 resource module with simple decorators
1,066 lines (995 loc) • 117 kB
JavaScript
(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