@igo2/common 20.1.1 → 21.0.0-next.2

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 (104) hide show
  1. package/fesm2022/igo2-common-action.mjs +32 -32
  2. package/fesm2022/igo2-common-action.mjs.map +1 -1
  3. package/fesm2022/igo2-common-backdrop.mjs +8 -9
  4. package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
  5. package/fesm2022/igo2-common-badge.mjs +7 -8
  6. package/fesm2022/igo2-common-badge.mjs.map +1 -1
  7. package/fesm2022/igo2-common-clickout.mjs +11 -11
  8. package/fesm2022/igo2-common-clickout.mjs.map +1 -1
  9. package/fesm2022/igo2-common-clone.mjs +8 -9
  10. package/fesm2022/igo2-common-clone.mjs.map +1 -1
  11. package/fesm2022/igo2-common-collapsible.mjs +13 -14
  12. package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
  13. package/fesm2022/igo2-common-color.mjs +9 -9
  14. package/fesm2022/igo2-common-color.mjs.map +1 -1
  15. package/fesm2022/igo2-common-confirm-dialog.mjs +10 -10
  16. package/fesm2022/igo2-common-context-menu.mjs +20 -26
  17. package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
  18. package/fesm2022/igo2-common-custom-html.mjs +11 -12
  19. package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
  20. package/fesm2022/igo2-common-datepicker.mjs +13 -13
  21. package/fesm2022/igo2-common-datepicker.mjs.map +1 -1
  22. package/fesm2022/igo2-common-dom.mjs +7 -7
  23. package/fesm2022/igo2-common-drag-drop.mjs +24 -28
  24. package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
  25. package/fesm2022/igo2-common-dynamic-component.mjs +19 -19
  26. package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
  27. package/fesm2022/igo2-common-entity.mjs +61 -61
  28. package/fesm2022/igo2-common-entity.mjs.map +1 -1
  29. package/fesm2022/igo2-common-flexible.mjs +9 -9
  30. package/fesm2022/igo2-common-flexible.mjs.map +1 -1
  31. package/fesm2022/igo2-common-form.mjs +75 -75
  32. package/fesm2022/igo2-common-form.mjs.map +1 -1
  33. package/fesm2022/igo2-common-home-button.mjs +7 -7
  34. package/fesm2022/igo2-common-icon.mjs +8 -8
  35. package/fesm2022/igo2-common-icon.mjs.map +1 -1
  36. package/fesm2022/igo2-common-image.mjs +14 -16
  37. package/fesm2022/igo2-common-image.mjs.map +1 -1
  38. package/fesm2022/igo2-common-interactive-tour.mjs +16 -16
  39. package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
  40. package/fesm2022/igo2-common-json-dialog.mjs +10 -10
  41. package/fesm2022/igo2-common-keyvalue.mjs +8 -9
  42. package/fesm2022/igo2-common-keyvalue.mjs.map +1 -1
  43. package/fesm2022/igo2-common-list.mjs +17 -25
  44. package/fesm2022/igo2-common-list.mjs.map +1 -1
  45. package/fesm2022/igo2-common-panel.mjs +12 -13
  46. package/fesm2022/igo2-common-panel.mjs.map +1 -1
  47. package/fesm2022/igo2-common-resizable-bar.mjs +9 -13
  48. package/fesm2022/igo2-common-resizable-bar.mjs.map +1 -1
  49. package/fesm2022/igo2-common-select-value-dialog.mjs +10 -10
  50. package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -1
  51. package/fesm2022/igo2-common-sidenav.mjs +14 -19
  52. package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
  53. package/fesm2022/igo2-common-spinner.mjs +13 -14
  54. package/fesm2022/igo2-common-spinner.mjs.map +1 -1
  55. package/fesm2022/igo2-common-stop-propagation.mjs +12 -14
  56. package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
  57. package/fesm2022/igo2-common-table.mjs +12 -12
  58. package/fesm2022/igo2-common-table.mjs.map +1 -1
  59. package/fesm2022/igo2-common-timepicker.mjs +9 -9
  60. package/fesm2022/igo2-common-timepicker.mjs.map +1 -1
  61. package/fesm2022/igo2-common-tool.mjs +19 -19
  62. package/fesm2022/igo2-common-tool.mjs.map +1 -1
  63. package/fesm2022/igo2-common-widget.mjs +17 -17
  64. package/fesm2022/igo2-common-widget.mjs.map +1 -1
  65. package/fesm2022/igo2-common-workspace.mjs +21 -21
  66. package/fesm2022/igo2-common-workspace.mjs.map +1 -1
  67. package/package.json +60 -59
  68. package/{clickout/index.d.ts → types/igo2-common-clickout.d.ts} +1 -1
  69. package/{drag-drop/index.d.ts → types/igo2-common-drag-drop.d.ts} +1 -1
  70. package/{entity/index.d.ts → types/igo2-common-entity.d.ts} +1 -1
  71. package/{table/index.d.ts → types/igo2-common-table.d.ts} +2 -2
  72. /package/{action/index.d.ts → types/igo2-common-action.d.ts} +0 -0
  73. /package/{backdrop/index.d.ts → types/igo2-common-backdrop.d.ts} +0 -0
  74. /package/{badge/index.d.ts → types/igo2-common-badge.d.ts} +0 -0
  75. /package/{clone/index.d.ts → types/igo2-common-clone.d.ts} +0 -0
  76. /package/{collapsible/index.d.ts → types/igo2-common-collapsible.d.ts} +0 -0
  77. /package/{color/index.d.ts → types/igo2-common-color.d.ts} +0 -0
  78. /package/{confirm-dialog/index.d.ts → types/igo2-common-confirm-dialog.d.ts} +0 -0
  79. /package/{context-menu/index.d.ts → types/igo2-common-context-menu.d.ts} +0 -0
  80. /package/{custom-html/index.d.ts → types/igo2-common-custom-html.d.ts} +0 -0
  81. /package/{datepicker/index.d.ts → types/igo2-common-datepicker.d.ts} +0 -0
  82. /package/{dom/index.d.ts → types/igo2-common-dom.d.ts} +0 -0
  83. /package/{dynamic-component/index.d.ts → types/igo2-common-dynamic-component.d.ts} +0 -0
  84. /package/{environment/index.d.ts → types/igo2-common-environment.d.ts} +0 -0
  85. /package/{flexible/index.d.ts → types/igo2-common-flexible.d.ts} +0 -0
  86. /package/{form/index.d.ts → types/igo2-common-form.d.ts} +0 -0
  87. /package/{home-button/index.d.ts → types/igo2-common-home-button.d.ts} +0 -0
  88. /package/{icon/index.d.ts → types/igo2-common-icon.d.ts} +0 -0
  89. /package/{image/index.d.ts → types/igo2-common-image.d.ts} +0 -0
  90. /package/{interactive-tour/index.d.ts → types/igo2-common-interactive-tour.d.ts} +0 -0
  91. /package/{json-dialog/index.d.ts → types/igo2-common-json-dialog.d.ts} +0 -0
  92. /package/{keyvalue/index.d.ts → types/igo2-common-keyvalue.d.ts} +0 -0
  93. /package/{list/index.d.ts → types/igo2-common-list.d.ts} +0 -0
  94. /package/{panel/index.d.ts → types/igo2-common-panel.d.ts} +0 -0
  95. /package/{resizable-bar/index.d.ts → types/igo2-common-resizable-bar.d.ts} +0 -0
  96. /package/{select-value-dialog/index.d.ts → types/igo2-common-select-value-dialog.d.ts} +0 -0
  97. /package/{sidenav/index.d.ts → types/igo2-common-sidenav.d.ts} +0 -0
  98. /package/{spinner/index.d.ts → types/igo2-common-spinner.d.ts} +0 -0
  99. /package/{stop-propagation/index.d.ts → types/igo2-common-stop-propagation.d.ts} +0 -0
  100. /package/{timepicker/index.d.ts → types/igo2-common-timepicker.d.ts} +0 -0
  101. /package/{tool/index.d.ts → types/igo2-common-tool.d.ts} +0 -0
  102. /package/{widget/index.d.ts → types/igo2-common-widget.d.ts} +0 -0
  103. /package/{workspace/index.d.ts → types/igo2-common-workspace.d.ts} +0 -0
  104. /package/{index.d.ts → types/igo2-common.d.ts} +0 -0
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Injectable, input, HostBinding, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { EntityStore } from '@igo2/common/entity';
4
4
  import { BehaviorSubject } from 'rxjs';
