@bizdoc/core 3.2.6 → 3.2.8

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 (31) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +1 -1
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo-amber.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/esm2022/lib/admin/admin-menu.component.mjs +7 -8
  10. package/esm2022/lib/admin/architecture/designer-element.component.mjs +2 -2
  11. package/esm2022/lib/admin/architecture/designer.component.mjs +3 -3
  12. package/esm2022/lib/admin/core/localized-string.component.mjs +2 -2
  13. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +4 -4
  14. package/esm2022/lib/compose/tag/tags.component.mjs +2 -2
  15. package/esm2022/lib/compose/trace/flow.component.mjs +121 -124
  16. package/esm2022/lib/compose/trace/trace.component.mjs +4 -2
  17. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  18. package/esm2022/lib/core/configuration.mjs +5 -5
  19. package/esm2022/lib/core/slots/slots.component.mjs +6 -3
  20. package/esm2022/lib/core/translations.mjs +7 -2
  21. package/esm2022/lib/modules/diagram.module.mjs +9 -5
  22. package/esm2022/lib/routes.desktop.mjs +2 -2
  23. package/fesm2022/bizdoc-core.mjs +160 -150
  24. package/fesm2022/bizdoc-core.mjs.map +1 -1
  25. package/lib/compose/trace/flow.component.d.ts +1 -11
  26. package/lib/compose/trace/trace.component.d.ts +2 -1
  27. package/lib/core/configuration.d.ts +4 -4
  28. package/lib/core/functions.d.ts +1 -1
  29. package/lib/core/slots/slots.component.d.ts +1 -0
  30. package/lib/cube/cube.service.d.ts +1 -1
  31. package/package.json +1 -1
@@ -126,8 +126,8 @@ import { ToolbarType, RichTextEditorComponent, RichTextEditorModule, HtmlEditorS
126
126
  import EventEmitter$1 from 'events';
127
127
  import * as i4$3 from '@ctrl/ngx-emoji-mart';
128
128
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
129
- import { Diagram, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, SymbolPalette, BpmnDiagrams, PortVisibility, PortConstraints, DiagramConstraints, SelectorConstraints, NodeConstraints, ConnectorConstraints, DiagramTools, Connector, Node, ToolBase, ConnectionPointOrigin as ConnectionPointOrigin$1 } from '@syncfusion/ej2-diagrams';
130
- import { DiagramAction, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, Diagram as Diagram$1, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService, ComplexHierarchicalTree, BpmnDiagrams as BpmnDiagrams$1, DataBinding, LineDistribution, LineRouting, ConnectorBridging as ConnectorBridging$1, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService } from '@syncfusion/ej2-angular-diagrams';
129
+ import { Diagram, UndoRedo, ConnectorEditing, Snapping, SymbolPalette, BpmnDiagrams, PortVisibility, PortConstraints, DiagramConstraints, SelectorConstraints, NodeConstraints, ConnectorConstraints, DiagramTools, Connector, Node, ToolBase, ConnectionPointOrigin as ConnectionPointOrigin$1 } from '@syncfusion/ej2-diagrams';
130
+ import { DiagramAction, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, Diagram as Diagram$1, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, DataBindingService, FlowchartLayoutService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService, FlowchartLayout, HierarchicalTree, ComplexHierarchicalTree, BpmnDiagrams as BpmnDiagrams$1, LineDistribution, LineRouting, ConnectorBridging } from '@syncfusion/ej2-angular-diagrams';
131
131
  import * as i5$3 from '@syncfusion/ej2-angular-schedule';
132
132
  import { Schedule, Day, WorkWeek, Month, MonthAgenda, Agenda, Year, ScheduleModule, ExcelExportService as ExcelExportService$2, DayService, WorkWeekService, MonthService, MonthAgendaService, ICalendarExportService, AgendaService, YearService } from '@syncfusion/ej2-angular-schedule';
133
133
  import * as i10$3 from '@syncfusion/ej2-angular-kanban';
@@ -163,10 +163,10 @@ var OpenPolicy;
163
163
  OpenPolicy[OpenPolicy["Pinnable"] = 8] = "Pinnable";
164
164
  OpenPolicy[OpenPolicy["Stretch"] = 16] = "Stretch";
165
165
  OpenPolicy[OpenPolicy["Expandable"] = 32] = "Expandable";
166
- OpenPolicy[OpenPolicy["Toggle"] = 64] = "Toggle";
167
- OpenPolicy[OpenPolicy["Tab"] = 128] = "Tab";
168
- OpenPolicy[OpenPolicy["Dismissable"] = 256] = "Dismissable";
169
- OpenPolicy[OpenPolicy["Dialog"] = 672] = "Dialog";
166
+ OpenPolicy[OpenPolicy["Dismissable"] = 64] = "Dismissable";
167
+ OpenPolicy[OpenPolicy["Toggle"] = 128] = "Toggle";
168
+ OpenPolicy[OpenPolicy["Tab"] = 320] = "Tab";
169
+ OpenPolicy[OpenPolicy["Dialog"] = 832] = "Dialog";
170
170
  })(OpenPolicy || (OpenPolicy = {}));
