@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.
Files changed (89) hide show
  1. package/action/index.d.ts +22 -22
  2. package/clickout/index.d.ts +2 -2
  3. package/collapsible/index.d.ts +6 -10
  4. package/color/index.d.ts +3 -4
  5. package/context-menu/index.d.ts +9 -9
  6. package/datepicker/index.d.ts +65 -0
  7. package/drag-drop/index.d.ts +21 -23
  8. package/dynamic-component/index.d.ts +7 -7
  9. package/entity/index.d.ts +45 -48
  10. package/fesm2022/igo2-common-action.mjs +60 -97
  11. package/fesm2022/igo2-common-action.mjs.map +1 -1
  12. package/fesm2022/igo2-common-backdrop.mjs +7 -7
  13. package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
  14. package/fesm2022/igo2-common-badge.mjs +7 -7
  15. package/fesm2022/igo2-common-badge.mjs.map +1 -1
  16. package/fesm2022/igo2-common-clickout.mjs +10 -12
  17. package/fesm2022/igo2-common-clickout.mjs.map +1 -1
  18. package/fesm2022/igo2-common-clone.mjs +7 -7
  19. package/fesm2022/igo2-common-collapsible.mjs +18 -39
  20. package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
  21. package/fesm2022/igo2-common-color.mjs +14 -18
  22. package/fesm2022/igo2-common-color.mjs.map +1 -1
  23. package/fesm2022/igo2-common-confirm-dialog.mjs +10 -10
  24. package/fesm2022/igo2-common-context-menu.mjs +22 -31
  25. package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
  26. package/fesm2022/igo2-common-custom-html.mjs +10 -10
  27. package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
  28. package/fesm2022/igo2-common-datepicker.mjs +316 -0
  29. package/fesm2022/igo2-common-datepicker.mjs.map +1 -0
  30. package/fesm2022/igo2-common-dom.mjs +7 -7
  31. package/fesm2022/igo2-common-drag-drop.mjs +59 -75
  32. package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
  33. package/fesm2022/igo2-common-dynamic-component.mjs +34 -52
  34. package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
  35. package/fesm2022/igo2-common-entity.mjs +154 -206
  36. package/fesm2022/igo2-common-entity.mjs.map +1 -1
  37. package/fesm2022/igo2-common-flexible.mjs +13 -16
  38. package/fesm2022/igo2-common-flexible.mjs.map +1 -1
  39. package/fesm2022/igo2-common-form.mjs +120 -174
  40. package/fesm2022/igo2-common-form.mjs.map +1 -1
  41. package/fesm2022/igo2-common-home-button.mjs +11 -12
  42. package/fesm2022/igo2-common-home-button.mjs.map +1 -1
  43. package/fesm2022/igo2-common-icon.mjs +18 -24
  44. package/fesm2022/igo2-common-icon.mjs.map +1 -1
  45. package/fesm2022/igo2-common-image.mjs +16 -20
  46. package/fesm2022/igo2-common-image.mjs.map +1 -1
  47. package/fesm2022/igo2-common-interactive-tour.mjs +28 -33
  48. package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
  49. package/fesm2022/igo2-common-json-dialog.mjs +11 -11
  50. package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
  51. package/fesm2022/igo2-common-keyvalue.mjs +7 -7
  52. package/fesm2022/igo2-common-list.mjs +49 -66
  53. package/fesm2022/igo2-common-list.mjs.map +1 -1
  54. package/fesm2022/igo2-common-panel.mjs +15 -28
  55. package/fesm2022/igo2-common-panel.mjs.map +1 -1
  56. package/fesm2022/igo2-common-resizable-bar.mjs +25 -32
  57. package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
  58. package/fesm2022/igo2-common-select-value-dialog.mjs +10 -10
  59. package/fesm2022/igo2-common-sidenav.mjs +7 -7
  60. package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
  61. package/fesm2022/igo2-common-spinner.mjs +11 -11
  62. package/fesm2022/igo2-common-spinner.mjs.map +1 -1
  63. package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
  64. package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
  65. package/fesm2022/igo2-common-table.mjs +57 -87
  66. package/fesm2022/igo2-common-table.mjs.map +1 -1
  67. package/fesm2022/igo2-common-timepicker.mjs +105 -0
  68. package/fesm2022/igo2-common-timepicker.mjs.map +1 -0
  69. package/fesm2022/igo2-common-tool.mjs +29 -35
  70. package/fesm2022/igo2-common-tool.mjs.map +1 -1
  71. package/fesm2022/igo2-common-widget.mjs +27 -36
  72. package/fesm2022/igo2-common-widget.mjs.map +1 -1
  73. package/fesm2022/igo2-common-workspace.mjs +34 -44
  74. package/fesm2022/igo2-common-workspace.mjs.map +1 -1
  75. package/flexible/index.d.ts +2 -2
  76. package/form/index.d.ts +31 -33
  77. package/home-button/index.d.ts +1 -2
  78. package/icon/index.d.ts +4 -5
  79. package/image/index.d.ts +3 -3
  80. package/interactive-tour/index.d.ts +5 -5
  81. package/list/index.d.ts +23 -23
  82. package/package.json +11 -3
  83. package/panel/index.d.ts +4 -6
  84. package/resizable-bar/index.d.ts +11 -13
  85. package/table/index.d.ts +13 -19
  86. package/timepicker/index.d.ts +33 -0
  87. package/tool/index.d.ts +4 -4
  88. package/widget/index.d.ts +9 -9
  89. 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 { EventEmitter, Output, Input, ChangeDetectionStrategy, Component, inject, ElementRef, ChangeDetectorRef, HostBinding, NgModule } from '@angular/core';
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 = new EventEmitter();
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
- if (this.action.ngClass !== undefined) {
108
- this.ngClass$$ = this.action
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(this.action.checkCondition)) {
113
- this.checkCondition$$ = this.action.checkCondition.subscribe((checkCondition) => this.updateCheckCondition(checkCondition));
113
+ if (isObservable(action.checkCondition)) {
114
+ this.checkCondition$$ = action.checkCondition.subscribe((checkCondition) => this.updateCheckCondition(checkCondition));
114
115
  }
115
116
  else {
116
- this.updateCheckCondition(this.action.checkCondition);
117
+ this.updateCheckCondition(action.checkCondition);
117
118
  }
118
- if (isObservable(this.action.tooltip)) {
119
- this.tooltip$$ = this.action.tooltip.subscribe((tooltip) => this.updateTooltip(tooltip));
119
+ if (isObservable(action.tooltip)) {
120
+ this.tooltip$$ = action.tooltip.subscribe((tooltip) => this.updateTooltip(tooltip));
120
121
  }
121
122
  else {
122
- this.updateTooltip(this.action.tooltip);
123
+ this.updateTooltip(action.tooltip);
123
124
  }
124
- if (this.action.availability !== undefined) {
125
- this.availability$$ = this.action
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 (this.action.display !== undefined) {
131
- this.display$$ = this.action
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.4", ngImport: i0, type: ActionbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
182
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ActionbarItemComponent, isStandalone: true, selector: "igo-actionbar-item", inputs: { action: "action", color: "color", withTitle: "withTitle", withIcon: "withIcon", withTooltip: "withTooltip", disabled: "disabled", noDisplay: "noDisplay" }, 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]=\"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", 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 });
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.4", ngImport: i0, type: ActionbarItemComponent, decorators: [{
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\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", 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"] }]
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.4", ngImport: i0, type: ActionbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
401
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: ActionbarComponent, isStandalone: true, selector: "igo-actionbar", inputs: { store: "store", mode: "mode", withToggleButton: "withToggleButton", horizontal: "horizontal", color: "color", iconColor: "iconColor", withTitle: "withTitle", withTooltip: "withTooltip", scrollActive: "scrollActive", withIcon: "withIcon", icon: "icon", xPosition: "xPosition", yPosition: "yPosition", overlayClass: "overlayClass" }, 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 </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", 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 });
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.4", ngImport: i0, type: ActionbarComponent, decorators: [{
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 >\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", 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"] }]
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.4", ngImport: i0, type: IgoActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
463
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: IgoActionModule, imports: [ActionbarComponent], exports: [ActionbarComponent] });
464
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoActionModule, imports: [ActionbarComponent] });
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.4", ngImport: i0, type: IgoActionModule, decorators: [{
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.4", ngImport: i0, type: IgoActionbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
479
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.4", ngImport: i0, type: IgoActionbarModule, imports: [ActionbarComponent], exports: [ActionbarComponent] });
480
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: IgoActionbarModule, imports: [ActionbarComponent] });
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.4", ngImport: i0, type: IgoActionbarModule, decorators: [{
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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"}