5
- import { NgClass, AsyncPipe } from '@angular/common';
5
+ import { AsyncPipe } from '@angular/common';
6
6
  import { ActionStore, ActionbarComponent } from '@igo2/common/action';
7
7
  import { DynamicOutletComponent } from '@igo2/common/dynamic-component';
8
8
  import { map } from 'rxjs/operators';
@@ -228,10 +228,10 @@ class ToolService {
228
228
  getTools() {
229
229
  return Object.values(ToolService.tools);
230
230
  }
231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ToolService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
232
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ToolService, providedIn: 'root' });
231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ToolService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
232
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ToolService, providedIn: 'root' });
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ToolService, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ToolService, decorators: [{
235
235
  type: Injectable,
236
236
  args: [{
237
237
  providedIn: 'root'
@@ -300,15 +300,15 @@ class ToolboxComponent {
300
300
  /**
301
301
  * Toolbox
302
302
  */
303
- toolbox = input(undefined, ...(ngDevMode ? [{ debugName: "toolbox" }] : []));
303
+ toolbox = input(undefined, ...(ngDevMode ? [{ debugName: "toolbox" }] : /* istanbul ignore next */ []));
304
304
  /**
305
305
  * Whether the toolbox should animate the first tool entering
306
306
  */
307
- animate = input(false, ...(ngDevMode ? [{ debugName: "animate" }] : []));
307
+ animate = input(false, ...(ngDevMode ? [{ debugName: "animate" }] : /* istanbul ignore next */ []));
308
308
  /**
309
309
  * Color of Toolbox
310
310
  */
311
- color = input('white', ...(ngDevMode ? [{ debugName: "color" }] : []));
311
+ color = input('white', ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
312
312
  /**
313
313
  * @ignore
314
314
  */
@@ -461,12 +461,12 @@ class ToolboxComponent {
461
461
  this.animating$$.unsubscribe();
462
462
  }
463
463
  }
464
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
465
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: ToolboxComponent, isStandalone: true, selector: "igo-toolbox", inputs: { toolbox: { classPropertyName: "toolbox", publicName: "toolbox", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.color-grey": "this.classColorGrey", "class.color-primary": "this.classColorPrimary" } }, ngImport: i0, template: "@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"], dependencies: [{ kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [toolSlideInOut()], changeDetection: i0.ChangeDetectionStrategy.OnPush });
464
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
465
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: ToolboxComponent, isStandalone: true, selector: "igo-toolbox", inputs: { toolbox: { classPropertyName: "toolbox", publicName: "toolbox", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.color-grey": "this.classColorGrey", "class.color-primary": "this.classColorPrimary" } }, ngImport: i0, template: "@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [class]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"], dependencies: [{ kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [toolSlideInOut()], changeDetection: i0.ChangeDetectionStrategy.OnPush });
466
466
  }
467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ToolboxComponent, decorators: [{
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: ToolboxComponent, decorators: [{
468
468
  type: Component,
469
- args: [{ selector: 'igo-toolbox', animations: [toolSlideInOut()], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ActionbarComponent, NgClass, DynamicOutletComponent, AsyncPipe], template: "@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"] }]
469
+ args: [{ selector: 'igo-toolbox', animations: [toolSlideInOut()], changeDetection: ChangeDetectionStrategy.OnPush, imports: [ActionbarComponent, DynamicOutletComponent, AsyncPipe], template: "@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [class]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait)and (max-width:599px),only screen and (orientation:landscape)and (max-width:959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}:host.color-primary igo-actionbar:not(.with-title){color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container)}:host.color-primary igo-actionbar:not(.with-title) ::ng-deep button{color:var(--mat-sys-on-primary)}:host.color-primary igo-actionbar:not(.with-title) #lowChevron,:host.color-primary igo-actionbar:not(.with-title) #topChevron{background-color:var(--mat-sys-primary-container);color:#fff}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title){box-shadow:unset;background-color:#737475}:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #lowChevron,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) #topChevron{background-color:#737475;color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar{color:#fff}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar:hover{color:#000}:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-primary>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.tool-activated,:host ::ng-deep .color-grey>igo-actionbar:not(.with-title) mat-list.mat-mdc-list-base .mat-mdc-list-item.mdc-list-item--with-leading-avatar.children-tool-activated{color:var(--mat-sys-on-primary);background-color:var(--mat-sys-on-primary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#lowChevron:hover,:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list>#topChevron:hover{background-color:var(--mat-sys-secondary-container);color:#000}:host ::ng-deep>igo-actionbar:not(.with-title)>mat-list mat-list-item{color:var(--mat-sys-on-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover{color:var(--mat-sys-on-primary-container);background-color:var(--mat-sys-primary-container)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item:hover button{color:var(--mat-sys-on-primary-container)!important}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated{color:var(--mat-sys-on-background);background-color:var(--mat-sys-on-primary)}:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.tool-activated button,:host ::ng-deep>igo-actionbar mat-list.mat-mdc-list-base igo-actionbar-item mat-list-item.children-tool-activated button{color:var(--mat-sys-on-background)!important;cursor:default}\n"] }]
470
470
  }], propDecorators: { toolbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbox", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], classColorGrey: [{
471
471
  type: HostBinding,
472
472
  args: ['class.color-grey']
@@ -479,11 +479,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
479
479
  * @deprecated import the ToolboxComponent directly
480
480
  */
481
481
  class IgoToolboxModule {
482
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
483
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent], exports: [ToolboxComponent] });
484
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent] });
482
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
483
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent], exports: [ToolboxComponent] });
484
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent] });
485
485
  }
486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolboxModule, decorators: [{
486
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolboxModule, decorators: [{
487
487
  type: NgModule,
488
488
  args: [{
489
489
  imports: [ToolboxComponent],
@@ -504,11 +504,11 @@ class IgoToolModule {
504
504
  providers: [ToolService]
505
505
  };
506
506
  }
507
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
508
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoToolModule, exports: [IgoToolboxModule] });
509
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolModule, imports: [IgoToolboxModule] });
507
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
508
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoToolModule, exports: [IgoToolboxModule] });
509
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolModule, imports: [IgoToolboxModule] });
510
510
  }
