@firestitch/list 9.12.0 → 9.12.3
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/app/components/body/row/menu-action/menu-action.component.d.ts +2 -2
- package/app/interfaces/listconfig.interface.d.ts +12 -5
- package/app/models/row-action.model.d.ts +2 -4
- package/bundles/firestitch-list.umd.js +12 -15
- package/bundles/firestitch-list.umd.js.map +1 -1
- package/bundles/firestitch-list.umd.min.js +1 -1
- package/bundles/firestitch-list.umd.min.js.map +1 -1
- package/esm2015/app/classes/list-controller.js +2 -2
- package/esm2015/app/components/body/row/actions/actions.component.js +2 -2
- package/esm2015/app/components/body/row/inline-action/inline-action.component.js +2 -2
- package/esm2015/app/components/body/row/menu-action/menu-action.component.js +3 -7
- package/esm2015/app/interfaces/listconfig.interface.js +1 -1
- package/esm2015/app/models/row-action.model.js +8 -7
- package/esm2015/public_api.js +1 -1
- package/esm5/app/classes/list-controller.js +2 -2
- package/esm5/app/components/body/row/actions/actions.component.js +2 -2
- package/esm5/app/components/body/row/inline-action/inline-action.component.js +2 -2
- package/esm5/app/components/body/row/menu-action/menu-action.component.js +3 -7
- package/esm5/app/interfaces/listconfig.interface.js +1 -1
- package/esm5/app/models/row-action.model.js +9 -8
- package/esm5/public_api.js +1 -1
- package/fesm2015/firestitch-list.js +12 -15
- package/fesm2015/firestitch-list.js.map +1 -1
- package/fesm5/firestitch-list.js +12 -15
- package/fesm5/firestitch-list.js.map +1 -1
- package/firestitch-list.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { FsListRowActionFile } from '../../../../interfaces/listconfig.interface';
|
|
2
3
|
export declare class FsRowMenuActionComponent {
|
|
3
4
|
icon: string;
|
|
4
5
|
label: string;
|
|
5
|
-
file:
|
|
6
|
-
fileMultiple: boolean;
|
|
6
|
+
file: FsListRowActionFile;
|
|
7
7
|
fileSelect: EventEmitter<any>;
|
|
8
8
|
fileError: EventEmitter<any>;
|
|
9
9
|
}
|
|
@@ -151,11 +151,7 @@ export interface FsListRowAction {
|
|
|
151
151
|
menu?: boolean;
|
|
152
152
|
click?: (row: any, event: any, index: any) => void;
|
|
153
153
|
link?: FsListRowActionLinkFn;
|
|
154
|
-
file?:
|
|
155
|
-
select: FsListRowActionFileFn;
|
|
156
|
-
error?: (error: unknown) => void;
|
|
157
|
-
multiple?: boolean;
|
|
158
|
-
};
|
|
154
|
+
file?: FsListRowActionFile;
|
|
159
155
|
show?: (row: any, index: number) => boolean;
|
|
160
156
|
remove?: {
|
|
161
157
|
title?: string;
|
|
@@ -172,6 +168,17 @@ export interface FsListRowActionLinkFn {
|
|
|
172
168
|
export interface FsListRowActionLabelFn {
|
|
173
169
|
(row: FsListAbstractRow): string;
|
|
174
170
|
}
|
|
171
|
+
export interface FsListRowActionFile {
|
|
172
|
+
select: FsListRowActionFileFn;
|
|
173
|
+
error?: (error: unknown) => void;
|
|
174
|
+
multiple?: boolean;
|
|
175
|
+
accept?: string;
|
|
176
|
+
minWidth?: number;
|
|
177
|
+
minHeight?: number;
|
|
178
|
+
maxWidth?: number;
|
|
179
|
+
maxHeight?: number;
|
|
180
|
+
imageQuality?: number;
|
|
181
|
+
}
|
|
175
182
|
export interface FsListRowActionLink {
|
|
176
183
|
link: any[] | string;
|
|
177
184
|
queryParams?: Record<string, any>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Model } from 'tsmodels';
|
|
2
2
|
import { ActionType } from '../enums/button-type.enum';
|
|
3
|
-
import {
|
|
3
|
+
import { FsListRowActionFile, FsListRowActionLink } from '../interfaces';
|
|
4
4
|
export declare class RowAction extends Model {
|
|
5
5
|
icon: string;
|
|
6
6
|
menu: boolean;
|
|
@@ -18,9 +18,7 @@ export declare class RowAction extends Model {
|
|
|
18
18
|
classArray: string[];
|
|
19
19
|
isShown: boolean;
|
|
20
20
|
click: Function;
|
|
21
|
-
|
|
22
|
-
fileUploadErrorFn: (error: unknown) => void;
|
|
23
|
-
fileMultiple: boolean;
|
|
21
|
+
fileConfig: FsListRowActionFile;
|
|
24
22
|
private _linkFn;
|
|
25
23
|
private _labelFn;
|
|
26
24
|
private readonly _isGroup;
|
|
@@ -551,13 +551,13 @@
|
|
|
551
551
|
};
|
|
552
552
|
this._linkFn = value.link;
|
|
553
553
|
if (value.file) {
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
554
|
+
this.fileConfig = __assign({}, value.file);
|
|
555
|
+
if (this.fileConfig.select) {
|
|
556
|
+
var selectFn_1 = this.fileConfig.select;
|
|
557
|
+
this.fileConfig.select = function (selection, row, index) {
|
|
558
|
+
selectFn_1(selection, row, index);
|
|
557
559
|
};
|
|
558
560
|
}
|
|
559
|
-
this.fileUploadErrorFn = value.file.error;
|
|
560
|
-
this.fileMultiple = value.file.multiple;
|
|
561
561
|
}
|
|
562
562
|
if (typeof value.label === 'function') {
|
|
563
563
|
this._labelFn = value.label;
|
|
@@ -578,7 +578,8 @@
|
|
|
578
578
|
this.rowActions.forEach(function (action) {
|
|
579
579
|
action.checkShowStatus(row, index);
|
|
580
580
|
});
|
|
581
|
-
|
|
581
|
+
var groupVisible = !this.show || this.show(row, index);
|
|
582
|
+
this.isShown = groupVisible && this.rowActions.some(function (action) { return action.isShown; });
|
|
582
583
|
}
|
|
583
584
|
else if (this.show) {
|
|
584
585
|
this.isShown = this.show(row, index);
|
|
@@ -3637,7 +3638,7 @@
|
|
|
3637
3638
|
this.selection.selectedRowsIntersection(this.dataController.visibleRowsData);
|
|
3638
3639
|
}
|
|
3639
3640
|
if (((_c = this.emptyState) === null || _c === void 0 ? void 0 : _c.validate) && this.emptyStateTemplate) {
|
|
3640
|
-
this.emptyStateEnabled = this.emptyState.validate(query, lodashEs.cloneDeep(
|
|
3641
|
+
this.emptyStateEnabled = this.emptyState.validate(query, lodashEs.cloneDeep(this.dataController.visibleRowsData));
|
|
3641
3642
|
}
|
|
3642
3643
|
if (this.afterFetchFn) {
|
|
3643
3644
|
this.afterFetchFn(query, this.dataController.visibleRowsData);
|
|
@@ -5871,7 +5872,7 @@
|
|
|
5871
5872
|
FsRowActionsComponent = __decorate([
|
|
5872
5873
|
core.Component({
|
|
5873
5874
|
selector: 'fs-list-row-actions',
|
|
5874
|
-
template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.
|
|
5875
|
+
template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\">\n </fs-list-row-inline-action>\n </ng-container>\n</ng-container>\n\n<!-- Menu -->\n<fs-menu class=\"row-menu-action\"\n *ngIf=\"menuRowActions.length || (restoreMode && restoreAction)\"\n (click)=\"clickOnTrigger($event)\"\n #menuRef\n>\n <!-- Case when we have usual menu actions -->\n <ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <ng-template class=\"hidden-mobile-menu-action\"\n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"action.menu !== undefined && !action.isShown\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n\n <ng-container *ngFor=\"let action of menuRowActions; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"action.label\">\n <ng-container *ngFor=\"let subAction of action.rowActions\">\n <ng-template fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [target]=\"subAction.routerLink?.target\"\n [hidden]=\"!subAction.isShown\"\n (click)=\"actionClick(subAction, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"subAction.icon\"\n [label]=\"subAction.label\"\n [file]=\"subAction.fileConfig\"\n (fileSelect)=\"subAction.fileConfig.select($event, row, index)\"\n (fileError)=\"subAction.fileConfig.error && subAction.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"!action.isShown\"\n (click)=\"actionClick(action, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- Case when we have restore mode enabled and must hide menu actions -->\n <ng-container *ngIf=\"restoreMode && restoreAction\">\n <ng-template fs-menu-item (click)=\"actionClick(restoreAction, row, $event, menuRef)\">\n <mat-icon *ngIf=\"restoreAction.icon\">{{restoreAction.icon}}</mat-icon>\n {{restoreAction.label}}\n </ng-template>\n </ng-container>\n</fs-menu>\n",
|
|
5875
5876
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
5876
5877
|
}),
|
|
5877
5878
|
__metadata("design:paramtypes", [prompt.FsPrompt])
|
|
@@ -5909,7 +5910,7 @@
|
|
|
5909
5910
|
FsRowInlineActionComponent = __decorate([
|
|
5910
5911
|
core.Component({
|
|
5911
5912
|
selector: 'fs-list-row-inline-action',
|
|
5912
|
-
template: "<ng-container *ngIf=\"action.isShown\" [ngSwitch]=\"action.type\">\n <!-- Basic button -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Raised button -->\n <ng-container *ngSwitchCase=\"'raised'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-raised-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-raised-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Icon button -->\n <ng-container *ngSwitchCase=\"'icon'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-icon-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-icon-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Fab button -->\n <ng-container *ngSwitchCase=\"'fab'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-fab\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Mini Fab button -->\n <ng-container *ngSwitchCase=\"'mini-fab'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-mini-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-mini-fab\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.
|
|
5913
|
+
template: "<ng-container *ngIf=\"action.isShown\" [ngSwitch]=\"action.type\">\n <!-- Basic button -->\n <ng-container *ngSwitchCase=\"'basic'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Raised button -->\n <ng-container *ngSwitchCase=\"'raised'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-raised-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-raised-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Icon button -->\n <ng-container *ngSwitchCase=\"'icon'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-icon-button\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-icon-button\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Fab button -->\n <ng-container *ngSwitchCase=\"'fab'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-fab\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <!-- Mini Fab button -->\n <ng-container *ngSwitchCase=\"'mini-fab'\">\n <ng-container *ngIf=\"!action.routerLink; else link\">\n <button type=\"button\"\n mat-mini-fab\n (click)=\"actionClick($event)\"\n [ngClass]=\"action.classArray\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n </ng-container>\n <ng-template #link>\n <a mat-mini-fab\n [routerLink]=\"action.routerLink.link\"\n [queryParams]=\"action.routerLink.queryParams\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </a>\n </ng-template>\n </ng-container>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.fileConfig else uploadFileBtn\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon>\n {{action.label}}\n </ng-container>\n\n <ng-template #uploadFileBtn>\n <fs-file\n class=\"action-button\"\n [accept]=\"action.fileConfig.accept || '*'\"\n [multiple]=\"action.fileConfig.multiple\"\n [minWidth]=\"action.fileConfig.minWidth\"\n [minHeight]=\"action.fileConfig.minHeight\"\n [imageWidth]=\"action.fileConfig.maxWidth\"\n [imageHeight]=\"action.fileConfig.maxHeight\"\n (select)=\"fileSelected($event)\"\n (error)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon>\n {{action.label}}\n </fs-file>\n </ng-template>\n </ng-template>\n</ng-container>\n",
|
|
5913
5914
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
5914
5915
|
}),
|
|
5915
5916
|
__metadata("design:paramtypes", [prompt.FsPrompt])
|
|
@@ -5932,12 +5933,8 @@
|
|
|
5932
5933
|
], FsRowMenuActionComponent.prototype, "label", void 0);
|
|
5933
5934
|
__decorate([
|
|
5934
5935
|
core.Input(),
|
|
5935
|
-
__metadata("design:type",
|
|
5936
|
+
__metadata("design:type", Object)
|
|
5936
5937
|
], FsRowMenuActionComponent.prototype, "file", void 0);
|
|
5937
|
-
__decorate([
|
|
5938
|
-
core.Input(),
|
|
5939
|
-
__metadata("design:type", Boolean)
|
|
5940
|
-
], FsRowMenuActionComponent.prototype, "fileMultiple", void 0);
|
|
5941
5938
|
__decorate([
|
|
5942
5939
|
core.Output(),
|
|
5943
5940
|
__metadata("design:type", Object)
|
|
@@ -5949,7 +5946,7 @@
|
|
|
5949
5946
|
FsRowMenuActionComponent = __decorate([
|
|
5950
5947
|
core.Component({
|
|
5951
5948
|
selector: 'fs-list-row-menu-action',
|
|
5952
|
-
template: "<ng-container *ngIf=\"!file else withFile\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n</ng-container>\n\n<ng-template #withFile>\n <fs-file\n class=\"action-button\"\n [multiple]=\"
|
|
5949
|
+
template: "<ng-container *ngIf=\"!file else withFile\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n</ng-container>\n\n<ng-template #withFile>\n <fs-file\n class=\"action-button\"\n [accept]=\"file.accept || '*'\"\n [multiple]=\"file.multiple\"\n [minWidth]=\"file.minWidth\"\n [minHeight]=\"file.minHeight\"\n [imageWidth]=\"file.maxWidth\"\n [imageHeight]=\"file.maxHeight\"\n (select)=\"fileSelect.emit($event)\"\n (error)=\"fileError.emit($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n </fs-file>\n</ng-template>\n",
|
|
5953
5950
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
5954
5951
|
})
|
|
5955
5952
|
], FsRowMenuActionComponent);
|