UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

43 lines 7.02 kB
import { FormControl, Validators } from '@angular/forms'; import { map, startWith } from 'rxjs/operators'; import { Component } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "../../models/side-menu-control"; export class AbstractOptionSelectorComponent { _sideMenuControl; data; selectorFormControl = new FormControl('', Validators.required); filteredOptions; constructor(_sideMenuControl) { this._sideMenuControl = _sideMenuControl; this.data = _sideMenuControl.data; this.filteredOptions = this.selectorFormControl.valueChanges.pipe(startWith(''), map(input => typeof input === 'string' ? input : input.value), map(name => name ? this._filter(name) : this.data.options.slice())); } submit() { if (this.selectorFormControl.valid) { this._sideMenuControl.close({ opened: false, message: 'Selected option was confirmed', data: this.selectorFormControl.value }); } } displayFn(option) { return option.text; } _filter(value) { const filterValue = value.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, ''); return this.data.options.filter(option => option.value.toLowerCase().normalize('NFD') .replace(/[\u0300-\u036f]/g, '').indexOf(filterValue) === 0); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractOptionSelectorComponent, deps: [{ token: i1.SideMenuControl }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractOptionSelectorComponent, selector: "ncc-abstract-option-selector", ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractOptionSelectorComponent, decorators: [{ type: Component, args: [{ selector: 'ncc-abstract-option-selector', template: '' }] }], ctorParameters: () => [{ type: i1.SideMenuControl }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtb3B0aW9uLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvc2lkZS1tZW51L2NvbnRlbnQtY29tcG9uZW50cy9vcHRpb24tc2VsZWN0b3IvYWJzdHJhY3Qtb3B0aW9uLXNlbGVjdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTXhDLE1BQU0sT0FBZ0IsK0JBQStCO0lBTTNCO0lBSnRCLElBQUksQ0FBOEI7SUFDbEMsbUJBQW1CLEdBQUcsSUFBSSxXQUFXLENBQWtCLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEYsZUFBZSxDQUE0QjtJQUUzQyxZQUFzQixnQkFBaUM7UUFBakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQW1DLENBQUM7UUFFakUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDN0QsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUNiLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FDckUsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRSwrQkFBK0I7Z0JBQ3hDLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSzthQUN2QyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBYztRQUNwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFhO1FBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ2hGLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzt3R0FuQ2lCLCtCQUErQjs0RkFBL0IsK0JBQStCLG9FQUZ2QyxFQUFFOzs0RkFFTSwrQkFBK0I7a0JBSnBELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1NpZGVNZW51Q29udHJvbH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NpZGUtbWVudS1jb250cm9sJztcbmltcG9ydCB7T3B0aW9uLCBPcHRpb25TZWxlY3RvckluamVjdGlvbkRhdGF9IGZyb20gJy4vbW9kZWwvb3B0aW9uLXNlbGVjdG9yLWluamVjdGlvbi1kYXRhJztcbmltcG9ydCB7Rm9ybUNvbnRyb2wsIFZhbGlkYXRvcnN9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LW9wdGlvbi1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0T3B0aW9uU2VsZWN0b3JDb21wb25lbnQge1xuXG4gICAgZGF0YTogT3B0aW9uU2VsZWN0b3JJbmplY3Rpb25EYXRhO1xuICAgIHNlbGVjdG9yRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgT3B0aW9uPignJywgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgZmlsdGVyZWRPcHRpb25zOiBPYnNlcnZhYmxlPEFycmF5PE9wdGlvbj4+O1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9zaWRlTWVudUNvbnRyb2w6IFNpZGVNZW51Q29udHJvbCkge1xuICAgICAgICB0aGlzLmRhdGEgPSBfc2lkZU1lbnVDb250cm9sLmRhdGEgYXMgT3B0aW9uU2VsZWN0b3JJbmplY3Rpb25EYXRhO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RvckZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgICAgICAgIG1hcChpbnB1dCA9PiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnID8gaW5wdXQgOiBpbnB1dC52YWx1ZSksXG4gICAgICAgICAgICBtYXAobmFtZSA9PiBuYW1lID8gdGhpcy5fZmlsdGVyKG5hbWUpIDogdGhpcy5kYXRhLm9wdGlvbnMuc2xpY2UoKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdWJtaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdG9yRm9ybUNvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NpZGVNZW51Q29udHJvbC5jbG9zZSh7XG4gICAgICAgICAgICAgICAgb3BlbmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2VsZWN0ZWQgb3B0aW9uIHdhcyBjb25maXJtZWQnLFxuICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMuc2VsZWN0b3JGb3JtQ29udHJvbC52YWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXNwbGF5Rm4ob3B0aW9uOiBPcHRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gb3B0aW9uLnRleHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9maWx0ZXIodmFsdWU6IHN0cmluZyk6IEFycmF5PE9wdGlvbj4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkubm9ybWFsaXplKCdORkQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKS5pbmRleE9mKGZpbHRlclZhbHVlKSA9PT0gMCk7XG4gICAgfVxuXG59XG4iXX0=