511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoToolModule, decorators: [{
511
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoToolModule, decorators: [{
512
512
  type: NgModule,
513
513
  args: [{
514
514
  exports: [IgoToolboxModule]
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-common-tool.mjs","sources":["../../../packages/common/tool/src/shared/toolbox.ts","../../../packages/common/tool/src/shared/tool.service.ts","../../../packages/common/tool/src/shared/tool-component.ts","../../../packages/common/tool/src/toolbox/toolbox.animation.ts","../../../packages/common/tool/src/toolbox/toolbox.component.ts","../../../packages/common/tool/src/toolbox/toolbox.component.html","../../../packages/common/tool/src/toolbox/toolbox.module.ts","../../../packages/common/tool/src/tool.module.ts","../../../packages/common/tool/src/igo2-common-tool.ts"],"sourcesContent":["import { EntityRecord, EntityStore } from '@igo2/common/entity';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { Tool, ToolboxOptions } from './tool.interface';\n\n/**\n * Service where all available tools and their component are registered.\n */\nexport class Toolbox {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\n\n /**\n * Observable of the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Active tool history. Useful for activating the previous tool.\n */\n private activeToolHistory: string[] = [];\n private previousToolName: string;\n private currentToolName: string;\n\n /**\n * Tool store\n */\n private store = new EntityStore<Tool>([], {\n getKey: (tool: Tool) => tool.name\n });\n\n get tools$(): BehaviorSubject<Tool[]> {\n return this.store.entities$;\n }\n\n constructor(private options: ToolboxOptions = {}) {\n this.setToolbar(options.toolbar);\n this.initStore();\n }\n\n /**\n * Destroy the toolbox\n */\n destroy() {\n this.activeTool$$.unsubscribe();\n this.store.destroy();\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return this.store.get(name);\n }\n\n /**\n * Return all tools\n * @returns Array of tools\n */\n getTools(): Tool[] {\n return this.store.all();\n }\n\n /**\n * Set tool configurations\n * @param tools Tools\n */\n setTools(tools: Tool[]) {\n this.store.load(tools);\n }\n\n /**\n * Get toolbar\n * @returns Toolbar value\n */\n getToolbar(): string[] {\n return this.toolbar$.getValue();\n }\n\n /**\n * Set toolbar\n * @param toolbar A list of tool names\n */\n setToolbar(toolbar: string[]) {\n this.toolbar$.next(toolbar || []);\n }\n\n /**\n * Activate a tool (and deactivate other tools)\n * @param name Tool name\n * @param options Tool options\n */\n activateTool(name: string, options: Record<string, any> = {}) {\n const tool = this.getTool(name);\n if (tool === undefined) {\n return;\n }\n\n this.store.state.update(tool, { active: true, options }, true);\n }\n\n /**\n * Activate the previous tool, if any\n */\n activatePreviousTool() {\n if (this.activeToolHistory.length <= 1) {\n this.deactivateTool();\n return;\n }\n const [previous] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n getCurrentPreviousToolName(): [string, string] {\n return [this.previousToolName, this.currentToolName];\n }\n\n /**\n * Activate the tool below, if any\n */\n /* activateBelowTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index + 1] !== undefined) {\n this.deactivateTool();\n const below = arrayTools[index + 1];\n this.activateTool(below);\n } else {\n this.deactivateTool();\n const below = arrayTools[0];\n this.activateTool(below);\n }\n } */\n\n /**\n * Activate the tool above, if any\n */\n /* activateAboveTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index - 1] !== undefined) {\n this.deactivateTool();\n const above = arrayTools[index - 1];\n this.activateTool(above);\n } else {\n this.deactivateTool();\n const above = arrayTools[arrayTools.length - 1];\n this.activateTool(above);\n }\n } */\n\n /**\n * Deactivate the active tool\n */\n deactivateTool() {\n this.clearActiveToolHistory();\n this.store.state.updateAll({ active: false });\n }\n\n /**\n * Initialize the tool store and start observing the active tool\n */\n private initStore() {\n this.store = new EntityStore<Tool>([], {\n getKey: (entity: Tool) => entity.name\n });\n\n this.activeTool$$ = this.store.stateView\n .firstBy$((record: EntityRecord<Tool>) => record.state.active === true)\n .subscribe((record: EntityRecord<Tool>) => {\n if (record === undefined) {\n this.setActiveTool(undefined);\n return;\n }\n\n const tool = record.entity;\n const options = Object.assign(\n {},\n tool.options || {},\n record.state.options || {}\n );\n this.setActiveTool(Object.assign({}, tool, { options }));\n });\n }\n\n /**\n * Set the active tool and update the tool history\n * @param tool Tool\n */\n private setActiveTool(tool: Tool | undefined) {\n this.activeTool$.next(tool);\n if (tool === undefined) {\n this.clearActiveToolHistory();\n } else {\n this.activeToolHistory = this.activeToolHistory\n .filter((name: string) => name !== tool.name)\n .concat([tool.name]);\n\n this.previousToolName = this.currentToolName;\n this.currentToolName =\n this.activeToolHistory[this.activeToolHistory.length - 1];\n }\n }\n\n /**\n * Clear the tool history\n */\n private clearActiveToolHistory() {\n this.activeToolHistory = [];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Tool } from './tool.interface';\nimport { Toolbox } from './toolbox';\n\n/**\n * Service where runtime tool configurations are registered\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolService {\n static tools: Record<string, Tool> = {};\n\n /**\n * Toolbox that holds main tools\n */\n public toolbox: Toolbox = new Toolbox();\n\n static register(tool: Tool) {\n ToolService.tools[tool.name] = tool;\n }\n\n constructor() {\n this.toolbox.setTools(this.getTools());\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return ToolService.tools[name];\n }\n\n /**\n * Return all tools\n * @returns tTols\n */\n getTools(): Tool[] {\n return Object.values(ToolService.tools);\n }\n}\n","import { Tool } from './tool.interface';\nimport { ToolService } from './tool.service';\n\nexport function ToolComponent(tool: Partial<Tool>): (cls: any) => any {\n return (compType: any) => {\n ToolService.register(\n Object.assign({}, tool, {\n component: compType\n } as Tool)\n );\n };\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translate3d(0, 0, 0)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n OnDestroy,\n OnInit,\n input\n} from '@angular/core';\n\nimport { Action, ActionStore, ActionbarComponent } from '@igo2/common/action';\nimport { DynamicOutletComponent } from '@igo2/common/dynamic-component';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Tool } from '../shared/tool.interface';\nimport { Toolbox } from '../shared/toolbox';\nimport { ToolboxColor } from '../shared/toolbox.enums';\nimport { toolSlideInOut } from './toolbox.animation';\n\n@Component({\n selector: 'igo-toolbox',\n templateUrl: 'toolbox.component.html',\n styleUrls: ['toolbox.component.scss'],\n animations: [toolSlideInOut()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ActionbarComponent, NgClass, DynamicOutletComponent, AsyncPipe]\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n get isActive(): boolean {\n return !!this.activeTool$.value;\n }\n\n /**\n * Store of actions that toggle tools\n */\n actionStore: ActionStore = new ActionStore([]);\n\n /**\n * Observable of he anmation state\n */\n animation$ = new BehaviorSubject<string>('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\n\n /**\n * Whether the Toolbar should display actions' titles\n */\n toolbarWithTitle$: Observable<boolean> = this.activeTool$.pipe(\n map((tool: Tool | undefined) => tool === undefined)\n );\n\n /**\n * Subscription to the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Subscription to the toolbar\n */\n private toolbar$$: Subscription;\n\n /**\n * Observable of the ongoing animation. This is useful when\n * multiple animations are triggered at once i.e. when the user clicks\n * too fast on different actions\n */\n private animating$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Subscription to the ongoing animation\n */\n private animating$$: Subscription;\n\n /**\n * Toolbox\n */\n readonly toolbox = input<Toolbox>(undefined);\n\n /**\n * Whether the toolbox should animate the first tool entering\n */\n readonly animate = input(false);\n\n /**\n * Color of Toolbox\n */\n readonly color = input<ToolboxColor>('white');\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color() === 'grey';\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color() === 'primary';\n }\n\n /**\n * Initialize the toolbar and subscribe to the active tool\n * @internal\n */\n ngOnInit() {\n this.toolbar$$ = this.toolbox().toolbar$.subscribe((toolbar: string[]) =>\n this.onToolbarChange(toolbar)\n );\n this.activeTool$$ = this.toolbox().activeTool$.subscribe((tool: Tool) =>\n this.onActiveToolChange(tool)\n );\n }\n\n /**\n * Unsubscribe to the active tool and destroy the action store\n * @internal\n */\n ngOnDestroy() {\n this.toolbar$$.unsubscribe();\n this.activeTool$$.unsubscribe();\n this.actionStore.destroy();\n }\n\n /**\n * Track the starting animation\n * @internal\n */\n onAnimationStart() {\n this.animating$.next(true);\n }\n\n /**\n * Untrack the completed animation\n * @internal\n */\n onAnimationComplete() {\n this.animating$.next(false);\n }\n\n /**\n * Return a tool's inputs\n * @param tool Tool\n * @returns Tool inputs\n * @internal\n */\n getToolInputs(tool: Tool): Record<string, any> {\n return tool.options || {};\n }\n\n /**\n * Initialize an action store\n * @param toolbar Toolbar\n */\n private onToolbarChange(toolbar: string[]) {\n this.setToolbar(toolbar);\n }\n\n /**\n * Activate a tool and trigger an animation or not\n * @param tool Tool to activate\n */\n private onActiveToolChange(tool: Tool) {\n if (!this.animate()) {\n this.setActiveTool(tool);\n return;\n }\n this.onAnimate(() => this.setActiveTool(tool));\n }\n\n /**\n * Set the active tool\n * @param tool Tool to activate\n */\n private setActiveTool(tool: Tool | undefined) {\n if (tool === undefined) {\n this.actionStore.state.updateAll({ active: false });\n } else {\n const action = this.actionStore.get(tool.name);\n if (action !== undefined) {\n this.actionStore.state.update(action, { active: true }, true);\n }\n }\n\n this.activeTool$.next(tool);\n if (this.animate()) {\n this.animation$.next('enter');\n }\n }\n\n /**\n * Initialize the toolbar\n */\n private setToolbar(toolbar: string[]) {\n const actions = toolbar.reduce((acc: Action[], toolName: string) => {\n const tool = this.toolbox().getTool(toolName);\n if (tool === undefined) {\n return acc;\n }\n\n acc.push({\n id: tool.name,\n title: tool.title,\n icon: tool.icon,\n tooltip: tool.tooltip,\n args: [tool, this.toolbox()],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool) => {\n return this.toolbox().activeTool$.pipe(\n map((activeTool: Tool) => {\n let toolActivated = false;\n if (activeTool !== undefined && _tool.name === activeTool.name) {\n toolActivated = true;\n }\n\n let childrenToolActivated = false;\n if (\n activeTool !== undefined &&\n _tool.name === activeTool.parent\n ) {\n childrenToolActivated = true;\n }\n\n return {\n 'tool-activated': toolActivated,\n 'children-tool-activated': childrenToolActivated\n };\n })\n );\n }\n });\n return acc;\n }, []);\n this.actionStore.load(actions);\n this.toolbar$.next(toolbar);\n }\n\n /**\n * Observe the ongoing animation and ignore any incoming animation\n * while one is still ongoing.\n * @param callback Callback to execute when the animation completes\n */\n private onAnimate(callback: () => void) {\n this.unAnimate();\n this.animating$$ = this.animating$.subscribe((animation: boolean) => {\n if (!animation) {\n callback.call(this);\n this.unAnimate();\n }\n });\n }\n\n /**\n * Stop observing an animation when it's complete\n */\n private unAnimate() {\n if (this.animating$$) {\n this.animating$$.unsubscribe();\n }\n }\n}\n","@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n imports: [ToolboxComponent],\n exports: [ToolboxComponent]\n})\nexport class IgoToolboxModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n exports: [IgoToolboxModule]\n})\nexport class IgoToolModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [ToolService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igo2-common-tool.mjs","sources":["../../../packages/common/tool/src/shared/toolbox.ts","../../../packages/common/tool/src/shared/tool.service.ts","../../../packages/common/tool/src/shared/tool-component.ts","../../../packages/common/tool/src/toolbox/toolbox.animation.ts","../../../packages/common/tool/src/toolbox/toolbox.component.ts","../../../packages/common/tool/src/toolbox/toolbox.component.html","../../../packages/common/tool/src/toolbox/toolbox.module.ts","../../../packages/common/tool/src/tool.module.ts","../../../packages/common/tool/src/igo2-common-tool.ts"],"sourcesContent":["import { EntityRecord, EntityStore } from '@igo2/common/entity';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport { Tool, ToolboxOptions } from './tool.interface';\n\n/**\n * Service where all available tools and their component are registered.\n */\nexport class Toolbox {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n /**\n * Ordered list of tool names to display in a toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\n\n /**\n * Observable of the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Active tool history. Useful for activating the previous tool.\n */\n private activeToolHistory: string[] = [];\n private previousToolName: string;\n private currentToolName: string;\n\n /**\n * Tool store\n */\n private store = new EntityStore<Tool>([], {\n getKey: (tool: Tool) => tool.name\n });\n\n get tools$(): BehaviorSubject<Tool[]> {\n return this.store.entities$;\n }\n\n constructor(private options: ToolboxOptions = {}) {\n this.setToolbar(options.toolbar);\n this.initStore();\n }\n\n /**\n * Destroy the toolbox\n */\n destroy() {\n this.activeTool$$.unsubscribe();\n this.store.destroy();\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return this.store.get(name);\n }\n\n /**\n * Return all tools\n * @returns Array of tools\n */\n getTools(): Tool[] {\n return this.store.all();\n }\n\n /**\n * Set tool configurations\n * @param tools Tools\n */\n setTools(tools: Tool[]) {\n this.store.load(tools);\n }\n\n /**\n * Get toolbar\n * @returns Toolbar value\n */\n getToolbar(): string[] {\n return this.toolbar$.getValue();\n }\n\n /**\n * Set toolbar\n * @param toolbar A list of tool names\n */\n setToolbar(toolbar: string[]) {\n this.toolbar$.next(toolbar || []);\n }\n\n /**\n * Activate a tool (and deactivate other tools)\n * @param name Tool name\n * @param options Tool options\n */\n activateTool(name: string, options: Record<string, any> = {}) {\n const tool = this.getTool(name);\n if (tool === undefined) {\n return;\n }\n\n this.store.state.update(tool, { active: true, options }, true);\n }\n\n /**\n * Activate the previous tool, if any\n */\n activatePreviousTool() {\n if (this.activeToolHistory.length <= 1) {\n this.deactivateTool();\n return;\n }\n const [previous] = this.activeToolHistory.splice(-2, 2);\n this.activateTool(previous);\n }\n\n getCurrentPreviousToolName(): [string, string] {\n return [this.previousToolName, this.currentToolName];\n }\n\n /**\n * Activate the tool below, if any\n */\n /* activateBelowTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index + 1] !== undefined) {\n this.deactivateTool();\n const below = arrayTools[index + 1];\n this.activateTool(below);\n } else {\n this.deactivateTool();\n const below = arrayTools[0];\n this.activateTool(below);\n }\n } */\n\n /**\n * Activate the tool above, if any\n */\n /* activateAboveTool() {\n const arrayTools = this.getToolbar();\n const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);\n if (arrayTools[index - 1] !== undefined) {\n this.deactivateTool();\n const above = arrayTools[index - 1];\n this.activateTool(above);\n } else {\n this.deactivateTool();\n const above = arrayTools[arrayTools.length - 1];\n this.activateTool(above);\n }\n } */\n\n /**\n * Deactivate the active tool\n */\n deactivateTool() {\n this.clearActiveToolHistory();\n this.store.state.updateAll({ active: false });\n }\n\n /**\n * Initialize the tool store and start observing the active tool\n */\n private initStore() {\n this.store = new EntityStore<Tool>([], {\n getKey: (entity: Tool) => entity.name\n });\n\n this.activeTool$$ = this.store.stateView\n .firstBy$((record: EntityRecord<Tool>) => record.state.active === true)\n .subscribe((record: EntityRecord<Tool>) => {\n if (record === undefined) {\n this.setActiveTool(undefined);\n return;\n }\n\n const tool = record.entity;\n const options = Object.assign(\n {},\n tool.options || {},\n record.state.options || {}\n );\n this.setActiveTool(Object.assign({}, tool, { options }));\n });\n }\n\n /**\n * Set the active tool and update the tool history\n * @param tool Tool\n */\n private setActiveTool(tool: Tool | undefined) {\n this.activeTool$.next(tool);\n if (tool === undefined) {\n this.clearActiveToolHistory();\n } else {\n this.activeToolHistory = this.activeToolHistory\n .filter((name: string) => name !== tool.name)\n .concat([tool.name]);\n\n this.previousToolName = this.currentToolName;\n this.currentToolName =\n this.activeToolHistory[this.activeToolHistory.length - 1];\n }\n }\n\n /**\n * Clear the tool history\n */\n private clearActiveToolHistory() {\n this.activeToolHistory = [];\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Tool } from './tool.interface';\nimport { Toolbox } from './toolbox';\n\n/**\n * Service where runtime tool configurations are registered\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolService {\n static tools: Record<string, Tool> = {};\n\n /**\n * Toolbox that holds main tools\n */\n public toolbox: Toolbox = new Toolbox();\n\n static register(tool: Tool) {\n ToolService.tools[tool.name] = tool;\n }\n\n constructor() {\n this.toolbox.setTools(this.getTools());\n }\n\n /**\n * Return a tool\n * @param name Tool name\n * @returns tool Tool\n */\n getTool(name: string): Tool {\n return ToolService.tools[name];\n }\n\n /**\n * Return all tools\n * @returns tTols\n */\n getTools(): Tool[] {\n return Object.values(ToolService.tools);\n }\n}\n","import { Tool } from './tool.interface';\nimport { ToolService } from './tool.service';\n\nexport function ToolComponent(tool: Partial<Tool>): (cls: any) => any {\n return (compType: any) => {\n ToolService.register(\n Object.assign({}, tool, {\n component: compType\n } as Tool)\n );\n };\n}\n","import {\n AnimationTriggerMetadata,\n animate,\n state,\n style,\n transition,\n trigger\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translate3d(0, 0, 0)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","import { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n OnDestroy,\n OnInit,\n input\n} from '@angular/core';\n\nimport { Action, ActionStore, ActionbarComponent } from '@igo2/common/action';\nimport { DynamicOutletComponent } from '@igo2/common/dynamic-component';\n\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { Tool } from '../shared/tool.interface';\nimport { Toolbox } from '../shared/toolbox';\nimport { ToolboxColor } from '../shared/toolbox.enums';\nimport { toolSlideInOut } from './toolbox.animation';\n\n@Component({\n selector: 'igo-toolbox',\n templateUrl: 'toolbox.component.html',\n styleUrls: ['toolbox.component.scss'],\n animations: [toolSlideInOut()],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ActionbarComponent, DynamicOutletComponent, AsyncPipe]\n})\nexport class ToolboxComponent implements OnInit, OnDestroy {\n /**\n * Observable of the active tool\n */\n activeTool$ = new BehaviorSubject<Tool>(undefined);\n\n get isActive(): boolean {\n return !!this.activeTool$.value;\n }\n\n /**\n * Store of actions that toggle tools\n */\n actionStore: ActionStore = new ActionStore([]);\n\n /**\n * Observable of he anmation state\n */\n animation$ = new BehaviorSubject<string>('none');\n\n /**\n * Observable of the toolbar\n */\n toolbar$ = new BehaviorSubject<string[]>([]);\n\n /**\n * Whether the Toolbar should display actions' titles\n */\n toolbarWithTitle$: Observable<boolean> = this.activeTool$.pipe(\n map((tool: Tool | undefined) => tool === undefined)\n );\n\n /**\n * Subscription to the active tool\n */\n private activeTool$$: Subscription;\n\n /**\n * Subscription to the toolbar\n */\n private toolbar$$: Subscription;\n\n /**\n * Observable of the ongoing animation. This is useful when\n * multiple animations are triggered at once i.e. when the user clicks\n * too fast on different actions\n */\n private animating$ = new BehaviorSubject<boolean>(false);\n\n /**\n * Subscription to the ongoing animation\n */\n private animating$$: Subscription;\n\n /**\n * Toolbox\n */\n readonly toolbox = input<Toolbox>(undefined);\n\n /**\n * Whether the toolbox should animate the first tool entering\n */\n readonly animate = input(false);\n\n /**\n * Color of Toolbox\n */\n readonly color = input<ToolboxColor>('white');\n\n /**\n * @ignore\n */\n @HostBinding('class.color-grey')\n get classColorGrey() {\n return this.color() === 'grey';\n }\n\n /**\n * @ignore\n */\n @HostBinding('class.color-primary')\n get classColorPrimary() {\n return this.color() === 'primary';\n }\n\n /**\n * Initialize the toolbar and subscribe to the active tool\n * @internal\n */\n ngOnInit() {\n this.toolbar$$ = this.toolbox().toolbar$.subscribe((toolbar: string[]) =>\n this.onToolbarChange(toolbar)\n );\n this.activeTool$$ = this.toolbox().activeTool$.subscribe((tool: Tool) =>\n this.onActiveToolChange(tool)\n );\n }\n\n /**\n * Unsubscribe to the active tool and destroy the action store\n * @internal\n */\n ngOnDestroy() {\n this.toolbar$$.unsubscribe();\n this.activeTool$$.unsubscribe();\n this.actionStore.destroy();\n }\n\n /**\n * Track the starting animation\n * @internal\n */\n onAnimationStart() {\n this.animating$.next(true);\n }\n\n /**\n * Untrack the completed animation\n * @internal\n */\n onAnimationComplete() {\n this.animating$.next(false);\n }\n\n /**\n * Return a tool's inputs\n * @param tool Tool\n * @returns Tool inputs\n * @internal\n */\n getToolInputs(tool: Tool): Record<string, any> {\n return tool.options || {};\n }\n\n /**\n * Initialize an action store\n * @param toolbar Toolbar\n */\n private onToolbarChange(toolbar: string[]) {\n this.setToolbar(toolbar);\n }\n\n /**\n * Activate a tool and trigger an animation or not\n * @param tool Tool to activate\n */\n private onActiveToolChange(tool: Tool) {\n if (!this.animate()) {\n this.setActiveTool(tool);\n return;\n }\n this.onAnimate(() => this.setActiveTool(tool));\n }\n\n /**\n * Set the active tool\n * @param tool Tool to activate\n */\n private setActiveTool(tool: Tool | undefined) {\n if (tool === undefined) {\n this.actionStore.state.updateAll({ active: false });\n } else {\n const action = this.actionStore.get(tool.name);\n if (action !== undefined) {\n this.actionStore.state.update(action, { active: true }, true);\n }\n }\n\n this.activeTool$.next(tool);\n if (this.animate()) {\n this.animation$.next('enter');\n }\n }\n\n /**\n * Initialize the toolbar\n */\n private setToolbar(toolbar: string[]) {\n const actions = toolbar.reduce((acc: Action[], toolName: string) => {\n const tool = this.toolbox().getTool(toolName);\n if (tool === undefined) {\n return acc;\n }\n\n acc.push({\n id: tool.name,\n title: tool.title,\n icon: tool.icon,\n tooltip: tool.tooltip,\n args: [tool, this.toolbox()],\n handler: (_tool: Tool, _toolbox: Toolbox) => {\n _toolbox.activateTool(_tool.name);\n },\n ngClass: (_tool: Tool) => {\n return this.toolbox().activeTool$.pipe(\n map((activeTool: Tool) => {\n let toolActivated = false;\n if (activeTool !== undefined && _tool.name === activeTool.name) {\n toolActivated = true;\n }\n\n let childrenToolActivated = false;\n if (\n activeTool !== undefined &&\n _tool.name === activeTool.parent\n ) {\n childrenToolActivated = true;\n }\n\n return {\n 'tool-activated': toolActivated,\n 'children-tool-activated': childrenToolActivated\n };\n })\n );\n }\n });\n return acc;\n }, []);\n this.actionStore.load(actions);\n this.toolbar$.next(toolbar);\n }\n\n /**\n * Observe the ongoing animation and ignore any incoming animation\n * while one is still ongoing.\n * @param callback Callback to execute when the animation completes\n */\n private onAnimate(callback: () => void) {\n this.unAnimate();\n this.animating$$ = this.animating$.subscribe((animation: boolean) => {\n if (!animation) {\n callback.call(this);\n this.unAnimate();\n }\n });\n }\n\n /**\n * Stop observing an animation when it's complete\n */\n private unAnimate() {\n if (this.animating$$) {\n this.animating$$.unsubscribe();\n }\n }\n}\n","@if ((toolbar$ | async).length > 0) {\n <igo-actionbar\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n />\n}\n\n@if (activeTool$ | async; as tool) {\n <div\n class=\"igo-tool-container\"\n [class]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate()\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n >\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n />\n </div>\n}\n","import { NgModule } from '@angular/core';\n\nimport { ToolboxComponent } from './toolbox.component';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n imports: [ToolboxComponent],\n exports: [ToolboxComponent]\n})\nexport class IgoToolboxModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { ToolService } from './shared/tool.service';\nimport { IgoToolboxModule } from './toolbox/toolbox.module';\n\n/**\n * @deprecated import the ToolboxComponent directly\n */\n@NgModule({\n exports: [IgoToolboxModule]\n})\nexport class IgoToolModule {\n /**\n * @deprecated it has no effect\n */\n static forRoot(): ModuleWithProviders<IgoToolModule> {\n return {\n ngModule: IgoToolModule,\n providers: [ToolService]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -10,10 +10,10 @@ class WidgetService {
10
10
  create(widgetCls) {
11
11
  return this.dynamicComponentService.create(widgetCls);
12
12
  }
13
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetService, providedIn: 'root' });
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WidgetService, providedIn: 'root' });
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetService, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WidgetService, decorators: [{
17
17
  type: Injectable,
18
18
  args: [{
19
19
  providedIn: 'root'
@@ -37,15 +37,15 @@ class WidgetOutletComponent {
37
37
  /**
38
38
  * Widget
39
39
  */
40
- widget = model(undefined, ...(ngDevMode ? [{ debugName: "widget" }] : []));
40
+ widget = model(undefined, ...(ngDevMode ? [{ debugName: "widget" }] : /* istanbul ignore next */ []));
41
41
  /**
42
42
  * Widget inputs
43
43
  */
44
- inputs = input(undefined, ...(ngDevMode ? [{ debugName: "inputs" }] : []));
44
+ inputs = input(undefined, ...(ngDevMode ? [{ debugName: "inputs" }] : /* istanbul ignore next */ []));
45
45
  /**
46
46
  * Widget subscribers
47
47
  */
48
- subscribers = input({}, ...(ngDevMode ? [{ debugName: "subscribers" }] : []));
48
+ subscribers = input({}, ...(ngDevMode ? [{ debugName: "subscribers" }] : /* istanbul ignore next */ []));
49
49
  /**
50
50
  * Event emitted when the widget emits 'complete'
51
51
  */
@@ -111,10 +111,10 @@ class WidgetOutletComponent {
111
111
  }
112
112
  this.widget.set(undefined);
113
113
  }
114
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: WidgetOutletComponent, isStandalone: true, selector: "igo-widget-outlet", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null }, subscribers: { classPropertyName: "subscribers", publicName: "subscribers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widget: "widgetChange", complete: "complete", cancel: "cancel" }, ngImport: i0, template: "@if (widget()) {\n <igo-dynamic-outlet\n [component]=\"widget()\"\n [inputs]=\"inputs()\"\n [subscribers]=\"getEffectiveSubscribers()\"\n />\n}\n", styles: [":host igo-dynamic-outlet{height:100%}\n"], dependencies: [{ kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WidgetOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: WidgetOutletComponent, isStandalone: true, selector: "igo-widget-outlet", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: false, transformFunction: null }, inputs: { classPropertyName: "inputs", publicName: "inputs", isSignal: true, isRequired: false, transformFunction: null }, subscribers: { classPropertyName: "subscribers", publicName: "subscribers", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { widget: "widgetChange", complete: "complete", cancel: "cancel" }, ngImport: i0, template: "@if (widget()) {\n <igo-dynamic-outlet\n [component]=\"widget()\"\n [inputs]=\"inputs()\"\n [subscribers]=\"getEffectiveSubscribers()\"\n />\n}\n", styles: [":host igo-dynamic-outlet{height:100%}\n"], dependencies: [{ kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WidgetOutletComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WidgetOutletComponent, decorators: [{
118
118
  type: Component,
119
119
  args: [{ selector: 'igo-widget-outlet', changeDetection: ChangeDetectionStrategy.OnPush, imports: [DynamicOutletComponent], template: "@if (widget()) {\n <igo-dynamic-outlet\n [component]=\"widget()\"\n [inputs]=\"inputs()\"\n [subscribers]=\"getEffectiveSubscribers()\"\n />\n}\n", styles: [":host igo-dynamic-outlet{height:100%}\n"] }]
120
120
  }], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: false }] }, { type: i0.Output, args: ["widgetChange"] }], inputs: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputs", required: false }] }], subscribers: [{ type: i0.Input, args: [{ isSignal: true, alias: "subscribers", required: false }] }], complete: [{ type: i0.Output, args: ["complete"] }], cancel: [{ type: i0.Output, args: ["cancel"] }] } });
@@ -123,11 +123,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
123
123
  * @deprecated import the WidgetOutletComponent directly
124
124
  */
125
125
  class IgoWidgetOutletModule {
126
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
127
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetOutletModule, imports: [WidgetOutletComponent], exports: [WidgetOutletComponent] });
128
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetOutletModule, imports: [WidgetOutletComponent] });
126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
127
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetOutletModule, imports: [WidgetOutletComponent], exports: [WidgetOutletComponent] });
128
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetOutletModule, imports: [WidgetOutletComponent] });
129
129
  }
