UNPKG

@bi8/am-dyn-form

Version:

ng update @angular/cli yarn add @angular/cli

63 lines 8.03 kB
import * as tslib_1 from "tslib"; import { FormGroup } from "@angular/forms"; import { filter, tap } from "rxjs/operators"; import { pipeFromArray } from 'rxjs/internal/util/pipe'; var DynFormGroup = /** @class */ (function (_super) { tslib_1.__extends(DynFormGroup, _super); function DynFormGroup(options, controls) { if (options === void 0) { options = {}; } var _this = _super.call(this, controls) || this; _this.config = {}; if (options) { _this.key = options.key || ''; _this.dir = options.dir || ''; } return _this; } DynFormGroup.prototype.addSlaveObserver = function (master, slave, options) { var masterField = this.get(master); var slaveField = this.get(slave); if (!options) { options = { disable: true, reset: true, apply: true }; } else { if (options.reset === undefined) { options.reset = true; } if (options.disable === undefined) { options.disable = true; } if (options.apply === undefined) { options.apply = options.disable; } } var ops = []; if (options.reset) { ops.push(tap(function () { return slaveField.reset(); })); } if (options.disable) { ops.push(tap(function () { return slaveField.disable(); })); if (options.apply) { slaveField.disable({ onlySelf: true }); } } ops.push(filter(function (value) { if (!value) { return false; } else { return value instanceof Array ? value.length > 0 : true; } })); if (options.disable) { ops.push(tap(function () { return slaveField.enable(); })); } if (options.ops) { ops.push.apply(ops, tslib_1.__spread(options.ops)); } return masterField.valueChanges.pipe(pipeFromArray(tslib_1.__spread(ops))); }; return DynFormGroup; }(FormGroup)); export { DynFormGroup }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluLWZvcm0tZ3JvdXAuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYmk4L2FtLWR5bi1mb3JtLyIsInNvdXJjZXMiOlsiYXBwL21vZHVsZXMvYW0tZHluLWZvcm0vZHluLWZvcm0tZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUQsT0FBTyxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFVdEQ7SUFBa0Msd0NBQVM7SUFLekMsc0JBQVksT0FHTixFQUFFLFFBQTZDO1FBSHpDLHdCQUFBLEVBQUEsWUFHTjtRQUhOLFlBSUUsa0JBQU0sUUFBUSxDQUFDLFNBS2hCO1FBWEQsWUFBTSxHQUFRLEVBQUUsQ0FBQztRQU9mLElBQUksT0FBTyxFQUFDO1lBQ1YsS0FBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUM3QixLQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1NBQzlCOztJQUNILENBQUM7SUFFRCx1Q0FBZ0IsR0FBaEIsVUFBaUIsTUFBYyxFQUFFLEtBQWEsRUFBRSxPQUsvQztRQUVDLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxFQUFDO1lBQ1gsT0FBTyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQTtTQUN0RDthQUFNO1lBQ0wsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBQztnQkFDOUIsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDdEI7WUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFDO2dCQUNoQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUN4QjtZQUVELElBQUksT0FBTyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUM7Z0JBQzlCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUNqQztTQUNGO1FBRUQsSUFBSSxHQUFHLEdBQWlDLEVBQUUsQ0FBQztRQUUzQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUM7WUFDaEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSSxPQUFBLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDLENBQUM7U0FDdkM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUM7WUFDbEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSSxPQUFBLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFDO2dCQUNoQixVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7YUFDdEM7U0FDRjtRQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBSztZQUNwQixJQUFJLENBQUMsS0FBSyxFQUFDO2dCQUNULE9BQU8sS0FBSyxDQUFDO2FBQ2Q7aUJBQU07Z0JBQ0wsT0FBTyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO2FBQ3hEO1FBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBQztZQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFJLE9BQUEsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFuQixDQUFtQixDQUFDLENBQUMsQ0FBQTtTQUN2QztRQUVELElBQUksT0FBTyxDQUFDLEdBQUcsRUFBQztZQUNkLEdBQUcsQ0FBQyxJQUFJLE9BQVIsR0FBRyxtQkFBUyxPQUFPLENBQUMsR0FBRyxHQUFFO1NBQzFCO1FBRUQsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLGtCQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNILG1CQUFDO0FBQUQsQ0FBQyxBQXpFRCxDQUFrQyxTQUFTLEdBeUUxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUdyb3VwLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge09wZXJhdG9yRnVuY3Rpb24sIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZmlsdGVyLCB0YXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge3BpcGVGcm9tQXJyYXl9IGZyb20gJ3J4anMvaW50ZXJuYWwvdXRpbC9waXBlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRm4ge1xyXG4gICh2YWx1ZTogYW55KSA6IGJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNYXBGbiB7XHJcbiAgKHZhbHVlOiBhbnkpIDogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEeW5Gb3JtR3JvdXAgZXh0ZW5kcyBGb3JtR3JvdXAge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGRpcjogc3RyaW5nO1xyXG4gIGNvbmZpZzogYW55ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtcclxuICAgIGtleT86IHN0cmluZyxcclxuICAgIGRpcj86IHN0cmluZyxcclxuICB9ID0ge30sIGNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbDsgfSkge1xyXG4gICAgc3VwZXIoY29udHJvbHMpO1xyXG4gICAgaWYgKG9wdGlvbnMpe1xyXG4gICAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5IHx8ICcnO1xyXG4gICAgICB0aGlzLmRpciA9IG9wdGlvbnMuZGlyIHx8ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkU2xhdmVPYnNlcnZlcihtYXN0ZXI6IHN0cmluZywgc2xhdmU6IHN0cmluZywgb3B0aW9ucz86IHtcclxuICAgIGFwcGx5PzogYm9vbGVhbixcclxuICAgIGRpc2FibGU/OiBib29sZWFuLFxyXG4gICAgcmVzZXQ/OiBib29sZWFuLFxyXG4gICAgb3BzPzogT3BlcmF0b3JGdW5jdGlvbjxhbnksIGFueT5bXVxyXG4gIH0pIDogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHJcbiAgICBsZXQgbWFzdGVyRmllbGQgPSB0aGlzLmdldChtYXN0ZXIpO1xyXG4gICAgbGV0IHNsYXZlRmllbGQgPSB0aGlzLmdldChzbGF2ZSk7XHJcblxyXG4gICAgaWYgKCFvcHRpb25zKXtcclxuICAgICAgb3B0aW9ucyA9IHsgZGlzYWJsZTogdHJ1ZSwgcmVzZXQ6IHRydWUsIGFwcGx5OiB0cnVlIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChvcHRpb25zLnJlc2V0ID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIG9wdGlvbnMucmVzZXQgPSB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3B0aW9ucy5kaXNhYmxlID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIG9wdGlvbnMuZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChvcHRpb25zLmFwcGx5ID09PSB1bmRlZmluZWQpe1xyXG4gICAgICAgIG9wdGlvbnMuYXBwbHkgPSBvcHRpb25zLmRpc2FibGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgb3BzOiBPcGVyYXRvckZ1bmN0aW9uPGFueSwgYW55PltdID0gW107XHJcblxyXG4gICAgaWYgKG9wdGlvbnMucmVzZXQpe1xyXG4gICAgICBvcHMucHVzaCh0YXAoKCk9PnNsYXZlRmllbGQucmVzZXQoKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zLmRpc2FibGUpe1xyXG4gICAgICBvcHMucHVzaCh0YXAoKCk9PnNsYXZlRmllbGQuZGlzYWJsZSgpKSk7XHJcbiAgICAgIGlmIChvcHRpb25zLmFwcGx5KXtcclxuICAgICAgICBzbGF2ZUZpZWxkLmRpc2FibGUoe29ubHlTZWxmOiB0cnVlfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvcHMucHVzaChmaWx0ZXIoKHZhbHVlKT0+e1xyXG4gICAgICBpZiAoIXZhbHVlKXtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgQXJyYXkgPyB2YWx1ZS5sZW5ndGggPiAwIDogdHJ1ZVxyXG4gICAgICB9XHJcbiAgICB9KSk7XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuZGlzYWJsZSl7XHJcbiAgICAgIG9wcy5wdXNoKHRhcCgoKT0+c2xhdmVGaWVsZC5lbmFibGUoKSkpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMub3BzKXtcclxuICAgICAgb3BzLnB1c2goLi4ub3B0aW9ucy5vcHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtYXN0ZXJGaWVsZC52YWx1ZUNoYW5nZXMucGlwZShwaXBlRnJvbUFycmF5KFsuLi5vcHNdKSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19