systelab-components
Version:
systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.
65 lines • 9.36 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { firstValueFrom, of } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "@angular/forms";
import * as i2 from "primeng/autocomplete";
export class ChipsComponent {
constructor() {
this.filtered = new EventEmitter();
this.texts = [];
this.disabled = false;
this.readonly = false;
this.results = [];
this._filter = [];
}
get filter() {
return this._filter;
}
set filter(event) {
this._filter = event;
this.filtered.emit(event);
}
search(event) {
firstValueFrom(of(this.texts))
.then(data => {
if (data) {
data = data.filter(x => x.toLowerCase()
.includes(event.query.toLowerCase()));
}
if (data) {
this.newData = event.query;
}
else {
this.newData = null;
}
this.results = data;
});
}
onKeyEnter(event) {
const input = event.target;
if (input.value) {
this.filter.push(input.value);
input.value = '';
}
this.filtered.emit(this.filter);
this.autoComplete.hide();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", type: ChipsComponent, selector: "systelab-chips", inputs: { texts: "texts", disabled: "disabled", readonly: "readonly" }, outputs: { filtered: "filtered" }, viewQueries: [{ propertyName: "autoComplete", first: true, predicate: ["autoComplete"], descendants: true }], ngImport: i0, template: "<p-autoComplete #autoComplete [suggestions]=\"results\" (completeMethod)=\"search($event)\"\n (keydown.enter)=\"onKeyEnter($event)\"\n [multiple]=\"true\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"filter\"></p-autoComplete>\n", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AutoComplete, selector: "p-autoComplete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: ChipsComponent, decorators: [{
type: Component,
args: [{ selector: 'systelab-chips', template: "<p-autoComplete #autoComplete [suggestions]=\"results\" (completeMethod)=\"search($event)\"\n (keydown.enter)=\"onKeyEnter($event)\"\n [multiple]=\"true\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"filter\"></p-autoComplete>\n" }]
}], propDecorators: { filtered: [{
type: Output
}], autoComplete: [{
type: ViewChild,
args: ['autoComplete']
}], texts: [{
type: Input
}], disabled: [{
type: Input
}], readonly: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL2NoaXBzL2NoaXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5c3RlbGFiLWNvbXBvbmVudHMvc3JjL2xpYi9jaGlwcy9jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsY0FBYyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQU8xQyxNQUFNLE9BQU8sY0FBYztJQUozQjtRQU1rQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFHOUMsVUFBSyxHQUFrQixFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBRzNCLFlBQU8sR0FBa0IsRUFBRSxDQUFDO0tBc0NwQztJQXBDQSxJQUFJLE1BQU07UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUs7UUFDbEIsY0FBYyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUIsSUFBSSxDQUNKLElBQUksQ0FBQyxFQUFFO1lBQ04sSUFBSSxJQUFJLEVBQUU7Z0JBQ1QsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO3FCQUNyQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkM7WUFDRCxJQUFJLElBQUksRUFBRTtnQkFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7YUFDM0I7aUJBQU07Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDcEI7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDLENBQ0QsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBb0I7UUFDckMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUM7UUFDL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNqQjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7OEdBakRXLGNBQWM7a0dBQWQsY0FBYywrUUNSM0Isd1VBTUE7OzJGREVhLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0ksZ0JBQWdCOzhCQUtaLFFBQVE7c0JBQXhCLE1BQU07Z0JBQ29CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFFVCxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICAgICdzeXN0ZWxhYi1jaGlwcycsXG5cdHRlbXBsYXRlVXJsOiAnY2hpcHMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENoaXBzQ29tcG9uZW50IHtcblxuXHRAT3V0cHV0KCkgcHVibGljIGZpbHRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxzdHJpbmc+PigpO1xuXHRAVmlld0NoaWxkKCdhdXRvQ29tcGxldGUnKSBhdXRvQ29tcGxldGU6IEF1dG9Db21wbGV0ZTtcblxuXHRASW5wdXQoKSBwdWJsaWMgdGV4dHM6IEFycmF5PHN0cmluZz4gPSBbXTtcblx0QElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cdEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuXG5cdHB1YmxpYyByZXN1bHRzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cblx0cHJpdmF0ZSBuZXdEYXRhOiBzdHJpbmc7XG5cdHByaXZhdGUgX2ZpbHRlcjogQXJyYXk8c3RyaW5nPiA9IFtdO1xuXG5cdGdldCBmaWx0ZXIoKTogQXJyYXk8c3RyaW5nPiB7XG5cdFx0cmV0dXJuIHRoaXMuX2ZpbHRlcjtcblx0fVxuXG5cdHNldCBmaWx0ZXIoZXZlbnQpIHtcblx0XHR0aGlzLl9maWx0ZXIgPSBldmVudDtcblx0XHR0aGlzLmZpbHRlcmVkLmVtaXQoZXZlbnQpO1xuXHR9XG5cblx0cHVibGljIHNlYXJjaChldmVudCk6IHZvaWQge1xuXHRcdGZpcnN0VmFsdWVGcm9tKG9mKHRoaXMudGV4dHMpKVxuXHRcdFx0LnRoZW4oXG5cdFx0XHRcdGRhdGEgPT4ge1xuXHRcdFx0XHRcdGlmIChkYXRhKSB7XG5cdFx0XHRcdFx0XHRkYXRhID0gZGF0YS5maWx0ZXIoeCA9PiB4LnRvTG93ZXJDYXNlKClcblx0XHRcdFx0XHRcdFx0LmluY2x1ZGVzKGV2ZW50LnF1ZXJ5LnRvTG93ZXJDYXNlKCkpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGRhdGEpIHtcblx0XHRcdFx0XHRcdHRoaXMubmV3RGF0YSA9IGV2ZW50LnF1ZXJ5O1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHR0aGlzLm5ld0RhdGEgPSBudWxsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHR0aGlzLnJlc3VsdHMgPSBkYXRhO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHR9XG5cblx0cHVibGljIG9uS2V5RW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXHRcdGlmIChpbnB1dC52YWx1ZSkge1xuXHRcdFx0dGhpcy5maWx0ZXIucHVzaChpbnB1dC52YWx1ZSk7XG5cdFx0XHRpbnB1dC52YWx1ZSA9ICcnO1xuXHRcdH1cblx0XHR0aGlzLmZpbHRlcmVkLmVtaXQodGhpcy5maWx0ZXIpO1xuXHRcdHRoaXMuYXV0b0NvbXBsZXRlLmhpZGUoKTtcblx0fVxufVxuXG4iLCI8cC1hdXRvQ29tcGxldGUgI2F1dG9Db21wbGV0ZSBbc3VnZ2VzdGlvbnNdPVwicmVzdWx0c1wiIChjb21wbGV0ZU1ldGhvZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25LZXlFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyXCI+PC9wLWF1dG9Db21wbGV0ZT5cbiJdfQ==