@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
119 lines • 14.2 kB
JavaScript
import { Component, Input, ViewChild } from '@angular/core';
import { SearchInputType } from '../models/category/search-input-type';
import { debounceTime } from 'rxjs/operators';
import * as i0 from "@angular/core";
export class AbstractSearchOperandInputComponent {
/**
* Whether the contents displayed in this component can be edited by the user or not.
*
* Defaults to `true`
*/
editable = true;
inputFormControl;
inputType;
first;
/**
* Only if the input is of type [AUTOCOMPLETE{@link SearchInputType#AUTOCOMPLETE}
*/
filterOptionsFunction;
_inputConfirmed = false;
_filteredOptions$;
_autocompleteChange;
_initialExpansion = true;
renderSelection = (selection) => this._renderSelection(selection);
ngOnInit() {
if (this.inputType === SearchInputType.AUTOCOMPLETE) {
this._autocompleteChange = this.inputFormControl.valueChanges.subscribe(val => {
setTimeout(() => {
this._inputConfirmed = !!val && (typeof val !== 'string');
});
});
}
if (this.isInputValueSet()) {
this._inputConfirmed = true;
}
}
ngOnDestroy() {
if (this._autocompleteChange && !this._autocompleteChange.closed) {
this._autocompleteChange.unsubscribe();
}
}
get filteredOptions$() {
if (!this._filteredOptions$) {
this._filteredOptions$ = this.filterOptionsFunction(this.inputFormControl.valueChanges.pipe(debounceTime(600)));
}
return this._filteredOptions$;
}
isInputFilled() {
if (!this._inputConfirmed) {
return false;
}
return this.isInputValueSet();
}
set categoryInput(input) {
if (input) {
if (!this.first && this._initialExpansion) {
this._initialExpansion = false;
return;
}
this._initialExpansion = false;
if (!this.isInputFilled()) {
setTimeout(() => {
input.nativeElement.focus();
});
}
}
}
confirmInput() {
this._inputConfirmed = true;
}
editInput() {
if (!this.editable) {
return;
}
this._inputConfirmed = false;
}
/**
* Autocomplete `displayWith` function
* @param selection the selected option
*/
_renderSelection(selection) {
return selection ? selection.text : '';
}
isInputValueSet() {
if (this.inputType === SearchInputType.AUTOCOMPLETE) {
return !!this.inputFormControl.value
&& (typeof this.inputFormControl.value !== 'string');
}
if (this.inputType === SearchInputType.TEXT) {
return this.inputFormControl.value !== undefined
&& this.inputFormControl.value !== null
&& this.inputFormControl.value.length > 0;
}
return this.inputFormControl.value !== undefined
&& this.inputFormControl.value !== null;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchOperandInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractSearchOperandInputComponent, selector: "ncc-abstract-search-operand-input", inputs: { editable: "editable", inputFormControl: "inputFormControl", inputType: "inputType", first: "first", filterOptionsFunction: "filterOptionsFunction" }, viewQueries: [{ propertyName: "categoryInput", first: true, predicate: ["operandInput"], descendants: true }], ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractSearchOperandInputComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-search-operand-input',
template: ''
}]
}], propDecorators: { editable: [{
type: Input
}], inputFormControl: [{
type: Input
}], inputType: [{
type: Input
}], first: [{
type: Input
}], filterOptionsFunction: [{
type: Input
}], categoryInput: [{
type: ViewChild,
args: ['operandInput']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VhcmNoLW9wZXJhbmQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9zZWFyY2gvc2VhcmNoLW9wZXJhbmQtaW5wdXQtY29tcG9uZW50L2Fic3RyYWN0LXNlYXJjaC1vcGVyYW5kLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUdyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTVDLE1BQU0sT0FBZ0IsbUNBQW1DO0lBRXJEOzs7O09BSUc7SUFDTSxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLGdCQUFnQixDQUFjO0lBQzlCLFNBQVMsQ0FBa0I7SUFDM0IsS0FBSyxDQUFVO0lBQ3hCOztPQUVHO0lBQ00scUJBQXFCLENBQTBGO0lBRTlHLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFFMUIsaUJBQWlCLENBQXVEO0lBRXhFLG1CQUFtQixDQUFlO0lBRWxDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUUxQixlQUFlLEdBQUcsQ0FBQyxTQUE0QyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFNUcsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsWUFBWSxFQUFFO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDMUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJ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Q0FBQztJQUNoRCxDQUFDO3dHQTlHaUIsbUNBQW1DOzRGQUFuQyxtQ0FBbUMsd1ZBRjNDLEVBQUU7OzRGQUVNLG1DQUFtQztrQkFKeEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFRWSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBZ0RLLGFBQWE7c0JBRHZCLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaElucHV0VHlwZX0gZnJvbSAnLi4vbW9kZWxzL2NhdGVnb3J5L3NlYXJjaC1pbnB1dC10eXBlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7U2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9ufSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnkvc2VhcmNoLWF1dG9jb21wbGV0ZS1vcHRpb24nO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3Qtc2VhcmNoLW9wZXJhbmQtaW5wdXQnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFNlYXJjaE9wZXJhbmRJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnRzIGRpc3BsYXllZCBpbiB0aGlzIGNvbXBvbmVudCBjYW4gYmUgZWRpdGVkIGJ5IHRoZSB1c2VyIG9yIG5vdC5cbiAgICAgKlxuICAgICAqIERlZmF1bHRzIHRvIGB0cnVlYFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGVkaXRhYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpbnB1dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgICBASW5wdXQoKSBpbnB1dFR5cGU6IFNlYXJjaElucHV0VHlwZTtcbiAgICBASW5wdXQoKSBmaXJzdDogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPbmx5IGlmIHRoZSBpbnB1dCBpcyBvZiB0eXBlIFtBVVRPQ09NUExFVEV7QGxpbmsgU2VhcmNoSW5wdXRUeXBlI0FVVE9DT01QTEVURX1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBmaWx0ZXJPcHRpb25zRnVuY3Rpb246ICh1c2VySW5wdXQ6IE9ic2VydmFibGU8c3RyaW5nPikgPT4gT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hBdXRvY29tcGxldGVPcHRpb248dW5rbm93bj4+PjtcblxuICAgIHByb3RlY3RlZCBfaW5wdXRDb25maXJtZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2ZpbHRlcmVkT3B0aW9ucyQ6IE9ic2VydmFibGU8QXJyYXk8U2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPHVua25vd24+Pj47XG5cbiAgICBwcml2YXRlIF9hdXRvY29tcGxldGVDaGFuZ2U6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2luaXRpYWxFeHBhbnNpb24gPSB0cnVlO1xuXG4gICAgcHVibGljIHJlbmRlclNlbGVjdGlvbiA9IChzZWxlY3Rpb246IFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjx1bmtub3duPikgPT4gdGhpcy5fcmVuZGVyU2VsZWN0aW9uKHNlbGVjdGlvbik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFKSB7XG4gICAgICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVDaGFuZ2UgPSB0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnB1dENvbmZpcm1lZCA9ICEhdmFsICYmICh0eXBlb2YgdmFsICE9PSAnc3RyaW5nJyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzSW5wdXRWYWx1ZVNldCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnB1dENvbmZpcm1lZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2F1dG9jb21wbGV0ZUNoYW5nZSAmJiAhdGhpcy5fYXV0b2NvbXBsZXRlQ2hhbmdlLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlcmVkT3B0aW9ucyQoKTogT2JzZXJ2YWJsZTxBcnJheTxTZWFyY2hBdXRvY29tcGxldGVPcHRpb248dW5rbm93bj4+PiB7XG4gICAgICAgIGlmICghdGhpcy5fZmlsdGVyZWRPcHRpb25zJCkge1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRPcHRpb25zJCA9IHRoaXMuZmlsdGVyT3B0aW9uc0Z1bmN0aW9uKHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoNjAwKSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJlZE9wdGlvbnMkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0lucHV0RmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2lucHV0Q29uZmlybWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5pc0lucHV0VmFsdWVTZXQoKTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdvcGVyYW5kSW5wdXQnKVxuICAgIHB1YmxpYyBzZXQgY2F0ZWdvcnlJbnB1dChpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pikge1xuICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5maXJzdCAmJiB0aGlzLl9pbml0aWFsRXhwYW5zaW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbEV4cGFuc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxFeHBhbnNpb24gPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzSW5wdXRGaWxsZWQoKSkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlybUlucHV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnB1dENvbmZpcm1lZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbnB1dENvbmZpcm1lZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF1dG9jb21wbGV0ZSBgZGlzcGxheVdpdGhgIGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHNlbGVjdGlvbiB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIF9yZW5kZXJTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWFyY2hBdXRvY29tcGxldGVPcHRpb248dW5rbm93bj4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gc2VsZWN0aW9uID8gc2VsZWN0aW9uLnRleHQgOiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNJbnB1dFZhbHVlU2V0KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5pbnB1dFR5cGUgPT09IFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHJldHVybiAhIXRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgICAgICYmICh0eXBlb2YgdGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlICE9PSAnc3RyaW5nJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSBTZWFyY2hJbnB1dFR5cGUuVEVYVCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlICE9PSBudWxsXG4gICAgICAgICAgICAgICAgJiYgdGhpcy5pbnB1dEZvcm1Db250cm9sLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRGb3JtQ29udHJvbC52YWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiB0aGlzLmlucHV0Rm9ybUNvbnRyb2wudmFsdWUgIT09IG51bGw7XG4gICAgfVxufVxuIl19