@firestitch/filter 9.9.5 → 9.10.0
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/filter/filter.component.d.ts +5 -2
- package/app/interfaces/action.interface.d.ts +6 -0
- package/app/models/action.model.d.ts +7 -0
- package/app/services/external-params-controller.service.d.ts +1 -0
- package/bundles/firestitch-filter.umd.js +43 -22
- package/bundles/firestitch-filter.umd.js.map +1 -1
- package/bundles/firestitch-filter.umd.min.js +2 -2
- package/bundles/firestitch-filter.umd.min.js.map +1 -1
- package/esm2015/app/components/action-button/action-button.component.js +2 -2
- package/esm2015/app/components/action-kebab-actions/action-kebab-actions.component.js +2 -2
- package/esm2015/app/components/actions/actions.component.js +2 -2
- package/esm2015/app/components/filter/filter.component.js +17 -6
- package/esm2015/app/interfaces/action.interface.js +1 -1
- package/esm2015/app/models/action.model.js +8 -1
- package/esm2015/app/services/external-params-controller.service.js +16 -13
- package/esm5/app/components/action-button/action-button.component.js +2 -2
- package/esm5/app/components/action-kebab-actions/action-kebab-actions.component.js +2 -2
- package/esm5/app/components/actions/actions.component.js +2 -2
- package/esm5/app/components/filter/filter.component.js +17 -6
- package/esm5/app/interfaces/action.interface.js +1 -1
- package/esm5/app/models/action.model.js +8 -1
- package/esm5/app/services/external-params-controller.service.js +18 -15
- package/fesm2015/firestitch-filter.js +41 -20
- package/fesm2015/firestitch-filter.js.map +1 -1
- package/fesm5/firestitch-filter.js +43 -22
- package/fesm5/firestitch-filter.js.map +1 -1
- package/firestitch-filter.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -2454,11 +2454,27 @@ var ExternalParamsController = /** @class */ (function () {
|
|
|
2454
2454
|
this._destroy$.complete();
|
|
2455
2455
|
};
|
|
2456
2456
|
ExternalParamsController.prototype.setConfig = function (config) {
|
|
2457
|
-
var _this = this;
|
|
2458
2457
|
this._config = config;
|
|
2459
2458
|
this._initPersistance();
|
|
2460
2459
|
this._initQueryParams();
|
|
2461
2460
|
this._initSavedFilters();
|
|
2461
|
+
this.initItems();
|
|
2462
|
+
};
|
|
2463
|
+
ExternalParamsController.prototype.setActiveSavedFilter = function (savedFilter) {
|
|
2464
|
+
this.savedFiltersController.setActiveFilter(savedFilter);
|
|
2465
|
+
if (savedFilter) {
|
|
2466
|
+
this.reloadFiltersWithValues(savedFilter.filters, false);
|
|
2467
|
+
}
|
|
2468
|
+
};
|
|
2469
|
+
ExternalParamsController.prototype.reloadFiltersWithValues = function (params, shouldResetSavedFilters) {
|
|
2470
|
+
if (shouldResetSavedFilters === void 0) { shouldResetSavedFilters = true; }
|
|
2471
|
+
this._shouldResetSavedFilters = shouldResetSavedFilters;
|
|
2472
|
+
this._itemsStore.updateItemsWithValues(params);
|
|
2473
|
+
this._saveQueryParams();
|
|
2474
|
+
this._savePersistedParams();
|
|
2475
|
+
};
|
|
2476
|
+
ExternalParamsController.prototype.initItems = function () {
|
|
2477
|
+
var _this = this;
|
|
2462
2478
|
this._pending$.next(true);
|
|
2463
2479
|
if (this._savedFilters.enabled) {
|
|
2464
2480
|
this._savedFilters
|
|
@@ -2477,19 +2493,6 @@ var ExternalParamsController = /** @class */ (function () {
|
|
|
2477
2493
|
}
|
|
2478
2494
|
this._listenItemsChange();
|
|
2479
2495
|
};
|
|
2480
|
-
ExternalParamsController.prototype.setActiveSavedFilter = function (savedFilter) {
|
|
2481
|
-
this.savedFiltersController.setActiveFilter(savedFilter);
|
|
2482
|
-
if (savedFilter) {
|
|
2483
|
-
this.reloadFiltersWithValues(savedFilter.filters, false);
|
|
2484
|
-
}
|
|
2485
|
-
};
|
|
2486
|
-
ExternalParamsController.prototype.reloadFiltersWithValues = function (params, shouldResetSavedFilters) {
|
|
2487
|
-
if (shouldResetSavedFilters === void 0) { shouldResetSavedFilters = true; }
|
|
2488
|
-
this._shouldResetSavedFilters = shouldResetSavedFilters;
|
|
2489
|
-
this._itemsStore.updateItemsWithValues(params);
|
|
2490
|
-
this._saveQueryParams();
|
|
2491
|
-
this._savePersistedParams();
|
|
2492
|
-
};
|
|
2493
2496
|
ExternalParamsController.prototype._initItemsValues = function () {
|
|
2494
2497
|
this._itemsStore.initItemValues(this.params);
|
|
2495
2498
|
this._saveQueryParams();
|
|
@@ -3039,6 +3042,7 @@ var Action = /** @class */ (function () {
|
|
|
3039
3042
|
this.label = config.label;
|
|
3040
3043
|
this.mode = config.mode;
|
|
3041
3044
|
this.icon = config.icon;
|
|
3045
|
+
this.iconPlacement = config.iconPlacement;
|
|
3042
3046
|
this._showFn = config.show;
|
|
3043
3047
|
this.tabIndex = (_d = config.tabIndex) !== null && _d !== void 0 ? _d : 0;
|
|
3044
3048
|
if (config.multiple !== undefined) {
|
|
@@ -3073,6 +3077,12 @@ var Action = /** @class */ (function () {
|
|
|
3073
3077
|
{
|
|
3074
3078
|
this.fileSelected = config.select;
|
|
3075
3079
|
this.fileError = config.error;
|
|
3080
|
+
this.accept = config.accept;
|
|
3081
|
+
this.imageQuality = config.imageQuality;
|
|
3082
|
+
this.minWidth = config.minWidth;
|
|
3083
|
+
this.minHeight = config.minHeight;
|
|
3084
|
+
this.maxWidth = config.maxWidth;
|
|
3085
|
+
this.maxHeight = config.maxHeight;
|
|
3076
3086
|
this.click = (_f = config.click) !== null && _f !== void 0 ? _f : (function () { });
|
|
3077
3087
|
this._disabledFn = config.disabled;
|
|
3078
3088
|
this.updateDisabledState();
|
|
@@ -3675,6 +3685,14 @@ var FilterComponent = /** @class */ (function () {
|
|
|
3675
3685
|
FilterComponent.prototype.updateDisabledState = function () {
|
|
3676
3686
|
this._actions.updateDisabledState();
|
|
3677
3687
|
};
|
|
3688
|
+
FilterComponent.prototype.setItems = function (items) {
|
|
3689
|
+
this._filterItems.destroyItems();
|
|
3690
|
+
this.config.items = items;
|
|
3691
|
+
this._filterItems.setConfig(this._config);
|
|
3692
|
+
this._externalParams.initItems();
|
|
3693
|
+
this._syncSearchInputWithKeyword();
|
|
3694
|
+
this._listenKeywordItemClear();
|
|
3695
|
+
};
|
|
3678
3696
|
FilterComponent.prototype._initFilterWithConfig = function (config) {
|
|
3679
3697
|
if (this.config) {
|
|
3680
3698
|
this._filterItems.destroyItems();
|
|
@@ -3684,11 +3702,7 @@ var FilterComponent = /** @class */ (function () {
|
|
|
3684
3702
|
this._actions.initActions(this._config.actions);
|
|
3685
3703
|
this._filterItems.setConfig(this._config);
|
|
3686
3704
|
this._externalParams.setConfig(this._config);
|
|
3687
|
-
|
|
3688
|
-
if (keywordItem) {
|
|
3689
|
-
this.searchText.setValue(keywordItem.model);
|
|
3690
|
-
this.searchPlaceholder = keywordItem.label || 'Search';
|
|
3691
|
-
}
|
|
3705
|
+
this._syncSearchInputWithKeyword();
|
|
3692
3706
|
if (!!this.config.reloadWhenConfigChanged) {
|
|
3693
3707
|
this.change();
|
|
3694
3708
|
}
|
|
@@ -3762,6 +3776,13 @@ var FilterComponent = /** @class */ (function () {
|
|
|
3762
3776
|
});
|
|
3763
3777
|
});
|
|
3764
3778
|
};
|
|
3779
|
+
FilterComponent.prototype._syncSearchInputWithKeyword = function () {
|
|
3780
|
+
var keywordItem = this._filterItems.keywordItem;
|
|
3781
|
+
if (keywordItem) {
|
|
3782
|
+
this.searchText.setValue(keywordItem.model);
|
|
3783
|
+
this.searchPlaceholder = keywordItem.label || 'Search';
|
|
3784
|
+
}
|
|
3785
|
+
};
|
|
3765
3786
|
FilterComponent.prototype._listenKeywordItemClear = function () {
|
|
3766
3787
|
var _this = this;
|
|
3767
3788
|
var _a;
|
|
@@ -4949,7 +4970,7 @@ var FsFilterActionsComponent = /** @class */ (function () {
|
|
|
4949
4970
|
FsFilterActionsComponent = __decorate([
|
|
4950
4971
|
Component({
|
|
4951
4972
|
selector: 'fs-filter-actions',
|
|
4952
|
-
template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\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]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [multiple]=\"action.multiple\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<!-- /Buttons -->\n\n<!-- menu -->\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions [kebabActions]=\"kebabActions\"></fs-filter-action-kebab-actions>\n</ng-container>\n",
|
|
4973
|
+
template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\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]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\">\n <fs-filter-action-button [action]=\"action\"></fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<!-- /Buttons -->\n\n<!-- menu -->\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions [kebabActions]=\"kebabActions\"></fs-filter-action-kebab-actions>\n</ng-container>\n",
|
|
4953
4974
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4954
4975
|
styles: [":host{display:inline-flex}.action-button{display:block}.action-button+.action-button,fs-menu+.action-button{margin-left:5px}.menu-button{width:36px;height:36px;line-height:36px}"]
|
|
4955
4976
|
})
|
|
@@ -4967,7 +4988,7 @@ var FsFilterActionButtonComponent = /** @class */ (function () {
|
|
|
4967
4988
|
FsFilterActionButtonComponent = __decorate([
|
|
4968
4989
|
Component({
|
|
4969
4990
|
selector: 'fs-filter-action-button',
|
|
4970
|
-
template: "<ng-container [ngSwitch]=\"action.type\">\n <!-- Basic button -->\n <button type=\"button\"\n *ngSwitchCase=\"'basic'\"\n mat-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Raised button -->\n <button type=\"button\"\n *ngSwitchDefault\n mat-raised-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Icon button -->\n <button type=\"button\"\n *ngSwitchCase=\"'icon'\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button type=\"button\"\n *ngSwitchCase=\"'fab'\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button type=\"button\"\n *ngSwitchCase=\"'mini-fab'\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <mat-icon *ngIf=\"action.
|
|
4991
|
+
template: "<ng-container [ngSwitch]=\"action.type\">\n <!-- Basic button -->\n <button type=\"button\"\n *ngSwitchCase=\"'basic'\"\n mat-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Raised button -->\n <button type=\"button\"\n *ngSwitchDefault\n mat-raised-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Icon button -->\n <button type=\"button\"\n *ngSwitchCase=\"'icon'\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button type=\"button\"\n *ngSwitchCase=\"'fab'\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button type=\"button\"\n *ngSwitchCase=\"'mini-fab'\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\"\n >\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon *ngIf=\"!action.iconPlacement || action.iconPlacement === 'left'\">{{action.icon}}</mat-icon>\n {{action.label}}\n <mat-icon *ngIf=\"action.iconPlacement === 'right'\">{{action.icon}}</mat-icon>\n </ng-template>\n </ng-template>\n</ng-container>\n",
|
|
4971
4992
|
host: {
|
|
4972
4993
|
class: 'action-button',
|
|
4973
4994
|
},
|
|
@@ -4987,7 +5008,7 @@ var FsFilterActionKebabActionsComponent = /** @class */ (function () {
|
|
|
4987
5008
|
FsFilterActionKebabActionsComponent = __decorate([
|
|
4988
5009
|
Component({
|
|
4989
5010
|
selector: 'fs-filter-action-kebab-actions',
|
|
4990
|
-
template: "<button type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n [fsMenuTriggerFor]=\"kebabActionsMenu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<fs-menu #kebabActionsMenu>\n <ng-container *ngFor=\"let action of kebabActions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <!-- Case when actions was collapsed from action with mode = 'menu'-->\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group>\n <ng-template fs-group-menu-item-template>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon> {{childAction.label}}\n </ng-template>\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\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]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon>{{ childAction.label }}\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template fs-menu-item\n [fsClass]=\"action.classArray\"\n >\n <fs-file\n class=\"action-button\"\n [multiple]=\"action.multiple\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </fs-file>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-template fs-menu-item\n (click)=\"action.click($event)\"\n [fsClass]=\"action.classArray\"\n >\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</fs-menu>\n",
|
|
5011
|
+
template: "<button type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n [fsMenuTriggerFor]=\"kebabActionsMenu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<fs-menu #kebabActionsMenu>\n <ng-container *ngFor=\"let action of kebabActions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <!-- Case when actions was collapsed from action with mode = 'menu'-->\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group>\n <ng-template fs-group-menu-item-template>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon> {{childAction.label}}\n </ng-template>\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\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]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon>{{ childAction.label }}\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template fs-menu-item\n [fsClass]=\"action.classArray\"\n >\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </fs-file>\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-template fs-menu-item\n (click)=\"action.click($event)\"\n [fsClass]=\"action.classArray\"\n >\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</fs-menu>\n",
|
|
4991
5012
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4992
5013
|
styles: [".menu-button{width:36px;height:36px;line-height:36px}"]
|
|
4993
5014
|
})
|