UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

63 lines 8.66 kB
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