@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
88 lines • 11.2 kB
JavaScript
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