@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
68 lines • 7.89 kB
JavaScript
import { Component, Input } from '@angular/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
/**
* Is responsible for the interactive creation of an OR {@link ClausePredicate} object instance.
* The nested Predicates are {@link ElementaryPredicate} instances created by {@link AbstractSearchPredicateComponent}.
*/
export class AbstractSearchClauseComponent {
/**
* Whether the contents displayed in this component can be edited by the user or not.
*
* Defaults to `true`
*/
editable = true;
predicate;
predicateId;
remove$;
removeChild$;
constructor() {
this.removeChild$ = new Subject();
this.removeChild$.subscribe(id => this.removeChildAt(id));
}
ngOnInit() {
if (this.getPredicateMap().size === 0) {
this.addChildPredicate();
}
}
ngOnDestroy() {
this.removeChild$.complete();
}
trackByPredicates = (a, b) => b.value;
getPredicateMap() {
const map = new Map();
for (const [key, value] of this.predicate.getPredicateMap().entries()) {
if (value.isVisible) {
map.set(key, value);
}
}
return map;
}
removeChildAt(id) {
this.predicate.removePredicate(id);
if (this.predicate.getPredicateMap().size === 0) {
this.remove$.next(this.predicateId);
}
}
addChildPredicate() {
this.predicate.addNewElementaryPredicate();
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchClauseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractSearchClauseComponent, selector: "ncc-abstract-search-clause", inputs: { editable: "editable", predicate: "predicate", predicateId: "predicateId", remove$: "remove$" }, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchClauseComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-search-clause',
template: ''
}]
}], ctorParameters: () => [], propDecorators: { editable: [{
type: Input
}], predicate: [{
type: Input
}], predicateId: [{
type: Input
}], remove$: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VhcmNoLWNsYXVzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3NlYXJjaC9zZWFyY2gtY2xhdXNlLWNvbXBvbmVudC9hYnN0cmFjdC1zZWFyY2gtY2xhdXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFNN0I7OztHQUdHO0FBS0gsTUFBTSxPQUFnQiw2QkFBNkI7SUFFL0M7Ozs7T0FJRztJQUNNLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDaEIsU0FBUyxDQUF3QztJQUNqRCxXQUFXLENBQVM7SUFDcEIsT0FBTyxDQUFrQjtJQUMzQixZQUFZLENBQWtCO0lBRXJDO1FBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBMkMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUV4RixlQUFlO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFrQyxDQUFDO1FBRXRELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25FLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDakIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDdkI7U0FDSjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGFBQWEsQ0FBQyxFQUFVO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFTSxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQy9DLENBQUM7d0dBbkRpQiw2QkFBNkI7NEZBQTdCLDZCQUE2Qiw0S0FGckMsRUFBRTs7NEZBRU0sNkJBQTZCO2tCQUpsRCxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSxFQUFFO2lCQUNmO3dEQVFZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7S2V5VmFsdWV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VkaXRhYmxlQ2xhdXNlUHJlZGljYXRlV2l0aEdlbmVyYXRvcnN9IGZyb20gJy4uL21vZGVscy9wcmVkaWNhdGUvZWRpdGFibGUtY2xhdXNlLXByZWRpY2F0ZS13aXRoLWdlbmVyYXRvcnMnO1xuaW1wb3J0IHtQcmVkaWNhdGVXaXRoR2VuZXJhdG9yfSBmcm9tICcuLi9tb2RlbHMvcHJlZGljYXRlL3ByZWRpY2F0ZS13aXRoLWdlbmVyYXRvcic7XG5cblxuLyoqXG4gKiBJcyByZXNwb25zaWJsZSBmb3IgdGhlIGludGVyYWN0aXZlIGNyZWF0aW9uIG9mIGFuIE9SIHtAbGluayBDbGF1c2VQcmVkaWNhdGV9IG9iamVjdCBpbnN0YW5jZS5cbiAqIFRoZSBuZXN0ZWQgUHJlZGljYXRlcyBhcmUge0BsaW5rIEVsZW1lbnRhcnlQcmVkaWNhdGV9IGluc3RhbmNlcyBjcmVhdGVkIGJ5IHtAbGluayBBYnN0cmFjdFNlYXJjaFByZWRpY2F0ZUNvbXBvbmVudH0uXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXNlYXJjaC1jbGF1c2UnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNlYXJjaENsYXVzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnRzIGRpc3BsYXllZCBpbiB0aGlzIGNvbXBvbmVudCBjYW4gYmUgZWRpdGVkIGJ5IHRoZSB1c2VyIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGB0cnVlYFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGVkaXRhYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwcmVkaWNhdGU6IEVkaXRhYmxlQ2xhdXNlUHJlZGljYXRlV2l0aEdlbmVyYXRvcnM7XG4gICAgQElucHV0KCkgcHJlZGljYXRlSWQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSByZW1vdmUkOiBTdWJqZWN0PG51bWJlcj47XG4gICAgcHVibGljIHJlbW92ZUNoaWxkJDogU3ViamVjdDxudW1iZXI+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlbW92ZUNoaWxkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgICAgICAgdGhpcy5yZW1vdmVDaGlsZCQuc3Vic2NyaWJlKGlkID0+IHRoaXMucmVtb3ZlQ2hpbGRBdChpZCkpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5nZXRQcmVkaWNhdGVNYXAoKS5zaXplID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmFkZENoaWxkUHJlZGljYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVDaGlsZCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeVByZWRpY2F0ZXMgPSAoYTogbnVtYmVyLCBiOiBLZXlWYWx1ZTxudW1iZXIsIFByZWRpY2F0ZVdpdGhHZW5lcmF0b3I+KSA9PiBiLnZhbHVlO1xuXG4gICAgcHVibGljIGdldFByZWRpY2F0ZU1hcCgpOiBNYXA8bnVtYmVyLCBQcmVkaWNhdGVXaXRoR2VuZXJhdG9yPiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8bnVtYmVyLCBQcmVkaWNhdGVXaXRoR2VuZXJhdG9yPigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMucHJlZGljYXRlLmdldFByZWRpY2F0ZU1hcCgpLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIG1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWFwO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVDaGlsZEF0KGlkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmVkaWNhdGUucmVtb3ZlUHJlZGljYXRlKGlkKTtcbiAgICAgICAgaWYgKHRoaXMucHJlZGljYXRlLmdldFByZWRpY2F0ZU1hcCgpLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlJC5uZXh0KHRoaXMucHJlZGljYXRlSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFkZENoaWxkUHJlZGljYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZWRpY2F0ZS5hZGROZXdFbGVtZW50YXJ5UHJlZGljYXRlKCk7XG4gICAgfVxufVxuIl19