130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetOutletModule, decorators: [{
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetOutletModule, decorators: [{
131
131
  type: NgModule,
132
132
  args: [{
133
133
  imports: [WidgetOutletComponent],
@@ -139,11 +139,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
139
139
  * @deprecated import the WidgetOutletComponent directly
140
140
  */
141
141
  class IgoWidgetModule {
142
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
143
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetModule, imports: [IgoWidgetOutletModule], exports: [IgoWidgetOutletModule] });
144
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetModule, providers: [WidgetService], imports: [IgoWidgetOutletModule, IgoWidgetOutletModule] });
142
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
143
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetModule, imports: [IgoWidgetOutletModule], exports: [IgoWidgetOutletModule] });
144
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetModule, providers: [WidgetService], imports: [IgoWidgetOutletModule, IgoWidgetOutletModule] });
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWidgetModule, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWidgetModule, decorators: [{
147
147
  type: NgModule,
148
148
  args: [{
149
149
  imports: [IgoWidgetOutletModule],
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-common-widget.mjs","sources":["../../../packages/common/widget/src/shared/widget.ts","../../../packages/common/widget/src/shared/widget.service.ts","../../../packages/common/widget/src/widget-outlet/widget-outlet.component.ts","../../../packages/common/widget/src/widget-outlet/widget-outlet.component.html","../../../packages/common/widget/src/widget-outlet/widget-outlet.module.ts","../../../packages/common/widget/src/widget.module.ts","../../../packages/common/widget/src/igo2-common-widget.ts"],"sourcesContent":["import { DynamicComponent } from '@igo2/common/dynamic-component';\n\nimport { WidgetComponent } from './widget.interfaces';\n\nexport class Widget extends DynamicComponent<WidgetComponent> {}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DynamicComponentService } from '@igo2/common/dynamic-component';\n\nimport { Widget } from './widget';\nimport { WidgetComponent } from './widget.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n private dynamicComponentService = inject(DynamicComponentService);\n\n create(widgetCls: any): Widget {\n return this.dynamicComponentService.create(widgetCls as WidgetComponent);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n input,\n model,\n output\n} from '@angular/core';\n\nimport {\n DynamicComponent,\n DynamicOutletComponent\n} from '@igo2/common/dynamic-component';\n\nimport { WidgetComponent } from '../shared/widget.interfaces';\n\n/**\n * This component dynamically renders a widget. It also subscribes\n * to the widget's 'cancel' and 'complete' events and destroys it\n * when any of those event is emitted.\n */\n@Component({\n selector: 'igo-widget-outlet',\n templateUrl: './widget-outlet.component.html',\n styleUrls: ['./widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DynamicOutletComponent]\n})\nexport class WidgetOutletComponent implements OnDestroy {\n /**\n * Widget subscribers to 'cancel' and 'complete'\n * @internal\n */\n private baseSubscribers = {\n cancel: (event: any) => this.onCancel(event),\n complete: (event: any) => this.onComplete(event)\n };\n\n /**\n * Widget\n */\n readonly widget = model<DynamicComponent<WidgetComponent>>(undefined);\n\n /**\n * Widget inputs\n */\n readonly inputs = input<Record<string, any>>(undefined);\n\n /**\n * Widget subscribers\n */\n readonly subscribers = input<Record<string, (event: any) => void>>({});\n\n /**\n * Event emitted when the widget emits 'complete'\n */\n readonly complete = output<any>();\n\n /**\n * Event emitted when the widget emits 'cancel'\n */\n readonly cancel = output<any>();\n\n /**\n * Destroy the current widget and all it's inner subscriptions\n * @internal\n */\n ngOnDestroy() {\n this.destroyWidget();\n }\n\n /**\n * Get the effective subscribers. That means a combination of the base\n * subscribers and any subscriber given as input.\n * @returns Combined subscribers\n * @internal\n */\n getEffectiveSubscribers(): Record<string, (event: any) => void> {\n const subscribers = Object.assign({}, this.subscribers());\n\n // Base subscribers\n Object.keys(this.baseSubscribers).forEach((key: string) => {\n const subscriber = subscribers[key];\n const baseSubscriber = this.baseSubscribers[key];\n if (subscriber !== undefined) {\n subscribers[key] = (event: any) => {\n subscriber(event);\n baseSubscriber(event);\n };\n } else {\n subscribers[key] = baseSubscriber;\n }\n });\n\n return subscribers;\n }\n\n /**\n * When the widget emits 'cancel', propagate that event and destroy\n * the widget\n */\n private onCancel(event: any) {\n this.cancel.emit(event);\n this.destroyWidget();\n }\n\n /**\n * When the widget emits 'complete', propagate that event and destroy\n * the widget\n */\n private onComplete(event: any) {\n this.complete.emit(event);\n this.destroyWidget();\n }\n\n /**\n * Destroy the current widget\n */\n private destroyWidget() {\n const widget = this.widget();\n if (widget !== undefined) {\n widget.destroy();\n }\n this.widget.set(undefined);\n }\n}\n","@if (widget()) {\n <igo-dynamic-outlet\n [component]=\"widget()\"\n [inputs]=\"inputs()\"\n [subscribers]=\"getEffectiveSubscribers()\"\n />\n}\n","import { NgModule } from '@angular/core';\n\nimport { WidgetOutletComponent } from './widget-outlet.component';\n\n/**\n * @deprecated import the WidgetOutletComponent directly\n */\n@NgModule({\n imports: [WidgetOutletComponent],\n exports: [WidgetOutletComponent]\n})\nexport class IgoWidgetOutletModule {}\n","import { NgModule } from '@angular/core';\n\nimport { WidgetService } from './shared/widget.service';\nimport { IgoWidgetOutletModule } from './widget-outlet/widget-outlet.module';\n\n/**\n * @deprecated import the WidgetOutletComponent directly\n */\n@NgModule({\n imports: [IgoWidgetOutletModule],\n exports: [IgoWidgetOutletModule],\n declarations: [],\n providers: [WidgetService]\n})\nexport class IgoWidgetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igo2-common-widget.mjs","sources":["../../../packages/common/widget/src/shared/widget.ts","../../../packages/common/widget/src/shared/widget.service.ts","../../../packages/common/widget/src/widget-outlet/widget-outlet.component.ts","../../../packages/common/widget/src/widget-outlet/widget-outlet.component.html","../../../packages/common/widget/src/widget-outlet/widget-outlet.module.ts","../../../packages/common/widget/src/widget.module.ts","../../../packages/common/widget/src/igo2-common-widget.ts"],"sourcesContent":["import { DynamicComponent } from '@igo2/common/dynamic-component';\n\nimport { WidgetComponent } from './widget.interfaces';\n\nexport class Widget extends DynamicComponent<WidgetComponent> {}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DynamicComponentService } from '@igo2/common/dynamic-component';\n\nimport { Widget } from './widget';\nimport { WidgetComponent } from './widget.interfaces';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WidgetService {\n private dynamicComponentService = inject(DynamicComponentService);\n\n create(widgetCls: any): Widget {\n return this.dynamicComponentService.create(widgetCls as WidgetComponent);\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n OnDestroy,\n input,\n model,\n output\n} from '@angular/core';\n\nimport {\n DynamicComponent,\n DynamicOutletComponent\n} from '@igo2/common/dynamic-component';\n\nimport { WidgetComponent } from '../shared/widget.interfaces';\n\n/**\n * This component dynamically renders a widget. It also subscribes\n * to the widget's 'cancel' and 'complete' events and destroys it\n * when any of those event is emitted.\n */\n@Component({\n selector: 'igo-widget-outlet',\n templateUrl: './widget-outlet.component.html',\n styleUrls: ['./widget-outlet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DynamicOutletComponent]\n})\nexport class WidgetOutletComponent implements OnDestroy {\n /**\n * Widget subscribers to 'cancel' and 'complete'\n * @internal\n */\n private baseSubscribers = {\n cancel: (event: any) => this.onCancel(event),\n complete: (event: any) => this.onComplete(event)\n };\n\n /**\n * Widget\n */\n readonly widget = model<DynamicComponent<WidgetComponent>>(undefined);\n\n /**\n * Widget inputs\n */\n readonly inputs = input<Record<string, any>>(undefined);\n\n /**\n * Widget subscribers\n */\n readonly subscribers = input<Record<string, (event: any) => void>>({});\n\n /**\n * Event emitted when the widget emits 'complete'\n */\n readonly complete = output<any>();\n\n /**\n * Event emitted when the widget emits 'cancel'\n */\n readonly cancel = output<any>();\n\n /**\n * Destroy the current widget and all it's inner subscriptions\n * @internal\n */\n ngOnDestroy() {\n this.destroyWidget();\n }\n\n /**\n * Get the effective subscribers. That means a combination of the base\n * subscribers and any subscriber given as input.\n * @returns Combined subscribers\n * @internal\n */\n getEffectiveSubscribers(): Record<string, (event: any) => void> {\n const subscribers = Object.assign({}, this.subscribers());\n\n // Base subscribers\n Object.keys(this.baseSubscribers).forEach((key: string) => {\n const subscriber = subscribers[key];\n const baseSubscriber = this.baseSubscribers[key];\n if (subscriber !== undefined) {\n subscribers[key] = (event: any) => {\n subscriber(event);\n baseSubscriber(event);\n };\n } else {\n subscribers[key] = baseSubscriber;\n }\n });\n\n return subscribers;\n }\n\n /**\n * When the widget emits 'cancel', propagate that event and destroy\n * the widget\n */\n private onCancel(event: any) {\n this.cancel.emit(event);\n this.destroyWidget();\n }\n\n /**\n * When the widget emits 'complete', propagate that event and destroy\n * the widget\n */\n private onComplete(event: any) {\n this.complete.emit(event);\n this.destroyWidget();\n }\n\n /**\n * Destroy the current widget\n */\n private destroyWidget() {\n const widget = this.widget();\n if (widget !== undefined) {\n widget.destroy();\n }\n this.widget.set(undefined);\n }\n}\n","@if (widget()) {\n <igo-dynamic-outlet\n [component]=\"widget()\"\n [inputs]=\"inputs()\"\n [subscribers]=\"getEffectiveSubscribers()\"\n />\n}\n","import { NgModule } from '@angular/core';\n\nimport { WidgetOutletComponent } from './widget-outlet.component';\n\n/**\n * @deprecated import the WidgetOutletComponent directly\n */\n@NgModule({\n imports: [WidgetOutletComponent],\n exports: [WidgetOutletComponent]\n})\nexport class IgoWidgetOutletModule {}\n","import { NgModule } from '@angular/core';\n\nimport { WidgetService } from './shared/widget.service';\nimport { IgoWidgetOutletModule } from './widget-outlet/widget-outlet.module';\n\n/**\n * @deprecated import the WidgetOutletComponent directly\n */\n@NgModule({\n imports: [IgoWidgetOutletModule],\n exports: [IgoWidgetOutletModule],\n declarations: [],\n providers: [WidgetService]\n})\nexport class IgoWidgetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;AAIM,MAAO,MAAO,SAAQ,gBAAiC,CAAA;AAAG;;MCMnD,aAAa,CAAA;AAChB,IAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAEjE,IAAA,MAAM,CAAC,SAAc,EAAA;QACnB,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAA4B,CAAC;IAC1E;wGALW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACOD;;;;AAIG;MAQU,qBAAqB,CAAA;AAChC;;;AAGG;AACK,IAAA,eAAe,GAAG;QACxB,MAAM,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5C,QAAQ,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK;KAChD;AAED;;AAEG;AACM,IAAA,MAAM,GAAG,KAAK,CAAoC,SAAS,6EAAC;AAErE;;AAEG;AACM,IAAA,MAAM,GAAG,KAAK,CAAsB,SAAS,6EAAC;AAEvD;;AAEG;AACM,IAAA,WAAW,GAAG,KAAK,CAAuC,EAAE,kFAAC;AAEtE;;AAEG;IACM,QAAQ,GAAG,MAAM,EAAO;AAEjC;;AAEG;IACM,MAAM,GAAG,MAAM,EAAO;AAE/B;;;AAGG;IACH,WAAW,GAAA;QACT,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA;;;;;AAKG;IACH,uBAAuB,GAAA;AACrB,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;AAGzD,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;AACxD,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AAChD,YAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAC5B,gBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAU,KAAI;oBAChC,UAAU,CAAC,KAAK,CAAC;oBACjB,cAAc,CAAC,KAAK,CAAC;AACvB,gBAAA,CAAC;YACH;iBAAO;AACL,gBAAA,WAAW,CAAC,GAAG,CAAC,GAAG,cAAc;YACnC;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,WAAW;IACpB;AAEA;;;AAGG;AACK,IAAA,QAAQ,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA;;;AAGG;AACK,IAAA,UAAU,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA;;AAEG;IACK,aAAa,GAAA;AACnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,MAAM,CAAC,OAAO,EAAE;QAClB;AACA,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;IAC5B;wGAhGW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5BlC,8JAOA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDmBY,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAErB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,mBAGZ,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,sBAAsB,CAAC,EAAA,QAAA,EAAA,8JAAA,EAAA,MAAA,EAAA,CAAA,yCAAA,CAAA,EAAA;;;AEtBnC;;AAEG;MAKU,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAArB,qBAAqB,EAAA,OAAA,EAAA,CAHtB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACrB,qBAAqB,CAAA,EAAA,CAAA;AAEpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAHtB,qBAAqB,CAAA,EAAA,CAAA;;4FAGpB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,OAAO,EAAE,CAAC,qBAAqB;AAChC,iBAAA;;;ACLD;;AAEG;MAOU,eAAe,CAAA;wGAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAf,eAAe,EAAA,OAAA,EAAA,CALhB,qBAAqB,CAAA,EAAA,OAAA,EAAA,CACrB,qBAAqB,CAAA,EAAA,CAAA;AAIpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,aAFf,CAAC,aAAa,CAAC,EAAA,OAAA,EAAA,CAHhB,qBAAqB,EACrB,qBAAqB,CAAA,EAAA,CAAA;;4FAIpB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,qBAAqB,CAAC;oBAChC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AAChC,oBAAA,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE,CAAC,aAAa;AAC1B,iBAAA;;;ACbD;;AAEG;;;;"}
@@ -189,11 +189,11 @@ class WorkspaceSelectorComponent {
189
189
  /**
190
190
  * Store that holds the available workspaces.
191
191
  */
192
- store = input(undefined, ...(ngDevMode ? [{ debugName: "store" }] : []));
192
+ store = input(undefined, ...(ngDevMode ? [{ debugName: "store" }] : /* istanbul ignore next */ []));
193
193
  /**
194
194
  * Wheither the selector must be disabled or not.
195
195
  */
196
- disabled = input(undefined, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
196
+ disabled = input(undefined, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
197
197
  /**
198
198
  * Event emitted when an workspace is selected or unselected
199
199
  */
@@ -215,10 +215,10 @@ class WorkspaceSelectorComponent {
215
215
  this.store().activateWorkspace(workspace);
216
216
  this.selectedChange.emit({ selected: true, value: workspace });
217
217
  }
218
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkspaceSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.19", type: WorkspaceSelectorComponent, isStandalone: true, selector: "igo-workspace-selector", inputs: { store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, ngImport: i0, template: "<igo-entity-selector\n [store]=\"store()\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled()\"\n (selectedChange)=\"onSelectedChange($event)\"\n/>\n", styles: [""], dependencies: [{ kind: "component", type: EntitySelectorComponent, selector: "igo-entity-selector", inputs: ["store", "titleAccessor", "emptyText", "multi", "multiAllText", "multiNoneText", "placeholder", "disabled"], outputs: ["selectedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
218
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WorkspaceSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
219
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.10", type: WorkspaceSelectorComponent, isStandalone: true, selector: "igo-workspace-selector", inputs: { store: { classPropertyName: "store", publicName: "store", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedChange: "selectedChange" }, ngImport: i0, template: "<igo-entity-selector\n [store]=\"store()\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled()\"\n (selectedChange)=\"onSelectedChange($event)\"\n/>\n", styles: [""], dependencies: [{ kind: "component", type: EntitySelectorComponent, selector: "igo-entity-selector", inputs: ["store", "titleAccessor", "emptyText", "multi", "multiAllText", "multiNoneText", "placeholder", "disabled"], outputs: ["selectedChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
220
220
  }
221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkspaceSelectorComponent, decorators: [{
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WorkspaceSelectorComponent, decorators: [{
222
222
  type: Component,
223
223
  args: [{ selector: 'igo-workspace-selector', changeDetection: ChangeDetectionStrategy.OnPush, imports: [EntitySelectorComponent], template: "<igo-entity-selector\n [store]=\"store()\"\n [multi]=\"false\"\n [titleAccessor]=\"getWorkspaceTitle\"\n [disabled]=\"disabled()\"\n (selectedChange)=\"onSelectedChange($event)\"\n/>\n" }]
224
224
  }], propDecorators: { store: [{ type: i0.Input, args: [{ isSignal: true, alias: "store", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], selectedChange: [{ type: i0.Output, args: ["selectedChange"] }] } });
@@ -227,11 +227,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
227
227
  * @deprecated import the WorkspaceSelectorComponent directly
228
228
  */
229
229
  class IgoWorkspaceSelectorModule {
230
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceSelectorModule, imports: [WorkspaceSelectorComponent], exports: [WorkspaceSelectorComponent] });
232
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceSelectorModule, imports: [WorkspaceSelectorComponent] });
230
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceSelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
231
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceSelectorModule, imports: [WorkspaceSelectorComponent], exports: [WorkspaceSelectorComponent] });
232
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceSelectorModule, imports: [WorkspaceSelectorComponent] });
233
233
  }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceSelectorModule, decorators: [{
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceSelectorModule, decorators: [{
235
235
  type: NgModule,
236
236
  args: [{
237
237
  imports: [WorkspaceSelectorComponent],
@@ -248,7 +248,7 @@ class WorkspaceWidgetOutletComponent {
248
248
  /**
249
249
  * Workspace
250
250
  */
251
- workspace = input(undefined, ...(ngDevMode ? [{ debugName: "workspace" }] : []));
251
+ workspace = input(undefined, ...(ngDevMode ? [{ debugName: "workspace" }] : /* istanbul ignore next */ []));
252
252
  /**
253
253
  * Event emitted when a widget is deactivate which happens
254
254
  * when the widget's component emits the 'cancel' or 'complete' event.
@@ -295,10 +295,10 @@ class WorkspaceWidgetOutletComponent {
295
295
  this.workspace().deactivateWidget();
296
296
  this.deactivateWidget.emit(widget);
297
297
  }
298
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkspaceWidgetOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
299
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.19", type: WorkspaceWidgetOutletComponent, isStandalone: true, selector: "igo-workspace-widget-outlet", inputs: { workspace: { classPropertyName: "workspace", publicName: "workspace", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deactivateWidget: "deactivateWidget" }, ngImport: i0, template: "@if (widget$ | async; as widget) {\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\"\n />\n}\n", styles: ["igo-widget-outlet{height:100%}\n"], dependencies: [{ kind: "component", type: WidgetOutletComponent, selector: "igo-widget-outlet", inputs: ["widget", "inputs", "subscribers"], outputs: ["widgetChange", "complete", "cancel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
298
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WorkspaceWidgetOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
299
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: WorkspaceWidgetOutletComponent, isStandalone: true, selector: "igo-workspace-widget-outlet", inputs: { workspace: { classPropertyName: "workspace", publicName: "workspace", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deactivateWidget: "deactivateWidget" }, ngImport: i0, template: "@if (widget$ | async; as widget) {\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\"\n />\n}\n", styles: ["igo-widget-outlet{height:100%}\n"], dependencies: [{ kind: "component", type: WidgetOutletComponent, selector: "igo-widget-outlet", inputs: ["widget", "inputs", "subscribers"], outputs: ["widgetChange", "complete", "cancel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
300
300
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkspaceWidgetOutletComponent, decorators: [{
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: WorkspaceWidgetOutletComponent, decorators: [{
302
302
  type: Component,
303
303
  args: [{ selector: 'igo-workspace-widget-outlet', changeDetection: ChangeDetectionStrategy.OnPush, imports: [WidgetOutletComponent, AsyncPipe], template: "@if (widget$ | async; as widget) {\n <igo-widget-outlet\n [widget]=\"widget\"\n [inputs]=\"widgetInputs$ | async\"\n [subscribers]=\"widgetSubscribers$ | async\"\n (cancel)=\"onWidgetCancel(widget)\"\n (complete)=\"onWidgetComplete(widget)\"\n />\n}\n", styles: ["igo-widget-outlet{height:100%}\n"] }]
304
304
  }], propDecorators: { workspace: [{ type: i0.Input, args: [{ isSignal: true, alias: "workspace", required: false }] }], deactivateWidget: [{ type: i0.Output, args: ["deactivateWidget"] }] } });
@@ -307,11 +307,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
307
307
  * @deprecated import the WorkspaceWidgetOutletComponent directly
308
308
  */
309
309
  class IgoWorkspaceWidgetOutletModule {
310
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
311
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, imports: [WorkspaceWidgetOutletComponent], exports: [WorkspaceWidgetOutletComponent] });
312
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, imports: [WorkspaceWidgetOutletComponent] });
310
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
311
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, imports: [WorkspaceWidgetOutletComponent], exports: [WorkspaceWidgetOutletComponent] });
312
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, imports: [WorkspaceWidgetOutletComponent] });
313
313
  }
314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceWidgetOutletModule, decorators: [{
315
315
  type: NgModule,
316
316
  args: [{
317
317
  imports: [WorkspaceWidgetOutletComponent],
@@ -327,13 +327,13 @@ const WORKSPACE_DIRECTIVES = [
327
327
  * @deprecated import the components directly or WORKSPACE_DIRECTIVES for every components/directives
328
328
  */
329
329
  class IgoWorkspaceModule {
330
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceModule, imports: [WorkspaceSelectorComponent,
330
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
331
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceModule, imports: [WorkspaceSelectorComponent,
332
332
  WorkspaceWidgetOutletComponent], exports: [WorkspaceSelectorComponent,
333
333
  WorkspaceWidgetOutletComponent] });
334
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceModule, imports: [WORKSPACE_DIRECTIVES] });
334
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceModule, imports: [WORKSPACE_DIRECTIVES] });
335
335
  }
336
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: IgoWorkspaceModule, decorators: [{
336
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: IgoWorkspaceModule, decorators: [{
337
337
  type: NgModule,
338
338
  args: [{
339
339
  imports: [...WORKSPACE_DIRECTIVES],