UNPKG

@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)

85 lines 7.94 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as _ from 'lodash'; class Model { /** * @param {?=} options * @param {?=} keep_function * @return {?} */ bind(options = {}, keep_function = false) { // tslint:disable-next-line:forin for (const k in options) { /** @type {?} */ const 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(property => { if (options[property] === null || options[property] === undefined) { delete this[property]; } else { /** @type {?} */ const proto = Object.getPrototypeOf(this); // tslint:disable-next-line:prefer-const /** @type {?} */ let method = this.camelCase('get_' + property); proto[method] = function () { return this[property]; }; } }); } } /** * @template THIS * @this {THIS} * @param {?} fields * @return {THIS} */ _backup(fields) { /** @type {?} */ const data = _.pick((/** @type {?} */ (this)), fields); ((/** @type {?} */ ((/** @type {?} */ (this)))))._origin = { fields, data }; return (/** @type {?} */ (this)); } /** * @return {?} */ _isChanged() { /** @type {?} */ const data = _.pick(this, ((/** @type {?} */ (this)))._origin.fields); return !_.isEqual(data, ((/** @type {?} */ (this)))._origin.data); } /** * @param {?} string * @return {?} */ camelCase(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./, item => item.toUpperCase()); }); string = string.replace(/\s/g, ''); string = string.replace(/\b./, item => item.toLowerCase()); return string; } } export default Model; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Admljb2RlcnMvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9tb2RlbHMvTW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCOzs7Ozs7SUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxhQUFhLEdBQUcsS0FBSztRQUN0QyxpQ0FBaUM7UUFDakMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7O2tCQUNqQixDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwQixJQUFJLE9BQU8sQ0FBQyxLQUFLLFVBQVUsRUFBRTtnQkFDM0IsSUFBSSxhQUFhLEtBQUssSUFBSSxFQUFFO29CQUMxQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNiO2dCQUNELFNBQVM7YUFDVjtZQUVELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUNqQyxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsRUFBRTtvQkFDakMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDYjthQUNGO1lBQ0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLEVBQUU7b0JBQ2pFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN2QjtxQkFBTTs7MEJBQ0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOzs7d0JBRXJDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7b0JBQzlDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRzt3QkFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDeEIsQ0FBQyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7Ozs7SUFFRCxPQUFPLENBQUMsTUFBZ0I7O2NBQ2hCLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFBLElBQUksRUFBQSxFQUFFLE1BQU0sQ0FBQztRQUNqQyxDQUFDLG1CQUFBLG1CQUFBLElBQUksRUFBQSxFQUFPLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNkLENBQUM7Ozs7SUFFRCxVQUFVOztjQUNGLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFBLElBQUksRUFBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN2RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBQSxJQUFJLEVBQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFTLEtBQUs7WUFDNUMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVELGVBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5jbGFzcyBNb2RlbCB7XG4gIGJpbmQob3B0aW9ucyA9IHt9LCBrZWVwX2Z1bmN0aW9uID0gZmFsc2UpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Zm9yaW5cbiAgICBmb3IgKGNvbnN0IGsgaW4gb3B0aW9ucykge1xuICAgICAgY29uc3QgdiA9IG9wdGlvbnNba107XG4gICAgICBpZiAodHlwZW9mIHYgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgaWYgKGtlZXBfZnVuY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgICB0aGlzW2tdID0gdjtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpc1trXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRoaXNba10gPSB0aGlzW2tdKHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXNba10gPSB2O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnNbcHJvcGVydHldID09PSBudWxsIHx8IG9wdGlvbnNbcHJvcGVydHldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkZWxldGUgdGhpc1twcm9wZXJ0eV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcyk7XG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1jb25zdFxuICAgICAgICAgIGxldCBtZXRob2QgPSB0aGlzLmNhbWVsQ2FzZSgnZ2V0XycgKyBwcm9wZXJ0eSk7XG4gICAgICAgICAgcHJvdG9bbWV0aG9kXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXNbcHJvcGVydHldO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9iYWNrdXAoZmllbGRzOiBTdHJpbmdbXSkge1xuICAgIGNvbnN0IGRhdGEgPSBfLnBpY2sodGhpcywgZmllbGRzKTtcbiAgICAodGhpcyBhcyBhbnkpLl9vcmlnaW4gPSB7IGZpZWxkcywgZGF0YSB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgX2lzQ2hhbmdlZCgpOiBCb29sZWFuIHtcbiAgICBjb25zdCBkYXRhID0gXy5waWNrKHRoaXMsICh0aGlzIGFzIGFueSkuX29yaWdpbi5maWVsZHMpO1xuICAgIHJldHVybiAhXy5pc0VxdWFsKGRhdGEsICh0aGlzIGFzIGFueSkuX29yaWdpbi5kYXRhKTtcbiAgfVxuXG4gIGNhbWVsQ2FzZShzdHJpbmcpOiBhbnkge1xuICAgIHN0cmluZyA9IHN0cmluZy50b0xvd2VyQ2FzZSgpO1xuICAgIHN0cmluZyA9IHN0cmluZy5yZXBsYWNlKC9bXmEtejAtOV0vZywgJyAnKTtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvXFxzezJ9L2csICcnKTtcbiAgICBzdHJpbmcgPSBzdHJpbmcucmVwbGFjZSgvXFx3Ky9nLCBmdW5jdGlvbihtYXRjaCkge1xuICAgICAgcmV0dXJuIG1hdGNoLnJlcGxhY2UoL1xcYi4vLCBpdGVtID0+IGl0ZW0udG9VcHBlckNhc2UoKSk7XG4gICAgfSk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xccy9nLCAnJyk7XG4gICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoL1xcYi4vLCBpdGVtID0+IGl0ZW0udG9Mb3dlckNhc2UoKSk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNb2RlbDtcbiJdfQ==