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.
139 lines • 18.1 kB
JavaScript
import { Directive, Input, ViewChild } from '@angular/core';
import { SearcherDialog } from './searcher.dialog.component';
import { AbstractGenericSearcherComponent } from './abstract-generic.searcher.component';
import * as i0 from "@angular/core";
import * as i1 from "../modal/dialog/dialog.service";
import * as i2 from "./abstract-searcher";
export class AbstractSearcherComponent extends AbstractGenericSearcherComponent {
constructor(dialogService, abstractSearcher) {
super(dialogService, abstractSearcher);
this.dialogService = dialogService;
this.abstractSearcher = abstractSearcher;
this.withButton = true;
this.isManagement = false;
}
set description(value) {
this.searchingValue = value;
super.description = value;
}
getWidth() {
if (this.height) {
return {
'width': this.height.toString() + 'px',
'min-width': this.height.toString() + 'px',
'line-height': 1,
'padding-left': 0,
'padding-right': 0,
};
}
return undefined;
}
getInputHeight() {
if (this.height) {
return { 'height': '100%' };
}
return undefined;
}
getLineHeight() {
if (this.height) {
return { 'line-height': this.height.toString() + 'px' };
}
return undefined;
}
openSearchDialog() {
let previousMultipleSelectionItemList = [];
if (this.multipleSelection && this._multipleSelectedItemList) {
previousMultipleSelectionItemList = [...this._multipleSelectedItemList];
}
this.searcherDialogParameters.widthRelative = '66%';
this.searcherDialogParameters.heightRelative = '66%';
this.searcherDialogParameters.searcher = this.abstractSearcher;
this.dialogService.showDialog(SearcherDialog, this.searcherDialogParameters)
.subscribe((v) => {
if (v) {
if (!this.multipleSelection) {
this.id = (v && v[0]) ? v[0][this.abstractSearcher.getIdField()] : undefined;
this.description = (v && v[0]) ? v[0][this.abstractSearcher.getDescriptionField()] : undefined;
this.code = (v && v[0]) ? v[0][this.abstractSearcher.getCodeField()] : undefined;
this.upDateField(v ? v[0] : undefined);
}
this.multipleSelectedItemList = v ? v : new Array();
}
else if (this.multipleSelection) {
this.multipleSelectedItemList = [...previousMultipleSelectionItemList];
}
this.valueToSearch.nativeElement.focus();
});
}
doSearch() {
if (this.code) {
this.abstractSearcher.getData(this.code, 1, this.multipleSelection ? 0 : 1, true)
.subscribe({
next: (response) => {
if (response !== undefined) {
if (this.multipleSelection) {
this.multipleSelectedItemList = response;
if (!response?.length) {
this.openSearchDialog();
}
}
else {
if (response.length === 1) {
this.id = response[0][this.abstractSearcher.getIdField()];
this.description = response[0][this.abstractSearcher.getDescriptionField()];
this.code = response[0][this.abstractSearcher.getCodeField()];
this.upDateField(response[0]);
}
else {
this.openSearchDialog();
}
}
}
},
error: (error) => {
console.error(`Communication error: ${error}`);
}
});
}
else {
this.id = undefined;
this.description = undefined;
this.code = undefined;
if (this.multipleSelection) {
this.multipleSelectedItemList = [];
}
this.upDateField(undefined);
}
}
upDateField(value) {
super.upDateField(value);
if (this.description) {
this.searchingValue = this.description;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSearcherComponent, deps: [{ token: i1.DialogService }, { token: i2.AbstractSearcher }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: AbstractSearcherComponent, inputs: { fontFamily: "fontFamily", fontSize: "fontSize", fontWeight: "fontWeight", fontStyle: "fontStyle", tabindex: "tabindex", withButton: "withButton", isManagement: "isManagement", height: "height" }, viewQueries: [{ propertyName: "valueToSearch", first: true, predicate: ["valueToSearch"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSearcherComponent, decorators: [{
type: Directive
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.AbstractSearcher }], propDecorators: { valueToSearch: [{
type: ViewChild,
args: ['valueToSearch']
}], fontFamily: [{
type: Input
}], fontSize: [{
type: Input
}], fontWeight: [{
type: Input
}], fontStyle: [{
type: Input
}], tabindex: [{
type: Input
}], withButton: [{
type: Input
}], isManagement: [{
type: Input
}], height: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VhcmNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaGVyL2Fic3RyYWN0LXNlYXJjaGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBR3pGLE1BQU0sT0FBZ0IseUJBQTZCLFNBQVEsZ0NBQW1DO0lBZTdGLFlBQXNDLGFBQTRCLEVBQWtCLGdCQUFxQztRQUN4SCxLQUFLLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFERCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFrQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBSnpHLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFLckMsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVE7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztnQkFDTixPQUFPLEVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJO2dCQUM5QyxXQUFXLEVBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJO2dCQUM5QyxhQUFhLEVBQUksQ0FBQztnQkFDbEIsY0FBYyxFQUFHLENBQUM7Z0JB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QztTQUNIO2FBQU07WUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQzthQUNuQztZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUI7SUFDRixDQUFDO0lBRWUsV0FBVyxDQUFDLEtBQVE7UUFDbkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQzs4R0EzSG9CLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUQ5QyxTQUFTO2lIQUcwQixhQUFhO3NCQUEvQyxTQUFTO3VCQUFDLGVBQWU7Z0JBRVYsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hlckRpYWxvZyB9IGZyb20gJy4vc2VhcmNoZXIuZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFNlYXJjaGVyIH0gZnJvbSAnLi9hYnN0cmFjdC1zZWFyY2hlcic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kYWwvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0R2VuZXJpY1NlYXJjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1nZW5lcmljLnNlYXJjaGVyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U2VhcmNoZXJDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdEdlbmVyaWNTZWFyY2hlckNvbXBvbmVudDxUPntcblxuXHRAVmlld0NoaWxkKCd2YWx1ZVRvU2VhcmNoJykgcHVibGljIHZhbHVlVG9TZWFyY2g6IEVsZW1lbnRSZWY7XG5cblx0QElucHV0KCkgcHVibGljIGZvbnRGYW1pbHk6IHN0cmluZztcblx0QElucHV0KCkgcHVibGljIGZvbnRTaXplOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBmb250V2VpZ2h0OiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBmb250U3R5bGU6IHN0cmluZztcblx0QElucHV0KCkgcHVibGljIHRhYmluZGV4OiBudW1iZXI7XG5cblx0cHVibGljIHNlYXJjaGluZ1ZhbHVlOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyB3aXRoQnV0dG9uID0gdHJ1ZTtcblx0QElucHV0KCkgcHVibGljIGlzTWFuYWdlbWVudCA9IGZhbHNlO1xuXHRASW5wdXQoKSBwdWJsaWMgaGVpZ2h0O1xuXG5cdHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHVibGljIG92ZXJyaWRlIGFic3RyYWN0U2VhcmNoZXI6IEFic3RyYWN0U2VhcmNoZXI8VD4pIHtcblx0XHRzdXBlcihkaWFsb2dTZXJ2aWNlLCBhYnN0cmFjdFNlYXJjaGVyKVxuXHR9XG5cblx0b3ZlcnJpZGUgc2V0IGRlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnNlYXJjaGluZ1ZhbHVlID0gdmFsdWU7XG5cdFx0c3VwZXIuZGVzY3JpcHRpb24gPSB2YWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBnZXRXaWR0aCgpIHtcblx0XHRpZiAodGhpcy5oZWlnaHQpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdCd3aWR0aCc6ICAgICAgICAgdGhpcy5oZWlnaHQudG9TdHJpbmcoKSArICdweCcsXG5cdFx0XHRcdCdtaW4td2lkdGgnOiAgICAgdGhpcy5oZWlnaHQudG9TdHJpbmcoKSArICdweCcsXG5cdFx0XHRcdCdsaW5lLWhlaWdodCc6ICAgMSxcblx0XHRcdFx0J3BhZGRpbmctbGVmdCc6ICAwLFxuXHRcdFx0XHQncGFkZGluZy1yaWdodCc6IDAsXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldElucHV0SGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmhlaWdodCkge1xuXHRcdFx0cmV0dXJuIHsnaGVpZ2h0JzogJzEwMCUnfTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBnZXRMaW5lSGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmhlaWdodCkge1xuXHRcdFx0cmV0dXJuIHsnbGluZS1oZWlnaHQnOiB0aGlzLmhlaWdodC50b1N0cmluZygpICsgJ3B4J307XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgb3ZlcnJpZGUgb3BlblNlYXJjaERpYWxvZygpOiB2b2lkIHtcblx0XHRsZXQgcHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0OiBBcnJheTxUPiA9IFtdO1xuXHRcdGlmICh0aGlzLm11bHRpcGxlU2VsZWN0aW9uICYmIHRoaXMuX211bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdCkge1xuXHRcdFx0cHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0ID0gWy4uLnRoaXMuX211bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdF07XG5cdFx0fVxuXHRcdHRoaXMuc2VhcmNoZXJEaWFsb2dQYXJhbWV0ZXJzLndpZHRoUmVsYXRpdmUgPSAnNjYlJztcblx0XHR0aGlzLnNlYXJjaGVyRGlhbG9nUGFyYW1ldGVycy5oZWlnaHRSZWxhdGl2ZSA9ICc2NiUnO1xuXHRcdHRoaXMuc2VhcmNoZXJEaWFsb2dQYXJhbWV0ZXJzLnNlYXJjaGVyID0gdGhpcy5hYnN0cmFjdFNlYXJjaGVyO1xuXHRcdHRoaXMuZGlhbG9nU2VydmljZS5zaG93RGlhbG9nKFNlYXJjaGVyRGlhbG9nLCB0aGlzLnNlYXJjaGVyRGlhbG9nUGFyYW1ldGVycylcblx0XHRcdC5zdWJzY3JpYmUoXG5cdFx0XHRcdCh2OiBBcnJheTxUPikgPT4ge1xuXHRcdFx0XHRcdGlmICh2KSB7XG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMubXVsdGlwbGVTZWxlY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5pZCA9ICh2ICYmIHZbMF0pID8gdlswXVt0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0SWRGaWVsZCgpXSA6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0dGhpcy5kZXNjcmlwdGlvbiA9ICh2ICYmIHZbMF0pID8gdlswXVt0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0RGVzY3JpcHRpb25GaWVsZCgpXSA6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0dGhpcy5jb2RlID0gKHYgJiYgdlswXSkgPyB2WzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRDb2RlRmllbGQoKV0gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdHRoaXMudXBEYXRlRmllbGQodiA/IHZbMF0gOiB1bmRlZmluZWQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3QgPSB2ID8gdiA6IG5ldyBBcnJheTxUPigpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5tdWx0aXBsZVNlbGVjdGlvbikge1xuXHRcdFx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3QgPSBbLi4ucHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0XTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy52YWx1ZVRvU2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBkb1NlYXJjaCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5jb2RlKSB7XG5cdFx0XHR0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0RGF0YSh0aGlzLmNvZGUsIDEsIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPyAwIDogMSwgdHJ1ZSlcblx0XHRcdFx0LnN1YnNjcmliZSh7XG5cdFx0XHRcdFx0XHRuZXh0OiAgKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0ID0gcmVzcG9uc2U7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXJlc3BvbnNlPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5vcGVuU2VhcmNoRGlhbG9nKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5pZCA9IHJlc3BvbnNlWzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRJZEZpZWxkKCldO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlc2NyaXB0aW9uID0gcmVzcG9uc2VbMF1bdGhpcy5hYnN0cmFjdFNlYXJjaGVyLmdldERlc2NyaXB0aW9uRmllbGQoKV07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY29kZSA9IHJlc3BvbnNlWzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRDb2RlRmllbGQoKV07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudXBEYXRlRmllbGQocmVzcG9uc2VbMF0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5vcGVuU2VhcmNoRGlhbG9nKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGBDb21tdW5pY2F0aW9uIGVycm9yOiAke2Vycm9yfWApO1xuXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmlkID0gdW5kZWZpbmVkO1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcblx0XHRcdHRoaXMuY29kZSA9IHVuZGVmaW5lZDtcblx0XHRcdGlmICh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKSB7XG5cdFx0XHRcdHRoaXMubXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0ID0gW107XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnVwRGF0ZUZpZWxkKHVuZGVmaW5lZCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIG92ZXJyaWRlIHVwRGF0ZUZpZWxkKHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0c3VwZXIudXBEYXRlRmllbGQodmFsdWUpO1xuXHRcdGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLnNlYXJjaGluZ1ZhbHVlID0gdGhpcy5kZXNjcmlwdGlvbjtcblx0XHR9XG5cdH1cbn1cbiJdfQ==