UNPKG

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.

75 lines 9.28 kB
import { Directive, EventEmitter, Input, Output } from '@angular/core'; import { polyfill } from 'mobile-drag-drop'; import { moveItemInArray } from '@angular/cdk/drag-drop'; import * as i0 from "@angular/core"; export class AbstractSortableListComponent { constructor() { this.elementsList = []; this.dragAndDropEnabled = true; this.elementsListChange = new EventEmitter(); this.deleteWithSupr = false; this.showIcon = false; polyfill({}); } dbClickSelectedItem(element) { } getDescription(element) { return element[this.getDescriptionField(element)]; } getSelectionFieldValue(element) { return element[this.getSelectionField(element)]; } handleDragEnter(event) { return this.handleDrag(event); } handleDragOver(event) { return this.handleDrag(event); } handleDragLeave(event) { return this.handleDrag(event); } selectElement(element, ev) { if (!ev.ctrlKey) { this.elementsList.forEach(elementInList => { elementInList[this.getSelectionField(element)] = false; }); } element[this.getSelectionField(element)] = !element[this.getSelectionField(element)]; } getSelectedRows() { return this.elementsList.filter(element => element[this.getSelectionField(element)]); } removeElement(element, event) { if (this.deleteWithSupr && event.code === 'Delete') { this.elementsList.splice(this.elementsList.indexOf(element), 1); this.elementsListChange.emit(this.elementsList); } } dropped(event) { moveItemInArray(this.elementsList, event.previousIndex, event.currentIndex); this.elementsListChange.emit(this.elementsList); } handleDrag(event) { if (this.dragAndDropEnabled) { event.preventDefault(); return false; } else { return true; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSortableListComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: AbstractSortableListComponent, inputs: { elementsList: "elementsList", secondListSearch: "secondListSearch", dragAndDropEnabled: "dragAndDropEnabled" }, outputs: { elementsListChange: "elementsListChange" }, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSortableListComponent, decorators: [{ type: Directive }], ctorParameters: () => [], propDecorators: { elementsList: [{ type: Input }], secondListSearch: [{ type: Input }], dragAndDropEnabled: [{ type: Input }], elementsListChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc29ydGFibGUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeXN0ZWxhYi1jb21wb25lbnRzL3NyYy9saWIvc29ydGFibGUtbGlzdC9hYnN0cmFjdC1zb3J0YWJsZS1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBR3RFLE1BQU0sT0FBZ0IsNkJBQTZCO0lBV2xEO1FBVGdCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRTVCLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUVoQyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXJELG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHdkIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE9BQVU7SUFDckMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxPQUFVO1FBQy9CLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxPQUFVO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBSztRQUMzQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFLO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQUs7UUFDM0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBVSxFQUFFLEVBQWlCO1FBQ2pELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUN6QyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVNLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTSxhQUFhLENBQUMsT0FBVSxFQUFFLEtBQW9CO1FBQ3BELElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNoRDtJQUNGLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBdUI7UUFDckMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQVNPLFVBQVUsQ0FBQyxLQUFLO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixPQUFPLEtBQUssQ0FBQztTQUNiO2FBQU07WUFDTixPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQzs4R0E3RW9CLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTO3dEQUdPLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFFSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcG9seWZpbGwgfSBmcm9tICdtb2JpbGUtZHJhZy1kcm9wJztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTb3J0YWJsZUxpc3RDb21wb25lbnQ8VD4ge1xuXG5cdEBJbnB1dCgpIHB1YmxpYyBlbGVtZW50c0xpc3Q6IEFycmF5PFQ+ID0gW107XG5cdEBJbnB1dCgpIHB1YmxpYyBzZWNvbmRMaXN0U2VhcmNoOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBkcmFnQW5kRHJvcEVuYWJsZWQgPSB0cnVlO1xuXG5cdEBPdXRwdXQoKSBlbGVtZW50c0xpc3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PFQ+PigpO1xuXG5cdHB1YmxpYyBkZWxldGVXaXRoU3VwciA9IGZhbHNlO1xuXHRwdWJsaWMgc2hvd0ljb24gPSBmYWxzZTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRwb2x5ZmlsbCh7fSk7XG5cdH1cblxuXHRwdWJsaWMgZGJDbGlja1NlbGVjdGVkSXRlbShlbGVtZW50OiBUKSB7XG5cdH1cblxuXHRwdWJsaWMgZ2V0RGVzY3JpcHRpb24oZWxlbWVudDogVCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIGVsZW1lbnRbdGhpcy5nZXREZXNjcmlwdGlvbkZpZWxkKGVsZW1lbnQpXTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTZWxlY3Rpb25GaWVsZFZhbHVlKGVsZW1lbnQ6IFQpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gZWxlbWVudFt0aGlzLmdldFNlbGVjdGlvbkZpZWxkKGVsZW1lbnQpXTtcblx0fVxuXG5cdHB1YmxpYyBoYW5kbGVEcmFnRW50ZXIoZXZlbnQpIHtcblx0XHRyZXR1cm4gdGhpcy5oYW5kbGVEcmFnKGV2ZW50KTtcblx0fVxuXG5cdHB1YmxpYyBoYW5kbGVEcmFnT3ZlcihldmVudCkge1xuXHRcdHJldHVybiB0aGlzLmhhbmRsZURyYWcoZXZlbnQpO1xuXHR9XG5cblx0cHVibGljIGhhbmRsZURyYWdMZWF2ZShldmVudCkge1xuXHRcdHJldHVybiB0aGlzLmhhbmRsZURyYWcoZXZlbnQpO1xuXHR9XG5cblx0cHVibGljIHNlbGVjdEVsZW1lbnQoZWxlbWVudDogVCwgZXY6IEtleWJvYXJkRXZlbnQpIHtcblx0XHRpZiAoIWV2LmN0cmxLZXkpIHtcblx0XHRcdHRoaXMuZWxlbWVudHNMaXN0LmZvckVhY2goZWxlbWVudEluTGlzdCA9PiB7XG5cdFx0XHRcdGVsZW1lbnRJbkxpc3RbdGhpcy5nZXRTZWxlY3Rpb25GaWVsZChlbGVtZW50KV0gPSBmYWxzZTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRlbGVtZW50W3RoaXMuZ2V0U2VsZWN0aW9uRmllbGQoZWxlbWVudCldID0gIWVsZW1lbnRbdGhpcy5nZXRTZWxlY3Rpb25GaWVsZChlbGVtZW50KV07XG5cdH1cblxuXHRwdWJsaWMgZ2V0U2VsZWN0ZWRSb3dzKCk6IEFycmF5PFQ+IHtcblx0XHRyZXR1cm4gdGhpcy5lbGVtZW50c0xpc3QuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudFt0aGlzLmdldFNlbGVjdGlvbkZpZWxkKGVsZW1lbnQpXSk7XG5cdH1cblxuXHRwdWJsaWMgcmVtb3ZlRWxlbWVudChlbGVtZW50OiBULCBldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmRlbGV0ZVdpdGhTdXByICYmIGV2ZW50LmNvZGUgPT09ICdEZWxldGUnKSB7XG5cdFx0XHR0aGlzLmVsZW1lbnRzTGlzdC5zcGxpY2UodGhpcy5lbGVtZW50c0xpc3QuaW5kZXhPZihlbGVtZW50KSwgMSk7XG5cdFx0XHR0aGlzLmVsZW1lbnRzTGlzdENoYW5nZS5lbWl0KHRoaXMuZWxlbWVudHNMaXN0KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZHJvcHBlZChldmVudDogQ2RrRHJhZ0Ryb3A8VFtdPik6IHZvaWQge1xuXHRcdG1vdmVJdGVtSW5BcnJheSh0aGlzLmVsZW1lbnRzTGlzdCwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcblx0XHR0aGlzLmVsZW1lbnRzTGlzdENoYW5nZS5lbWl0KHRoaXMuZWxlbWVudHNMaXN0KTtcblx0fVxuXG5cblx0cHVibGljIGFic3RyYWN0IGdldERlc2NyaXB0aW9uRmllbGQoZWxlbWVudD86IFQpOiBzdHJpbmc7XG5cblx0cHVibGljIGFic3RyYWN0IGdldFNlbGVjdGlvbkZpZWxkKGVsZW1lbnQ/OiBUKTogc3RyaW5nO1xuXG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRJY29uKGVsZW1lbnQ/OiBUKTogc3RyaW5nO1xuXG5cdHByaXZhdGUgaGFuZGxlRHJhZyhldmVudCk6IGJvb2xlYW4ge1xuXHRcdGlmICh0aGlzLmRyYWdBbmREcm9wRW5hYmxlZCkge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHR9XG59XG4iXX0=