UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

119 lines 14.2 kB
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