@igo2/common 20.0.0 → 20.1.0-next.1
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/action/index.d.ts +22 -22
- package/clickout/index.d.ts +2 -2
- package/collapsible/index.d.ts +6 -10
- package/color/index.d.ts +3 -4
- package/context-menu/index.d.ts +9 -9
- package/datepicker/index.d.ts +65 -0
- package/drag-drop/index.d.ts +21 -23
- package/dynamic-component/index.d.ts +7 -7
- package/entity/index.d.ts +45 -48
- package/fesm2022/igo2-common-action.mjs +60 -97
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-backdrop.mjs +7 -7
- package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
- package/fesm2022/igo2-common-badge.mjs +7 -7
- package/fesm2022/igo2-common-badge.mjs.map +1 -1
- package/fesm2022/igo2-common-clickout.mjs +10 -12
- package/fesm2022/igo2-common-clickout.mjs.map +1 -1
- package/fesm2022/igo2-common-clone.mjs +7 -7
- package/fesm2022/igo2-common-collapsible.mjs +18 -39
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
- package/fesm2022/igo2-common-color.mjs +14 -18
- package/fesm2022/igo2-common-color.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +10 -10
- package/fesm2022/igo2-common-context-menu.mjs +22 -31
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +10 -10
- package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
- package/fesm2022/igo2-common-datepicker.mjs +316 -0
- package/fesm2022/igo2-common-datepicker.mjs.map +1 -0
- package/fesm2022/igo2-common-dom.mjs +7 -7
- package/fesm2022/igo2-common-drag-drop.mjs +59 -75
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
- package/fesm2022/igo2-common-dynamic-component.mjs +34 -52
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
- package/fesm2022/igo2-common-entity.mjs +154 -206
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-flexible.mjs +13 -16
- package/fesm2022/igo2-common-flexible.mjs.map +1 -1
- package/fesm2022/igo2-common-form.mjs +120 -174
- package/fesm2022/igo2-common-form.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +11 -12
- package/fesm2022/igo2-common-home-button.mjs.map +1 -1
- package/fesm2022/igo2-common-icon.mjs +18 -24
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-image.mjs +16 -20
- package/fesm2022/igo2-common-image.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +28 -33
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +11 -11
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-keyvalue.mjs +7 -7
- package/fesm2022/igo2-common-list.mjs +49 -66
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +15 -28
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-resizable-bar.mjs +25 -32
- package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
- package/fesm2022/igo2-common-select-value-dialog.mjs +10 -10
- package/fesm2022/igo2-common-sidenav.mjs +7 -7
- package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
- package/fesm2022/igo2-common-spinner.mjs +11 -11
- package/fesm2022/igo2-common-spinner.mjs.map +1 -1
- package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
- package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
- package/fesm2022/igo2-common-table.mjs +57 -87
- package/fesm2022/igo2-common-table.mjs.map +1 -1
- package/fesm2022/igo2-common-timepicker.mjs +105 -0
- package/fesm2022/igo2-common-timepicker.mjs.map +1 -0
- package/fesm2022/igo2-common-tool.mjs +29 -35
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/fesm2022/igo2-common-widget.mjs +27 -36
- package/fesm2022/igo2-common-widget.mjs.map +1 -1
- package/fesm2022/igo2-common-workspace.mjs +34 -44
- package/fesm2022/igo2-common-workspace.mjs.map +1 -1
- package/flexible/index.d.ts +2 -2
- package/form/index.d.ts +31 -33
- package/home-button/index.d.ts +1 -2
- package/icon/index.d.ts +4 -5
- package/image/index.d.ts +3 -3
- package/interactive-tour/index.d.ts +5 -5
- package/list/index.d.ts +23 -23
- package/package.json +11 -3
- package/panel/index.d.ts +4 -6
- package/resizable-bar/index.d.ts +11 -13
- package/table/index.d.ts +13 -19
- package/timepicker/index.d.ts +33 -0
- package/tool/index.d.ts +4 -4
- package/widget/index.d.ts +9 -9
- package/workspace/index.d.ts +7 -8
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EntityStore, EntityStoreWatcher } from '@igo2/common/entity';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { input, output, Input, ChangeDetectionStrategy, Component, inject, ElementRef, ChangeDetectorRef, HostBinding, NgModule } from '@angular/core';
|
|
4
4
|
import { Overlay } from '@angular/cdk/overlay';
|
|
5
5
|
import { NgClass, AsyncPipe } from '@angular/common';
|
|
6
6
|
import * as i3 from '@angular/material/button';
|
|
@@ -57,23 +57,23 @@ class ActionbarItemComponent {
|
|
|
57
57
|
/**
|
|
58
58
|
* Action
|
|
59
59
|
*/
|
|
60
|
-
action;
|
|
60
|
+
action = input(undefined, ...(ngDevMode ? [{ debugName: "action" }] : []));
|
|
61
61
|
/**
|
|
62
62
|
* Color
|
|
63
63
|
*/
|
|
64
|
-
color = 'default';
|
|
64
|
+
color = input('default', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
65
65
|
/**
|
|
66
66
|
* Whether the action title is displayed
|
|
67
67
|
*/
|
|
68
|
-
withTitle = true;
|
|
68
|
+
withTitle = input(true, ...(ngDevMode ? [{ debugName: "withTitle" }] : []));
|
|
69
69
|
/**
|
|
70
70
|
* Whether the action icon is displayed
|
|
71
71
|
*/
|
|
72
|
-
withIcon = true;
|
|
72
|
+
withIcon = input(true, ...(ngDevMode ? [{ debugName: "withIcon" }] : []));
|
|
73
73
|
/**
|
|
74
74
|
* Whether a tooltip should be shown
|
|
75
75
|
*/
|
|
76
|
-
withTooltip = true;
|
|
76
|
+
withTooltip = input(true, ...(ngDevMode ? [{ debugName: "withTooltip" }] : []));
|
|
77
77
|
/**
|
|
78
78
|
* Whether the action is disabled
|
|
79
79
|
*/
|
|
@@ -95,40 +95,41 @@ class ActionbarItemComponent {
|
|
|
95
95
|
/**
|
|
96
96
|
* Event emitted when the action button is clicked
|
|
97
97
|
*/
|
|
98
|
-
trigger =
|
|
98
|
+
trigger = output();
|
|
99
99
|
/**
|
|
100
100
|
* @internal
|
|
101
101
|
*/
|
|
102
102
|
get title() {
|
|
103
|
-
return this.action.title;
|
|
103
|
+
return this.action().title;
|
|
104
104
|
}
|
|
105
105
|
ngOnInit() {
|
|
106
|
-
const args = this.action.args || [];
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
const args = this.action().args || [];
|
|
107
|
+
const action = this.action();
|
|
108
|
+
if (action.ngClass !== undefined) {
|
|
109
|
+
this.ngClass$$ = action
|
|
109
110
|
.ngClass(...args)
|
|
110
111
|
.subscribe((ngClass) => this.updateNgClass(ngClass));
|
|
111
112
|
}
|
|
112
|
-
if (isObservable(
|
|
113
|
-
this.checkCondition$$ =
|
|
113
|
+
if (isObservable(action.checkCondition)) {
|
|
114
|
+
this.checkCondition$$ = action.checkCondition.subscribe((checkCondition) => this.updateCheckCondition(checkCondition));
|
|
114
115
|
}
|
|
115
116
|
else {
|
|
116
|
-
this.updateCheckCondition(
|
|
117
|
+
this.updateCheckCondition(action.checkCondition);
|
|
117
118
|
}
|
|
118
|
-
if (isObservable(
|
|
119
|
-
this.tooltip$$ =
|
|
119
|
+
if (isObservable(action.tooltip)) {
|
|
120
|
+
this.tooltip$$ = action.tooltip.subscribe((tooltip) => this.updateTooltip(tooltip));
|
|
120
121
|
}
|
|
121
122
|
else {
|
|
122
|
-
this.updateTooltip(
|
|
123
|
+
this.updateTooltip(action.tooltip);
|
|
123
124
|
}
|
|
124
|
-
if (
|
|
125
|
-
this.availability$$ =
|
|
125
|
+
if (action.availability !== undefined) {
|
|
126
|
+
this.availability$$ = action
|
|
126
127
|
.availability(...args)
|
|
127
128
|
.subscribe((available) => (this.disabled = !available));
|
|
128
129
|
}
|
|
129
130
|
this.disabled$$ = this.disabled$.subscribe((disabled) => this.updateNgClass({ 'igo-actionbar-item-disabled': disabled }));
|
|
130
|
-
if (
|
|
131
|
-
this.display$$ =
|
|
131
|
+
if (action.display !== undefined) {
|
|
132
|
+
this.display$$ = action
|
|
132
133
|
.display(...args)
|
|
133
134
|
.subscribe((display) => (this.noDisplay = !display));
|
|
134
135
|
}
|
|
@@ -167,7 +168,7 @@ class ActionbarItemComponent {
|
|
|
167
168
|
if (this.disabled === true) {
|
|
168
169
|
return;
|
|
169
170
|
}
|
|
170
|
-
this.trigger.emit(this.action);
|
|
171
|
+
this.trigger.emit(this.action());
|
|
171
172
|
}
|
|
172
173
|
updateNgClass(ngClass) {
|
|
173
174
|
this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));
|
|
@@ -178,10 +179,10 @@ class ActionbarItemComponent {
|
|
|
178
179
|
updateCheckCondition(checkCondition) {
|
|
179
180
|
this.checkCondition$.next(checkCondition);
|
|
180
181
|
}
|
|
181
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
182
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
182
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ActionbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
183
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: ActionbarItemComponent, isStandalone: true, selector: "igo-actionbar-item", inputs: { action: { classPropertyName: "action", publicName: "action", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, withTitle: { classPropertyName: "withTitle", publicName: "withTitle", isSignal: true, isRequired: false, transformFunction: null }, withIcon: { classPropertyName: "withIcon", publicName: "withIcon", isSignal: true, isRequired: false, transformFunction: null }, withTooltip: { classPropertyName: "withTooltip", publicName: "withTooltip", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, noDisplay: { classPropertyName: "noDisplay", publicName: "noDisplay", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { trigger: "trigger" }, ngImport: i0, template: "@if (!action().checkbox) {\n <mat-list-item\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n >\n @if (withIcon()) {\n <button\n matListItemAvatar\n mat-icon-button\n [color]=\"color()\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n @let icon = action().icon;\n <igo-icon [icon]=\"isObservable(icon) ? (icon | async) : icon\" />\n </button>\n }\n @if (withTitle()) {\n <span matLine>{{ title | translate }}</span>\n }\n </mat-list-item>\n}\n\n@if (action().checkbox) {\n <mat-list-item\n class=\"item-checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n >\n @if (withTitle()) {\n <mat-checkbox\n (change)=\"action().handler()\"\n [checked]=\"checkCondition$ | async\"\n >\n {{ title | translate }}\n </mat-checkbox>\n }\n </mat-list-item>\n}\n", styles: [":host ::ng-deep mat-list-item:hover{cursor:pointer}:host{--mat-list-list-item-leading-avatar-size: 48px}:host .mdc-icon-button{--mat-icon-button-state-layer-size: 48px}:host mat-list-item{padding-right:0}:host mat-list-item.igo-actionbar-item-disabled{color:#00000042;cursor:default!important}:host mat-list-item.igo-actionbar-item-no-display{display:none}:host mat-list-item ::ng-deep button[matlistitemavatar]{margin-left:0;background-color:inherit}:host mat-list-item ::ng-deep button .mat-mdc-button-persistent-ripple{display:none}:host .item-checkbox ::ng-deep mat-checkbox label{margin-left:28px}:host .actionbar-item [matline]{padding-left:16px}\n"], dependencies: [{ kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i1.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "component", type: IgoIconComponent, selector: "igo-icon", inputs: ["color", "icon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
183
184
|
}
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ActionbarItemComponent, decorators: [{
|
|
185
186
|
type: Component,
|
|
186
187
|
args: [{ selector: 'igo-actionbar-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
187
188
|
MatListModule,
|
|
@@ -193,24 +194,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
193
194
|
AsyncPipe,
|
|
194
195
|
IgoLanguageModule,
|
|
195
196
|
IgoIconComponent
|
|
196
|
-
], template: "@if (!action.checkbox) {\n <mat-list-item\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n >\n @if (withIcon) {\n <button\n matListItemAvatar\n mat-icon-button\n [color]=\"color\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n <igo-icon
|
|
197
|
-
}], propDecorators: { action: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], color: [{
|
|
200
|
-
type: Input
|
|
201
|
-
}], withTitle: [{
|
|
202
|
-
type: Input
|
|
203
|
-
}], withIcon: [{
|
|
204
|
-
type: Input
|
|
205
|
-
}], withTooltip: [{
|
|
206
|
-
type: Input
|
|
207
|
-
}], disabled: [{
|
|
197
|
+
], template: "@if (!action().checkbox) {\n <mat-list-item\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n >\n @if (withIcon()) {\n <button\n matListItemAvatar\n mat-icon-button\n [color]=\"color()\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n @let icon = action().icon;\n <igo-icon [icon]=\"isObservable(icon) ? (icon | async) : icon\" />\n </button>\n }\n @if (withTitle()) {\n <span matLine>{{ title | translate }}</span>\n }\n </mat-list-item>\n}\n\n@if (action().checkbox) {\n <mat-list-item\n class=\"item-checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n >\n @if (withTitle()) {\n <mat-checkbox\n (change)=\"action().handler()\"\n [checked]=\"checkCondition$ | async\"\n >\n {{ title | translate }}\n </mat-checkbox>\n }\n </mat-list-item>\n}\n", styles: [":host ::ng-deep mat-list-item:hover{cursor:pointer}:host{--mat-list-list-item-leading-avatar-size: 48px}:host .mdc-icon-button{--mat-icon-button-state-layer-size: 48px}:host mat-list-item{padding-right:0}:host mat-list-item.igo-actionbar-item-disabled{color:#00000042;cursor:default!important}:host mat-list-item.igo-actionbar-item-no-display{display:none}:host mat-list-item ::ng-deep button[matlistitemavatar]{margin-left:0;background-color:inherit}:host mat-list-item ::ng-deep button .mat-mdc-button-persistent-ripple{display:none}:host .item-checkbox ::ng-deep mat-checkbox label{margin-left:28px}:host .actionbar-item [matline]{padding-left:16px}\n"] }]
|
|
198
|
+
}], propDecorators: { action: [{ type: i0.Input, args: [{ isSignal: true, alias: "action", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], withTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "withTitle", required: false }] }], withIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "withIcon", required: false }] }], withTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "withTooltip", required: false }] }], disabled: [{
|
|
208
199
|
type: Input
|
|
209
200
|
}], noDisplay: [{
|
|
210
201
|
type: Input
|
|
211
|
-
}], trigger: [{
|
|
212
|
-
type: Output
|
|
213
|
-
}] } });
|
|
202
|
+
}], trigger: [{ type: i0.Output, args: ["trigger"] }] } });
|
|
214
203
|
|
|
215
204
|
/**
|
|
216
205
|
* A list of action buttons.
|
|
@@ -262,55 +251,55 @@ class ActionbarComponent {
|
|
|
262
251
|
/**
|
|
263
252
|
* Action store
|
|
264
253
|
*/
|
|
265
|
-
store;
|
|
254
|
+
store = input(undefined, ...(ngDevMode ? [{ debugName: "store" }] : []));
|
|
266
255
|
/**
|
|
267
256
|
* Actionbar mode
|
|
268
257
|
*/
|
|
269
|
-
mode = ActionbarMode.Dock;
|
|
258
|
+
mode = input(ActionbarMode.Dock, ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
270
259
|
/**
|
|
271
260
|
* Whether a toggle button should be displayed (Dock mode)
|
|
272
261
|
*/
|
|
273
|
-
withToggleButton = false;
|
|
262
|
+
withToggleButton = input(false, ...(ngDevMode ? [{ debugName: "withToggleButton" }] : []));
|
|
274
263
|
/**
|
|
275
264
|
* Whether a the actionbar should display buttons horizontally
|
|
276
265
|
*/
|
|
277
|
-
horizontal = false;
|
|
266
|
+
horizontal = input(false, ...(ngDevMode ? [{ debugName: "horizontal" }] : []));
|
|
278
267
|
/**
|
|
279
268
|
* Color
|
|
280
269
|
*/
|
|
281
|
-
color = 'default';
|
|
270
|
+
color = input('default', ...(ngDevMode ? [{ debugName: "color" }] : []));
|
|
282
271
|
/**
|
|
283
272
|
* Color of the button if action mode === overlay
|
|
284
273
|
*/
|
|
285
|
-
iconColor = 'default';
|
|
274
|
+
iconColor = input('default', ...(ngDevMode ? [{ debugName: "iconColor" }] : []));
|
|
286
275
|
/**
|
|
287
276
|
* Whether action titles are displayed
|
|
288
277
|
*/
|
|
289
|
-
withTitle = true;
|
|
278
|
+
withTitle = input(true, ...(ngDevMode ? [{ debugName: "withTitle" }] : []));
|
|
290
279
|
/**
|
|
291
280
|
* Whether action tooltips are displayed
|
|
292
281
|
*/
|
|
293
|
-
withTooltip = true;
|
|
282
|
+
withTooltip = input(true, ...(ngDevMode ? [{ debugName: "withTooltip" }] : []));
|
|
294
283
|
/**
|
|
295
284
|
* Whether action titles are displayed (condition for scroll button)
|
|
296
285
|
*/
|
|
297
|
-
scrollActive = true;
|
|
286
|
+
scrollActive = input(true, ...(ngDevMode ? [{ debugName: "scrollActive" }] : []));
|
|
298
287
|
/**
|
|
299
288
|
* Whether action icons are displayed
|
|
300
289
|
*/
|
|
301
|
-
withIcon = true;
|
|
290
|
+
withIcon = input(true, ...(ngDevMode ? [{ debugName: "withIcon" }] : []));
|
|
302
291
|
/**
|
|
303
292
|
* Which icon want to be shown
|
|
304
293
|
*/
|
|
305
|
-
icon = 'more_horiz';
|
|
294
|
+
icon = input('more_horiz', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
306
295
|
/**
|
|
307
296
|
* Overlay X position
|
|
308
297
|
*/
|
|
309
|
-
xPosition = 'before';
|
|
298
|
+
xPosition = input('before', ...(ngDevMode ? [{ debugName: "xPosition" }] : []));
|
|
310
299
|
/**
|
|
311
300
|
* Overlay Y position
|
|
312
301
|
*/
|
|
313
|
-
yPosition = 'above';
|
|
302
|
+
yPosition = input('above', ...(ngDevMode ? [{ debugName: "yPosition" }] : []));
|
|
314
303
|
/**
|
|
315
304
|
* Class to add to the actionbar overlay
|
|
316
305
|
*/
|
|
@@ -326,23 +315,23 @@ class ActionbarComponent {
|
|
|
326
315
|
* @ignore
|
|
327
316
|
*/
|
|
328
317
|
get withTitleClass() {
|
|
329
|
-
return this.withTitle;
|
|
318
|
+
return this.withTitle();
|
|
330
319
|
}
|
|
331
320
|
/**
|
|
332
321
|
* @ignore
|
|
333
322
|
*/
|
|
334
323
|
get withIconClass() {
|
|
335
|
-
return this.withIcon;
|
|
324
|
+
return this.withIcon();
|
|
336
325
|
}
|
|
337
326
|
/**
|
|
338
327
|
* @ignore
|
|
339
328
|
*/
|
|
340
329
|
get horizontalClass() {
|
|
341
|
-
return this.horizontal;
|
|
330
|
+
return this.horizontal();
|
|
342
331
|
}
|
|
343
332
|
get heightCondition() {
|
|
344
333
|
const el = this.elRef.nativeElement;
|
|
345
|
-
if (this.scrollActive === false) {
|
|
334
|
+
if (this.scrollActive() === false) {
|
|
346
335
|
if (el.clientHeight < el.scrollHeight) {
|
|
347
336
|
return true;
|
|
348
337
|
}
|
|
@@ -374,7 +363,7 @@ class ActionbarComponent {
|
|
|
374
363
|
if (this.watcher !== undefined) {
|
|
375
364
|
this.watcher.destroy();
|
|
376
365
|
}
|
|
377
|
-
this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
|
|
366
|
+
this.watcher = new EntityStoreWatcher(this.store(), this.cdRef);
|
|
378
367
|
}
|
|
379
368
|
}
|
|
380
369
|
/**
|
|
@@ -397,10 +386,10 @@ class ActionbarComponent {
|
|
|
397
386
|
scrollUp() {
|
|
398
387
|
this.elRef.nativeElement.scrollBy(0, -52);
|
|
399
388
|
}
|
|
400
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
401
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
389
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ActionbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
390
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: ActionbarComponent, isStandalone: true, selector: "igo-actionbar", inputs: { store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, withToggleButton: { classPropertyName: "withToggleButton", publicName: "withToggleButton", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, iconColor: { classPropertyName: "iconColor", publicName: "iconColor", isSignal: true, isRequired: false, transformFunction: null }, withTitle: { classPropertyName: "withTitle", publicName: "withTitle", isSignal: true, isRequired: false, transformFunction: null }, withTooltip: { classPropertyName: "withTooltip", publicName: "withTooltip", isSignal: true, isRequired: false, transformFunction: null }, scrollActive: { classPropertyName: "scrollActive", publicName: "scrollActive", isSignal: true, isRequired: false, transformFunction: null }, withIcon: { classPropertyName: "withIcon", publicName: "withIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, xPosition: { classPropertyName: "xPosition", publicName: "xPosition", isSignal: true, isRequired: false, transformFunction: null }, yPosition: { classPropertyName: "yPosition", publicName: "yPosition", isSignal: true, isRequired: false, transformFunction: null }, overlayClass: { classPropertyName: "overlayClass", publicName: "overlayClass", isSignal: false, isRequired: false, transformFunction: null } }, host: { properties: { "class.is-collapsed": "this.isCollapsed", "class.with-title": "this.withTitleClass", "class.with-icon": "this.withIconClass", "class.horizontal": "this.horizontalClass" } }, usesOnChanges: true, ngImport: i0, template: "@if (heightCondition && positionConditionTop && isDesktop) {\n <div id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon>expand_less</mat-icon>\n </button>\n </div>\n}\n@if (mode() === actionbarMode.Dock) {\n <mat-list matListItemIcon>\n @if (withToggleButton()) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color()\"\n [disabled]=\"store().view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n />\n }\n @if (!collapsed; as action) {\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [withTooltip]=\"withTooltip()\"\n [color]=\"color()\"\n [disabled]=\"store().state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n }\n </mat-list>\n}\n\n@if (heightCondition && positionConditionLow && isDesktop) {\n <div id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\"\n >\n <mat-icon>expand_more</mat-icon>\n </button>\n </div>\n}\n\n@if (mode() === actionbarMode.Overlay) {\n <div>\n <button\n class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store().view.empty\"\n [color]=\"iconColor()\"\n >\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition()\"\n [yPosition]=\"yPosition()\"\n [class]=\"overlayClass\"\n >\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n </mat-list>\n </mat-menu>\n </div>\n}\n@if (mode() === actionbarMode.Context) {\n <mat-card class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n <br />\n }\n </mat-list>\n </mat-card>\n}\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}:host.horizontal{max-width:100%;overflow:unset}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host mat-list{padding-top:0}:host .buttonOverlay{margin:0}:host .context-menu-card{padding:8px 3px;margin:10px}:host #topChevron{position:sticky;top:0;background-color:#fff;z-index:3;display:flex;justify-content:center}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){:host #topChevron{position:fixed;top:unset}}@supports (-ms-accelerator: true){:host #topChevron{position:fixed;top:unset}}:host #lowChevron{position:sticky;bottom:0;background-color:#fff;z-index:3;display:flex;justify-content:center}:host .igo-actionbar-overlay{min-width:inherit!important;padding-top:0;padding-bottom:0}:host .igo-actionbar-overlay .mat-mdc-list{padding-top:0}:host .igo-actionbar-overlay .mat-mdc-menu-content:not(:empty){padding-top:0;padding-bottom:0}:host.with-title ::ng-deep .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-right:0}:host ::ng-deep .mdc-list-item__primary-text{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i1.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "directive", type: i1.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: ActionbarItemComponent, selector: "igo-actionbar-item", inputs: ["action", "color", "withTitle", "withIcon", "withTooltip", "disabled", "noDisplay"], outputs: ["trigger"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: i5$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i6.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "ngmodule", type: IgoLanguageModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
402
391
|
}
|
|
403
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
392
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: ActionbarComponent, decorators: [{
|
|
404
393
|
type: Component,
|
|
405
394
|
args: [{ selector: 'igo-actionbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
406
395
|
MatButtonModule,
|
|
@@ -412,34 +401,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
412
401
|
MatCardModule,
|
|
413
402
|
AsyncPipe,
|
|
414
403
|
IgoLanguageModule
|
|
415
|
-
], template: "@if (heightCondition && positionConditionTop && isDesktop) {\n <div id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon>expand_less</mat-icon>\n </button>\n </div>\n}\n@if (mode === actionbarMode.Dock) {\n <mat-list matListItemIcon>\n @if (withToggleButton) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n
|
|
416
|
-
}], propDecorators: { store: [{
|
|
417
|
-
type: Input
|
|
418
|
-
}], mode: [{
|
|
419
|
-
type: Input
|
|
420
|
-
}], withToggleButton: [{
|
|
421
|
-
type: Input
|
|
422
|
-
}], horizontal: [{
|
|
423
|
-
type: Input
|
|
424
|
-
}], color: [{
|
|
425
|
-
type: Input
|
|
426
|
-
}], iconColor: [{
|
|
427
|
-
type: Input
|
|
428
|
-
}], withTitle: [{
|
|
429
|
-
type: Input
|
|
430
|
-
}], withTooltip: [{
|
|
431
|
-
type: Input
|
|
432
|
-
}], scrollActive: [{
|
|
433
|
-
type: Input
|
|
434
|
-
}], withIcon: [{
|
|
435
|
-
type: Input
|
|
436
|
-
}], icon: [{
|
|
437
|
-
type: Input
|
|
438
|
-
}], xPosition: [{
|
|
439
|
-
type: Input
|
|
440
|
-
}], yPosition: [{
|
|
441
|
-
type: Input
|
|
442
|
-
}], overlayClass: [{
|
|
404
|
+
], template: "@if (heightCondition && positionConditionTop && isDesktop) {\n <div id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon>expand_less</mat-icon>\n </button>\n </div>\n}\n@if (mode() === actionbarMode.Dock) {\n <mat-list matListItemIcon>\n @if (withToggleButton()) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color()\"\n [disabled]=\"store().view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n />\n }\n @if (!collapsed; as action) {\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [withTooltip]=\"withTooltip()\"\n [color]=\"color()\"\n [disabled]=\"store().state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n }\n </mat-list>\n}\n\n@if (heightCondition && positionConditionLow && isDesktop) {\n <div id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\"\n >\n <mat-icon>expand_more</mat-icon>\n </button>\n </div>\n}\n\n@if (mode() === actionbarMode.Overlay) {\n <div>\n <button\n class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store().view.empty\"\n [color]=\"iconColor()\"\n >\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition()\"\n [yPosition]=\"yPosition()\"\n [class]=\"overlayClass\"\n >\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n </mat-list>\n </mat-menu>\n </div>\n}\n@if (mode() === actionbarMode.Context) {\n <mat-card class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n <br />\n }\n </mat-list>\n </mat-card>\n}\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}:host.horizontal{max-width:100%;overflow:unset}:host.horizontal mat-list{width:auto;white-space:nowrap}:host.horizontal igo-actionbar-item{display:inline-block}:host mat-list{padding-top:0}:host .buttonOverlay{margin:0}:host .context-menu-card{padding:8px 3px;margin:10px}:host #topChevron{position:sticky;top:0;background-color:#fff;z-index:3;display:flex;justify-content:center}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){:host #topChevron{position:fixed;top:unset}}@supports (-ms-accelerator: true){:host #topChevron{position:fixed;top:unset}}:host #lowChevron{position:sticky;bottom:0;background-color:#fff;z-index:3;display:flex;justify-content:center}:host .igo-actionbar-overlay{min-width:inherit!important;padding-top:0;padding-bottom:0}:host .igo-actionbar-overlay .mat-mdc-list{padding-top:0}:host .igo-actionbar-overlay .mat-mdc-menu-content:not(:empty){padding-top:0;padding-bottom:0}:host.with-title ::ng-deep .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin-right:0}:host ::ng-deep .mdc-list-item__primary-text{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;line-height:18px;-webkit-box-orient:vertical;-webkit-line-clamp:2}\n"] }]
|
|
405
|
+
}], propDecorators: { store: [{ type: i0.Input, args: [{ isSignal: true, alias: "store", required: false }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], withToggleButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "withToggleButton", required: false }] }], horizontal: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontal", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], iconColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconColor", required: false }] }], withTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "withTitle", required: false }] }], withTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "withTooltip", required: false }] }], scrollActive: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollActive", required: false }] }], withIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "withIcon", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], xPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "xPosition", required: false }] }], yPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "yPosition", required: false }] }], overlayClass: [{
|
|
443
406
|
type: Input
|
|
444
407
|
}], isCollapsed: [{
|
|
445
408
|
type: HostBinding,
|
|
@@ -459,11 +422,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
459
422
|
* @deprecated import the ActionbarComponent directly
|
|
460
423
|
*/
|
|
461
424
|
class IgoActionModule {
|
|
462
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
463
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
464
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
425
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
426
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: IgoActionModule, imports: [ActionbarComponent], exports: [ActionbarComponent] });
|
|
427
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionModule, imports: [ActionbarComponent] });
|
|
465
428
|
}
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
429
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionModule, decorators: [{
|
|
467
430
|
type: NgModule,
|
|
468
431
|
args: [{
|
|
469
432
|
imports: [ActionbarComponent],
|
|
@@ -475,11 +438,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImpor
|
|
|
475
438
|
* @deprecated import the ActionbarComponent directly
|
|
476
439
|
*/
|
|
477
440
|
class IgoActionbarModule {
|
|
478
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
479
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
480
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
441
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
442
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: IgoActionbarModule, imports: [ActionbarComponent], exports: [ActionbarComponent] });
|
|
443
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionbarModule, imports: [ActionbarComponent] });
|
|
481
444
|
}
|
|
482
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
445
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IgoActionbarModule, decorators: [{
|
|
483
446
|
type: NgModule,
|
|
484
447
|
args: [{
|
|
485
448
|
imports: [ActionbarComponent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-common-action.mjs","sources":["../../../packages/common/action/src/shared/action.enums.ts","../../../packages/common/action/src/shared/store.ts","../../../packages/common/action/src/actionbar/actionbar-item.component.ts","../../../packages/common/action/src/actionbar/actionbar-item.component.html","../../../packages/common/action/src/actionbar/actionbar.component.ts","../../../packages/common/action/src/actionbar/actionbar.component.html","../../../packages/common/action/src/action.module.ts","../../../packages/common/action/src/actionbar/actionbar.module.ts","../../../packages/common/action/src/igo2-common-action.ts"],"sourcesContent":["export enum ActionbarMode {\n Dock = 'dock',\n Overlay = 'overlay',\n Context = 'context'\n}\n","import { EntityStore } from '@igo2/common/entity';\n\nimport { Action } from './action.interfaces';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * actions.\n */\nexport class ActionStore extends EntityStore<Action> {}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoIconComponent } from '@igo2/common/icon';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { BehaviorSubject, Subscription, isObservable } from 'rxjs';\n\nimport { Action } from '../shared/action.interfaces';\n\n/**\n * An action button\n */\n@Component({\n selector: 'igo-actionbar-item',\n templateUrl: './actionbar-item.component.html',\n styleUrls: ['./actionbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatListModule,\n MatTooltipModule,\n NgClass,\n MatButtonModule,\n MatIconModule,\n MatCheckboxModule,\n AsyncPipe,\n IgoLanguageModule,\n IgoIconComponent\n ]\n})\nexport class ActionbarItemComponent implements OnInit, OnDestroy {\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n readonly checkCondition$ = new BehaviorSubject<boolean>(undefined);\n\n readonly tooltip$ = new BehaviorSubject<string>(undefined);\n\n readonly noDisplay$ = new BehaviorSubject<boolean>(false);\n\n readonly ngClass$ = new BehaviorSubject<Record<string, boolean>>({});\n\n private ngClass$$: Subscription;\n\n private disabled$$: Subscription;\n\n private availability$$: Subscription;\n\n private checkCondition$$: Subscription;\n\n private tooltip$$: Subscription;\n\n private noDisplay$$: Subscription;\n\n private display$$: Subscription;\n\n isObservable = isObservable;\n\n /**\n * Action\n */\n @Input() action: Action;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Whether the action title is displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether the action icon is displayed\n */\n @Input() withIcon = true;\n\n /**\n * Whether a tooltip should be shown\n */\n @Input() withTooltip = true;\n\n /**\n * Whether the action is disabled\n */\n @Input()\n set disabled(value: boolean) {\n this.disabled$.next(value);\n }\n get disabled(): boolean {\n return this.disabled$.value;\n }\n\n /**\n * Whether the action is display or not\n */\n @Input()\n set noDisplay(value: boolean) {\n this.noDisplay$.next(value);\n }\n get noDisplay(): boolean {\n return this.noDisplay$.value;\n }\n\n /**\n * Event emitted when the action button is clicked\n */\n @Output() trigger = new EventEmitter<Action>();\n\n /**\n * @internal\n */\n get title(): string {\n return this.action.title;\n }\n\n ngOnInit() {\n const args = this.action.args || [];\n\n if (this.action.ngClass !== undefined) {\n this.ngClass$$ = this.action\n .ngClass(...args)\n .subscribe((ngClass: Record<string, boolean>) =>\n this.updateNgClass(ngClass)\n );\n }\n\n if (isObservable(this.action.checkCondition)) {\n this.checkCondition$$ = this.action.checkCondition.subscribe(\n (checkCondition: boolean) => this.updateCheckCondition(checkCondition)\n );\n } else {\n this.updateCheckCondition(this.action.checkCondition);\n }\n\n if (isObservable(this.action.tooltip)) {\n this.tooltip$$ = this.action.tooltip.subscribe((tooltip: string) =>\n this.updateTooltip(tooltip)\n );\n } else {\n this.updateTooltip(this.action.tooltip);\n }\n\n if (this.action.availability !== undefined) {\n this.availability$$ = this.action\n .availability(...args)\n .subscribe((available: boolean) => (this.disabled = !available));\n }\n\n this.disabled$$ = this.disabled$.subscribe((disabled: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-disabled': disabled })\n );\n\n if (this.action.display !== undefined) {\n this.display$$ = this.action\n .display(...args)\n .subscribe((display: boolean) => (this.noDisplay = !display));\n }\n\n this.noDisplay$$ = this.noDisplay$.subscribe((noDisplay: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-no-display': noDisplay })\n );\n }\n\n ngOnDestroy() {\n if (this.ngClass$$ !== undefined) {\n this.ngClass$$.unsubscribe();\n this.ngClass$$ = undefined;\n }\n\n if (this.availability$$ !== undefined) {\n this.availability$$.unsubscribe();\n this.availability$$ = undefined;\n }\n\n if (this.display$$ !== undefined) {\n this.display$$.unsubscribe();\n this.display$$ = undefined;\n }\n\n if (this.checkCondition$$ !== undefined) {\n this.checkCondition$$.unsubscribe();\n this.checkCondition$$ = undefined;\n }\n\n if (this.tooltip$$ !== undefined) {\n this.tooltip$$.unsubscribe();\n this.tooltip$$ = undefined;\n }\n\n this.disabled$$.unsubscribe();\n this.noDisplay$$.unsubscribe();\n }\n\n /**\n * When the action button is clicked, emit the 'trigger' event but don't\n * invoke the action handler. This is handled by the parent component.\n * @internal\n */\n onClick() {\n if (this.disabled === true) {\n return;\n }\n this.trigger.emit(this.action);\n }\n\n private updateNgClass(ngClass: Record<string, boolean>) {\n this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));\n }\n\n private updateTooltip(tooltip: string) {\n this.tooltip$.next(tooltip);\n }\n\n private updateCheckCondition(checkCondition: boolean) {\n this.checkCondition$.next(checkCondition);\n }\n}\n","@if (!action.checkbox) {\n <mat-list-item\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n >\n @if (withIcon) {\n <button\n matListItemAvatar\n mat-icon-button\n [color]=\"color\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n <igo-icon\n [icon]=\"\n isObservable(action.icon) ? (action.icon | async) : action.icon\n \"\n ></igo-icon>\n </button>\n }\n @if (withTitle) {\n <span matLine>{{ title | translate }}</span>\n }\n </mat-list-item>\n}\n\n@if (action.checkbox) {\n <mat-list-item\n class=\"item-checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"withTooltip ? ((tooltip$ | async) || title | translate) : ''\"\n [ngClass]=\"ngClass$ | async\"\n >\n @if (withTitle) {\n <mat-checkbox\n (change)=\"action.handler()\"\n [checked]=\"checkCondition$ | async\"\n >\n {{ title | translate }}\n </mat-checkbox>\n }\n </mat-list-item>\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n inject\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport {\n MatMenuModule,\n MenuPositionX,\n MenuPositionY\n} from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { EntityStoreWatcher } from '@igo2/common/entity';\nimport { IgoLanguageModule } from '@igo2/core/language';\nimport { Media, MediaService } from '@igo2/core/media';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ActionbarMode } from '../shared/action.enums';\nimport { Action } from '../shared/action.interfaces';\nimport { ActionStore } from '../shared/store';\nimport { ActionbarItemComponent } from './actionbar-item.component';\n\n/**\n * A list of action buttons.\n * This component can be displayed in one of two way: 'dock' or 'overlay'\n */\n@Component({\n selector: 'igo-actionbar',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MatListModule,\n ActionbarItemComponent,\n MatMenuModule,\n MatCardModule,\n AsyncPipe,\n IgoLanguageModule\n ]\n})\nexport class ActionbarComponent implements OnDestroy, OnChanges {\n overlay = inject(Overlay);\n private elRef = inject(ElementRef);\n private cdRef = inject(ChangeDetectorRef);\n mediaService = inject(MediaService);\n\n /**\n * Reference to the ActionbarMode enum for use in the template\n * @internal\n */\n actionbarMode = ActionbarMode;\n\n /**\n * Whether the actionbar is collapsed (Dock mode)\n * @internal\n */\n collapsed = false;\n\n /**\n * Toggle collapse action (Dock)\n * @internal\n */\n toggleCollapseAction = {\n id: 'actionbar_toggle',\n icon: 'more_vert',\n handler: () => {\n this.collapsed = !this.collapsed;\n }\n };\n\n /**\n * Action store watcher\n * @internal\n */\n private watcher: EntityStoreWatcher<Action>;\n\n /**\n * Height Condition for scroll button\n */\n heightCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(\n false\n );\n\n /**\n * Position Condition for top scroll button\n */\n positionConditionTop$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Position Condition for low scroll button\n */\n positionConditionLow$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Action store\n */\n @Input() store: ActionStore;\n\n /**\n * Actionbar mode\n */\n @Input() mode: ActionbarMode = ActionbarMode.Dock;\n\n /**\n * Whether a toggle button should be displayed (Dock mode)\n */\n @Input() withToggleButton = false;\n\n /**\n * Whether a the actionbar should display buttons horizontally\n */\n @Input() horizontal = false;\n\n /**\n * Color\n */\n @Input() color = 'default';\n\n /**\n * Color of the button if action mode === overlay\n */\n @Input() iconColor = 'default';\n\n /**\n * Whether action titles are displayed\n */\n @Input() withTitle = true;\n\n /**\n * Whether action tooltips are displayed\n */\n @Input() withTooltip = true;\n\n /**\n * Whether action titles are displayed (condition for scroll button)\n */\n @Input() scrollActive = true;\n\n /**\n * Whether action icons are displayed\n */\n @Input() withIcon = true;\n\n /**\n * Which icon want to be shown\n */\n @Input() icon = 'more_horiz';\n\n /**\n * Overlay X position\n */\n @Input() xPosition: MenuPositionX = 'before';\n\n /**\n * Overlay Y position\n */\n @Input() yPosition: MenuPositionY = 'above';\n\n /**\n * Class to add to the actionbar overlay\n */\n @Input()\n set overlayClass(value: string) {\n this._overlayClass = value;\n }\n get overlayClass(): string {\n return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');\n }\n private _overlayClass = '';\n\n @HostBinding('class.is-collapsed') isCollapsed = this.collapsed;\n\n /**\n * @ignore\n */\n @HostBinding('class.with-title')\n get withTitleClass() {\n return this.withTitle;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.with-icon')\n get withIconClass() {\n return this.withIcon;\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.horizontal')\n get horizontalClass() {\n return this.horizontal;\n }\n\n get heightCondition(): boolean {\n const el = this.elRef.nativeElement;\n if (this.scrollActive === false) {\n if (el.clientHeight < el.scrollHeight) {\n return true;\n }\n }\n return false;\n }\n\n get positionConditionTop(): boolean {\n if (this.elRef.nativeElement.scrollTop === 0) {\n return false;\n }\n return true;\n }\n\n get positionConditionLow(): boolean {\n const el = this.elRef.nativeElement;\n if (el.scrollTop >= el.scrollHeight - el.clientHeight) {\n return false;\n }\n return true;\n }\n\n get isDesktop(): boolean {\n return this.mediaService.getMedia() === Media.Desktop;\n }\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n if (this.watcher !== undefined) {\n this.watcher.destroy();\n }\n this.watcher = new EntityStoreWatcher(this.store, this.cdRef);\n }\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n }\n\n /**\n * Invoke the action handler\n * @internal\n */\n onTriggerAction(action: Action) {\n const args = action.args || [];\n action.handler(...args);\n }\n\n scrollDown() {\n this.elRef.nativeElement.scrollBy(0, 52);\n }\n\n scrollUp() {\n this.elRef.nativeElement.scrollBy(0, -52);\n }\n}\n","@if (heightCondition && positionConditionTop && isDesktop) {\n <div id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon>expand_less</mat-icon>\n </button>\n </div>\n}\n@if (mode === actionbarMode.Dock) {\n <mat-list matListItemIcon>\n @if (withToggleButton) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color\"\n [disabled]=\"store.view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n >\n </igo-actionbar-item>\n }\n @if (!collapsed; as action) {\n @for (action of store.view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [withTooltip]=\"withTooltip\"\n [color]=\"color\"\n [disabled]=\"store.state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n }\n }\n </mat-list>\n}\n\n@if (heightCondition && positionConditionLow && isDesktop) {\n <div id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\"\n >\n <mat-icon>expand_more</mat-icon>\n </button>\n </div>\n}\n\n@if (mode === actionbarMode.Overlay) {\n <div>\n <button\n class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store.view.empty\"\n [color]=\"iconColor\"\n >\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition\"\n [yPosition]=\"yPosition\"\n [class]=\"overlayClass\"\n >\n <mat-list>\n @for (action of store.view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n }\n </mat-list>\n </mat-menu>\n </div>\n}\n@if (mode === actionbarMode.Context) {\n <mat-card class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n @for (action of store.view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle\"\n [withIcon]=\"withIcon\"\n [color]=\"color\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n >\n </igo-actionbar-item>\n <br />\n }\n </mat-list>\n </mat-card>\n}\n","import { NgModule } from '@angular/core';\n\nimport { ActionbarComponent } from './actionbar/actionbar.component';\n\n/**\n * @deprecated import the ActionbarComponent directly\n */\n@NgModule({\n imports: [ActionbarComponent],\n exports: [ActionbarComponent]\n})\nexport class IgoActionModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ActionbarComponent } from './actionbar.component';\n\n/**\n * @deprecated import the ActionbarComponent directly\n */\n@NgModule({\n imports: [ActionbarComponent],\n exports: [ActionbarComponent]\n})\nexport class IgoActionbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i4","i5","i7"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igo2-common-action.mjs","sources":["../../../packages/common/action/src/shared/action.enums.ts","../../../packages/common/action/src/shared/store.ts","../../../packages/common/action/src/actionbar/actionbar-item.component.ts","../../../packages/common/action/src/actionbar/actionbar-item.component.html","../../../packages/common/action/src/actionbar/actionbar.component.ts","../../../packages/common/action/src/actionbar/actionbar.component.html","../../../packages/common/action/src/action.module.ts","../../../packages/common/action/src/actionbar/actionbar.module.ts","../../../packages/common/action/src/igo2-common-action.ts"],"sourcesContent":["export enum ActionbarMode {\n Dock = 'dock',\n Overlay = 'overlay',\n Context = 'context'\n}\n","import { EntityStore } from '@igo2/common/entity';\n\nimport { Action } from './action.interfaces';\n\n/**\n * The class is a specialized version of an EntityStore that stores\n * actions.\n */\nexport class ActionStore extends EntityStore<Action> {}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnDestroy,\n OnInit,\n input,\n output\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoIconComponent } from '@igo2/common/icon';\nimport { IgoLanguageModule } from '@igo2/core/language';\n\nimport { BehaviorSubject, Subscription, isObservable } from 'rxjs';\n\nimport { Action } from '../shared/action.interfaces';\n\n/**\n * An action button\n */\n@Component({\n selector: 'igo-actionbar-item',\n templateUrl: './actionbar-item.component.html',\n styleUrls: ['./actionbar-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatListModule,\n MatTooltipModule,\n NgClass,\n MatButtonModule,\n MatIconModule,\n MatCheckboxModule,\n AsyncPipe,\n IgoLanguageModule,\n IgoIconComponent\n ]\n})\nexport class ActionbarItemComponent implements OnInit, OnDestroy {\n readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n readonly checkCondition$ = new BehaviorSubject<boolean>(undefined);\n\n readonly tooltip$ = new BehaviorSubject<string>(undefined);\n\n readonly noDisplay$ = new BehaviorSubject<boolean>(false);\n\n readonly ngClass$ = new BehaviorSubject<Record<string, boolean>>({});\n\n private ngClass$$: Subscription;\n\n private disabled$$: Subscription;\n\n private availability$$: Subscription;\n\n private checkCondition$$: Subscription;\n\n private tooltip$$: Subscription;\n\n private noDisplay$$: Subscription;\n\n private display$$: Subscription;\n\n isObservable = isObservable;\n\n /**\n * Action\n */\n readonly action = input<Action>(undefined);\n\n /**\n * Color\n */\n readonly color = input('default');\n\n /**\n * Whether the action title is displayed\n */\n readonly withTitle = input(true);\n\n /**\n * Whether the action icon is displayed\n */\n readonly withIcon = input(true);\n\n /**\n * Whether a tooltip should be shown\n */\n readonly withTooltip = input(true);\n\n /**\n * Whether the action is disabled\n */\n @Input()\n set disabled(value: boolean) {\n this.disabled$.next(value);\n }\n get disabled(): boolean {\n return this.disabled$.value;\n }\n\n /**\n * Whether the action is display or not\n */\n @Input()\n set noDisplay(value: boolean) {\n this.noDisplay$.next(value);\n }\n get noDisplay(): boolean {\n return this.noDisplay$.value;\n }\n\n /**\n * Event emitted when the action button is clicked\n */\n readonly trigger = output<Action>();\n\n /**\n * @internal\n */\n get title(): string {\n return this.action().title;\n }\n\n ngOnInit() {\n const args = this.action().args || [];\n\n const action = this.action();\n if (action.ngClass !== undefined) {\n this.ngClass$$ = action\n .ngClass(...args)\n .subscribe((ngClass: Record<string, boolean>) =>\n this.updateNgClass(ngClass)\n );\n }\n\n if (isObservable(action.checkCondition)) {\n this.checkCondition$$ = action.checkCondition.subscribe(\n (checkCondition: boolean) => this.updateCheckCondition(checkCondition)\n );\n } else {\n this.updateCheckCondition(action.checkCondition);\n }\n\n if (isObservable(action.tooltip)) {\n this.tooltip$$ = action.tooltip.subscribe((tooltip: string) =>\n this.updateTooltip(tooltip)\n );\n } else {\n this.updateTooltip(action.tooltip);\n }\n\n if (action.availability !== undefined) {\n this.availability$$ = action\n .availability(...args)\n .subscribe((available: boolean) => (this.disabled = !available));\n }\n\n this.disabled$$ = this.disabled$.subscribe((disabled: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-disabled': disabled })\n );\n\n if (action.display !== undefined) {\n this.display$$ = action\n .display(...args)\n .subscribe((display: boolean) => (this.noDisplay = !display));\n }\n\n this.noDisplay$$ = this.noDisplay$.subscribe((noDisplay: boolean) =>\n this.updateNgClass({ 'igo-actionbar-item-no-display': noDisplay })\n );\n }\n\n ngOnDestroy() {\n if (this.ngClass$$ !== undefined) {\n this.ngClass$$.unsubscribe();\n this.ngClass$$ = undefined;\n }\n\n if (this.availability$$ !== undefined) {\n this.availability$$.unsubscribe();\n this.availability$$ = undefined;\n }\n\n if (this.display$$ !== undefined) {\n this.display$$.unsubscribe();\n this.display$$ = undefined;\n }\n\n if (this.checkCondition$$ !== undefined) {\n this.checkCondition$$.unsubscribe();\n this.checkCondition$$ = undefined;\n }\n\n if (this.tooltip$$ !== undefined) {\n this.tooltip$$.unsubscribe();\n this.tooltip$$ = undefined;\n }\n\n this.disabled$$.unsubscribe();\n this.noDisplay$$.unsubscribe();\n }\n\n /**\n * When the action button is clicked, emit the 'trigger' event but don't\n * invoke the action handler. This is handled by the parent component.\n * @internal\n */\n onClick() {\n if (this.disabled === true) {\n return;\n }\n this.trigger.emit(this.action());\n }\n\n private updateNgClass(ngClass: Record<string, boolean>) {\n this.ngClass$.next(Object.assign({}, this.ngClass$.value, ngClass));\n }\n\n private updateTooltip(tooltip: string) {\n this.tooltip$.next(tooltip);\n }\n\n private updateCheckCondition(checkCondition: boolean) {\n this.checkCondition$.next(checkCondition);\n }\n}\n","@if (!action().checkbox) {\n <mat-list-item\n class=\"actionbar-item\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n (click)=\"onClick()\"\n >\n @if (withIcon()) {\n <button\n matListItemAvatar\n mat-icon-button\n [color]=\"color()\"\n [disabled]=\"disabled$ | async\"\n [disableRipple]=\"true\"\n >\n @let icon = action().icon;\n <igo-icon [icon]=\"isObservable(icon) ? (icon | async) : icon\" />\n </button>\n }\n @if (withTitle()) {\n <span matLine>{{ title | translate }}</span>\n }\n </mat-list-item>\n}\n\n@if (action().checkbox) {\n <mat-list-item\n class=\"item-checkbox\"\n matTooltipClass=\"actionbarItemTooltip\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"\n withTooltip() ? ((tooltip$ | async) || title | translate) : ''\n \"\n [ngClass]=\"ngClass$ | async\"\n >\n @if (withTitle()) {\n <mat-checkbox\n (change)=\"action().handler()\"\n [checked]=\"checkCondition$ | async\"\n >\n {{ title | translate }}\n </mat-checkbox>\n }\n </mat-list-item>\n}\n","import { Overlay } from '@angular/cdk/overlay';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n inject,\n input\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport {\n MatMenuModule,\n MenuPositionX,\n MenuPositionY\n} from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { EntityStoreWatcher } from '@igo2/common/entity';\nimport { IgoLanguageModule } from '@igo2/core/language';\nimport { Media, MediaService } from '@igo2/core/media';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { ActionbarMode } from '../shared/action.enums';\nimport { Action } from '../shared/action.interfaces';\nimport { ActionStore } from '../shared/store';\nimport { ActionbarItemComponent } from './actionbar-item.component';\n\n/**\n * A list of action buttons.\n * This component can be displayed in one of two way: 'dock' or 'overlay'\n */\n@Component({\n selector: 'igo-actionbar',\n templateUrl: './actionbar.component.html',\n styleUrls: ['./actionbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MatListModule,\n ActionbarItemComponent,\n MatMenuModule,\n MatCardModule,\n AsyncPipe,\n IgoLanguageModule\n ]\n})\nexport class ActionbarComponent implements OnDestroy, OnChanges {\n overlay = inject(Overlay);\n private elRef = inject(ElementRef);\n private cdRef = inject(ChangeDetectorRef);\n mediaService = inject(MediaService);\n\n /**\n * Reference to the ActionbarMode enum for use in the template\n * @internal\n */\n actionbarMode = ActionbarMode;\n\n /**\n * Whether the actionbar is collapsed (Dock mode)\n * @internal\n */\n collapsed = false;\n\n /**\n * Toggle collapse action (Dock)\n * @internal\n */\n toggleCollapseAction = {\n id: 'actionbar_toggle',\n icon: 'more_vert',\n handler: () => {\n this.collapsed = !this.collapsed;\n }\n };\n\n /**\n * Action store watcher\n * @internal\n */\n private watcher: EntityStoreWatcher<Action>;\n\n /**\n * Height Condition for scroll button\n */\n heightCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(\n false\n );\n\n /**\n * Position Condition for top scroll button\n */\n positionConditionTop$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Position Condition for low scroll button\n */\n positionConditionLow$: BehaviorSubject<boolean> =\n new BehaviorSubject<boolean>(true);\n\n /**\n * Action store\n */\n readonly store = input<ActionStore>(undefined);\n\n /**\n * Actionbar mode\n */\n readonly mode = input<ActionbarMode>(ActionbarMode.Dock);\n\n /**\n * Whether a toggle button should be displayed (Dock mode)\n */\n readonly withToggleButton = input(false);\n\n /**\n * Whether a the actionbar should display buttons horizontally\n */\n readonly horizontal = input(false);\n\n /**\n * Color\n */\n readonly color = input('default');\n\n /**\n * Color of the button if action mode === overlay\n */\n readonly iconColor = input('default');\n\n /**\n * Whether action titles are displayed\n */\n readonly withTitle = input(true);\n\n /**\n * Whether action tooltips are displayed\n */\n readonly withTooltip = input(true);\n\n /**\n * Whether action titles are displayed (condition for scroll button)\n */\n readonly scrollActive = input(true);\n\n /**\n * Whether action icons are displayed\n */\n readonly withIcon = input(true);\n\n /**\n * Which icon want to be shown\n */\n readonly icon = input('more_horiz');\n\n /**\n * Overlay X position\n */\n readonly xPosition = input<MenuPositionX>('before');\n\n /**\n * Overlay Y position\n */\n readonly yPosition = input<MenuPositionY>('above');\n\n /**\n * Class to add to the actionbar overlay\n */\n @Input()\n set overlayClass(value: string) {\n this._overlayClass = value;\n }\n get overlayClass(): string {\n return [this._overlayClass, 'igo-actionbar-overlay'].join(' ');\n }\n private _overlayClass = '';\n\n @HostBinding('class.is-collapsed') isCollapsed = this.collapsed;\n\n /**\n * @ignore\n */\n @HostBinding('class.with-title')\n get withTitleClass() {\n return this.withTitle();\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.with-icon')\n get withIconClass() {\n return this.withIcon();\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.horizontal')\n get horizontalClass() {\n return this.horizontal();\n }\n\n get heightCondition(): boolean {\n const el = this.elRef.nativeElement;\n if (this.scrollActive() === false) {\n if (el.clientHeight < el.scrollHeight) {\n return true;\n }\n }\n return false;\n }\n\n get positionConditionTop(): boolean {\n if (this.elRef.nativeElement.scrollTop === 0) {\n return false;\n }\n return true;\n }\n\n get positionConditionLow(): boolean {\n const el = this.elRef.nativeElement;\n if (el.scrollTop >= el.scrollHeight - el.clientHeight) {\n return false;\n }\n return true;\n }\n\n get isDesktop(): boolean {\n return this.mediaService.getMedia() === Media.Desktop;\n }\n\n /**\n * @internal\n */\n ngOnChanges(changes: SimpleChanges) {\n const store = changes.store;\n if (store && store.currentValue !== store.previousValue) {\n if (this.watcher !== undefined) {\n this.watcher.destroy();\n }\n this.watcher = new EntityStoreWatcher(this.store(), this.cdRef);\n }\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.watcher.destroy();\n }\n\n /**\n * Invoke the action handler\n * @internal\n */\n onTriggerAction(action: Action) {\n const args = action.args || [];\n action.handler(...args);\n }\n\n scrollDown() {\n this.elRef.nativeElement.scrollBy(0, 52);\n }\n\n scrollUp() {\n this.elRef.nativeElement.scrollBy(0, -52);\n }\n}\n","@if (heightCondition && positionConditionTop && isDesktop) {\n <div id=\"topChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollUp' | translate\"\n (click)=\"scrollUp()\"\n >\n <mat-icon>expand_less</mat-icon>\n </button>\n </div>\n}\n@if (mode() === actionbarMode.Dock) {\n <mat-list matListItemIcon>\n @if (withToggleButton()) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"false\"\n [withIcon]=\"true\"\n [color]=\"color()\"\n [disabled]=\"store().view.empty\"\n [action]=\"toggleCollapseAction\"\n (trigger)=\"onTriggerAction(toggleCollapseAction)\"\n />\n }\n @if (!collapsed; as action) {\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [withTooltip]=\"withTooltip()\"\n [color]=\"color()\"\n [disabled]=\"store().state.get(action).disabled\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n }\n </mat-list>\n}\n\n@if (heightCondition && positionConditionLow && isDesktop) {\n <div id=\"lowChevron\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.scrollDown' | translate\"\n (click)=\"scrollDown()\"\n >\n <mat-icon>expand_more</mat-icon>\n </button>\n </div>\n}\n\n@if (mode() === actionbarMode.Overlay) {\n <div>\n <button\n class=\"buttonOverlay\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.common.actionbar.icon' | translate\"\n [matMenuTriggerFor]=\"actionbarMenu\"\n [disabled]=\"store().view.empty\"\n [color]=\"iconColor()\"\n >\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n <mat-menu\n #actionbarMenu=\"matMenu\"\n class=\"igo-compact-menu igo-no-min-width-menu\"\n overlapTrigger=\"true\"\n [xPosition]=\"xPosition()\"\n [yPosition]=\"yPosition()\"\n [class]=\"overlayClass\"\n >\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n }\n </mat-list>\n </mat-menu>\n </div>\n}\n@if (mode() === actionbarMode.Context) {\n <mat-card class=\"context-menu-card mat-elevation-z4\">\n <mat-list>\n @for (action of store().view.all$() | async; track action) {\n <igo-actionbar-item\n color=\"accent\"\n [withTitle]=\"withTitle()\"\n [withIcon]=\"withIcon()\"\n [color]=\"color()\"\n [action]=\"action\"\n (trigger)=\"onTriggerAction(action)\"\n />\n <br />\n }\n </mat-list>\n </mat-card>\n}\n","import { NgModule } from '@angular/core';\n\nimport { ActionbarComponent } from './actionbar/actionbar.component';\n\n/**\n * @deprecated import the ActionbarComponent directly\n */\n@NgModule({\n imports: [ActionbarComponent],\n exports: [ActionbarComponent]\n})\nexport class IgoActionModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ActionbarComponent } from './actionbar.component';\n\n/**\n * @deprecated import the ActionbarComponent directly\n */\n@NgModule({\n imports: [ActionbarComponent],\n exports: [ActionbarComponent]\n})\nexport class IgoActionbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i3","i4","i5","i7"],"mappings":"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"}
|