UNPKG

@katze/ngx-input-default-value

Version:

A decorator that set default values to your component inputs and properties

45 lines (40 loc) 2.15 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash-es')) : typeof define === 'function' && define.amd ? define('@katze/ngx-input-default-value', ['exports', 'lodash-es'], factory) : (global = global || self, factory((global.katze = global.katze || {}, global.katze['ngx-input-default-value'] = {}), global['lodash-es'])); }(this, function (exports, lodashEs) { 'use strict'; /** * Sets a given default value to the decorated property when his value is "null" or "undefined". * In case the type of the decorated property is "Array" or "Object" it will do assignment recursively for all properties or cells. * * @param {T} defaultValue - A default value to use for the decorated property. * @return {PropertyDecorator} */ function InputDefaultValue(defaultValue) { return function (target, propertyKey, descriptor) { if (descriptor === void 0) { descriptor = { configurable: true, enumerable: true }; } var privatePropertyKey = "_" + propertyKey; var originalSetter = descriptor.set || (function (val) { return (target[privatePropertyKey] = val); }); descriptor.get = descriptor.get || (function () { return target[privatePropertyKey]; }); descriptor.set = function (value) { if (lodashEs.isNil(value)) { originalSetter.call(target, defaultValue); } else if (lodashEs.isObject(defaultValue) || lodashEs.isArray(defaultValue)) { originalSetter.call(target, lodashEs.defaultsDeep(value, defaultValue)); } else { originalSetter.call(target, value); } }; originalSetter.call(target, defaultValue); return descriptor; }; } exports.InputDefaultValue = InputDefaultValue; Object.defineProperty(exports, '__esModule', { value: true }); })); //# sourceMappingURL=katze-ngx-input-default-value.umd.js.map