@bi8/am-dyn-form
Version:
ng update @angular/cli yarn add @angular/cli
86 lines • 12.2 kB
JavaScript
import * as tslib_1 from "tslib";
import { DynFormControl } from "./dyn-form-control";
import { Subject } from "rxjs";
import { debounceTime, distinctUntilChanged, tap } from "rxjs/operators";
import { EventType } from "@bi8/am-io";
var DynAutoSelectControl = /** @class */ (function (_super) {
tslib_1.__extends(DynAutoSelectControl, _super);
function DynAutoSelectControl(options, validator, asyncValidator) {
if (options === void 0) { options = {}; }
var _this = _super.call(this, options, validator, asyncValidator) || this;
_this.type = 'autoselect';
_this.hasValue = false;
_this.loading = false;
_this.multiple = false;
_this.searchable = true;
_this.clearToggle = false;
_this.showNone = options['showNone'] || false;
_this.noneLabel = options['noneLabel'];
_this.multiple = options['multiple'] || false;
_this.debounce = options['debounce'] || 500;
_this.searchable = options['searchable'] || false;
var debounceOp = debounceTime(200);
var showTappet = tap(function () { return _this.loading = true; });
var hideTappet = tap(function () { return _this.loading = false; });
if (options['bindLabel']) {
_this.bindLabel = options['bindLabel'];
}
else {
_this.bindLabel = 'name';
}
if (options['bindValue']) {
_this.bindValue = options['bindValue'];
}
_this.labelTemplate = options['labelTemplate'];
_this.optionTemplate = options['optionTemplate'];
if (options['channel']) {
_this.channel = options['channel'];
_this.channel.asEventObservable().subscribe(function (event) {
switch (event.observeType) {
case EventType.on_next:
_this.loading = true;
break;
default:
_this.loading = false;
break;
}
});
if (_this.searchable) {
_this.typeahead$ = new Subject();
_this.typeahead$.pipe(debounceTime(_this.debounce), distinctUntilChanged()).subscribe(_this.channel);
}
else {
_this.typeahead$ = null;
}
_this.items$ = _this.channel.asObservable();
}
_this.valueChanges.subscribe(function (value) {
_this.checkHasValue(value);
_this.hasValue = !(!value);
});
_this.channel.next();
return _this;
}
DynAutoSelectControl.prototype.checkHasValue = function (value) {
var _this = this;
setTimeout(function () {
if (_this.element) {
if (!value || value.length === 0) {
_this.element.classList.remove("ng-has-value");
}
else {
_this.element.classList.add("ng-has-value");
}
}
});
};
DynAutoSelectControl.prototype.reload = function (param) {
this.channel.next(param);
};
DynAutoSelectControl.prototype.getCustomPlaceholder = function () {
return this.isRequired() ? this.config.placeholder + ' *' : this.config.placeholder;
};
return DynAutoSelectControl;
}(DynFormControl));
export { DynAutoSelectControl };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluLWF1dG8tc2VsZWN0LWNvbnRyb2wuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYmk4L2FtLWR5bi1mb3JtLyIsInNvdXJjZXMiOlsiYXBwL21vZHVsZXMvYW0tZHluLWZvcm0vZHluLWF1dG8tc2VsZWN0LWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFVLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUU5QztJQUEwQyxnREFBYztJQXlCdEQsOEJBQVksT0FBZ0IsRUFBRSxTQUE4QyxFQUFFLGNBQTZEO1FBQS9ILHdCQUFBLEVBQUEsWUFBZ0I7UUFBNUIsWUFDRSxrQkFBTSxPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxTQXVEMUM7UUFoRkQsVUFBSSxHQUFHLFlBQVksQ0FBQztRQVVwQixjQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGFBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsY0FBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVSxHQUFZLElBQUksQ0FBQztRQU0zQixpQkFBVyxHQUFZLEtBQUssQ0FBQztRQUszQixLQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUM7UUFDN0MsS0FBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEMsS0FBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQzdDLEtBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQztRQUMzQyxL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LENBQUM7SUFFRCxxQ0FBTSxHQUFOLFVBQU8sS0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsbURBQW9CLEdBQXBCO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDdEYsQ0FBQztJQUNILDJCQUFDO0FBQUQsQ0FBQyxBQXRHRCxDQUEwQyxjQUFjLEdBc0d2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VmFsaWRhdG9yRm4sIEFzeW5jVmFsaWRhdG9yRm59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0R5bkZvcm1Db250cm9sfSBmcm9tIFwiLi9keW4tZm9ybS1jb250cm9sXCI7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUZW1wbGF0ZVJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge05nU2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiQG5nLXNlbGVjdC9uZy1zZWxlY3RcIjtcclxuaW1wb3J0IHtDaGFubmVsLCBFdmVudFR5cGV9IGZyb20gXCJAYmk4L2FtLWlvXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRHluQXV0b1NlbGVjdENvbnRyb2wgZXh0ZW5kcyBEeW5Gb3JtQ29udHJvbCB7XHJcbiAgdHlwZSA9ICdhdXRvc2VsZWN0JztcclxuICBjaGFubmVsOiBDaGFubmVsPHN0cmluZywgYW55PjtcclxuICB0eXBlYWhlYWQkOiBTdWJqZWN0PGFueT47XHJcbiAgaXRlbXMkOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgc2hvd05vbmU6IGJvb2xlYW47XHJcbiAgbm9uZUxhYmVsOiBzdHJpbmc7XHJcbiAgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBvcHRpb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBiaW5kVmFsdWU6IHN0cmluZztcclxuICBiaW5kUmVmOiBzdHJpbmc7XHJcbiAgaGFzVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYmluZExhYmVsOiBzdHJpbmc7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG11bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGVib3VuY2U6IG51bWJlcjtcclxuICBzZWFyY2hhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgc2VsZWN0ZWRWYWx1ZTogYW55O1xyXG4gIG5nU2VsZWN0Q29tcG9uZW50OiBOZ1NlbGVjdENvbXBvbmVudDtcclxuICBlbGVtZW50OiBFbGVtZW50O1xyXG5cclxuICBjbGVhclRvZ2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7fSA9IHt9LCB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsLCBhc3luY1ZhbGlkYXRvcj86IEFzeW5jVmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuW10gfCBudWxsKSB7XHJcbiAgICBzdXBlcihvcHRpb25zLCB2YWxpZGF0b3IsIGFzeW5jVmFsaWRhdG9yKTtcclxuXHJcbiAgICB0aGlzLnNob3dOb25lID0gb3B0aW9uc1snc2hvd05vbmUnXSB8fCBmYWxzZTtcclxuICAgIHRoaXMubm9uZUxhYmVsID0gb3B0aW9uc1snbm9uZUxhYmVsJ107XHJcbiAgICB0aGlzLm11bHRpcGxlID0gb3B0aW9uc1snbXVsdGlwbGUnXSB8fCBmYWxzZTtcclxuICAgIHRoaXMuZGVib3VuY2UgPSBvcHRpb25zWydkZWJvdW5jZSddIHx8IDUwMDtcclxuICAgIHRoaXMuc2VhcmNoYWJsZSA9IG9wdGlvbnNbJ3NlYXJjaGFibGUnXSB8fCBmYWxzZTtcclxuXHJcbiAgICBsZXQgZGVib3VuY2VPcCA9IGRlYm91bmNlVGltZSgyMDApO1xyXG4gICAgbGV0IHNob3dUYXBwZXQgPSB0YXAoKCk9PnRoaXMubG9hZGluZyA9IHRydWUpO1xyXG4gICAgbGV0IGhpZGVUYXBwZXQgPSB0YXAoKCk9PnRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuXHJcbiAgICBpZiAob3B0aW9uc1snYmluZExhYmVsJ10pe1xyXG4gICAgICB0aGlzLmJpbmRMYWJlbCA9IG9wdGlvbnNbJ2JpbmRMYWJlbCddO1xyXG5cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYmluZExhYmVsID0gJ25hbWUnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvcHRpb25zWydiaW5kVmFsdWUnXSl7XHJcbiAgICAgIHRoaXMuYmluZFZhbHVlID0gb3B0aW9uc1snYmluZFZhbHVlJ107XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYWJlbFRlbXBsYXRlID0gb3B0aW9uc1snbGFiZWxUZW1wbGF0ZSddO1xyXG4gICAgdGhpcy5vcHRpb25UZW1wbGF0ZSA9IG9wdGlvbnNbJ29wdGlvblRlbXBsYXRlJ107XHJcblxyXG4gICAgaWYgKG9wdGlvbnNbJ2NoYW5uZWwnXSkge1xyXG4gICAgICB0aGlzLmNoYW5uZWwgPSBvcHRpb25zWydjaGFubmVsJ107XHJcbiAgICAgIHRoaXMuY2hhbm5lbC5hc0V2ZW50T2JzZXJ2YWJsZSgpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSk9PntcclxuICAgICAgICBzd2l0Y2goZXZlbnQub2JzZXJ2ZVR5cGUpe1xyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUub25fbmV4dDpcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNlYXJjaGFibGUpe1xyXG4gICAgICAgIHRoaXMudHlwZWFoZWFkJCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgICAgICAgdGhpcy50eXBlYWhlYWQkLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGhpcy5jaGFubmVsKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnR5cGVhaGVhZCQgPSBudWxsO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLml0ZW1zJCA9IHRoaXMuY2hhbm5lbC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKT0+e1xyXG4gICAgICB0aGlzLmNoZWNrSGFzVmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLmhhc1ZhbHVlID0gISghdmFsdWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5jaGFubmVsLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrSGFzVmFsdWUodmFsdWU/OiBhbnkpe1xyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gICAgICBpZiAodGhpcy5lbGVtZW50KXtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJuZy1oYXMtdmFsdWVcIik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwibmctaGFzLXZhbHVlXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWxvYWQocGFyYW0/OiBhbnkpe1xyXG4gICAgdGhpcy5jaGFubmVsLm5leHQocGFyYW0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VzdG9tUGxhY2Vob2xkZXIoKXtcclxuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQoKSA/IHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyICsgJyAqJyA6IHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyO1xyXG4gIH1cclxufVxyXG4iXX0=