@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
63 lines • 8.66 kB
JavaScript
import { Subject } from 'rxjs';
import { Component, Input } from '@angular/core';
import { BooleanOperator } from '../models/boolean-operator';
import * as i0 from "@angular/core";
import * as i1 from "../search-service/search.service";
import * as i2 from "../advanced-search-component-initialization-service/advanced-search-component-initialization.service";
export class AbstractAdvancedSearchComponent {
_searchService;
_initializationService;
/**
* Whether the contents displayed in this component can be edited by the user or not.
*
* Defaults to `true`
*/
editable = true;
removeChild$;
constructor(_searchService, _initializationService) {
this._searchService = _searchService;
this._initializationService = _initializationService;
this.removeChild$ = new Subject();
this.removeChild$.subscribe(id => this._removeChildAt(id));
if (!this._searchService.hasVisiblePredicates) {
this.addChildPredicate();
}
}
ngAfterViewInit() {
this._initializationService.completeInitialization();
}
ngOnDestroy() {
this.removeChild$.complete();
}
trackByPredicates = (a, b) => b.value;
getPredicateMap() {
const map = new Map();
for (const [key, value] of this._searchService.rootPredicate.getPredicateMap().entries()) {
if (value.isVisible) {
map.set(key, value.getWrappedPredicate());
}
}
return map;
}
addChildPredicate() {
this._searchService.rootPredicate.addNewClausePredicate(BooleanOperator.OR);
}
_removeChildAt(id) {
this._searchService.rootPredicate.removePredicate(id);
if (this.getPredicateMap().size === 0) {
this.addChildPredicate();
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractAdvancedSearchComponent, deps: [{ token: i1.SearchService }, { token: i2.AdvancedSearchComponentInitializationService }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractAdvancedSearchComponent, selector: "ncc-abstract-advanced-search", inputs: { editable: "editable" }, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractAdvancedSearchComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-advanced-search',
template: ''
}]
}], ctorParameters: () => [{ type: i1.SearchService }, { type: i2.AdvancedSearchComponentInitializationService }], propDecorators: { editable: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2VhcmNoL2FkdmFuY2VkLXNlYXJjaC1jb21wb25lbnQvYWJzdHJhY3QtYWR2YW5jZWQtc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFTM0QsTUFBTSxPQUFnQiwrQkFBK0I7SUFXakI7SUFDQTtJQVZoQzs7OztPQUlHO0lBQ00sUUFBUSxHQUFHLElBQUksQ0FBQztJQUVsQixZQUFZLENBQWtCO0lBRXJDLFlBQWdDLGNBQTZCLEVBQzdCLHNCQUFvRTtRQURwRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQThDO1FBQ2hHLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxpQkFBaUIsR0FBRyxDQUFDLENBQVMsRUFBRSxDQUFzQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRW5GLGVBQWU7UUFDbEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWlELENBQUM7UUFFckUsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRTtnQkFDakIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixFQUEyQyxDQUFDLENBQUM7YUFDdEY7U0FDSjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVTLGNBQWMsQ0FBQyxFQUFVO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzt3R0FwRGlCLCtCQUErQjs0RkFBL0IsK0JBQStCLHNHQUZ2QyxFQUFFOzs0RkFFTSwrQkFBK0I7a0JBSnBELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7NklBUVksUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RWRpdGFibGVDbGF1c2VQcmVkaWNhdGVXaXRoR2VuZXJhdG9yc30gZnJvbSAnLi4vbW9kZWxzL3ByZWRpY2F0ZS9lZGl0YWJsZS1jbGF1c2UtcHJlZGljYXRlLXdpdGgtZ2VuZXJhdG9ycyc7XG5pbXBvcnQge1NlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJztcbmltcG9ydCB7S2V5VmFsdWV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VkaXRhYmxlUHJlZGljYXRlfSBmcm9tICcuLi9tb2RlbHMvcHJlZGljYXRlL2VkaXRhYmxlLXByZWRpY2F0ZSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCb29sZWFuT3BlcmF0b3J9IGZyb20gJy4uL21vZGVscy9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7XG4gICAgQWR2YW5jZWRTZWFyY2hDb21wb25lbnRJbml0aWFsaXphdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi4vYWR2YW5jZWQtc2VhcmNoLWNvbXBvbmVudC1pbml0aWFsaXphdGlvbi1zZXJ2aWNlL2FkdmFuY2VkLXNlYXJjaC1jb21wb25lbnQtaW5pdGlhbGl6YXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWFkdmFuY2VkLXNlYXJjaCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0QWR2YW5jZWRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgY29udGVudHMgZGlzcGxheWVkIGluIHRoaXMgY29tcG9uZW50IGNhbiBiZSBlZGl0ZWQgYnkgdGhlIHVzZXIgb3Igbm90LlxuICAgICAqXG4gICAgICogRGVmYXVsdHMgdG8gYHRydWVgXG4gICAgICovXG4gICAgQElucHV0KCkgZWRpdGFibGUgPSB0cnVlO1xuXG4gICAgcHVibGljIHJlbW92ZUNoaWxkJDogU3ViamVjdDxudW1iZXI+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9pbml0aWFsaXphdGlvblNlcnZpY2U6IEFkdmFuY2VkU2VhcmNoQ29tcG9uZW50SW5pdGlhbGl6YXRpb25TZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlQ2hpbGQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAgICAgICB0aGlzLnJlbW92ZUNoaWxkJC5zdWJzY3JpYmUoaWQgPT4gdGhpcy5fcmVtb3ZlQ2hpbGRBdChpZCkpO1xuXG4gICAgICAgIGlmICghdGhpcy5fc2VhcmNoU2VydmljZS5oYXNWaXNpYmxlUHJlZGljYXRlcykge1xuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFByZWRpY2F0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXphdGlvblNlcnZpY2UuY29tcGxldGVJbml0aWFsaXphdGlvbigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUNoaWxkJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmFja0J5UHJlZGljYXRlcyA9IChhOiBudW1iZXIsIGI6IEtleVZhbHVlPG51bWJlciwgRWRpdGFibGVQcmVkaWNhdGU+KSA9PiBiLnZhbHVlO1xuXG4gICAgcHVibGljIGdldFByZWRpY2F0ZU1hcCgpOiBNYXA8bnVtYmVyLCBFZGl0YWJsZUNsYXVzZVByZWRpY2F0ZVdpdGhHZW5lcmF0b3JzPiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8bnVtYmVyLCBFZGl0YWJsZUNsYXVzZVByZWRpY2F0ZVdpdGhHZW5lcmF0b3JzPigpO1xuXG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHRoaXMuX3NlYXJjaFNlcnZpY2Uucm9vdFByZWRpY2F0ZS5nZXRQcmVkaWNhdGVNYXAoKS5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICBtYXAuc2V0KGtleSwgdmFsdWUuZ2V0V3JhcHBlZFByZWRpY2F0ZSgpIGFzIEVkaXRhYmxlQ2xhdXNlUHJlZGljYXRlV2l0aEdlbmVyYXRvcnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkQ2hpbGRQcmVkaWNhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlYXJjaFNlcnZpY2Uucm9vdFByZWRpY2F0ZS5hZGROZXdDbGF1c2VQcmVkaWNhdGUoQm9vbGVhbk9wZXJhdG9yLk9SKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUNoaWxkQXQoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWFyY2hTZXJ2aWNlLnJvb3RQcmVkaWNhdGUucmVtb3ZlUHJlZGljYXRlKGlkKTtcbiAgICAgICAgaWYgKHRoaXMuZ2V0UHJlZGljYXRlTWFwKCkuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5hZGRDaGlsZFByZWRpY2F0ZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19