@vicoders/angular
Version:
- [Vicoders Angular Common Module](#vicoders-angular-common-module) - [Install](#install) - [How to use](#how-to-use) - [Pipes](#pipes) - [hasItem](#hasitem) - [isArray](#isarray) - [length](#length) - [orderBy](#orderby)
109 lines • 8.82 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as _ from 'lodash';
var Model = /** @class */ (function () {
function Model() {
}
/**
* @param {?=} options
* @param {?=} keep_function
* @return {?}
*/
Model.prototype.bind = /**
* @param {?=} options
* @param {?=} keep_function
* @return {?}
*/
function (options, keep_function) {
var _this = this;
if (options === void 0) { options = {}; }
if (keep_function === void 0) { keep_function = false; }
// tslint:disable-next-line:forin
for (var k in options) {
/** @type {?} */
var v = options[k];
if (typeof v === 'function') {
if (keep_function === true) {
this[k] = v;
}
continue;
}
if (v !== null && v !== undefined) {
if (typeof this[k] === 'function') {
this[k] = this[k](v);
}
else {
this[k] = v;
}
}
Object.getOwnPropertyNames(this).forEach(function (property) {
if (options[property] === null || options[property] === undefined) {
delete _this[property];
}
else {
/** @type {?} */
var proto = Object.getPrototypeOf(_this);
// tslint:disable-next-line:prefer-const
/** @type {?} */
var method = _this.camelCase('get_' + property);
proto[method] = function () {
return this[property];
};
}
});
}
};
/**
* @template THIS
* @this {THIS}
* @param {?} fields
* @return {THIS}
*/
Model.prototype._backup = /**
* @template THIS
* @this {THIS}
* @param {?} fields
* @return {THIS}
*/
function (fields) {
/** @type {?} */
var data = _.pick((/** @type {?} */ (this)), fields);
((/** @type {?} */ ((/** @type {?} */ (this)))))._origin = { fields: fields, data: data };
return (/** @type {?} */ (this));
};
/**
* @return {?}
*/
Model.prototype._isChanged = /**
* @return {?}
*/
function () {
/** @type {?} */
var data = _.pick(this, ((/** @type {?} */ (this)))._origin.fields);
return !_.isEqual(data, ((/** @type {?} */ (this)))._origin.data);
};
/**
* @param {?} string
* @return {?}
*/
Model.prototype.camelCase = /**
* @param {?} string
* @return {?}
*/
function (string) {
string = string.toLowerCase();
string = string.replace(/[^a-z0-9]/g, ' ');
string = string.replace(/\s{2}/g, '');
string = string.replace(/\w+/g, function (match) {
return match.replace(/\b./, function (item) { return item.toUpperCase(); });
});
string = string.replace(/\s/g, '');
string = string.replace(/\b./, function (item) { return item.toLowerCase(); });
return string;
};
return Model;
}());
export default Model;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Admljb2RlcnMvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCO0lBQUE7SUF3REEsQ0FBQzs7Ozs7O0lBdkRDLG9CQUFJOzs7OztJQUFKLFVBQUssT0FBWSxFQUFFLGFBQXFCO1FBQXhDLGlCQStCQztRQS9CSSx3QkFBQSxFQUFBLFlBQVk7UUFBRSw4QkFBQSxFQUFBLHFCQUFxQjtRQUN0QyxpQ0FBaUM7UUFDakMsS0FBSyxJQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7O2dCQUNqQixDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLE9BQU8sQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDM0IsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO29CQUMxQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNiO2dCQUNELFNBQVM7YUFDVjtZQUVELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUNqQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsRUFBRTtvQkFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDYjthQUNGO1lBQ0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLFFBQVE7Z0JBQy9DLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxFQUFFO29CQUNqRSxPQUFPLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdkI7cUJBQU07O3dCQUNDLEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQzs7O3dCQUVyQyxNQUFNLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO29CQUM5QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUc7d0JBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hCLENBQUMsQ0FBQztpQkFDSDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsdUJBQU87Ozs7OztJQUFQLFVBQVEsTUFBZ0I7O1lBQ2hCLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFBLElBQUksRUFBQSxFQUFFLE1BQU0sQ0FBQztRQUNqQyxDQUFDLG1CQUFBLG1CQUFBLElBQUksRUFBQSxFQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxNQUFNLFFBQUEsRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDZCxDQUFDOzs7O0lBRUQsMEJBQVU7OztJQUFWOztZQUNRLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFBLElBQUksRUFBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBQSxJQUFJLEVBQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVELHlCQUFTOzs7O0lBQVQsVUFBVSxNQUFNO1FBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFTLEtBQUs7WUFDNUMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO1FBQzNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQXhERCxJQXdEQztBQUVELGVBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5jbGFzcyBNb2RlbCB7XG4gIGJpbmQob3B0aW9ucyA9IHt9LCBrZWVwX2Z1bmN0aW9uID0gZmFsc2UpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cbiAgICBmb3IgKGNvbnN0IGsgaW4gb3B0aW9ucykge1xuICAgICAgY29uc3QgdiA9IG9wdGlvbnNba107XG4gICAgICBpZiAodHlwZW9mIHYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGtlZXBfZnVuY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgICB0aGlzW2tdID0gdjtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpc1trXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXNba10gPSB0aGlzW2tdKHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXNba10gPSB2O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnNbcHJvcGVydHldID09PSBudWxsIHx8IG9wdGlvbnNbcHJvcGVydHldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkZWxldGUgdGhpc1twcm9wZXJ0eV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1jb25zdFxuICAgICAgICAgIGxldCBtZXRob2QgPSB0aGlzLmNhbWVsQ2FzZSgnZ2V0XycgKyBwcm9wZXJ0eSk7XG4gICAgICAgICAgcHJvdG9bbWV0aG9kXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbcHJvcGVydHldO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9iYWNrdXAoZmllbGRzOiBTdHJpbmdbXSkge1xuICAgIGNvbnN0IGRhdGEgPSBfLnBpY2sodGhpcywgZmllbGRzKTtcbiAgICAodGhpcyBhcyBhbnkpLl9vcmlnaW4gPSB7IGZpZWxkcywgZGF0YSB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgX2lzQ2hhbmdlZCgpOiBCb29sZWFuIHtcbiAgICBjb25zdCBkYXRhID0gXy5waWNrKHRoaXMsICh0aGlzIGFzIGFueSkuX29yaWdpbi5maWVsZHMpO1xuICAgIHJldHVybiAhXy5pc0VxdWFsKGRhdGEsICh0aGlzIGFzIGFueSkuX29yaWdpbi5kYXRhKTtcbiAgfVxuXG4gIGNhbWVsQ2FzZShzdHJpbmcpOiBhbnkge1xuICAgIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9bXmEtejAtOV0vZywgJyAnKTtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvXFxzezJ9L2csICcnKTtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvXFx3Ky9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgICAgcmV0dXJuIG1hdGNoLnJlcGxhY2UoL1xcYi4vLCBpdGVtID0+IGl0ZW0udG9VcHBlckNhc2UoKSk7XG4gICAgfSk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xcYi4vLCBpdGVtID0+IGl0ZW0udG9Mb3dlckNhc2UoKSk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbDtcbiJdfQ==