ng-fusion-ui 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/lib/data-grid/components/body-row-cell/body-row-cell.component.mjs +23 -20
- package/esm2022/lib/data-grid/components/head-row-cell/head-row-cell.component.mjs +26 -18
- package/esm2022/lib/data-grid/components/row-actions/row-actions.component.mjs +15 -17
- package/esm2022/lib/data-grid/data-grid/data-grid.component.mjs +52 -12
- package/esm2022/lib/data-grid/services/data-sorting.service.mjs +21 -3
- package/esm2022/lib/data-grid/services/edit-row.service.mjs +5 -5
- package/fesm2022/ng-fusion-ui.mjs +132 -65
- package/fesm2022/ng-fusion-ui.mjs.map +1 -1
- package/lib/data-grid/components/body-row-cell/body-row-cell.component.d.ts +6 -5
- package/lib/data-grid/components/head-row-cell/head-row-cell.component.d.ts +10 -8
- package/lib/data-grid/components/row-actions/row-actions.component.d.ts +6 -6
- package/lib/data-grid/data-grid/data-grid.component.d.ts +44 -3
- package/lib/data-grid/services/data-sorting.service.d.ts +9 -2
- package/lib/data-grid/services/edit-row.service.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, model, signal, } from '@angular/core';
|
|
2
2
|
import { filter } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../services/data-sorting.service";
|
|
@@ -9,33 +9,40 @@ export class BodyRowCellComponent {
|
|
|
9
9
|
this.sortService = sortService;
|
|
10
10
|
this.editRowService = editRowService;
|
|
11
11
|
this.elementRef = elementRef;
|
|
12
|
+
this.cellValue = input('');
|
|
13
|
+
this.editKey = input('');
|
|
14
|
+
this.cellDef = signal('');
|
|
12
15
|
this.editCellValue = model();
|
|
13
16
|
this.isEditing = signal(false);
|
|
14
|
-
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
const index = this.getCellIndex();
|
|
17
|
-
this.cellDef = this.sortService.getCellDef(index) || '';
|
|
17
|
+
this.hasCellValue = signal(false);
|
|
18
18
|
}
|
|
19
19
|
ngOnChanges(changes) {
|
|
20
|
-
const
|
|
20
|
+
const rowIndex = this.getRowIndex();
|
|
21
|
+
if (changes['cellValue']) {
|
|
22
|
+
this.hasCellValue.set(true);
|
|
23
|
+
}
|
|
21
24
|
if (changes['editKey']) {
|
|
22
25
|
this.validateKey();
|
|
23
|
-
this.subscription = this.editRowService.
|
|
26
|
+
this.subscription = this.editRowService.editIndex$
|
|
24
27
|
.pipe(filter(() => !!this.editKey))
|
|
25
|
-
.subscribe((
|
|
26
|
-
this.editCellValue.set(this.cellValue);
|
|
27
|
-
this.isEditing.set(
|
|
28
|
+
.subscribe((index) => {
|
|
29
|
+
this.editCellValue.set(this.cellValue());
|
|
30
|
+
this.isEditing.set(index === rowIndex);
|
|
28
31
|
});
|
|
29
32
|
}
|
|
30
33
|
}
|
|
34
|
+
ngOnInit() {
|
|
35
|
+
const index = this.getCellIndex();
|
|
36
|
+
this.cellDef.set(this.sortService.getCellDef(index) || '');
|
|
37
|
+
}
|
|
31
38
|
onInputChange(value) {
|
|
32
39
|
this.editCellValue.set(value);
|
|
33
40
|
if (this.isEditing()) {
|
|
34
|
-
this.editRowService.updateEditValues(this.editKey, value);
|
|
41
|
+
this.editRowService.updateEditValues(this.editKey(), value);
|
|
35
42
|
}
|
|
36
43
|
}
|
|
37
44
|
validateKey() {
|
|
38
|
-
if (!this.sortService.cellKeys().includes(this.editKey)) {
|
|
45
|
+
if (!this.sortService.cellKeys().includes(this.editKey())) {
|
|
39
46
|
console.warn(`Invalid editKey '${this.editKey}' provided.`);
|
|
40
47
|
}
|
|
41
48
|
}
|
|
@@ -57,14 +64,10 @@ export class BodyRowCellComponent {
|
|
|
57
64
|
}
|
|
58
65
|
}
|
|
59
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BodyRowCellComponent, deps: [{ token: i1.DataSortingService }, { token: i2.EditRowService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: BodyRowCellComponent, selector: "fu-body-row-cell", inputs: { cellValue: { classPropertyName: "cellValue", publicName: "cellValue", isSignal:
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: BodyRowCellComponent, selector: "fu-body-row-cell", inputs: { cellValue: { classPropertyName: "cellValue", publicName: "cellValue", isSignal: true, isRequired: false, transformFunction: null }, editKey: { classPropertyName: "editKey", publicName: "editKey", isSignal: true, isRequired: false, transformFunction: null }, editCellValue: { classPropertyName: "editCellValue", publicName: "editCellValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editCellValue: "editCellValueChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef() }}</span>\r\n\r\n @if (hasCellValue()) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue() }}</span>\r\n } }\r\n <!-- WRAP -->\r\n @if (!hasCellValue()) {\r\n <span>\r\n <ng-content />\r\n </span>\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color:var(--fu-grid-cell-edit-input);width:100%;padding:4px;border:none;outline:1px solid gray;border-radius:4px}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
61
68
|
}
|
|
62
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BodyRowCellComponent, decorators: [{
|
|
63
70
|
type: Component,
|
|
64
|
-
args: [{ selector: 'fu-body-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef }}</span>\r\n\r\n @if (
|
|
65
|
-
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i2.EditRowService }, { type: i0.ElementRef }]
|
|
66
|
-
|
|
67
|
-
}], editKey: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}] } });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS1yb3ctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mdXNpb24tdWkvc3JjL2xpYi9kYXRhLWdyaWQvY29tcG9uZW50cy9ib2R5LXJvdy1jZWxsL2JvZHktcm93LWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZnVzaW9uLXVpL3NyYy9saWIvZGF0YS1ncmlkL2NvbXBvbmVudHMvYm9keS1yb3ctY2VsbC9ib2R5LXJvdy1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFLTCxpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTNUMsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUNVLFdBQStCLEVBQy9CLGNBQThCLEVBQzlCLFVBQXNCO1FBRnRCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVJ6QixrQkFBYSxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUN6QyxjQUFTLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBUXZDLENBQUM7SUFFRyxRQUFRO1FBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVO2lCQUMvQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2xDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBNEIsQ0FBQztRQUMxRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQTRCLENBQUM7UUFDM0UsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFdkIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7OEdBbkVVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLGdpQkN4QmpDLCthQWdCQTs7MkZEUWEsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzZJQUdyQixTQUFTO3NCQUF4QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgbW9kZWwsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU29ydGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLXNvcnRpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7IEVkaXRSb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWRpdC1yb3cuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z1LWJvZHktcm93LWNlbGwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ib2R5LXJvdy1jZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYm9keS1yb3ctY2VsbC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJvZHlSb3dDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgcHVibGljIGNlbGxWYWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlZGl0S2V5OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBjZWxsRGVmOiBzdHJpbmc7XHJcbiAgcHVibGljIGVkaXRDZWxsVmFsdWUgPSBtb2RlbDxzdHJpbmcgfCBudW1iZXI+KCk7XHJcbiAgcHVibGljIGlzRWRpdGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0U2VydmljZTogRGF0YVNvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlZGl0Um93U2VydmljZTogRWRpdFJvd1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDZWxsSW5kZXgoKTtcclxuICAgIHRoaXMuY2VsbERlZiA9IHRoaXMuc29ydFNlcnZpY2UuZ2V0Q2VsbERlZihpbmRleCkgfHwgJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmdldFJvd0luZGV4KCk7XHJcblxyXG4gICAgaWYgKGNoYW5nZXNbJ2VkaXRLZXknXSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRlS2V5KCk7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdFJvd1NlcnZpY2UuZWRpdFN0YXRlJFxyXG4gICAgICAgIC5waXBlKGZpbHRlcigoKSA9PiAhIXRoaXMuZWRpdEtleSkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcclxuICAgICAgICAgIHRoaXMuZWRpdENlbGxWYWx1ZS5zZXQodGhpcy5jZWxsVmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5pc0VkaXRpbmcuc2V0KHN0YXRlID09PSBpbmRleCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JbnB1dENoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRDZWxsVmFsdWUuc2V0KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLmlzRWRpdGluZygpKSB7XHJcbiAgICAgIHRoaXMuZWRpdFJvd1NlcnZpY2UudXBkYXRlRWRpdFZhbHVlcyh0aGlzLmVkaXRLZXksIHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVLZXkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc29ydFNlcnZpY2UuY2VsbEtleXMoKS5pbmNsdWRlcyh0aGlzLmVkaXRLZXkpKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihgSW52YWxpZCBlZGl0S2V5ICcke3RoaXMuZWRpdEtleX0nIHByb3ZpZGVkLmApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDZWxsSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShwYXJlbnQuY2hpbGRyZW4pLmluZGV4T2YodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRSb3dJbmRleCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICBpZiAoIXBhcmVudCkgcmV0dXJuIC0xO1xyXG5cclxuICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJvbShwYXJlbnQuY2hpbGRyZW4pO1xyXG4gICAgcmV0dXJuIGNoaWxkcmVuLmluZGV4T2YoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZ1LWJvZHktcm93LWNlbGxcIiBbYXR0ci5kYXRhLWVkaXRdPVwiaXNFZGl0aW5nKClcIj5cclxuICA8c3Bhbj57eyBjZWxsRGVmIH19PC9zcGFuPlxyXG5cclxuICBAaWYgKGNlbGxWYWx1ZSkgeyBAaWYoaXNFZGl0aW5nKCkpe1xyXG4gIDxpbnB1dFxyXG4gICAgY2xhc3M9XCJmdS1lZGl0LWlucHV0XCJcclxuICAgIFsobmdNb2RlbCldPVwiZWRpdENlbGxWYWx1ZVwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgLz5cclxuICB9QGVsc2Uge1xyXG4gIDxzcGFuPnt7IGNlbGxWYWx1ZSB9fTwvc3Bhbj5cclxuICB9IH0gQGVsc2Uge1xyXG4gIDxuZy1jb250ZW50IC8+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
71
|
+
args: [{ selector: 'fu-body-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-body-row-cell\" [attr.data-edit]=\"isEditing()\">\r\n <span>{{ cellDef() }}</span>\r\n\r\n @if (hasCellValue()) { @if(isEditing()){\r\n <input\r\n class=\"fu-edit-input\"\r\n [(ngModel)]=\"editCellValue\"\r\n (ngModelChange)=\"onInputChange($event)\"\r\n (click)=\"$event.stopPropagation()\"\r\n />\r\n }@else {\r\n <span>{{ cellValue() }}</span>\r\n } }\r\n <!-- WRAP -->\r\n @if (!hasCellValue()) {\r\n <span>\r\n <ng-content />\r\n </span>\r\n }\r\n</div>\r\n", styles: [".fu-body-row-cell{padding:12px 16px}.fu-body-row-cell[data-edit=true]{padding:8px 16px}.fu-body-row-cell>span:nth-child(1){display:none}@media (max-width: 900px){.fu-body-row-cell>span:nth-child(1){display:inline;font-weight:700}}.fu-body-row-cell>span:nth-child(2){color:var(--fu-grid-cell-color);word-break:break-all}@media (max-width: 900px){.fu-body-row-cell{display:grid;grid-template-columns:repeat(2,1fr);padding:8px 16px}}@media (max-width: 600px){.fu-body-row-cell{grid-template-columns:35% 1fr;padding:6px 16px}}.fu-edit-input{background-color:transparent;color:var(--fu-grid-cell-edit-input);width:100%;padding:4px;border:none;outline:1px solid gray;border-radius:4px}\n"] }]
|
|
72
|
+
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i2.EditRowService }, { type: i0.ElementRef }] });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9keS1yb3ctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mdXNpb24tdWkvc3JjL2xpYi9kYXRhLWdyaWQvY29tcG9uZW50cy9ib2R5LXJvdy1jZWxsL2JvZHktcm93LWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZnVzaW9uLXVpL3NyYy9saWIvZGF0YS1ncmlkL2NvbXBvbmVudHMvYm9keS1yb3ctY2VsbC9ib2R5LXJvdy1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQU1ULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTNUMsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNVLFdBQStCLEVBQy9CLGNBQThCLEVBQzlCLFVBQXNCO1FBRnRCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWJ6QixjQUFTLEdBQUcsS0FBSyxDQUFrQixFQUFFLENBQUMsQ0FBQztRQUN2QyxZQUFPLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTVCLFlBQU8sR0FBRyxNQUFNLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0Isa0JBQWEsR0FBRyxLQUFLLEVBQW1CLENBQUM7UUFDekMsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztJQVExQyxDQUFDO0lBRUcsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLE1B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QWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBpbnB1dCxcclxuICBtb2RlbCxcclxuICBzaWduYWwsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTb3J0aW5nU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEtc29ydGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRWRpdFJvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lZGl0LXJvdy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnUtYm9keS1yb3ctY2VsbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JvZHktcm93LWNlbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9ib2R5LXJvdy1jZWxsLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9keVJvd0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBwdWJsaWMgY2VsbFZhbHVlID0gaW5wdXQ8c3RyaW5nIHwgbnVtYmVyPignJyk7XHJcbiAgcHVibGljIGVkaXRLZXkgPSBpbnB1dDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgcHVibGljIGNlbGxEZWYgPSBzaWduYWw8c3RyaW5nPignJyk7XHJcbiAgcHVibGljIGVkaXRDZWxsVmFsdWUgPSBtb2RlbDxzdHJpbmcgfCBudW1iZXI+KCk7XHJcbiAgcHVibGljIGlzRWRpdGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHVibGljIGhhc0NlbGxWYWx1ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0U2VydmljZTogRGF0YVNvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlZGl0Um93U2VydmljZTogRWRpdFJvd1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCByb3dJbmRleCA9IHRoaXMuZ2V0Um93SW5kZXgoKTtcclxuXHJcbiAgICBpZiAoY2hhbmdlc1snY2VsbFZhbHVlJ10pIHtcclxuICAgICAgdGhpcy5oYXNDZWxsVmFsdWUuc2V0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjaGFuZ2VzWydlZGl0S2V5J10pIHtcclxuICAgICAgdGhpcy52YWxpZGF0ZUtleSgpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmVkaXRSb3dTZXJ2aWNlLmVkaXRJbmRleCRcclxuICAgICAgICAucGlwZShmaWx0ZXIoKCkgPT4gISF0aGlzLmVkaXRLZXkpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRDZWxsVmFsdWUuc2V0KHRoaXMuY2VsbFZhbHVlKCkpO1xyXG4gICAgICAgICAgdGhpcy5pc0VkaXRpbmcuc2V0KGluZGV4ID09PSByb3dJbmRleCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0Q2VsbEluZGV4KCk7XHJcbiAgICB0aGlzLmNlbGxEZWYuc2V0KHRoaXMuc29ydFNlcnZpY2UuZ2V0Q2VsbERlZihpbmRleCkgfHwgJycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0Q2VsbFZhbHVlLnNldCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5pc0VkaXRpbmcoKSkge1xyXG4gICAgICB0aGlzLmVkaXRSb3dTZXJ2aWNlLnVwZGF0ZUVkaXRWYWx1ZXModGhpcy5lZGl0S2V5KCksIHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVLZXkoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuc29ydFNlcnZpY2UuY2VsbEtleXMoKS5pbmNsdWRlcyh0aGlzLmVkaXRLZXkoKSkpIHtcclxuICAgICAgY29uc29sZS53YXJuKGBJbnZhbGlkIGVkaXRLZXkgJyR7dGhpcy5lZGl0S2V5fScgcHJvdmlkZWQuYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENlbGxJbmRleCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbikuaW5kZXhPZih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvd0luZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgIGlmICghcGFyZW50KSByZXR1cm4gLTE7XHJcblxyXG4gICAgY29uc3QgY2hpbGRyZW4gPSBBcnJheS5mcm9tKHBhcmVudC5jaGlsZHJlbik7XHJcbiAgICByZXR1cm4gY2hpbGRyZW4uaW5kZXhPZihlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZnUtYm9keS1yb3ctY2VsbFwiIFthdHRyLmRhdGEtZWRpdF09XCJpc0VkaXRpbmcoKVwiPlxyXG4gIDxzcGFuPnt7IGNlbGxEZWYoKSB9fTwvc3Bhbj5cclxuXHJcbiAgQGlmIChoYXNDZWxsVmFsdWUoKSkgeyBAaWYoaXNFZGl0aW5nKCkpe1xyXG4gIDxpbnB1dFxyXG4gICAgY2xhc3M9XCJmdS1lZGl0LWlucHV0XCJcclxuICAgIFsobmdNb2RlbCldPVwiZWRpdENlbGxWYWx1ZVwiXHJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgLz5cclxuICB9QGVsc2Uge1xyXG4gIDxzcGFuPnt7IGNlbGxWYWx1ZSgpIH19PC9zcGFuPlxyXG4gIH0gfVxyXG4gIDwhLS0gV1JBUCAtLT5cclxuICBAaWYgKCFoYXNDZWxsVmFsdWUoKSkge1xyXG4gIDxzcGFuPlxyXG4gICAgPG5nLWNvbnRlbnQgLz5cclxuICA8L3NwYW4+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation, computed, effect, input, } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "../../services/data-sorting.service";
|
|
4
4
|
import * as i2 from "../../../icons/icon.component";
|
|
@@ -7,25 +7,36 @@ export class HeadRowCellComponent {
|
|
|
7
7
|
constructor(sortService, elementRef) {
|
|
8
8
|
this.sortService = sortService;
|
|
9
9
|
this.elementRef = elementRef;
|
|
10
|
-
this.
|
|
10
|
+
this.cellDef = input.required();
|
|
11
|
+
this.sortKey = input();
|
|
12
|
+
this.direction = computed(() => this.sortService.sortDirection());
|
|
13
|
+
this.sorting = computed(() => this.sortService.sortKey());
|
|
14
|
+
this.storedValues = computed(() => this.sortService.storedValues());
|
|
15
|
+
this.onSort = new EventEmitter();
|
|
11
16
|
effect(() => {
|
|
12
|
-
if (this.sortKey) {
|
|
13
|
-
this.direction.set(this.sortService.sortDirection());
|
|
14
|
-
this.sorting = this.sortService.sortKey();
|
|
17
|
+
if (this.sortKey() && !this.onSort.observed) {
|
|
15
18
|
this.validateKey();
|
|
16
19
|
}
|
|
17
|
-
}
|
|
20
|
+
});
|
|
18
21
|
}
|
|
19
22
|
ngOnInit() {
|
|
20
23
|
const index = this.getIndex();
|
|
21
|
-
this.sortService.setCellDef(index, this.cellDef);
|
|
24
|
+
this.sortService.setCellDef(index, this.cellDef());
|
|
25
|
+
if (this.onSort.observed &&
|
|
26
|
+
this.storedValues().sortKey === this.sortKey()) {
|
|
27
|
+
this.onSort.emit(this.storedValues());
|
|
28
|
+
}
|
|
22
29
|
}
|
|
23
|
-
|
|
24
|
-
this.
|
|
30
|
+
onSorting() {
|
|
31
|
+
this.onSort.emit({
|
|
32
|
+
sortKey: this.sortKey(),
|
|
33
|
+
sortDirection: this.direction() === 'asc' ? 'desc' : 'asc',
|
|
34
|
+
});
|
|
35
|
+
this.sortService.setSortKey(this.sortKey());
|
|
25
36
|
}
|
|
26
37
|
validateKey() {
|
|
27
38
|
if (this.sortService.cellKeys().length > 0) {
|
|
28
|
-
if (!this.sortService.cellKeys().includes(this.sortKey)) {
|
|
39
|
+
if (!this.sortService.cellKeys().includes(this.sortKey())) {
|
|
29
40
|
console.warn(`Invalid sortKey '${this.sortKey}' provided.`);
|
|
30
41
|
}
|
|
31
42
|
}
|
|
@@ -35,15 +46,12 @@ export class HeadRowCellComponent {
|
|
|
35
46
|
return Array.from(parent.children).indexOf(this.elementRef.nativeElement);
|
|
36
47
|
}
|
|
37
48
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: HeadRowCellComponent, deps: [{ token: i1.DataSortingService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: HeadRowCellComponent, selector: "fu-head-row-cell", inputs: { cellDef: "cellDef", sortKey: "sortKey" }, ngImport: i0, template: "<div class=\"fu-head-row-cell\" [sortColumn]=\"sortKey\" (click)=\"
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: HeadRowCellComponent, selector: "fu-head-row-cell", inputs: { cellDef: { classPropertyName: "cellDef", publicName: "cellDef", isSignal: true, isRequired: true, transformFunction: null }, sortKey: { classPropertyName: "sortKey", publicName: "sortKey", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onSort: "onSort" }, ngImport: i0, template: "<div class=\"fu-head-row-cell\" [sortColumn]=\"sortKey()\" (click)=\"onSorting()\">\r\n <span>{{ cellDef() }}</span>\r\n @if (sortKey()) {\r\n <!-- wrap -->\r\n @if (sortKey() == sorting()) {\r\n <button>\r\n @if(direction() === 'asc') {\r\n <fu-icon iconName=\"sortAsc\" />\r\n } @if (direction() === 'desc') {\r\n <fu-icon iconName=\"sortDesc\" />\r\n }\r\n </button>\r\n } @else {\r\n <button><fu-icon iconName=\"sort\" /></button>\r\n } }\r\n</div>\r\n", styles: [".fu-head-row-cell{padding:16px;font-weight:700;display:flex}.fu-head-row-cell>span{margin-right:4px}.fu-head-row-cell>button{cursor:pointer;background-color:transparent;color:var(--fu-grid-text-color);font-weight:700;border:none}@media (max-width: 900px){.fu-head-row-cell{display:none}.fu-head-row-cell[data-sorted]{display:flex}}.fu-head-row-cell[data-sorted]:hover{cursor:pointer;background-color:var(--fu-grid-hover-color)}.fu-head-row-cell.sort-asc,.fu-head-row-cell.sort-desc{background-color:var(--fu-grid-fg-color)}\n"], dependencies: [{ kind: "component", type: i2.IconComponent, selector: "fu-icon", inputs: ["iconName", "size", "strokeWidth", "color"] }, { kind: "directive", type: i3.SortColumnDirective, selector: "[sortColumn]", inputs: ["sortColumn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
39
50
|
}
|
|
40
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: HeadRowCellComponent, decorators: [{
|
|
41
52
|
type: Component,
|
|
42
|
-
args: [{ selector: 'fu-head-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-head-row-cell\" [sortColumn]=\"sortKey\" (click)=\"
|
|
43
|
-
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i0.ElementRef }], propDecorators: {
|
|
44
|
-
type:
|
|
45
|
-
args: [{ required: true }]
|
|
46
|
-
}], sortKey: [{
|
|
47
|
-
type: Input
|
|
53
|
+
args: [{ selector: 'fu-head-row-cell', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-head-row-cell\" [sortColumn]=\"sortKey()\" (click)=\"onSorting()\">\r\n <span>{{ cellDef() }}</span>\r\n @if (sortKey()) {\r\n <!-- wrap -->\r\n @if (sortKey() == sorting()) {\r\n <button>\r\n @if(direction() === 'asc') {\r\n <fu-icon iconName=\"sortAsc\" />\r\n } @if (direction() === 'desc') {\r\n <fu-icon iconName=\"sortDesc\" />\r\n }\r\n </button>\r\n } @else {\r\n <button><fu-icon iconName=\"sort\" /></button>\r\n } }\r\n</div>\r\n", styles: [".fu-head-row-cell{padding:16px;font-weight:700;display:flex}.fu-head-row-cell>span{margin-right:4px}.fu-head-row-cell>button{cursor:pointer;background-color:transparent;color:var(--fu-grid-text-color);font-weight:700;border:none}@media (max-width: 900px){.fu-head-row-cell{display:none}.fu-head-row-cell[data-sorted]{display:flex}}.fu-head-row-cell[data-sorted]:hover{cursor:pointer;background-color:var(--fu-grid-hover-color)}.fu-head-row-cell.sort-asc,.fu-head-row-cell.sort-desc{background-color:var(--fu-grid-fg-color)}\n"] }]
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.DataSortingService }, { type: i0.ElementRef }], propDecorators: { onSort: [{
|
|
55
|
+
type: Output
|
|
48
56
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZC1yb3ctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mdXNpb24tdWkvc3JjL2xpYi9kYXRhLWdyaWQvY29tcG9uZW50cy9oZWFkLXJvdy1jZWxsL2hlYWQtcm93LWNlbGwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZnVzaW9uLXVpL3NyYy9saWIvZGF0YS1ncmlkL2NvbXBvbmVudHMvaGVhZC1yb3ctY2VsbC9oZWFkLXJvdy1jZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFFWixNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDOzs7OztBQWN2QixNQUFNLE9BQU8sb0JBQW9CO0lBYS9CLFlBQ1UsV0FBK0IsRUFDL0IsVUFBc0I7UUFEdEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFkekIsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNuQyxZQUFPLEdBQUcsS0FBSyxFQUFtQixDQUFDO1FBRW5DLGNBQVMsR0FBRyxRQUFRLENBQVEsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLFlBQU8sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRTVELGlCQUFZLEdBQUcsUUFBUSxDQUFjLEdBQUcsRUFBRSxDQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUNoQyxDQUFDO1FBRWUsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFNeEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuRCxJQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFDOUMsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUc7WUFDeEIsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSztTQUMzRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FBQztZQUM5RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1FBQzNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUUsQ0FBQzs4R0F4RFUsb0JBQW9CO2tHQUFwQixvQkFBb0IsOFZDekJqQyxrZUFnQkE7OzJGRFNhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtnSEFhcEIsTUFBTTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgY29tcHV0ZWQsXHJcbiAgZWZmZWN0LFxyXG4gIGlucHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIERhdGFTb3J0aW5nU2VydmljZSxcclxuICBPblNvcnRFdmVudCxcclxuICBUU29ydCxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLXNvcnRpbmcuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z1LWhlYWQtcm93LWNlbGwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkLXJvdy1jZWxsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vaGVhZC1yb3ctY2VsbC5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRSb3dDZWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgY2VsbERlZiA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICBwdWJsaWMgc29ydEtleSA9IGlucHV0PHN0cmluZyB8IG51bWJlcj4oKTtcclxuXHJcbiAgcHVibGljIGRpcmVjdGlvbiA9IGNvbXB1dGVkPFRTb3J0PigoKSA9PiB0aGlzLnNvcnRTZXJ2aWNlLnNvcnREaXJlY3Rpb24oKSk7XHJcbiAgcHVibGljIHNvcnRpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMuc29ydFNlcnZpY2Uuc29ydEtleSgpKTtcclxuXHJcbiAgcHJpdmF0ZSBzdG9yZWRWYWx1ZXMgPSBjb21wdXRlZDxPblNvcnRFdmVudD4oKCkgPT5cclxuICAgIHRoaXMuc29ydFNlcnZpY2Uuc3RvcmVkVmFsdWVzKClcclxuICApO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIG9uU29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8T25Tb3J0RXZlbnQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzb3J0U2VydmljZTogRGF0YVNvcnRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zb3J0S2V5KCkgJiYgIXRoaXMub25Tb3J0Lm9ic2VydmVkKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUtleSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRJbmRleCgpO1xyXG4gICAgdGhpcy5zb3J0U2VydmljZS5zZXRDZWxsRGVmKGluZGV4LCB0aGlzLmNlbGxEZWYoKSk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9uU29ydC5vYnNlcnZlZCAmJlxyXG4gICAgICB0aGlzLnN0b3JlZFZhbHVlcygpLnNvcnRLZXkgPT09IHRoaXMuc29ydEtleSgpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5vblNvcnQuZW1pdCh0aGlzLnN0b3JlZFZhbHVlcygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNvcnRpbmcoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uU29ydC5lbWl0KHtcclxuICAgICAgc29ydEtleTogdGhpcy5zb3J0S2V5KCkhLFxyXG4gICAgICBzb3J0RGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbigpID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zb3J0U2VydmljZS5zZXRTb3J0S2V5KHRoaXMuc29ydEtleSgpISBhcyBzdHJpbmcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUtleSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNvcnRTZXJ2aWNlLmNlbGxLZXlzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoIXRoaXMuc29ydFNlcnZpY2UuY2VsbEtleXMoKS5pbmNsdWRlcyh0aGlzLnNvcnRLZXkoKSEgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgIGNvbnNvbGUud2FybihgSW52YWxpZCBzb3J0S2V5ICcke3RoaXMuc29ydEtleX0nIHByb3ZpZGVkLmApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocGFyZW50LmNoaWxkcmVuKS5pbmRleE9mKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZ1LWhlYWQtcm93LWNlbGxcIiBbc29ydENvbHVtbl09XCJzb3J0S2V5KClcIiAoY2xpY2spPVwib25Tb3J0aW5nKClcIj5cclxuICA8c3Bhbj57eyBjZWxsRGVmKCkgfX08L3NwYW4+XHJcbiAgQGlmIChzb3J0S2V5KCkpIHtcclxuICA8IS0tIHdyYXAgLS0+XHJcbiAgQGlmIChzb3J0S2V5KCkgPT0gc29ydGluZygpKSB7XHJcbiAgPGJ1dHRvbj5cclxuICAgIEBpZihkaXJlY3Rpb24oKSA9PT0gJ2FzYycpIHtcclxuICAgIDxmdS1pY29uIGljb25OYW1lPVwic29ydEFzY1wiIC8+XHJcbiAgICB9IEBpZiAoZGlyZWN0aW9uKCkgPT09ICdkZXNjJykge1xyXG4gICAgPGZ1LWljb24gaWNvbk5hbWU9XCJzb3J0RGVzY1wiIC8+XHJcbiAgICB9XHJcbiAgPC9idXR0b24+XHJcbiAgfSBAZWxzZSB7XHJcbiAgPGJ1dHRvbj48ZnUtaWNvbiBpY29uTmFtZT1cInNvcnRcIiAvPjwvYnV0dG9uPlxyXG4gIH0gfVxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation, input, signal, } from '@angular/core';
|
|
2
2
|
import { take } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "../../services/edit-row.service";
|
|
@@ -9,24 +9,26 @@ export class RowActionsComponent {
|
|
|
9
9
|
this.renderer = renderer;
|
|
10
10
|
this.el = el;
|
|
11
11
|
this.editRowService = editRowService;
|
|
12
|
+
this.editRow = input();
|
|
13
|
+
this.editIndex = input();
|
|
12
14
|
this.isEditing = signal(false);
|
|
13
|
-
this.showDelete = false;
|
|
15
|
+
this.showDelete = signal(false);
|
|
14
16
|
this.editSave = new EventEmitter();
|
|
15
17
|
this.delete = new EventEmitter();
|
|
16
18
|
this.renderer.setAttribute(this.el.nativeElement, 'data-actions', 'true');
|
|
17
19
|
}
|
|
18
|
-
ngOnInit() {
|
|
19
|
-
this.showDelete = this.delete.observers.length > 0;
|
|
20
|
-
}
|
|
21
20
|
ngOnChanges(changes) {
|
|
22
21
|
if (changes['editRow'] && changes['editIndex']) {
|
|
23
|
-
this.subscription = this.editRowService.
|
|
24
|
-
this.isEditing.set(
|
|
22
|
+
this.subscription = this.editRowService.editIndex$.subscribe((index) => {
|
|
23
|
+
this.isEditing.set(index === this.editIndex());
|
|
25
24
|
});
|
|
26
25
|
}
|
|
27
26
|
}
|
|
27
|
+
ngOnInit() {
|
|
28
|
+
this.showDelete.set(this.delete.observed);
|
|
29
|
+
}
|
|
28
30
|
setEdit(e) {
|
|
29
|
-
this.editRowService.startEditing(this.editIndex);
|
|
31
|
+
this.editRowService.startEditing(this.editIndex());
|
|
30
32
|
e.stopPropagation();
|
|
31
33
|
}
|
|
32
34
|
cancelEdit(e) {
|
|
@@ -36,7 +38,7 @@ export class RowActionsComponent {
|
|
|
36
38
|
saveEdit(e) {
|
|
37
39
|
this.editRowService.stopEditing();
|
|
38
40
|
this.editRowService.editValues$.pipe(take(1)).subscribe((editedValues) => {
|
|
39
|
-
const updatedRow = { ...this.editRow, ...editedValues };
|
|
41
|
+
const updatedRow = { ...this.editRow(), ...editedValues };
|
|
40
42
|
this.editSave.emit(updatedRow);
|
|
41
43
|
});
|
|
42
44
|
this.editRowService.resetEditValues();
|
|
@@ -52,18 +54,14 @@ export class RowActionsComponent {
|
|
|
52
54
|
}
|
|
53
55
|
}
|
|
54
56
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RowActionsComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.EditRowService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: RowActionsComponent, selector: "fu-row-actions", inputs: { editRow: "editRow", editIndex: "editIndex" }, outputs: { editSave: "editSave", delete: "delete" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"fu-row-actions\">\r\n @if (editRow && editIndex !== null) { @if(isEditing()){\r\n <button fu-btn-outline iconButton (click)=\"cancelEdit($event)\">\r\n <fu-icon iconName=\"editOff\" />\r\n </button>\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"success\"\r\n (click)=\"saveEdit($event)\"\r\n >\r\n <fu-icon iconName=\"editSave\" />\r\n </button>\r\n }@else {\r\n <button fu-btn-outline iconButton (click)=\"setEdit($event)\">\r\n <fu-icon iconName=\"edit\" />\r\n </button>\r\n } } @if (!isEditing() && showDelete) {\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"danger\"\r\n (click)=\"emitDelete($event)\"\r\n >\r\n <fu-icon iconName=\"trash\" />\r\n </button>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [".fu-row-actions{display:flex;justify-content:center;align-items:center;height:100%;gap:12px}\n"], dependencies: [{ kind: "component", type: i2.IconComponent, selector: "fu-icon", inputs: ["iconName", "size", "strokeWidth", "color"] }, { kind: "directive", type: i3.OutlinedButtonDirective, selector: "[fu-btn-outline]", inputs: ["variant", "iconButton", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.6", type: RowActionsComponent, selector: "fu-row-actions", inputs: { editRow: { classPropertyName: "editRow", publicName: "editRow", isSignal: true, isRequired: false, transformFunction: null }, editIndex: { classPropertyName: "editIndex", publicName: "editIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { editSave: "editSave", delete: "delete" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"fu-row-actions\">\r\n @if (editRow() && editIndex() !== null) { @if(isEditing()){\r\n <button fu-btn-outline iconButton (click)=\"cancelEdit($event)\">\r\n <fu-icon iconName=\"editOff\" />\r\n </button>\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"success\"\r\n (click)=\"saveEdit($event)\"\r\n >\r\n <fu-icon iconName=\"editSave\" />\r\n </button>\r\n }@else {\r\n <button fu-btn-outline iconButton (click)=\"setEdit($event)\">\r\n <fu-icon iconName=\"edit\" />\r\n </button>\r\n } } @if (!isEditing() && showDelete()) {\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"danger\"\r\n (click)=\"emitDelete($event)\"\r\n >\r\n <fu-icon iconName=\"trash\" />\r\n </button>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [".fu-row-actions{display:flex;justify-content:center;align-items:center;height:100%;gap:12px}\n"], dependencies: [{ kind: "component", type: i2.IconComponent, selector: "fu-icon", inputs: ["iconName", "size", "strokeWidth", "color"] }, { kind: "directive", type: i3.OutlinedButtonDirective, selector: "[fu-btn-outline]", inputs: ["variant", "iconButton", "rounded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
56
58
|
}
|
|
57
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RowActionsComponent, decorators: [{
|
|
58
60
|
type: Component,
|
|
59
|
-
args: [{ selector: 'fu-row-actions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-row-actions\">\r\n @if (editRow && editIndex !== null) { @if(isEditing()){\r\n <button fu-btn-outline iconButton (click)=\"cancelEdit($event)\">\r\n <fu-icon iconName=\"editOff\" />\r\n </button>\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"success\"\r\n (click)=\"saveEdit($event)\"\r\n >\r\n <fu-icon iconName=\"editSave\" />\r\n </button>\r\n }@else {\r\n <button fu-btn-outline iconButton (click)=\"setEdit($event)\">\r\n <fu-icon iconName=\"edit\" />\r\n </button>\r\n } } @if (!isEditing() && showDelete) {\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"danger\"\r\n (click)=\"emitDelete($event)\"\r\n >\r\n <fu-icon iconName=\"trash\" />\r\n </button>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [".fu-row-actions{display:flex;justify-content:center;align-items:center;height:100%;gap:12px}\n"] }]
|
|
60
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.EditRowService }], propDecorators: {
|
|
61
|
-
type: Input
|
|
62
|
-
}], editIndex: [{
|
|
63
|
-
type: Input
|
|
64
|
-
}], editSave: [{
|
|
61
|
+
args: [{ selector: 'fu-row-actions', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"fu-row-actions\">\r\n @if (editRow() && editIndex() !== null) { @if(isEditing()){\r\n <button fu-btn-outline iconButton (click)=\"cancelEdit($event)\">\r\n <fu-icon iconName=\"editOff\" />\r\n </button>\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"success\"\r\n (click)=\"saveEdit($event)\"\r\n >\r\n <fu-icon iconName=\"editSave\" />\r\n </button>\r\n }@else {\r\n <button fu-btn-outline iconButton (click)=\"setEdit($event)\">\r\n <fu-icon iconName=\"edit\" />\r\n </button>\r\n } } @if (!isEditing() && showDelete()) {\r\n <button\r\n fu-btn-outline\r\n iconButton\r\n variant=\"danger\"\r\n (click)=\"emitDelete($event)\"\r\n >\r\n <fu-icon iconName=\"trash\" />\r\n </button>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [".fu-row-actions{display:flex;justify-content:center;align-items:center;height:100%;gap:12px}\n"] }]
|
|
62
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.EditRowService }], propDecorators: { editSave: [{
|
|
65
63
|
type: Output
|
|
66
64
|
}], delete: [{
|
|
67
65
|
type: Output
|
|
68
66
|
}] } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZnVzaW9uLXVpL3NyYy9saWIvZGF0YS1ncmlkL2NvbXBvbmVudHMvcm93LWFjdGlvbnMvcm93LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZnVzaW9uLXVpL3NyYy9saWIvZGF0YS1ncmlkL2NvbXBvbmVudHMvcm93LWFjdGlvbnMvcm93LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sRUFHTixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWdCLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFTMUMsTUFBTSxPQUFPLG1CQUFtQjtJQWM5QixZQUNVLFFBQW1CLEVBQ25CLEVBQWMsRUFDZCxjQUE4QjtRQUY5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFkakMsWUFBTyxHQUFHLEtBQUssRUFBSyxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUU1QixjQUFTLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLGVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFMUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFTakQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDckUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sT0FBTyxDQUFDLENBQVE7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRyxDQUFDLENBQUM7UUFFcEQsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBUTtRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWxDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sUUFBUSxDQUFDLENBQVE7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdkUsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLFlBQVksRUFBTyxDQUFDO1lBRS9ELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxDQUFRO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7OEdBcEVVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDhZQ3pCaEMsZ3lCQTZCQTs7MkZESmEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO29JQVdwQixRQUFRO3NCQUF4QixNQUFNO2dCQUNVLE1BQU07c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgaW5wdXQsXHJcbiAgc2lnbmFsLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0Um93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VkaXQtcm93LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIHRha2UgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnUtcm93LWFjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yb3ctYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Jvdy1hY3Rpb25zLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm93QWN0aW9uc0NvbXBvbmVudDxUIGV4dGVuZHMgb2JqZWN0PlxyXG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgcHVibGljIGVkaXRSb3cgPSBpbnB1dDxUPigpO1xyXG4gIHB1YmxpYyBlZGl0SW5kZXggPSBpbnB1dDxudW1iZXI+KCk7XHJcblxyXG4gIHB1YmxpYyBpc0VkaXRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyBzaG93RGVsZXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBlZGl0U2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBlZGl0Um93U2VydmljZTogRWRpdFJvd1NlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2RhdGEtYWN0aW9ucycsICd0cnVlJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2VkaXRSb3cnXSAmJiBjaGFuZ2VzWydlZGl0SW5kZXgnXSkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZWRpdFJvd1NlcnZpY2UuZWRpdEluZGV4JC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRpbmcuc2V0KGluZGV4ID09PSB0aGlzLmVkaXRJbmRleCgpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dEZWxldGUuc2V0KHRoaXMuZGVsZXRlLm9ic2VydmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFZGl0KGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRSb3dTZXJ2aWNlLnN0YXJ0RWRpdGluZyh0aGlzLmVkaXRJbmRleCgpISk7XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWxFZGl0KGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmVkaXRSb3dTZXJ2aWNlLnN0b3BFZGl0aW5nKCk7XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlRWRpdChlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5lZGl0Um93U2VydmljZS5zdG9wRWRpdGluZygpO1xyXG5cclxuICAgIHRoaXMuZWRpdFJvd1NlcnZpY2UuZWRpdFZhbHVlcyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGVkaXRlZFZhbHVlcykgPT4ge1xyXG4gICAgICBjb25zdCB1cGRhdGVkUm93ID0geyAuLi50aGlzLmVkaXRSb3coKSwgLi4uZWRpdGVkVmFsdWVzIH0gYXMgVDtcclxuXHJcbiAgICAgIHRoaXMuZWRpdFNhdmUuZW1pdCh1cGRhdGVkUm93KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZWRpdFJvd1NlcnZpY2UucmVzZXRFZGl0VmFsdWVzKCk7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtaXREZWxldGUoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsZXRlLmVtaXQoKTtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZ1LXJvdy1hY3Rpb25zXCI+XHJcbiAgQGlmIChlZGl0Um93KCkgJiYgZWRpdEluZGV4KCkgIT09IG51bGwpIHsgQGlmKGlzRWRpdGluZygpKXtcclxuICA8YnV0dG9uIGZ1LWJ0bi1vdXRsaW5lIGljb25CdXR0b24gKGNsaWNrKT1cImNhbmNlbEVkaXQoJGV2ZW50KVwiPlxyXG4gICAgPGZ1LWljb24gaWNvbk5hbWU9XCJlZGl0T2ZmXCIgLz5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICBmdS1idG4tb3V0bGluZVxyXG4gICAgaWNvbkJ1dHRvblxyXG4gICAgdmFyaWFudD1cInN1Y2Nlc3NcIlxyXG4gICAgKGNsaWNrKT1cInNhdmVFZGl0KCRldmVudClcIlxyXG4gID5cclxuICAgIDxmdS1pY29uIGljb25OYW1lPVwiZWRpdFNhdmVcIiAvPlxyXG4gIDwvYnV0dG9uPlxyXG4gIH1AZWxzZSB7XHJcbiAgPGJ1dHRvbiBmdS1idG4tb3V0bGluZSBpY29uQnV0dG9uIChjbGljayk9XCJzZXRFZGl0KCRldmVudClcIj5cclxuICAgIDxmdS1pY29uIGljb25OYW1lPVwiZWRpdFwiIC8+XHJcbiAgPC9idXR0b24+XHJcbiAgfSB9IEBpZiAoIWlzRWRpdGluZygpICYmIHNob3dEZWxldGUoKSkge1xyXG4gIDxidXR0b25cclxuICAgIGZ1LWJ0bi1vdXRsaW5lXHJcbiAgICBpY29uQnV0dG9uXHJcbiAgICB2YXJpYW50PVwiZGFuZ2VyXCJcclxuICAgIChjbGljayk9XCJlbWl0RGVsZXRlKCRldmVudClcIlxyXG4gID5cclxuICAgIDxmdS1pY29uIGljb25OYW1lPVwidHJhc2hcIiAvPlxyXG4gIDwvYnV0dG9uPlxyXG4gIH1cclxuICA8bmctY29udGVudCAvPlxyXG48L2Rpdj5cclxuIl19
|