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
JavaScript
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=