171
171
  const DEFAULT_POLICY = OpenPolicy.Pane;
172
172
 
@@ -1613,7 +1613,7 @@ const STRINGS = {
1613
1613
  Preferences: 'Settings',
1614
1614
  Tags: 'Tags',
1615
1615
  Mention: 'Mention',
1616
- TagsHint: 'Choose or type tags',
1616
+ TagsHint: 'Choose or type personal tags',
1617
1617
  ContinueEditing: 'Continue editing',
1618
1618
  Close: 'Close',
1619
1619
  View: 'View',
@@ -1967,6 +1967,10 @@ const STRINGS = {
1967
1967
  MaxLengthErr: 'Maximum <strong>{0}</strong> length',
1968
1968
  },
1969
1969
  'he': {
1970
+ SettingThingsUp: 'אוסף נתונים',
1971
+ PleaseWait: 'אנא המתן/י',
1972
+ Enable: 'אפשר/י',
1973
+ Disable: 'הסתר/י',
1970
1974
  Insights: 'תובנות',
1971
1975
  CheckOut: 'הורד/י',
1972
1976
  CheckIn: 'העלה/י',
@@ -2517,6 +2521,7 @@ const STRINGS = {
2517
2521
  Copyright: '&copy; מודינג',
2518
2522
  Map: 'מפה',
2519
2523
  Watched: 'נצפה {0}',
2524
+ LicencedTo: 'רשיון ל-<strong>{0}</strong>',
2520
2525
  NothingHere: 'אין נתונים נוספים'
2521
2526
  }
2522
2527
  };
@@ -4075,7 +4080,7 @@ class LocalizedStringComponent {
4075
4080
  const currentLang = this._session.language;
4076
4081
  for (let lang of this._session.languages) {
4077
4082
  let val = this.multilingual ? this._value[lang] :
4078
- lang === currentLang ? this._value : null, ctrl = this._fb.control(val, this.required ? Validators.required : null);
4083
+ lang === currentLang ? this._value : null, ctrl = this._fb.control(val, this.required && lang === currentLang ? Validators.required : null);
4079
4084
  this.group.addControl(lang, ctrl);
4080
4085
  if (lang === currentLang)
4081
4086
  this.control = ctrl;
@@ -9531,11 +9536,11 @@ class TagsComponent {
9531
9536
  this._destroy.complete();
9532
9537
  }
9533
9538
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TagsComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
9534
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9539
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{min-width:260px;padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9535
9540
  }
9536
9541
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TagsComponent, decorators: [{
9537
9542
  type: Component,
9538
- args: [{ template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{padding:8px}\n"] }]
9543
+ args: [{ template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{min-width:260px;padding:8px}\n"] }]
9539
9544
  }], ctorParameters: () => [{ type: undefined, decorators: [{
9540
9545
  type: Inject,
9541
9546
  args: [POPUP_DATA]
@@ -14386,8 +14391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
14386
14391
  args: ['connectorargs', { static: true }]
14387
14392
  }] } });
14388
14393
 
14389
- Diagram.Inject(UndoRedo, ConnectorBridging, ConnectorEditing, Snapping);
14390
- SymbolPalette.Inject(BpmnDiagrams);
14394
+ Diagram.Inject(UndoRedo, ConnectorEditing, Snapping);
14395
+ SymbolPalette.Inject(BpmnDiagrams /*, LayoutAnimation*/);
14391
14396
  const ports = [
14392
14397
  { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
14393
14398
  { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
@@ -15139,9 +15144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
15139
15144
  args: [{ name: 'amDurationFormat' }]
15140
15145
  }], ctorParameters: () => [{ type: TranslateService }] });
15141
15146
 
15142
- const
15143
- //ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
15144
- FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
15147
+ const FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
15145
15148
  /** flow-view component*/
15146
15149
  class FlowViewComponent extends TraceBase {
15147
15150
  /** workflow-view ctor */
@@ -15153,24 +15156,21 @@ class FlowViewComponent extends TraceBase {
15153
15156
  this._elementRef = _elementRef;
15154
15157
  this.connectorType = 'Orthogonal';
15155
15158
  this.tool = DiagramTools$1.ZoomPan;
15156
- this.diagramConstraints = DiagramConstraints$1.Default |
15157
- DiagramConstraints$1.Pan |
15159
+ this.diagramConstraints = DiagramConstraints$1.Pan |
15158
15160
  DiagramConstraints$1.LineRouting |
15159
15161
  DiagramConstraints$1.Bridging |
15160
15162
  DiagramConstraints$1.Zoom;
15161
15163
  this.enableRtl = this._session.inverse;
15162
15164
  this.layout = {
15163
- type: 'ComplexHierarchicalTree',
15165
+ type: 'Flowchart',
15164
15166
  verticalAlignment: 'Center',
15165
- connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
15167
+ connectionPointOrigin: ConnectionPointOrigin.SamePoint,
15166
15168
  horizontalSpacing: 50,
15167
15169
  enableRouting: true,
15168
15170
  verticalSpacing: 50,
15169
15171
  margin: { top: 4 },
15170
- //arrangement: {},
15171
- //enableAnimation: true,
15172
- //root: 'start',
15173
- orientation: this.enableRtl ? 'RightToLeft' : 'LeftToRight',
15172
+ // arrangement: ChildArrangement.Linear,
15173
+ //orientation: this.enableRtl ? 'RightToLeft' : 'LeftToRight',
15174
15174
  };
15175
15175
  this.scrollSettings = {
15176
15176
  minZoom: .5,
@@ -15198,7 +15198,7 @@ class FlowViewComponent extends TraceBase {
15198
15198
  this.diagram && this.diagram.destroy();
15199
15199
  this.diagram = new Diagram$1({
15200
15200
  width: '100%',
15201
- height: 400,
15201
+ height: 600,
15202
15202
  nodes,
15203
15203
  connectors,
15204
15204
  layout: this.layout,
@@ -15208,10 +15208,9 @@ class FlowViewComponent extends TraceBase {
15208
15208
  scrollSettings: this.scrollSettings,
15209
15209
  snapSettings: this.snapSettings,
15210
15210
  constraints: this.diagramConstraints,
15211
- getConnectorDefaults: this.connDefaults.bind(this),
15212
- getNodeDefaults: this.nodeDefaults.bind(this),
15213
15211
  }, this._elementRef.nativeElement);
15214
15212
  this.diagram.doLayout();
15213
+ this.diagram.fitToPage({ margin: { top: 10 } });
15215
15214
  indicators.forEach((n, i) => {
15216
15215
  const parent = this.diagram.getNodeObject(n.addInfo.parentId);
15217
15216
  n.offsetX = parent.offsetX + (this.enableRtl ? -25 : 25);
@@ -15219,7 +15218,6 @@ class FlowViewComponent extends TraceBase {
15219
15218
  n.zIndex = 1000 + i;
15220
15219
  this.diagram.add(n);
15221
15220
  });
15222
- this.diagram.fitToPage({ margin: { top: 10 } });
15223
15221
  interval(60000).pipe(takeUntil(this._destroy)).subscribe(this._refresh.bind(this));
15224
15222
  }
15225
15223
  _refresh() {
@@ -15242,63 +15240,12 @@ class FlowViewComponent extends TraceBase {
15242
15240
  n.addInfo.tooltip.estimatedTime = this._timeEstimate(node),
15243
15241
  n.tooltip.content = this._tooltip(n.addInfo.tooltip);
15244
15242
  });
15245
- // this.diagram.dataBind();
15246
- }
15247
- /**
15248
- *
15249
- * @param obj
15250
- */
15251
- nodeDefaults(obj) {
15252
- const { recipient, node, indicator } = obj.addInfo;
15253
- if (indicator) {
15254
- obj.width = obj.height = 15;
15255
- obj.style.strokeWidth = 0;
15256
- }
15257
- else {
15258
- obj.width = obj.height = 50;
15259
- if (obj.annotations && obj.annotations.length)
15260
- obj.annotations[0].style.color = this._session.theme.dark ? 'white' : 'black';
15261
- if (node && node.estimate) {
15262
- obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
15263
- obj.style.opacity = obj.annotations[0].style.opacity = .6;
15264
- obj.style.fill = 'transparent';
15265
- }
15266
- else {
15267
- obj.style.strokeColor = this._accentColor;
15268
- obj.style.fill = recipient && recipient.pending ?
15269
- this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent';
15270
- }
15271
- obj.style.strokeWidth = 2;
15272
- }
15273
- return obj;
15274
- }
15275
- /**
15276
- *
15277
- * @param connector
15278
- */
15279
- connDefaults(connector) {
15280
- connector.type = this.connectorType;
15281
- connector.cornerRadius = 6;
15282
- connector.targetDecorator.height = 7;
15283
- connector.targetDecorator.width = 7;
15284
- if (connector.addInfo.estimate) {
15285
- connector.style.strokeDashArray = '2 2';
15286
- connector.style.strokeColor =
15287
- connector.targetDecorator.style.fill =
15288
- connector.targetDecorator.style.strokeColor =
15289
- this._session.theme.dark ? 'white' : 'black';
15290
- connector.style.strokeWidth = 1;
15291
- }
15292
- else {
15293
- connector.style.strokeColor = connector.targetDecorator.style.strokeColor = connector.targetDecorator.style.fill = this._accentColor;
15294
- connector.style.strokeWidth = 2;
15295
- }
15296
- connector.targetDecorator.shape = 'None';
15297
15243
  }
15298
15244
  /** */
15299
15245
  async _prepare() {
15300
15246
  const { connectors: dconnectors, nodes: dnodes } = this.model.workflow;
15301
15247
  const indicators = [], connectors = [], nodes = [];
15248
+ const color = this._session.theme.dark ? 'white' : 'black';
15302
15249
  let zIndex = 500;
15303
15250
  for (let node of dnodes) {
15304
15251
  if (nodes.find(n => n.id == node.id))
@@ -15328,10 +15275,18 @@ class FlowViewComponent extends TraceBase {
15328
15275
  } while (r < recipients.length);
15329
15276
  for (r = 0; r < recipients.length; r++) {
15330
15277
  let recipient = recipients[r];
15331
- const { annotation, tooltip } = await this._note(node, recipient);
15332
- const content = this._tooltip(tooltip);
15333
- const nod = {
15334
- id: r === 0 ? node.id : node.id + r.toString(),
15278
+ const { annotation, tooltip } = await this._note(node, recipient), content = this._tooltip(tooltip), id = r === 0 ? node.id : node.id + r.toString();
15279
+ nodes.push({
15280
+ id,
15281
+ width: 50,
15282
+ height: 50,
15283
+ style: {
15284
+ strokeWidth: 2,
15285
+ opacity: node.estimate ? .6 : 1,
15286
+ strokeColor: node.estimate ? color : this._accentColor,
15287
+ fill: !node.estimate && recipient.pending ?
15288
+ this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent'
15289
+ },
15335
15290
  shape: this._configuration[node.type].shape,
15336
15291
  zIndex: zIndex++,
15337
15292
  tooltip: {
@@ -15347,6 +15302,10 @@ class FlowViewComponent extends TraceBase {
15347
15302
  node
15348
15303
  },
15349
15304
  annotations: [{
15305
+ style: {
15306
+ color: color,
15307
+ opacity: node.estimate ? .6 : 1,
15308
+ },
15350
15309
  content: annotation,
15351
15310
  margin: { top: 4 },
15352
15311
  verticalAlignment: 'Top',
@@ -15355,74 +15314,84 @@ class FlowViewComponent extends TraceBase {
15355
15314
  x: .5
15356
15315
  }
15357
15316
  }]
15358
- };
15359
- nodes.push(nod);
15317
+ });
15360
15318
  // add action indicator
15361
15319
  if (recipient.action) {
15362
15320
  const action = this._session.profile.actions.find(a => a.name === recipient.action);
15363
- if (action.shape && !recipient.pending) {
15364
- const actionIndicator = {
15365
- id: nod.id + 'action',
15321
+ action.shape && !recipient.pending &&
15322
+ indicators.push({
15323
+ id: id + 'action',
15324
+ width: 15,
15325
+ height: 15,
15366
15326
  shape: {
15367
15327
  type: 'Path',
15368
15328
  data: action.shape,
15369
15329
  align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax',
15370
15330
  },
15371
15331
  style: {
15332
+ strokeWidth: 0,
15372
15333
  fill: action.color || this._session.getAccent(900)
15373
15334
  },
15374
15335
  addInfo: {
15375
15336
  indicator: true,
15376
- parentId: nod.id
15337
+ parentId: id
15377
15338
  }
15378
- };
15379
- indicators.push(actionIndicator);
15380
- }
15339
+ });
15381
15340
  }
15382
15341
  // fyi indicator
15383
- if (recipient.fyi)
15342
+ recipient.fyi &&
15384
15343
  indicators.push({
15385
- id: nod.id + 'fyi',
15344
+ id: id + 'fyi',
15345
+ width: 15,
15346
+ height: 15,
15386
15347
  shape: {
15387
15348
  type: 'Path',
15388
15349
  data: FYI_PATH,
15389
15350
  align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
15390
15351
  },
15391
15352
  style: {
15353
+ strokeWidth: 0,
15392
15354
  fill: '#1976d2'
15393
15355
  },
15394
15356
  addInfo: {
15395
15357
  indicator: true,
15396
- parentId: nod.id
15358
+ parentId: id
15397
15359
  }
15398
15360
  });
15399
15361
  // escalate indicator
15400
- if (recipient.escalated) {
15401
- const escalateIndicator = {
15402
- id: nod.id + 'escalate',
15362
+ recipient.escalated &&
15363
+ indicators.push({
15364
+ id: id + 'escalate',
15365
+ width: 15,
15366
+ height: 15,
15403
15367
  shape: {
15404
15368
  type: 'Path',
15405
15369
  data: ESCALATED_PATH,
15406
15370
  align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
15407
15371
  },
15408
15372
  style: {
15373
+ strokeWidth: 0,
15409
15374
  fill: this._session.getAccent(900)
15410
15375
  },
15411
15376
  addInfo: {
15412
15377
  indicator: true,
15413
- parentId: nod.id
15378
+ parentId: id
15414
15379
  }
15415
- };
15416
- indicators.push(escalateIndicator);
15417
- }
15380
+ });
15418
15381
  }
15419
15382
  }
15420
15383
  else {
15421
- const { state, annotation, tooltip } = await this._shape(node);
15422
- const { shape } = configuration;
15423
- const content = this._tooltip(tooltip);
15384
+ const { state, annotation, tooltip } = await this._shape(node), { shape } = configuration, content = this._tooltip(tooltip);
15424
15385
  nodes.push({
15425
15386
  id: node.id,
15387
+ width: 50,
15388
+ height: 50,
15389
+ style: {
15390
+ strokeWidth: 2,
15391
+ opacity: node.estimate ? .6 : 1,
15392
+ strokeColor: node.estimate ? color : this._accentColor,
15393
+ fill: 'transparent'
15394
+ },
15426
15395
  shape, //: {type: 'Path', data: ELLIPSIS },
15427
15396
  zIndex: zIndex++,
15428
15397
  tooltip: {
@@ -15441,19 +15410,25 @@ class FlowViewComponent extends TraceBase {
15441
15410
  offset: shape.type === 'Path' ? {
15442
15411
  y: 1
15443
15412
  } : { x: .5 },
15444
- style: {},
15413
+ style: {
15414
+ color: color,
15415
+ opacity: node.estimate ? .6 : 1,
15416
+ },
15445
15417
  verticalAlignment: shape.type === 'Path' ? 'Top' : 'Center'
15446
15418
  }]
15447
15419
  });
15448
- if (state && state.shape && !node.estimate)
15420
+ state && state.shape && !node.estimate &&
15449
15421
  indicators.push({
15450
15422
  id: node.id + 'state',
15423
+ width: 15,
15424
+ height: 15,
15451
15425
  shape: {
15452
15426
  type: 'Path',
15453
15427
  data: state.shape,
15454
15428
  align: this.enableRtl ? 'XMaxYMax' : 'XMinYMax'
15455
15429
  },
15456
15430
  style: {
15431
+ strokeWidth: 0,
15457
15432
  fill: state.color || 'black'
15458
15433
  },
15459
15434
  addInfo: {
@@ -15462,49 +15437,52 @@ class FlowViewComponent extends TraceBase {
15462
15437
  node: node
15463
15438
  }
15464
15439
  });
15465
- if (node.error) {
15466
- const warnningIndicator = {
15440
+ node.error &&
15441
+ indicators.push({
15467
15442
  id: node.id + 'exception',
15443
+ width: 15,
15444
+ height: 15,
15468
15445
  shape: {
15469
15446
  type: 'Path',
15470
15447
  data: WARNNING_PATH$1,
15471
15448
  align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
15472
15449
  },
15473
15450
  style: {
15451
+ strokeWidth: 0,
15474
15452
  fill: getWarn(800)
15475
15453
  },
15476
15454
  addInfo: {
15477
15455
  indicator: true,
15478
15456
  parentId: node.id
15479
15457
  }
15480
- };
15481
- indicators.push(warnningIndicator);
15482
- }
15458
+ });
15483
15459
  }
15484
15460
  }
15485
15461
  // TODO
15486
15462
  // longest path, remove short path connectors
15487
- function deepen(nodeId, depth = 0) {
15488
- nodes.filter(n => n.addInfo.node.id === nodeId).
15489
- forEach(n => {
15490
- const { depth: nodeDepth } = n.addInfo;
15491
- if (nodeDepth) {
15492
- if (nodeDepth < depth) {
15493
- dconnectors.filter(c => c.targetId === nodeId &&
15494
- nodes.filter(n => n.addInfo.node.id === c.sourceId &&
15495
- n.addInfo.depth === nodeDepth - 1).length).
15496
- forEach(c => dconnectors.remove(c));
15497
- n.addInfo.depth = depth;
15498
- }
15499
- else if (nodeDepth > depth)
15500
- dconnectors.filter(c => c.sourceId === nodeId).forEach(c => dconnectors.remove(c));
15501
- }
15502
- else {
15503
- n.addInfo.depth = depth;
15504
- dconnectors.filter(c => c.sourceId === nodeId).forEach(c => deepen(c.targetId, depth + 1));
15505
- }
15506
- });
15507
- }
15463
+ //function deepen(nodeId: string, depth = 0) {
15464
+ // nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === nodeId).
15465
+ // forEach(n => {
15466
+ // const { depth: nodeDepth } = n.addInfo as NodeInfoModel;
15467
+ // if (nodeDepth) {
15468
+ // if (nodeDepth < depth) {
15469
+ // dconnectors.filter(c => c.targetId === nodeId &&
15470
+ // nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === c.sourceId &&
15471
+ // (n.addInfo as NodeInfoModel).depth === nodeDepth - 1).length).
15472
+ // forEach(c =>
15473
+ // dconnectors.remove(c)
15474
+ // );
15475
+ // (n.addInfo as NodeInfoModel).depth = depth;
15476
+ // } else if (nodeDepth > depth)
15477
+ // dconnectors.filter(c => c.sourceId === nodeId).forEach(c => dconnectors.remove(c));
15478
+ // } else {
15479
+ // (n.addInfo as NodeInfoModel).depth = depth;
15480
+ // dconnectors.filter(c => c.sourceId === nodeId).forEach(c =>
15481
+ // deepen(c.targetId, depth + 1)
15482
+ // );
15483
+ // }
15484
+ // });
15485
+ //}
15508
15486
  for (let connector of dconnectors) {
15509
15487
  let sources = nodes.filter(n => n.addInfo.node.id === connector.sourceId), targets = nodes.filter(n => n.addInfo.node.id === connector.targetId);
15510
15488
  for (let source of sources)
@@ -15512,6 +15490,29 @@ class FlowViewComponent extends TraceBase {
15512
15490
  connectors.push({
15513
15491
  sourceID: source.id,
15514
15492
  targetID: target.id,
15493
+ type: this.connectorType,
15494
+ cornerRadius: 6,
15495
+ targetDecorator: {
15496
+ shape: 'None',
15497
+ height: 7,
15498
+ width: 7,
15499
+ style: connector.estimate ? {
15500
+ fill: color,
15501
+ strokeColor: color
15502
+ } : {
15503
+ strokeColor: this._accentColor,
15504
+ fill: this._accentColor
15505
+ },
15506
+ },
15507
+ style: connector.estimate ? {
15508
+ strokeDashArray: '2 2',
15509
+ strokeColor: color,
15510
+ opacity: .3,
15511
+ strokeWidth: 1
15512
+ } : {
15513
+ strokeColor: this._accentColor,
15514
+ strokeWidth: 2
15515
+ },
15515
15516
  addInfo: {
15516
15517
  estimate: connector.estimate,
15517
15518
  time: connector.time
@@ -15801,13 +15802,13 @@ class FlowViewComponent extends TraceBase {
15801
15802
  super.ngOnDestroy();
15802
15803
  }
15803
15804
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FlowViewComponent, deps: [{ token: AccountService }, { token: SessionService }, { token: TranslateService }, { token: DurationFormatPipe }, { token: i0.ElementRef }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
15804
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: FlowViewComponent, selector: "bizdoc-flow", inputs: { model: "model", version: "version", connectorType: "connectorType" }, host: { attributes: { "dir": "ltr" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [":host{background-color:transparent!important}\n"], viewProviders: [ComplexHierarchicalTreeService] }); }
15805
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: FlowViewComponent, selector: "bizdoc-flow", inputs: { model: "model", version: "version", connectorType: "connectorType" }, host: { attributes: { "dir": "ltr" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""], viewProviders: [ComplexHierarchicalTreeService] }); }
15805
15806
  }
15806
15807
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FlowViewComponent, decorators: [{
15807
15808
  type: Component,
15808
15809
  args: [{ selector: 'bizdoc-flow', template: '', viewProviders: [ComplexHierarchicalTreeService], host: {
15809
15810
  dir: 'ltr'
15810
- }, styles: [":host{background-color:transparent!important}\n"] }]
15811
+ } }]
15811
15812
  }], ctorParameters: () => [{ type: AccountService }, { type: SessionService }, { type: TranslateService }, { type: DurationFormatPipe }, { type: i0.ElementRef }, { type: HubService }], propDecorators: { model: [{
15812
15813
  type: Input
15813
15814
  }], version: [{
@@ -16151,13 +16152,15 @@ class TraceViewComponent extends TraceBase {
16151
16152
  this.versionSelected.emit(log.time);
16152
16153
  }
16153
16154
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TraceViewComponent, deps: [{ token: SessionService }, { token: TranslateService }, { token: AccountService }, { token: ChatInfo }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
16154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span>&nbsp;{{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
16155
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model", version: "version" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span>&nbsp;{{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
16155
16156
  }
16156
16157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TraceViewComponent, decorators: [{
16157
16158
  type: Component,
16158
16159
  args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span>&nbsp;{{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
16159
16160
  }], ctorParameters: () => [{ type: SessionService }, { type: TranslateService }, { type: AccountService }, { type: ChatInfo }, { type: HubService }], propDecorators: { model: [{
16160
16161
  type: Input
16162
+ }], version: [{
16163
+ type: Input
16161
16164
  }], versionSelected: [{
16162
16165
  type: Output
16163
16166
  }] } });
@@ -16188,11 +16191,11 @@ class TracePaneComponent {
16188
16191
  });
16189
16192
  }
16190
16193
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TracePaneComponent, deps: [{ token: TranslateService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
16191
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TracePaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "version", "connectorType"] }] }); }
16194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TracePaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" [version]=\"model.version\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model", "version"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "version", "connectorType"] }] }); }
16192
16195
  }
16193
16196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TracePaneComponent, decorators: [{
16194
16197
  type: Component,
16195
- args: [{ template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"] }]
16198
+ args: [{ template: "<bizdoc-trace [model]=\"model\" [version]=\"model.version\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"] }]
16196
16199
  }], ctorParameters: () => [{ type: TranslateService }, { type: PaneRef }, { type: PanesRouter }], propDecorators: { trace: [{
16197
16200
  type: ViewChild,
16198
16201
  args: [TraceViewComponent, { static: true }]
@@ -19123,6 +19126,9 @@ class SlotsComponent {
19123
19126
  this._selectedTabIndex = value;
19124
19127
  this._setTabAnimation();
19125
19128
  }
19129
+ get selectedTab() {
19130
+ return this.tabs[this.selectedTabIndex];
19131
+ }
19126
19132
  constructor(data, _session, _cd, _router, _title, _injector) {
19127
19133
  this._session = _session;
19128
19134
  this._cd = _cd;
@@ -20214,7 +20220,7 @@ class SlotsComponent {
20214
20220
  this._destroy.complete();
20215
20221
  }
20216
20222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
20217
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if (!dialog) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n @if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:0}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20218
20224
  panesAnimation,
20219
20225
  paneAnimation,
20220
20226
  paramAnimation,
@@ -20232,7 +20238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
20232
20238
  queryAnimation,
20233
20239
  tabsAnimation,
20234
20240
  tabAnimation
20235
- ], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if (!dialog) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n @if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:0}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
20241
+ ], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
20236
20242
  }], ctorParameters: () => [{ type: undefined, decorators: [{
20237
20243
  type: Inject,
20238
20244
  args: [PANES_DATA]
@@ -20626,11 +20632,11 @@ class AdminMenuComponent {
20626
20632
  ngOnInit() {
20627
20633
  }
20628
20634
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, deps: [{ token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
20629
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: { collapsed: "collapsed" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n", dependencies: [{ kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: ["slotRouterLink", "slotRouterLinkActive", "slotRouterLinkDisabled", "slotRouterLinkPolicy", "slotRouterLinkOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
20635
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: { collapsed: "collapsed" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n <!--@if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>-->\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n", dependencies: [{ kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: ["slotRouterLink", "slotRouterLinkActive", "slotRouterLinkDisabled", "slotRouterLinkPolicy", "slotRouterLinkOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
20630
20636
  }
20631
20637
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, decorators: [{
20632
20638
  type: Component,
20633
- args: [{ selector: 'bizdoc-admin-menu', template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n" }]
20639
+ args: [{ selector: 'bizdoc-admin-menu', template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n <!--@if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>-->\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n" }]
20634
20640
  }], ctorParameters: () => [{ type: SessionService }], propDecorators: { collapsed: [{
20635
20641
  type: Input
20636
20642
  }] } });
@@ -21466,7 +21472,7 @@ const PANES_CONFIG = [
21466
21472
  ]
21467
21473
  }, {
21468
21474
  path: 'trace',
21469
- icon: 'footprint',
21475
+ icon: 'timeline',
21470
21476
  component: TracePaneComponent,
21471
21477
  policy: OpenPolicy.Tab | OpenPolicy.Expandable
21472
21478
  }, {
@@ -22328,14 +22334,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
22328
22334
 
22329
22335
  class SyncfusionDiagramModule {
22330
22336
  constructor() {
22331
- Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding, LineDistribution, LineRouting, ConnectorBridging$1 /*, LayoutAnimation*/);
22332
22337
  }
22333
22338
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
22334
22339
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, imports: [CommonModule,
22335
22340
  DiagramModule,
22336
22341
  SymbolPaletteModule], exports: [DiagramModule,
22337
22342
  SymbolPaletteModule] }); }
22338
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService], imports: [CommonModule,
22343
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
22344
+ DataBindingService, FlowchartLayoutService,
22345
+ UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService], imports: [CommonModule,
22339
22346
  DiagramModule,
22340
22347
  SymbolPaletteModule, DiagramModule,
22341
22348
  SymbolPaletteModule] }); }
@@ -22353,9 +22360,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
22353
22360
  DiagramModule,
22354
22361
  SymbolPaletteModule
22355
22362
  ],
22356
- providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService]
22363
+ providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
22364
+ DataBindingService, FlowchartLayoutService,
22365
+ UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService]
22357
22366
  }]
