UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

88 lines 11.2 kB
import { Component, Input, ViewChild } from '@angular/core'; import * as i0 from "@angular/core"; export class AbstractSearchConfigurationInputComponent { /** * Whether the contents displayed in this component can be edited by the user or not. * * Defaults to `true` */ editable = true; configuration; selectedCategory; set configurationInput(input) { // TODO 20.1.2021 BUG - if multiple configuration inputs are displayed at the same time all of them will be focused. // The same fix as in OperandInputs can be applied here as well. if (input) { setTimeout(() => { if (input.nativeElement !== undefined) { const ref = input; ref.nativeElement.focus(); } else { const select = input; select.focus(); select.open(); } }); } } trackByTemplateParts = (a, b) => this._trackByTemplateParts(a, b); /** * Lambda that is used to preserve `this` reference in HTML binding. * * See [_renderSelection()]{@link AbstractSearchPredicateComponent#_renderSelection} for information about the transform function. * @param option the {@link SearchAutocompleteOption} object that was selected in the autocomplete list. */ renderSelection = (option) => this._renderSelection(option); clearConfigurationInput() { if (!this.editable) { return; } this.configuration.clear(); } clearOperatorInput() { if (!this.editable) { return; } this.selectedCategory.clearOperatorSelection(); } filterOptions = userInput => { return this.selectedCategory.filterOptions(userInput); }; /** * Function for tracking Template parts in ngFor. * @param index index of the ngFor element * @param item template part */ _trackByTemplateParts(index, item) { return item.id; } /** * Transforms a {@link SearchAutocompleteOption} object into it's name. * Used for displaying user selection in the input field, when an autocomplete option is selected. * @param option the object we want to transform. It might not exist if user input doesn't match any autocomplete option * @returns option name if it exists, empty string otherwise */ _renderSelection(option) { return option ? option.text : ''; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchConfigurationInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractSearchConfigurationInputComponent, selector: "ncc-abstract-search-configuration-input", inputs: { editable: "editable", configuration: "configuration", selectedCategory: "selectedCategory" }, viewQueries: [{ propertyName: "configurationInput", first: true, predicate: ["configurationInput"], descendants: true }], ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchConfigurationInputComponent, decorators: [{ type: Component, args: [{ selector: 'ncc-abstract-search-configuration-input', template: '' }] }], propDecorators: { editable: [{ type: Input }], configuration: [{ type: Input }], selectedCategory: [{ type: Input }], configurationInput: [{ type: ViewChild, args: ['configurationInput'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VhcmNoLWNvbmZpZ3VyYXRpb24taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zZWFyY2gvc2VhcmNoLWNvbmZpZ3VyYXRpb24taW5wdXQtY29tcG9uZW50L2Fic3RyYWN0LXNlYXJjaC1jb25maWd1cmF0aW9uLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBWXRFLE1BQU0sT0FBZ0IseUNBQXlDO0lBRTNEOzs7O09BSUc7SUFDTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLGFBQWEsQ0FBcUI7SUFDbEMsZ0JBQWdCLENBQWdCO0lBRXpDLElBQ1csa0JBQWtCLENBQUMsS0FBK0M7UUFDekUsb0hBQW9IO1FBQ3BILGlFQUFpRTtRQUNqRSxJQUFJLEtBQUssRUFBRTtZQUNQLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSyxLQUFhLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtvQkFDNUMsTUFBTSxHQUFHLEdBQUksS0FBc0MsQ0FBQztvQkFDcEQsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztpQkFDN0I7cUJBQU07b0JBQ0gsTUFBTSxNQUFNLEdBQUksS0FBbUIsQ0FBQztvQkFDcEMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDakI7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVNLG9CQUFvQixHQUFHLENBQUMsQ0FBUyxFQUFFLENBQXVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFdkc7Ozs7O09BS0c7SUFDSSxlQUFlLEdBQUcsQ0FBQyxNQUF5QyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFL0YsdUJBQXVCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sYUFBYSxHQUE0RixTQUFTLENBQUMsRUFBRTtRQUN4SCxPQUFRLElBQUksQ0FBQyxnQkFBMEQsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDckcsQ0FBQyxDQUFBO0lBRUQ7Ozs7T0FJRztJQUNPLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxJQUEwQjtRQUNyRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sZ0JBQWdCLENBQUMsTUFBeUM7UUFDaEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyQyxDQUFDO3dHQTVFaUIseUNBQXlDOzRGQUF6Qyx5Q0FBeUMsaVRBRmpELEVBQUU7OzRGQUVNLHlDQUF5QztrQkFKOUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUNBQXlDO29CQUNuRCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFRWSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdLLGtCQUFrQjtzQkFENUIsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbmZpZ3VyYXRpb25JbnB1dH0gZnJvbSAnLi4vbW9kZWxzL2NvbmZpZ3VyYXRpb24taW5wdXQnO1xuaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDYXRlZ29yeX0gZnJvbSAnLi4vbW9kZWxzL2NhdGVnb3J5L2NhdGVnb3J5JztcbmltcG9ydCB7T3BlcmF0b3JUZW1wbGF0ZVBhcnR9IGZyb20gJy4uL21vZGVscy9vcGVyYXRvci10ZW1wbGF0ZS1wYXJ0JztcbmltcG9ydCB7U2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9ufSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnkvc2VhcmNoLWF1dG9jb21wbGV0ZS1vcHRpb24nO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QXV0b2NvbXBsZXRlT3B0aW9uc30gZnJvbSAnLi4vbW9kZWxzL2NhdGVnb3J5L2F1dG9jb21wbGV0ZS1vcHRpb25zJztcbmltcG9ydCB7TWF0U2VsZWN0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1zZWFyY2gtY29uZmlndXJhdGlvbi1pbnB1dCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U2VhcmNoQ29uZmlndXJhdGlvbklucHV0Q29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnRzIGRpc3BsYXllZCBpbiB0aGlzIGNvbXBvbmVudCBjYW4gYmUgZWRpdGVkIGJ5IHRoZSB1c2VyIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGB0cnVlYFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGVkaXRhYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uSW5wdXQ7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeTogQ2F0ZWdvcnk8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbmZpZ3VyYXRpb25JbnB1dCcpXG4gICAgcHVibGljIHNldCBjb25maWd1cmF0aW9uSW5wdXQoaW5wdXQ6IE1hdFNlbGVjdCB8IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICAgICAgLy8gVE9ETyAyMC4xLjIwMjEgQlVHIC0gaWYgbXVsdGlwbGUgY29uZmlndXJhdGlvbiBpbnB1dHMgYXJlIGRpc3BsYXllZCBhdCB0aGUgc2FtZSB0aW1lIGFsbCBvZiB0aGVtIHdpbGwgYmUgZm9jdXNlZC5cbiAgICAgICAgLy8gIFRoZSBzYW1lIGZpeCBhcyBpbiBPcGVyYW5kSW5wdXRzIGNhbiBiZSBhcHBsaWVkIGhlcmUgYXMgd2VsbC5cbiAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoKGlucHV0IGFzIGFueSkubmF0aXZlRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZiA9IChpbnB1dCBhcyBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+KTtcbiAgICAgICAgICAgICAgICAgICAgcmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3QgPSAoaW5wdXQgYXMgTWF0U2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdC5vcGVuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeVRlbXBsYXRlUGFydHMgPSAoYTogbnVtYmVyLCBiOiBPcGVyYXRvclRlbXBsYXRlUGFydCkgPT4gdGhpcy5fdHJhY2tCeVRlbXBsYXRlUGFydHMoYSwgYik7XG5cbiAgICAvKipcbiAgICAgKiBMYW1iZGEgdGhhdCBpcyB1c2VkIHRvIHByZXNlcnZlIGB0aGlzYCByZWZlcmVuY2UgaW4gSFRNTCBiaW5kaW5nLlxuICAgICAqXG4gICAgICogU2VlIFtfcmVuZGVyU2VsZWN0aW9uKClde0BsaW5rIEFic3RyYWN0U2VhcmNoUHJlZGljYXRlQ29tcG9uZW50I19yZW5kZXJTZWxlY3Rpb259IGZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSBvcHRpb24gdGhlIHtAbGluayBTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IG9iamVjdCB0aGF0IHdhcyBzZWxlY3RlZCBpbiB0aGUgYXV0b2NvbXBsZXRlIGxpc3QuXG4gICAgICovXG4gICAgcHVibGljIHJlbmRlclNlbGVjdGlvbiA9IChvcHRpb246IFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjx1bmtub3duPikgPT4gdGhpcy5fcmVuZGVyU2VsZWN0aW9uKG9wdGlvbik7XG5cbiAgICBwdWJsaWMgY2xlYXJDb25maWd1cmF0aW9uSW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyT3BlcmF0b3JJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuY2xlYXJPcGVyYXRvclNlbGVjdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWx0ZXJPcHRpb25zOiAodXNlcklucHV0OiBPYnNlcnZhYmxlPHN0cmluZz4pID0+IE9ic2VydmFibGU8QXJyYXk8U2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPHVua25vd24+Pj4gPSB1c2VySW5wdXQgPT4ge1xuICAgICAgICByZXR1cm4gKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSBhcyAoQ2F0ZWdvcnk8YW55PiAmIEF1dG9jb21wbGV0ZU9wdGlvbnMpKS5maWx0ZXJPcHRpb25zKHVzZXJJbnB1dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gZm9yIHRyYWNraW5nIFRlbXBsYXRlIHBhcnRzIGluIG5nRm9yLlxuICAgICAqIEBwYXJhbSBpbmRleCBpbmRleCBvZiB0aGUgbmdGb3IgZWxlbWVudFxuICAgICAqIEBwYXJhbSBpdGVtIHRlbXBsYXRlIHBhcnRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3RyYWNrQnlUZW1wbGF0ZVBhcnRzKGluZGV4OiBudW1iZXIsIGl0ZW06IE9wZXJhdG9yVGVtcGxhdGVQYXJ0KTogYW55IHtcbiAgICAgICAgcmV0dXJuIGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtcyBhIHtAbGluayBTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IG9iamVjdCBpbnRvIGl0J3MgbmFtZS5cbiAgICAgKiBVc2VkIGZvciBkaXNwbGF5aW5nIHVzZXIgc2VsZWN0aW9uIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hlbiBhbiBhdXRvY29tcGxldGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB3ZSB3YW50IHRvIHRyYW5zZm9ybS4gSXQgbWlnaHQgbm90IGV4aXN0IGlmIHVzZXIgaW5wdXQgZG9lc24ndCBtYXRjaCBhbnkgYXV0b2NvbXBsZXRlIG9wdGlvblxuICAgICAqIEByZXR1cm5zIG9wdGlvbiBuYW1lIGlmIGl0IGV4aXN0cywgZW1wdHkgc3RyaW5nIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfcmVuZGVyU2VsZWN0aW9uKG9wdGlvbjogU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPHVua25vd24+KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbiA/IG9wdGlvbi50ZXh0IDogJyc7XG4gICAgfVxufVxuIl19