22358
22367
  }], ctorParameters: () => [] });
22368
+ Diagram$1.Inject(FlowchartLayout, HierarchicalTree, ComplexHierarchicalTree, BpmnDiagrams$1, LineDistribution, LineRouting, ConnectorBridging);
22359
22369
 
22360
22370
  class SyncfusionGridModule {
22361
22371
  constructor() {
@@ -34115,11 +34125,11 @@ class DesignerItemComponent {
34115
34125
  this._destroy?.complete();
34116
34126
  }
34117
34127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.FormBuilder }, { token: i2$1.DomSanitizer }, { token: DesignerRef }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
34118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save", onContinue: "continue" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save", onContinue: "continue" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1;width:100%}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34119
34129
  }
34120
34130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignerItemComponent, decorators: [{
34121
34131
  type: Component,
34122
- args: [{ selector: 'bizdoc-designer-element', template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
34132
+ args: [{ selector: 'bizdoc-designer-element', template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}}&nbsp;<mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1;width:100%}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
34123
34133
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FormBuilder }, { type: i2$1.DomSanitizer }, { type: DesignerRef, decorators: [{
34124
34134
  type: Inject,
34125
34135
  args: [DesignerRef]
@@ -35321,8 +35331,8 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35321
35331
  eclone = clone(eclone); // deep
35322
35332
  const injector = this._createInjector(eclone, section.elements, mode);
35323
35333
  return new Promise((resolve, reject) => this._panes.navigate(section.comp, {
35324
- policy: mode === 'add' ? OpenPolicy.Dialog | OpenPolicy.Stretch :
35325
- OpenPolicy.Tab | OpenPolicy.Toggle | OpenPolicy.Defer,
35334
+ policy: mode === 'add' ? OpenPolicy.Dialog : OpenPolicy.Tab & ~OpenPolicy.Dismissable
35335
+ | OpenPolicy.Toggle | OpenPolicy.Defer,
35326
35336
  group: this._translate.get(section.title),
35327
35337
  //title,
35328
35338
  injector: injector