@bizdoc/core 1.13.32 → 1.13.36

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 (47) hide show
  1. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +4 -4
  2. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +52 -19
  3. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -5
  4. package/esm2020/lib/compose/compose.pane.component.mjs +1 -1
  5. package/esm2020/lib/compose/trace/flow.component.mjs +15 -10
  6. package/esm2020/lib/compose/trace/trace.component.mjs +60 -93
  7. package/esm2020/lib/core/models.mjs +1 -1
  8. package/esm2020/lib/core/session.service.mjs +2 -2
  9. package/esm2020/lib/core/translations.mjs +5 -5
  10. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -1
  11. package/esm2020/lib/dashboard/cube/compare.widget.mjs +6 -5
  12. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +206 -0
  13. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +2 -2
  14. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +5 -9
  15. package/esm2020/lib/modules/chart.module.mjs +10 -10
  16. package/esm2020/lib/modules/circular-gauge.module.mjs +1 -1
  17. package/esm2020/lib/modules/dayjs.module.mjs +41 -0
  18. package/esm2020/lib/modules/diagram.module.mjs +1 -1
  19. package/esm2020/lib/modules/gantt.module.mjs +4 -3
  20. package/esm2020/lib/modules/pivot.module.mjs +1 -1
  21. package/esm2020/lib/reports/cube/usage-base.mjs +2 -2
  22. package/esm2020/lib/reports/cube/usage-chart.component.mjs +11 -7
  23. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -3
  24. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  25. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  26. package/esm2020/lib/shared.module.mjs +14 -32
  27. package/esm2020/lib/system.module.mjs +2 -1
  28. package/esm2020/public-api.mjs +2 -2
  29. package/fesm2015/bizdoc-core.mjs +267 -222
  30. package/fesm2015/bizdoc-core.mjs.map +1 -1
  31. package/fesm2020/bizdoc-core.mjs +267 -223
  32. package/fesm2020/bizdoc-core.mjs.map +1 -1
  33. package/lib/admin/form/workflow/workflow.component.d.ts +9 -6
  34. package/lib/compose/trace/trace.component.d.ts +1 -1
  35. package/lib/core/models.d.ts +1 -0
  36. package/lib/core/translations.d.ts +4 -4
  37. package/lib/dashboard/score/{compare-departments.widget.d.ts → compare-groups.widget.d.ts} +3 -3
  38. package/lib/dashboard/score/pending-results.widget.d.ts +0 -1
  39. package/lib/modules/chart.module.d.ts +1 -1
  40. package/lib/modules/dayjs.module.d.ts +6 -0
  41. package/lib/reports/cube/usage-base.d.ts +1 -1
  42. package/lib/reports/cube/usage-pivot.component.d.ts +5 -1
  43. package/lib/shared.module.d.ts +21 -19
  44. package/lib/system.module.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/public-api.d.ts +1 -1
  47. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +0 -206
@@ -121,7 +121,7 @@ import { Platform } from '@angular/cdk/platform';
121
121
  import { SelectionModel } from '@angular/cdk/collections';
122
122
  import * as i25 from '@angular/flex-layout/extended';
123
123
  import * as i8$3 from '@syncfusion/ej2-angular-charts';
124
- import { AccumulationChart, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationLegend, Export, PieSeries, Chart as Chart$1, Category, DateTime, Tooltip as Tooltip$1, Legend, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, ChartModule, AccumulationChartAllModule, SparklineAllModule, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService, SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService, StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService, BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService, CrosshairService, CategoryService, DateTimeService, LogarithmicService, LegendService, ZoomService, DataLabelService, SelectionService, ChartAnnotationService, WaterfallSeriesService, RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService, MultiLevelLabelService, ParetoSeriesService, TooltipRenderService, ExportService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, AccumulationChartComponent, ChartComponent } from '@syncfusion/ej2-angular-charts';
124
+ import { AccumulationChart, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationLegend, Export, PieSeries, Chart as Chart$1, Category, DateTime, Tooltip as Tooltip$1, Legend, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule, RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService, SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService, StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService, BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService, CrosshairService, CategoryService, DateTimeService, LogarithmicService, LegendService, ZoomService, DataLabelService, SelectionService, ChartAnnotationService, WaterfallSeriesService, RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService, MultiLevelLabelService, ParetoSeriesService, TooltipRenderService, SparklineTooltipService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, AccumulationChartComponent, ChartComponent } from '@syncfusion/ej2-angular-charts';
125
125
  import { Workbook } from '@syncfusion/ej2-excel-export';
126
126
  import { Chart } from '@syncfusion/ej2-charts';
127
127
  import * as i6$5 from '@syncfusion/ej2-angular-grids';
@@ -132,8 +132,8 @@ import * as i9$5 from '@syncfusion/ej2-angular-spreadsheet';
132
132
  import { Spreadsheet, isNumber, SpreadsheetModule, SelectionService as SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService, KeyboardShortcutService, NumberFormatService } from '@syncfusion/ej2-angular-spreadsheet';
133
133
  import * as i4$1 from '@ctrl/ngx-emoji-mart';
134
134
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
135
- import * as i11$1 from '@syncfusion/ej2-angular-diagrams';
136
- import { Diagram, UndoRedo, ConnectorDrawingTool, DiagramConstraints, DiagramTools, NodeConstraints, ConnectorConstraints, SelectorConstraints, Node, SymbolPaletteComponent, ComplexHierarchicalTree, BpmnDiagrams, DataBinding, LineDistribution, ConnectionPointOrigin, SnapConstraints, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, ToolBase } from '@syncfusion/ej2-angular-diagrams';
135
+ import { Diagram, BpmnDiagrams, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, DataBinding, SymbolPalette, ConnectorDrawingTool, DiagramConstraints, DiagramTools, NodeConstraints, ConnectorConstraints, SelectorConstraints, Node } from '@syncfusion/ej2-diagrams';
136
+ import { Diagram as Diagram$1, ComplexHierarchicalTree, BpmnDiagrams as BpmnDiagrams$1, DataBinding as DataBinding$1, LineDistribution, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, ToolBase, SelectorConstraints as SelectorConstraints$1, ConnectorConstraints as ConnectorConstraints$1 } from '@syncfusion/ej2-angular-diagrams';
137
137
  import * as i9$2 from '@syncfusion/ej2-angular-schedule';
138
138
  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';
139
139
  import * as i10$1 from '@syncfusion/ej2-angular-kanban';
@@ -141,12 +141,13 @@ import { KanbanComponent, KanbanModule } from '@syncfusion/ej2-angular-kanban';
141
141
  import { CircularGaugeModule, AnnotationsService, GaugeTooltipService, LegendService as LegendService$1, CircularGauge, Annotations, GaugeTooltip, CircularGaugeComponent, Legend as Legend$1 } from '@syncfusion/ej2-angular-circulargauge';
142
142
  import { PivotViewModule, ExcelExportService as ExcelExportService$1, GroupingBarService, NumberFormattingService, GroupingService, PivotChartService, ConditionalFormattingService, PivotView as PivotView$1, ExcelExport as ExcelExport$2, PivotViewComponent } from '@syncfusion/ej2-angular-pivotview';
143
143
  import * as i7$5 from '@syncfusion/ej2-angular-gantt';
144
- import { GanttModule, Gantt, SelectionService as SelectionService$3, DayMarkersService } from '@syncfusion/ej2-angular-gantt';
145
- import player from 'lottie-web/build/player/lottie';
144
+ import { GanttModule, ExcelExportService as ExcelExportService$3, DayMarkersService, SelectionService as SelectionService$3, Gantt } from '@syncfusion/ej2-angular-gantt';
146
145
  import relativeTime from 'dayjs/plugin/relativeTime';
147
146
  import duration from 'dayjs/plugin/duration';
148
147
  import calendar from 'dayjs/plugin/calendar';
148
+ import advancedFormat from 'dayjs/plugin/advancedFormat';
149
149
  import updateLocale from 'dayjs/plugin/updateLocale';
150
+ import player from 'lottie-web/build/player/lottie';
150
151
 
151
152
  const expandListItemAnimation = trigger('detailExpand', [
152
153
  state('collapsed', style({ height: '0px', minHeight: '0', display: '' })),
@@ -1023,7 +1024,7 @@ class SessionService {
1023
1024
  _config && _config.maps && this._loadMaps();
1024
1025
  }
1025
1026
  get profile() { return this._profile; }
1026
- get gender() { return this._profile.byGender || this._profile.gender; }
1027
+ get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
1027
1028
  get accentPalette() {
1028
1029
  const palette = MATERIAL_PALETTES[this.theme.accent];
1029
1030
  return this._constructpalette(palette);
@@ -2073,7 +2074,7 @@ const STRINGS = {
2073
2074
  YouSubstituteActionTakenTo: 'Document {0} to {1} by you instead of {2} {3}',
2074
2075
  Substituting: '{0} substituting {1}',
2075
2076
  SubstitutingForYou: '{0} substituting you',
2076
- YouSubstitute: 'You substituting {0}',
2077
+ YouSubstituting: 'You substituting {0}',
2077
2078
  SubstitutingBy: '{0} by {2} substituting {1}',
2078
2079
  SubstitutingByYou: '{0} by you substituting {1}',
2079
2080
  SubstitutingYou: 'Substituting for you',
@@ -2629,9 +2630,9 @@ const STRINGS = {
2629
2630
  SubstitutingForFemale: 'במקום {0}',
2630
2631
  Substituting: '{0} מחליף את {1}',
2631
2632
  SubstitutingForYou: '{0} מחליף אותך',
2632
- YouSubstitute: 'את/ה מחליף את {0}',
2633
- YouSubstituteMale: 'אתה מחליף את {0}',
2634
- YouSubstituteFemale: 'את מחליפה את {0}',
2633
+ YouSubstituting: 'את/ה מחליף את {0}',
2634
+ YouSubstitutingMale: 'אתה מחליף את {0}',
2635
+ YouSubstitutingFemale: 'את מחליפה את {0}',
2635
2636
  SubstitutingBy: '{0} מחליף את {1} דרך {2}',
2636
2637
  SubstitutingByYou: '{0} מחליף/פה את {1} דרכך}',
2637
2638
  SubstitutingByYouMale: '{0} מחליף את {1} דרכך}',
@@ -7471,10 +7472,8 @@ class ExpandedItemComponent {
7471
7472
  this.note = this._translate.personalize('YouSubstituteActionTaken', substituting.gender, adjective, this._formatUserElement(substituting), time);
7472
7473
  }
7473
7474
  else if (escalated) {
7474
- const escalations = log.filter(l => l.time > issued &&
7475
- l.type === 'Escalation'
7476
- && l.recipientId === id);
7477
- this.note = this._translate.personalize('EscalatedFrom', substituting.gender, this._formatUserElement(substituting), this._duration(escalations[0].duration));
7475
+ const escalation = log.find(l => l.type === 'Escalation' && l.recipientId === originId);
7476
+ this.note = this._translate.personalize('EscalatedFrom', substituting.gender, this._formatUserElement(substituting), this._duration(escalation.duration));
7478
7477
  }
7479
7478
  else {
7480
7479
  const time = this._fromNow(received);
@@ -10893,6 +10892,7 @@ class CubeSpreadsheetComponent {
10893
10892
  enableContextMenu: false,
10894
10893
  showFormulaBar: false,
10895
10894
  showSheetTabs: false,
10895
+ enableKeyboardNavigation: true,
10896
10896
  select: this.select.bind(this),
10897
10897
  sheets: [{
10898
10898
  columns: this.columns,
@@ -13070,12 +13070,12 @@ class ReportPaneComponent {
13070
13070
  }
13071
13071
  }
13072
13072
  ReportPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: i0.ChangeDetectorRef }, { token: PromptService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component });
13073
- ReportPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ReportPaneComponent, selector: "bizdoc-report.pane", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" fxFlex></bizdoc-report-viewer>\r\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;flex-direction:column}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
13073
+ ReportPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ReportPaneComponent, selector: "bizdoc-report.pane", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" fxFlex></bizdoc-report-viewer>\r\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;flex-direction:column}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
13074
13074
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportPaneComponent, decorators: [{
13075
13075
  type: Component,
13076
13076
  args: [{ selector: 'bizdoc-report.pane', host: {
13077
13077
  class: 'pane'
13078
- }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" fxFlex></bizdoc-report-viewer>\r\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;flex-direction:column}\n"] }]
13078
+ }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" fxFlex></bizdoc-report-viewer>\r\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;flex-direction:column}\n"] }]
13079
13079
  }], ctorParameters: function () { return [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { viewer: [{
13080
13080
  type: ViewChild,
13081
13081
  args: [ReportViewerComponent, { static: true }]
@@ -13267,7 +13267,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
13267
13267
  type: Injectable
13268
13268
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
13269
13269
 
13270
- Diagram.Inject(UndoRedo);
13270
+ Diagram.Inject(BpmnDiagrams, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, DataBinding);
13271
+ SymbolPalette.Inject(BpmnDiagrams);
13271
13272
  function getPorts$1() {
13272
13273
  const ports = [
13273
13274
  { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },
@@ -13332,7 +13333,6 @@ class WorkflowComponent {
13332
13333
  this.connectorType = 'Bezier';
13333
13334
  this.alignment = 'Center';
13334
13335
  this.fontSize = 12;
13335
- this.getCustomTool = this.getTool.bind(this);
13336
13336
  this.saving = false;
13337
13337
  this.dirty = false;
13338
13338
  this.palettes = [];
@@ -13403,6 +13403,38 @@ class WorkflowComponent {
13403
13403
  tool = new DrawTool(this.diagram, this.connectorType);
13404
13404
  return tool;
13405
13405
  }
13406
+ ngOnInit() {
13407
+ }
13408
+ ngAfterViewInit() {
13409
+ this.symbolPalette = new SymbolPalette({
13410
+ expandMode: 'Multiple',
13411
+ palettes: this.palettes,
13412
+ width: "100%", height: "100%", symbolHeight: 80,
13413
+ enableRtl: false, enableAnimation: false, symbolWidth: 80,
13414
+ symbolMargin: this.symbolMargin,
13415
+ getSymbolInfo: this.getSymbolInfo.bind(this),
13416
+ getNodeDefaults: this.getSymbolDefaults.bind(this)
13417
+ });
13418
+ this.symbolPalette.appendTo(this.symbolPaletteEl.nativeElement);
13419
+ this.diagram = new Diagram({
13420
+ width: "100%", height: "100%",
13421
+ snapSettings: this.snapSettings,
13422
+ getConnectorDefaults: this.connDefaults.bind(this),
13423
+ constraints: this.diagramConstraints,
13424
+ tool: this.diagramTool,
13425
+ getNodeDefaults: this.nodeDefaults.bind(this),
13426
+ getCustomTool: this.getTool.bind(this),
13427
+ scrollSettings: this.scrollSettings,
13428
+ selectedItems: this.selectedItems,
13429
+ rulerSettings: this.rulerSettings,
13430
+ dragEnter: this.dragEnter.bind(this),
13431
+ connectionChange: this.change.bind(this),
13432
+ collectionChange: this.change.bind(this),
13433
+ propertyChange: this.propertyChange.bind(this),
13434
+ selectionChange: this.selectionChange.bind(this),
13435
+ }, this.diagramEl.nativeElement);
13436
+ this.diagramCreate();
13437
+ }
13406
13438
  diagramCreate() {
13407
13439
  paletteIconClick();
13408
13440
  this._pane.paramsChange.pipe(takeUntil(this._destroy)).subscribe(p => {
@@ -13431,7 +13463,7 @@ class WorkflowComponent {
13431
13463
  addInfo: {
13432
13464
  nodeType: n.name,
13433
13465
  title: n.title
13434
- }
13466
+ },
13435
13467
  };
13436
13468
  node.node = n.name;
13437
13469
  let palette = this.palettes.find(p => p.title === (n.palette || ''));
@@ -13609,7 +13641,7 @@ class WorkflowComponent {
13609
13641
  this.dirty = true;
13610
13642
  }
13611
13643
  save() {
13612
- this.diagram.serializationSettings = {};
13644
+ this.diagram.serializationSettings = { preventDefaults: true };
13613
13645
  const obj = JSON.parse(this.diagram.saveDiagram());
13614
13646
  this._form.workflow.connectors = obj.connectors;
13615
13647
  this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version').map((n) => {
@@ -13635,23 +13667,26 @@ class WorkflowComponent {
13635
13667
  });
13636
13668
  }
13637
13669
  ngOnDestroy() {
13670
+ var _a, _b;
13671
+ (_a = this.symbolPalette) === null || _a === void 0 ? void 0 : _a.destroy();
13672
+ (_b = this.diagram) === null || _b === void 0 ? void 0 : _b.destroy();
13638
13673
  this._destroy.next();
13639
13674
  this._destroy.complete();
13640
13675
  }
13641
13676
  }
13642
13677
  WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WorkflowComponent, deps: [{ token: PromptService }, { token: FormService }, { token: PaneRef }, { token: PanesRouter }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
13643
- WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPalette", first: true, predicate: SymbolPaletteComponent, descendants: true }, { propertyName: "diagram", first: true, predicate: ["diagram"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n &nbsp;\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"!diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"!diagram.selectedItems?.nodes.length && !diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" *ngIf=\"tools\">\r\n <ejs-symbolpalette dir=\"ltr\" expandMode='Multiple' [palettes]='palettes' width=\"100%\" height=\"100%\" [symbolHeight]=80\r\n [enableRtl]=\"false\" [enableAnimation]=\"false\" [symbolWidth]=80 [symbolMargin]='symbolMargin' [getSymbolInfo]='getSymbolInfo' [getNodeDefaults]='getSymbolDefaults'>\r\n </ejs-symbolpalette>\r\n </div>\r\n <ejs-diagram #diagram id=\"diagram\" width=\"100%\" height=\"100%\" dir=\"ltr\" [snapSettings]='snapSettings' [getConnectorDefaults]='connDefaults' fxFlex\r\n [constraints]=\"diagramConstraints\" [tool]=diagramTool [getNodeDefaults]='nodeDefaults' [getCustomTool]='getCustomTool' [scrollSettings]=\"scrollSettings\"\r\n [selectedItems]=\"selectedItems\"\r\n [rulerSettings]=\"rulerSettings\"\r\n (dragEnter)='dragEnter($event)'\r\n (connectionChange)=\"change()\"\r\n (collectionChange)=\"change()\"\r\n (propertyChange)=\"propertyChange($event)\"\r\n (selectionChange)=\"selectionChange()\"\r\n (created)=\"diagramCreate()\">\r\n </ejs-diagram>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11$1.SymbolPaletteComponent, selector: "ejs-symbolpalette", inputs: ["accessKey", "allowDrag", "connectorDefaults", "enableAnimation", "enablePersistence", "enableRtl", "enableSearch", "expandMode", "filterSymbols", "getConnectorDefaults", "getNodeDefaults", "getSymbolInfo", "getSymbolTemplate", "height", "ignoreSymbolsOnSearch", "locale", "nodeDefaults", "palettes", "symbolDragSize", "symbolHeight", "symbolInfo", "symbolMargin", "symbolPreview", "symbolWidth", "width"], outputs: ["paletteExpanding", "paletteSelectionChange"] }, { type: i11$1.DiagramComponent, selector: "ejs-diagram", inputs: ["addInfo", "annotationTemplate", "backgroundColor", "bridgeDirection", "commandManager", "connectorDefaults", "connectors", "constraints", "contextMenuSettings", "customCursor", "dataSourceSettings", "diagramSettings", "drawingObject", "enablePersistence", "enableRtl", "getConnectorDefaults", "getCustomCursor", "getCustomProperty", "getCustomTool", "getDescription", "getNodeDefaults", "height", "historyManager", "layers", "layout", "locale", "mode", "nodeDefaults", "nodeTemplate", "nodes", "pageSettings", "rulerSettings", "scrollSettings", "selectedItems", "serializationSettings", "setNodeTemplate", "snapSettings", "tool", "tooltip", "updateSelection", "userHandleTemplate", "width"], outputs: ["animationComplete", "click", "collectionChange", "commandExecute", "connectionChange", "contextMenuBeforeItemRender", "contextMenuClick", "contextMenuOpen", "created", "dataLoaded", "doubleClick", "dragEnter", "dragLeave", "dragOver", "drop", "expandStateChange", "fixedUserHandleClick", "historyChange", "historyStateChange", "keyDown", "keyUp", "mouseEnter", "mouseLeave", "mouseOver", "onImageLoad", "onUserHandleMouseDown", "onUserHandleMouseEnter", "onUserHandleMouseLeave", "onUserHandleMouseUp", "positionChange", "propertyChange", "rotateChange", "scrollChange", "segmentCollectionChange", "selectionChange", "sizeChange", "sourcePointChange", "targetPointChange", "textEdit"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
13678
+ WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPalette"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagram"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n &nbsp;\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"!diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"!diagram.selectedItems?.nodes.length && !diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPalette>\r\n </div>\r\n </div>\r\n <div #diagram id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i25.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i6$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": TranslatePipe } });
13644
13679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WorkflowComponent, decorators: [{
13645
13680
  type: Component,
13646
13681
  args: [{ selector: 'bizdoc-workflow', host: {
13647
13682
  class: 'pane'
13648
- }, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n &nbsp;\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"!diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"!diagram.selectedItems?.nodes.length && !diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" *ngIf=\"tools\">\r\n <ejs-symbolpalette dir=\"ltr\" expandMode='Multiple' [palettes]='palettes' width=\"100%\" height=\"100%\" [symbolHeight]=80\r\n [enableRtl]=\"false\" [enableAnimation]=\"false\" [symbolWidth]=80 [symbolMargin]='symbolMargin' [getSymbolInfo]='getSymbolInfo' [getNodeDefaults]='getSymbolDefaults'>\r\n </ejs-symbolpalette>\r\n </div>\r\n <ejs-diagram #diagram id=\"diagram\" width=\"100%\" height=\"100%\" dir=\"ltr\" [snapSettings]='snapSettings' [getConnectorDefaults]='connDefaults' fxFlex\r\n [constraints]=\"diagramConstraints\" [tool]=diagramTool [getNodeDefaults]='nodeDefaults' [getCustomTool]='getCustomTool' [scrollSettings]=\"scrollSettings\"\r\n [selectedItems]=\"selectedItems\"\r\n [rulerSettings]=\"rulerSettings\"\r\n (dragEnter)='dragEnter($event)'\r\n (connectionChange)=\"change()\"\r\n (collectionChange)=\"change()\"\r\n (propertyChange)=\"propertyChange($event)\"\r\n (selectionChange)=\"selectionChange()\"\r\n (created)=\"diagramCreate()\">\r\n </ejs-diagram>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"] }]
13649
- }], ctorParameters: function () { return [{ type: PromptService }, { type: FormService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }]; }, propDecorators: { symbolPalette: [{
13683
+ }, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n &nbsp;\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"!diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"!diagram.selectedItems?.nodes.length && !diagram.selectedItems?.connectors.length\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPalette>\r\n </div>\r\n </div>\r\n <div #diagram id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}\n"] }]
13684
+ }], ctorParameters: function () { return [{ type: PromptService }, { type: FormService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }]; }, propDecorators: { symbolPaletteEl: [{
13650
13685
  type: ViewChild,
13651
- args: [SymbolPaletteComponent]
13652
- }], diagram: [{
13686
+ args: ['symbolPalette', { static: true }]
13687
+ }], diagramEl: [{
13653
13688
  type: ViewChild,
13654
- args: ['diagram']
13689
+ args: ['diagram', { static: true }]
13655
13690
  }], handleKeyboardEvent: [{
13656
13691
  type: HostListener,
13657
13692
  args: ['document:keydown', ['$event']]
@@ -13842,7 +13877,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
13842
13877
  args: [{ name: 'amDurationFormat' }]
13843
13878
  }], ctorParameters: function () { return [{ type: TranslateService }]; } });
13844
13879
 
13845
- Diagram.Inject(ComplexHierarchicalTree, BpmnDiagrams, DataBinding, LineDistribution /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
13880
+ Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding$1, LineDistribution /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
13846
13881
  const
13847
13882
  //ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
13848
13883
  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';
@@ -13857,11 +13892,11 @@ class FlowViewComponent extends TraceBase {
13857
13892
  this._duration = _duration;
13858
13893
  this._elementRef = _elementRef;
13859
13894
  this.connectorType = 'Orthogonal';
13860
- this.tool = DiagramTools.ZoomPan;
13861
- this.diagramConstraints = DiagramConstraints.Default |
13862
- DiagramConstraints.Pan |
13863
- DiagramConstraints.LineRouting |
13864
- DiagramConstraints.Zoom;
13895
+ this.tool = DiagramTools$1.ZoomPan;
13896
+ this.diagramConstraints = DiagramConstraints$1.Default |
13897
+ DiagramConstraints$1.Pan |
13898
+ DiagramConstraints$1.LineRouting |
13899
+ DiagramConstraints$1.Zoom;
13865
13900
  this.layout = {
13866
13901
  type: 'ComplexHierarchicalTree',
13867
13902
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
@@ -13900,7 +13935,7 @@ class FlowViewComponent extends TraceBase {
13900
13935
  return __awaiter(this, void 0, void 0, function* () {
13901
13936
  const { connectors, nodes, indicators } = yield this._prepare();
13902
13937
  this.diagram && this.diagram.destroy();
13903
- this.diagram = new Diagram({
13938
+ this.diagram = new Diagram$1({
13904
13939
  width: '100%',
13905
13940
  height: 380,
13906
13941
  nodes,
@@ -14033,15 +14068,18 @@ class FlowViewComponent extends TraceBase {
14033
14068
  for (r = 0; r < recipients.length; r++) {
14034
14069
  let recipient = recipients[r];
14035
14070
  const { annotation, tooltip } = yield this._note(node, recipient);
14071
+ const content = this._tooltip(tooltip);
14036
14072
  const nod = {
14037
14073
  id: r === 0 ? node.id : node.id + r.toString(),
14038
14074
  shape: this._configuration[node.type].shape,
14039
14075
  zIndex: zIndex++,
14040
14076
  tooltip: {
14041
- content: this._tooltip(tooltip),
14077
+ content,
14042
14078
  position: 'TopCenter'
14043
14079
  },
14044
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default : NodeConstraints.Default & ~NodeConstraints.Tooltip,
14080
+ constraints: content ?
14081
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14082
+ NodeConstraints$1.Default,
14045
14083
  addInfo: {
14046
14084
  tooltip,
14047
14085
  recipient,
@@ -14121,15 +14159,18 @@ class FlowViewComponent extends TraceBase {
14121
14159
  else {
14122
14160
  const { state, annotation, tooltip } = yield this._shape(node);
14123
14161
  const { shape } = configuration;
14162
+ const content = this._tooltip(tooltip);
14124
14163
  nodes.push({
14125
14164
  id: node.id,
14126
14165
  shape,
14127
14166
  zIndex: zIndex++,
14128
14167
  tooltip: {
14129
- content: this._tooltip(tooltip),
14168
+ content,
14130
14169
  position: 'TopCenter'
14131
14170
  },
14132
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default | NodeConstraints.Tooltip : NodeConstraints.Default,
14171
+ constraints: content ?
14172
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14173
+ NodeConstraints$1.Default,
14133
14174
  addInfo: {
14134
14175
  tooltip,
14135
14176
  node
@@ -14428,11 +14469,10 @@ class FlowViewComponent extends TraceBase {
14428
14469
  }
14429
14470
  }
14430
14471
  if (recipient.escalated) {
14431
- const escalations = this.model.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
14432
- const userIds = escalations.map(e => e.userId);
14433
- const users = yield this._accounts.getAll(userIds).toPromise();
14434
- const duration = this._duration.transform(dayjs.duration(escalations[escalations.length - 1].duration, 's'));
14435
- tooltip.escalation = this._translate.get('EscalatedTo', this._translate.join(users.map(u => u.name)), duration);
14472
+ const escalation = this.model.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
14473
+ const who = yield this._accounts.get(escalation.userId).toPromise();
14474
+ const duration = this._duration.transform(dayjs.duration(escalation.duration, 's'));
14475
+ tooltip.escalation = this._translate.get('EscalatedFrom', who.name, duration);
14436
14476
  }
14437
14477
  if (recipient.replied) {
14438
14478
  const duration = dayjs(recipient.replied).diff(recipient.received, 's');
@@ -14618,9 +14658,9 @@ class TraceViewComponent extends TraceBase {
14618
14658
  step.fyi = recipient.fyi;
14619
14659
  if (recipient.substituteId) {
14620
14660
  if (recipient.byId) {
14621
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14661
+ if (recipient.byId === this._session.userId) {
14622
14662
  let who = yield profileOf(recipient.userId);
14623
- if (recipient.substituteId === this._session.userId && !this._session.isImpersonating)
14663
+ if (recipient.substituteId === this._session.userId)
14624
14664
  step.name = this._translate.get('ByYou', nameOf(who));
14625
14665
  else {
14626
14666
  let substituting = yield profileOf(recipient.substituteId);
@@ -14630,9 +14670,7 @@ class TraceViewComponent extends TraceBase {
14630
14670
  step.action = yield actionBy(action, You, recipient.id);
14631
14671
  }
14632
14672
  else {
14633
- let by = yield profileOf(recipient.byId);
14634
- let who = yield profileOf(recipient.userId);
14635
- let substituting = yield profileOf(recipient.substituteId);
14673
+ let by = yield profileOf(recipient.byId), who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14636
14674
  step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14637
14675
  if (by.role)
14638
14676
  step.role = by.role;
@@ -14640,31 +14678,29 @@ class TraceViewComponent extends TraceBase {
14640
14678
  step.action = yield actionBy(action, by.gender, recipient.id);
14641
14679
  }
14642
14680
  }
14681
+ else if (recipient.userId === this._session.userId) {
14682
+ let substituting = yield profileOf(recipient.substituteId);
14683
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14684
+ if (action)
14685
+ step.action = yield actionBy(action, this._session.gender, recipient.id);
14686
+ }
14687
+ else if (recipient.substituteId === this._session.userId) {
14688
+ let who = yield profileOf(recipient.userId);
14689
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14690
+ if (action)
14691
+ step.action = yield actionBy(action, who.gender, recipient.id);
14692
+ }
14643
14693
  else {
14644
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14645
- let substituting = yield profileOf(recipient.substituteId);
14646
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(substituting));
14647
- if (action)
14648
- step.action = yield actionBy(action, this._session.gender, recipient.id);
14649
- }
14650
- else if (recipient.substituteId === this._session.userId && !this._session.isImpersonating) {
14651
- let who = yield profileOf(recipient.userId);
14652
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14653
- if (action)
14654
- step.action = yield actionBy(action, who.gender, recipient.id);
14655
- }
14656
- else {
14657
- let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14658
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14659
- if (who.role)
14660
- step.role = who.role;
14661
- if (action)
14662
- step.action = yield actionBy(action, who.gender, recipient.id);
14663
- }
14694
+ let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14695
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14696
+ if (who.role)
14697
+ step.role = who.role;
14698
+ if (action)
14699
+ step.action = yield actionBy(action, who.gender, recipient.id);
14664
14700
  }
14665
14701
  }
14666
14702
  else if (recipient.byId) {
14667
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14703
+ if (recipient.userId === this._session.userId) {
14668
14704
  let by = yield profileOf(recipient.byId);
14669
14705
  step.name = this._translate.get('YouBy', nameOf(by));
14670
14706
  if (action)
@@ -14672,7 +14708,7 @@ class TraceViewComponent extends TraceBase {
14672
14708
  }
14673
14709
  else {
14674
14710
  let who = yield profileOf(recipient.userId);
14675
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14711
+ if (recipient.byId === this._session.userId) {
14676
14712
  step.name = this._translate.get('ByYou', nameOf(who));
14677
14713
  if (action)
14678
14714
  step.action = yield actionBy(action, You, recipient.id);
@@ -14688,7 +14724,7 @@ class TraceViewComponent extends TraceBase {
14688
14724
  }
14689
14725
  }
14690
14726
  else {
14691
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14727
+ if (recipient.userId === this._session.userId) {
14692
14728
  step.name = this._translate.get('You');
14693
14729
  if (action)
14694
14730
  step.action = yield actionBy(action, You, recipient.id);
@@ -14703,36 +14739,28 @@ class TraceViewComponent extends TraceBase {
14703
14739
  }
14704
14740
  }
14705
14741
  }
14706
- else {
14707
- if (l.userId === this._session.profile.userId) {
14708
- if (this._session.isImpersonating) {
14709
- if (l.userId === this._session.profile.byId)
14710
- step.name = this._translate.get('ByYou', this._session.profile.name);
14711
- else
14712
- step.name = this._session.profile.name;
14713
- }
14714
- else
14715
- step.name = this._translate.get('You');
14716
- }
14742
+ else if (l.byId) {
14743
+ let who = yield profileOf(l.userId);
14744
+ if (l.byId === this._session.profile.byId)
14745
+ step.name = this._translate.get('ByYou', nameOf(who));
14717
14746
  else {
14718
- let who = yield profileOf(l.userId);
14719
- if (who.role)
14720
- step.role = who.role;
14721
- if (l.byId) {
14722
- if (l.byId === this._session.profile.byId)
14723
- step.name = this._translate.get('ByYou', nameOf(who));
14724
- else {
14725
- let by = yield profileOf(l.byId);
14726
- step.name = this._translate.get('By', nameOf(who), nameOf(by));
14727
- }
14728
- }
14729
- else
14730
- step.name = nameOf(who);
14747
+ let by = yield profileOf(l.byId);
14748
+ step.name = this._translate.get('By', nameOf(who), nameOf(by));
14749
+ if (by.role)
14750
+ step.role = by.role;
14731
14751
  }
14732
14752
  }
14753
+ else if (l.userId === this._session.userId)
14754
+ step.name = this._translate.get('You');
14755
+ else {
14756
+ let who = yield profileOf(l.userId);
14757
+ step.name = nameOf(who);
14758
+ if (who.role)
14759
+ step.role = who.role;
14760
+ }
14733
14761
  }
14734
14762
  for (let recipient of recipients) {
14735
- if (!recipient.pending && !recipient.estimate && !recipient.fyi)
14763
+ if (!recipient.pending && !recipient.estimate)
14736
14764
  continue;
14737
14765
  let step = {
14738
14766
  time: recipient.received,
@@ -14754,39 +14782,22 @@ class TraceViewComponent extends TraceBase {
14754
14782
  step.durationMin = min,
14755
14783
  step.durationMax = max;
14756
14784
  }
14757
- step.fyi = recipient.fyi;
14758
14785
  }
14759
14786
  }
14760
14787
  if (recipient.substituteId) {
14761
- let who = yield profileOf(recipient.userId);
14762
- if (recipient.byId) {
14763
- if (recipient.byId === this._session.userId) {
14764
- if (recipient.substituteId === this._session.userId)
14765
- step.name = this._translate.get('ByYou', nameOf(who));
14766
- else {
14767
- let substituting = yield profileOf(recipient.substituteId);
14768
- step.name = this._translate.personalize('SubstitutingByYou', who.gender, nameOf(who), nameOf(substituting));
14769
- }
14770
- }
14771
- else {
14772
- let substituting = yield profileOf(recipient.substituteId);
14773
- let by = yield profileOf(recipient.byId);
14774
- step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14775
- if (by.role)
14776
- step.role = by.role;
14777
- }
14788
+ if (recipient.substituteId === this._session.userId) {
14789
+ let who = yield profileOf(recipient.userId);
14790
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14791
+ }
14792
+ else if (recipient.userId === this._session.userId) {
14793
+ let substituting = yield profileOf(recipient.substituteId);
14794
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14778
14795
  }
14779
14796
  else {
14780
- if (recipient.substituteId === this._session.userId)
14781
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14782
- else if (recipient.userId === this._session.userId)
14783
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(who));
14784
- else {
14785
- let substituting = yield profileOf(recipient.substituteId);
14786
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14787
- if (who.role)
14788
- step.role = who.role;
14789
- }
14797
+ let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14798
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14799
+ if (who.role)
14800
+ step.role = who.role;
14790
14801
  }
14791
14802
  }
14792
14803
  else if (recipient.byId) {
@@ -14801,18 +14812,14 @@ class TraceViewComponent extends TraceBase {
14801
14812
  }
14802
14813
  }
14803
14814
  else if (recipient.escalated) {
14804
- let escalations = this.model.log.filter(l => l.time > issued &&
14805
- l.type === 'Escalation' && l.recipientId === recipient.id);
14806
- let escalate = [];
14807
- for (let escalation of escalations) {
14815
+ let escalation = this.model.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
14816
+ let to = yield profileOf(recipient.userId);
14817
+ if (escalation.userId === this._session.userId)
14818
+ step.name = this._translate.get('EscalatedByYou', nameOf(to));
14819
+ else {
14808
14820
  let who = yield profileOf(escalation.userId);
14809
- escalate.push(who);
14821
+ step.name = this._translate.get('EscalatedBy', nameOf(who), nameOf(to));
14810
14822
  }
14811
- let who = yield profileOf(recipient.userId);
14812
- if (escalations.length === 1 && escalate[0] === this._session.userId)
14813
- step.name = this._translate.get('EscalatedByYou', nameOf(who));
14814
- else
14815
- step.name = this._translate.get('EscalatedBy', nameOf(who), this._translate.join(escalate.map(e => nameOf(e))));
14816
14823
  }
14817
14824
  else {
14818
14825
  if (recipient.userId === this._session.userId)
@@ -14861,7 +14868,7 @@ class TraceViewComponent extends TraceBase {
14861
14868
  this._chat.open(userId);
14862
14869
  }
14863
14870
  /**
14864
- * model version compare, form component in 'compare' view mode
14871
+ * model version compare
14865
14872
  * @param log
14866
14873
  */
14867
14874
  compare(log) {
@@ -20453,10 +20460,10 @@ class ReportComponent {
20453
20460
  }
20454
20461
  }
20455
20462
  ReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportComponent, deps: [{ token: WindowTitleService }, { token: i1$6.ActivatedRoute }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PromptService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component });
20456
- ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9$4.MatSidenavContent, selector: "mat-sidenav-content" }, { type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { type: i9$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: ReportArgumentsComponent, selector: "bizdoc-report-arguments", inputs: ["reportRef", "template", "arguments", "args"], outputs: ["argsChange"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": TranslatePipe } });
20463
+ ReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ReportComponent, selector: "bizdoc-report", viewQueries: [{ propertyName: "filter", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i9$4.MatSidenavContent, selector: "mat-sidenav-content" }, { type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { type: i9$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: ReportArgumentsComponent, selector: "bizdoc-report-arguments", inputs: ["reportRef", "template", "arguments", "args"], outputs: ["argsChange"] }], directives: [{ type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": TranslatePipe } });
20457
20464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportComponent, decorators: [{
20458
20465
  type: Component,
20459
- args: [{ selector: 'bizdoc-report', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"] }]
20466
+ args: [{ selector: 'bizdoc-report', template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"report.guide\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" *ngIf=\"hasFilters\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" *ngIf=\"hasFilters\"><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\">\r\n <mat-sidenav-content>\r\n <bizdoc-report-viewer [report]=\"report\" [args]=\"args\"></bizdoc-report-viewer>\r\n </mat-sidenav-content>\r\n <mat-sidenav mode=\"over\" opened=\"false\" #filter position=\"end\">\r\n <bizdoc-report-arguments *ngIf=\"viewer.reportRef\" [args]=\"args\" (argsChange)=\"argsChange($event)\" [reportRef]=\"viewer.reportRef\"\r\n [template]=\"report.argumentsTemplate\" [arguments]=\"report.arguments\"></bizdoc-report-arguments>\r\n </mat-sidenav>\r\n</mat-sidenav-container>\r\n", styles: [".contents{display:flex;flex-direction:column}\n"] }]
20460
20467
  }], ctorParameters: function () { return [{ type: WindowTitleService }, { type: i1$6.ActivatedRoute }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { filter: [{
20461
20468
  type: ViewChild,
20462
20469
  args: [MatSidenav, { static: true }]
@@ -20817,8 +20824,8 @@ Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Export, BarSeries, AreaSer
20817
20824
  class SyncfusionChartModule {
20818
20825
  }
20819
20826
  SyncfusionChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20820
- SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule] });
20821
- SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, providers: [AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20827
+ SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule] });
20828
+ SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, providers: [RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20822
20829
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20823
20830
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20824
20831
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20826,14 +20833,14 @@ SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
20826
20833
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20827
20834
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20828
20835
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20829
- ExportService,
20830
- AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartAllModule, SparklineAllModule], ChartModule, AccumulationChartAllModule, SparklineAllModule] });
20836
+ SparklineTooltipService,
20837
+ AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule], ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule] });
20831
20838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, decorators: [{
20832
20839
  type: NgModule,
20833
20840
  args: [{
20834
- imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20835
- exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20836
- providers: [AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20841
+ imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20842
+ exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20843
+ providers: [RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20837
20844
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20838
20845
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20839
20846
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20841,7 +20848,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
20841
20848
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20842
20849
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20843
20850
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20844
- ExportService,
20851
+ SparklineTooltipService,
20845
20852
  AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService]
20846
20853
  }]
20847
20854
  }] });
@@ -20976,13 +20983,46 @@ class SyncfusionGanttModule {
20976
20983
  }
20977
20984
  SyncfusionGanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20978
20985
  SyncfusionGanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, imports: [GanttModule], exports: [GanttModule] });
20979
- SyncfusionGanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, providers: [], imports: [[GanttModule], GanttModule] });
20986
+ SyncfusionGanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, providers: [ExcelExportService$3, DayMarkersService, SelectionService$3], imports: [[GanttModule], GanttModule] });
20980
20987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, decorators: [{
20981
20988
  type: NgModule,
20982
20989
  args: [{
20983
20990
  imports: [GanttModule],
20984
20991
  exports: [GanttModule],
20985
- providers: []
20992
+ providers: [ExcelExportService$3, DayMarkersService, SelectionService$3]
20993
+ }]
20994
+ }] });
20995
+
20996
+ // https://day.js.org/docs/en/customization/relative-time
20997
+ dayjs.extend(relativeTime, {
20998
+ thresholds: [
20999
+ { l: 's', r: 1 },
21000
+ { l: 'm', r: 1 },
21001
+ { l: 'mm', r: 59, d: 'minute' },
21002
+ { l: 'h', r: 1 },
21003
+ { l: 'hh', r: 24, d: 'hour' },
21004
+ { l: 'd', r: 1 },
21005
+ { l: 'dd', r: 29, d: 'day' },
21006
+ { l: 'M', r: 1 },
21007
+ { l: 'MM', r: 11, d: 'month' },
21008
+ { l: 'y' },
21009
+ { l: 'yy', d: 'year' }
21010
+ ]
21011
+ });
21012
+ dayjs.extend(duration);
21013
+ dayjs.extend(calendar);
21014
+ dayjs.extend(updateLocale);
21015
+ dayjs.extend(advancedFormat);
21016
+ class DayJsModule {
21017
+ }
21018
+ DayJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21019
+ DayJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule });
21020
+ DayJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, imports: [[]] });
21021
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, decorators: [{
21022
+ type: NgModule,
21023
+ args: [{
21024
+ imports: [],
21025
+ exports: [],
20986
21026
  }]
20987
21027
  }] });
20988
21028
 
@@ -22217,14 +22257,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22217
22257
  args: [ChartComponent]
22218
22258
  }] } });
22219
22259
 
22220
- var CompareDepartmentsWidget_1;
22260
+ var CompareGroupsWidget_1;
22221
22261
  /** */
22222
- let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartmentsWidget {
22262
+ let CompareGroupsWidget = CompareGroupsWidget_1 = class CompareGroupsWidget {
22223
22263
  constructor(_translate, widgetRef, _elementRef, _session) {
22224
22264
  this._translate = _translate;
22225
22265
  this._elementRef = _elementRef;
22226
22266
  this._session = _session;
22227
- this.id = `department-compare-${CompareDepartmentsWidget_1.nextId++}`;
22267
+ this.id = `groups-compare-${CompareGroupsWidget_1.nextId++}`;
22228
22268
  this.palettes = this._session.accentPalette;
22229
22269
  this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
22230
22270
  this.enableRtl = this._session.inverse;
@@ -22386,18 +22426,18 @@ let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartm
22386
22426
  this._destroy.complete();
22387
22427
  }
22388
22428
  };
22389
- CompareDepartmentsWidget.nextId = 0;
22390
- CompareDepartmentsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareDepartmentsWidget, deps: [{ token: TranslateService }, { token: WidgetRef }, { token: i0.ElementRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
22391
- CompareDepartmentsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: CompareDepartmentsWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true });
22392
- CompareDepartmentsWidget = CompareDepartmentsWidget_1 = __decorate([
22429
+ CompareGroupsWidget.nextId = 0;
22430
+ CompareGroupsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareGroupsWidget, deps: [{ token: TranslateService }, { token: WidgetRef }, { token: i0.ElementRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
22431
+ CompareGroupsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: CompareGroupsWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true });
22432
+ CompareGroupsWidget = CompareGroupsWidget_1 = __decorate([
22393
22433
  BizDoc({
22394
- selector: 'bizdoc-compare-departments'
22434
+ selector: 'bizdoc-compare-groups'
22395
22435
  })
22396
- ], CompareDepartmentsWidget);
22397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareDepartmentsWidget, decorators: [{
22436
+ ], CompareGroupsWidget);
22437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareGroupsWidget, decorators: [{
22398
22438
  type: Component,
22399
22439
  args: [{
22400
- //templateUrl: './compare-departments.widget.html',
22440
+ //templateUrl: './compare-groups.widget.html',
22401
22441
  template: '',
22402
22442
  providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
22403
22443
  host: {
@@ -22627,7 +22667,7 @@ PeersPerformanceWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
22627
22667
  PeersPerformanceWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: PeersPerformanceWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "this.id" }, styleAttribute: "display: block" }, viewQueries: [{ propertyName: "gauge", first: true, predicate: CircularGaugeComponent, descendants: true }], ngImport: i0, template: '', isInline: true });
22628
22668
  PeersPerformanceWidget = PeersPerformanceWidget_1 = __decorate([
22629
22669
  BizDoc({
22630
- selector: 'bizdoc-departmental-performance'
22670
+ selector: 'bizdoc-peers-performance'
22631
22671
  })
22632
22672
  ], PeersPerformanceWidget);
22633
22673
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PeersPerformanceWidget, decorators: [{
@@ -22659,17 +22699,13 @@ let PendingResultsWidget = class PendingResultsWidget {
22659
22699
  this.sort.direction = 'desc';
22660
22700
  this.dataSource.sort = this.sort;
22661
22701
  }
22662
- asDays(seconds) {
22663
- const duration = dayjs.duration(seconds, 's');
22664
- return `${Math.floor(duration.asDays())}:${Math.round(duration.hours())}`;
22665
- }
22666
22702
  ngOnDestroy() {
22667
22703
  this._destroy.next();
22668
22704
  this._destroy.complete();
22669
22705
  }
22670
22706
  };
22671
22707
  PendingResultsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PendingResultsWidget, deps: [{ token: WidgetRef }], target: i0.ɵɵFactoryTarget.Component });
22672
- PendingResultsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: PendingResultsWidget, selector: "bizdoc-pending-results", host: { properties: { "style.height": "this.height" } }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='asDays(element.duration)'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span *ngIf=\"element.standard\" [bizdocTooltip]=\"asDays(element.standard)\">{{ element.standard | amDuration: 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped> .range {\r\n white-space: nowrap;\r\n }\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", " .range {\n white-space: nowrap;\n }\n"], components: [{ type: i5$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i5$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i5$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5$2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5$2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5$2.MatCellDef, selector: "[matCellDef]" }, { type: i5$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i5$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": TranslatePipe, "amDuration": DurationPipe }, animations: [
22708
+ PendingResultsWidget.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: PendingResultsWidget, selector: "bizdoc-pending-results", host: { properties: { "style.height": "this.height" } }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='element.duration|amDurationFormat'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span *ngIf=\"element.standard\" [bizdocTooltip]=\"element.standard|amDurationFormat\">{{ element.standard | amDuration: 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped>\r\n .range {\r\n white-space: nowrap;\r\n }\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", "\n .range {\n white-space: nowrap;\n }\n"], components: [{ type: i5$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i5$2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5$2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }], directives: [{ type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i5$2.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5$2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5$2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5$2.MatCellDef, selector: "[matCellDef]" }, { type: i5$2.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i5$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "translate": TranslatePipe, "amDurationFormat": DurationFormatPipe, "amDuration": DurationPipe }, animations: [
22673
22709
  listAnimation,
22674
22710
  itemAnimation
22675
22711
  ] });
@@ -22683,7 +22719,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22683
22719
  args: [{ selector: 'bizdoc-pending-results', animations: [
22684
22720
  listAnimation,
22685
22721
  itemAnimation
22686
- ], template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='asDays(element.duration)'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span *ngIf=\"element.standard\" [bizdocTooltip]=\"asDays(element.standard)\">{{ element.standard | amDuration: 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped> .range {\r\n white-space: nowrap;\r\n }\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", " .range {\n white-space: nowrap;\n }\n"] }]
22722
+ ], template: "<table mat-table [dataSource]=\"dataSource\" matSort class=\"mat-elevation-z0\" @list>\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Name' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <bizdoc-identity-name [identity]='element.userId' chating=\"room\"></bizdoc-identity-name></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"duration\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Duration' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span [bizdocTooltip]='element.duration|amDurationFormat'>{{ element.duration | amDuration : 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"standard\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Standard' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <span *ngIf=\"element.standard\" [bizdocTooltip]=\"element.standard|amDurationFormat\">{{ element.standard | amDuration: 's' }}</span> </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"count\">\r\n <th mat-header-cell *matHeaderCellDef> </th>\r\n <td mat-cell *matCellDef=\"let element\" dir=\"ltr\">\r\n <span class=\"range\">{{ element.processed }} / {{element.pending + element.processed}}</span>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: columns;\" @item></tr>\r\n</table>\r\n<style scoped>\r\n .range {\r\n white-space: nowrap;\r\n }\r\n</style>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n", "\n .range {\n white-space: nowrap;\n }\n"] }]
22687
22723
  }], ctorParameters: function () { return [{ type: WidgetRef }]; }, propDecorators: { sort: [{
22688
22724
  type: ViewChild,
22689
22725
  args: [MatSort]
@@ -23081,7 +23117,7 @@ class UsageReportBase {
23081
23117
  this._series = series ? this._cube.axes.filter(a => isArray(series) ? series.indexOf(a.name) > -1 : a.name === series) :
23082
23118
  this._cube.axes.filter(a => a.combination && !a.hidden);
23083
23119
  this.currencyCode = this._cube.currencyCode;
23084
- this._collapse = collapse;
23120
+ this._expandAll = collapse !== true;
23085
23121
  this._yTitle = yTitle || this._translate.get('Usage');
23086
23122
  }
23087
23123
  ngOnInit() {
@@ -23145,7 +23181,7 @@ class UsageChartComponent extends UsageReportBase {
23145
23181
  /** set defaults */
23146
23182
  _defaults() {
23147
23183
  const { chartType } = this._reportRef.options;
23148
- const line = chartType === 'Line' || chartType === 'Spline';
23184
+ const isLine = chartType === 'Line' || chartType === 'Spline';
23149
23185
  this.chartSettings = {
23150
23186
  pointClick: this.pointClick.bind(this),
23151
23187
  zoomSettings: {
@@ -23156,7 +23192,7 @@ class UsageChartComponent extends UsageReportBase {
23156
23192
  enableSelectionZooming: false
23157
23193
  },
23158
23194
  crosshair: {
23159
- enable: line,
23195
+ enable: isLine,
23160
23196
  line: {
23161
23197
  width: 1
23162
23198
  }
@@ -23166,7 +23202,7 @@ class UsageChartComponent extends UsageReportBase {
23166
23202
  type: chartType || 'Column',
23167
23203
  //width: 2,
23168
23204
  border: { width: 0 },
23169
- marker: { height: 10, width: 10, shape: 'Pentagon', visible: line },
23205
+ marker: { height: 10, width: 10, shape: 'Pentagon', visible: isLine },
23170
23206
  },
23171
23207
  enableExport: true,
23172
23208
  chartArea: {
@@ -23207,7 +23243,12 @@ class UsageChartComponent extends UsageReportBase {
23207
23243
  labelStyle: {
23208
23244
  fontFamily: FONT_FAMILY
23209
23245
  },
23210
- crosshairTooltip: { enable: line }
23246
+ crosshairTooltip: {
23247
+ enable: true,
23248
+ textStyle: {
23249
+ fontFamily: FONT_FAMILY
23250
+ }
23251
+ }
23211
23252
  }
23212
23253
  };
23213
23254
  const formatSettings = [{
@@ -23235,7 +23276,7 @@ class UsageChartComponent extends UsageReportBase {
23235
23276
  ],
23236
23277
  enableSorting: false,
23237
23278
  sortSettings: this._series.map(s => { return { name: `_${s.name}` }; }),
23238
- expandAll: this._collapse || false,
23279
+ expandAll: this._expandAll,
23239
23280
  formatSettings,
23240
23281
  dataSource: []
23241
23282
  };
@@ -23270,7 +23311,6 @@ class UsageChartComponent extends UsageReportBase {
23270
23311
  dataSourceSettings: this.dataSourceSettings,
23271
23312
  spinnerTemplate: '',
23272
23313
  allowConditionalFormatting: true,
23273
- allowExcelExport: true,
23274
23314
  currencyCode: this.currencyCode,
23275
23315
  }, this._elementRef.nativeElement);
23276
23316
  }
@@ -23560,7 +23600,7 @@ class UsagePivotComponent extends UsageReportBase {
23560
23600
  values,
23561
23601
  conditionalFormatSettings: this.conditionalFormatSettings,
23562
23602
  emptyCellsTextContent: this._emptyCellsTextContent,
23563
- expandAll: this._collapse || false,
23603
+ expandAll: this._expandAll,
23564
23604
  showColumnGrandTotals: true,
23565
23605
  alwaysShowValueHeader: false,
23566
23606
  formatSettings,
@@ -23633,8 +23673,20 @@ class UsagePivotComponent extends UsageReportBase {
23633
23673
  gridSettings: this.gridSettings,
23634
23674
  cellClick: this.cellClick.bind(this),
23635
23675
  currencyCode: this.currencyCode,
23676
+ dataBound: this.dataBound.bind(this)
23636
23677
  }, this._elementRef.nativeElement);
23637
23678
  }
23679
+ dataBound(_) {
23680
+ this.tooltip = new Tooltip({
23681
+ target: '.e-icons',
23682
+ cssClass: 'e-custom-tooltip',
23683
+ position: 'BottomCenter',
23684
+ offsetY: 15,
23685
+ enableRtl: this.pivot.enableRtl,
23686
+ locale: this.pivot.locale,
23687
+ });
23688
+ this.tooltip.appendTo(this._elementRef.nativeElement);
23689
+ }
23638
23690
  /**
23639
23691
  *
23640
23692
  * @param evt
@@ -23645,7 +23697,7 @@ class UsagePivotComponent extends UsageReportBase {
23645
23697
  super.browse(axes, actualText === 'usage' ? null : actualText);
23646
23698
  }
23647
23699
  /**
23648
- * reverse engineering axes from headers
23700
+ * reverse engineer axes from headers
23649
23701
  * @param columnHeaders
23650
23702
  * @param rowHeaders
23651
23703
  */
@@ -23666,6 +23718,11 @@ class UsagePivotComponent extends UsageReportBase {
23666
23718
  });
23667
23719
  return axes;
23668
23720
  }
23721
+ ngOnDestroy() {
23722
+ this.tooltip && this.tooltip.destroy();
23723
+ this.pivot && this.pivot.destroy();
23724
+ super.ngOnDestroy();
23725
+ }
23669
23726
  }
23670
23727
  UsagePivotComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: UsagePivotComponent, deps: [{ token: ReportRef }, { token: DatasourceService }, { token: i0.ElementRef }, { token: CubeService }, { token: SessionService }, { token: RouterImpl }, { token: PromptService }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
23671
23728
  UsagePivotComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: UsagePivotComponent, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
@@ -26965,14 +27022,15 @@ let CubeCompareWidget = CubeCompareWidget_1 = class CubeCompareWidget {
26965
27022
  this.primaryYAxis = {
26966
27023
  skeleton: 'duration',
26967
27024
  labelStyle: {
26968
- size: '0px'
26969
- }, visible: true,
27025
+ //size: '0px'
27026
+ },
27027
+ labelFormat: '',
26970
27028
  titleStyle: {
26971
27029
  fontFamily: FONT_FAMILY
26972
27030
  },
26973
27031
  title: this._translate.get('Duration'),
26974
- lineStyle: { width: 0 },
26975
- minorTickLines: { width: 0 }
27032
+ //lineStyle: { width: 0 },
27033
+ //minorTickLines: { width: 0 }
26976
27034
  };
26977
27035
  this.margin = {
26978
27036
  bottom: 0
@@ -27165,31 +27223,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27165
27223
  args: ['nameInput', { static: true, read: ElementRef }]
27166
27224
  }] } });
27167
27225
 
27168
- // https://day.js.org/docs/en/customization/relative-time
27169
- dayjs.extend(relativeTime, {
27170
- thresholds: [
27171
- { l: 's', r: 1 },
27172
- { l: 'm', r: 1 },
27173
- { l: 'mm', r: 59, d: 'minute' },
27174
- { l: 'h', r: 1 },
27175
- { l: 'hh', r: 24, d: 'hour' },
27176
- { l: 'd', r: 1 },
27177
- { l: 'dd', r: 29, d: 'day' },
27178
- { l: 'M', r: 1 },
27179
- { l: 'MM', r: 11, d: 'month' },
27180
- { l: 'y' },
27181
- { l: 'yy', d: 'year' }
27182
- ]
27183
- });
27184
- dayjs.extend(duration);
27185
- dayjs.extend(calendar);
27186
- dayjs.extend(updateLocale);
27226
+ /** configuration componenets */
27187
27227
  const CORE_COMPONENTS = [CubeCompareWidget, CubeParallelViewComponent, CubeExploreViewComponent, CubeChartViewComponent, CubeDocumentSumComponent, CubeDocumentMatrixComponent, CubeDocumentViewComponent, CubePivotViewComponent, TimelineViewComponent,
27188
27228
  SubstitutionComponent, MoveToActionComponent, AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27189
27229
  ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27190
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27230
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27191
27231
  CubeDocumentsComponent, TasksComponent, UsageReportArgs, CubeUsageComponent
27192
27232
  ];
27233
+ /** common BizDoc components */
27193
27234
  class SharedModule {
27194
27235
  static forChild(config) {
27195
27236
  const { formats } = config || {};
@@ -27271,9 +27312,10 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27271
27312
  ImpersonateDialog,
27272
27313
  ConversationComponent, CubeMatrixPopupComponent,
27273
27314
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27274
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27315
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27275
27316
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27276
- EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [CommonModule,
27317
+ EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [DayJsModule,
27318
+ CommonModule,
27277
27319
  HttpClientModule,
27278
27320
  ReactiveFormsModule,
27279
27321
  FlexLayoutModule,
@@ -27310,7 +27352,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27310
27352
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27311
27353
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27312
27354
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27313
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27355
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27314
27356
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27315
27357
  VersionCompareComponent, LottieAnimation,
27316
27358
  CubeAccumulationChartComponent,
@@ -27334,6 +27376,7 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
27334
27376
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27335
27377
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27336
27378
  ], imports: [[
27379
+ DayJsModule,
27337
27380
  CommonModule,
27338
27381
  HttpClientModule,
27339
27382
  ReactiveFormsModule,
@@ -27410,10 +27453,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27410
27453
  ImpersonateDialog,
27411
27454
  ConversationComponent, CubeMatrixPopupComponent,
27412
27455
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27413
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27456
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27414
27457
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27415
27458
  EmojiHostComponent, TooltipDirective, TooltipComponent],
27416
27459
  imports: [
27460
+ DayJsModule,
27417
27461
  CommonModule,
27418
27462
  HttpClientModule,
27419
27463
  ReactiveFormsModule,
@@ -27470,7 +27514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27470
27514
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27471
27515
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27472
27516
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27473
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27517
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27474
27518
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27475
27519
  VersionCompareComponent, LottieAnimation,
27476
27520
  CubeAccumulationChartComponent,
@@ -27570,9 +27614,9 @@ class TraceElementComponent {
27570
27614
  const info = [];
27571
27615
  const who = yield this._accounts.get(recipient.userId).toPromise();
27572
27616
  if (recipient.escalated) {
27573
- const escalations = this.timeline.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
27574
- const escalate = yield this._accounts.get(escalations[0].userId).toPromise();
27575
- info.push(this._translate.get('EscalatedBy', this._chat.format(escalate), this._chat.format(who)));
27617
+ const escalation = this.timeline.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
27618
+ const to = yield this._accounts.get(escalation.userId).toPromise();
27619
+ info.push(this._translate.get('EscalatedBy', this._chat.format(to), this._chat.format(who)));
27576
27620
  }
27577
27621
  if (recipient.substituteId) {
27578
27622
  const substitute = yield this._accounts.get(recipient.substituteId).toPromise();
@@ -28550,11 +28594,11 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28550
28594
  this._cd = _cd;
28551
28595
  this._fb = _fb;
28552
28596
  this.search = this._fb.control(null);
28553
- this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging |
28554
- DiagramConstraints.LineRouting |
28555
- DiagramConstraints.Pan |
28556
- DiagramConstraints.Zoom;
28557
- this.diagramTool = DiagramTools.SingleSelect;
28597
+ this.diagramConstraints = DiagramConstraints$1.Default | DiagramConstraints$1.Bridging |
28598
+ DiagramConstraints$1.LineRouting |
28599
+ DiagramConstraints$1.Pan |
28600
+ DiagramConstraints$1.Zoom;
28601
+ this.diagramTool = DiagramTools$1.SingleSelect;
28558
28602
  this.layout = {
28559
28603
  type: 'ComplexHierarchicalTree',
28560
28604
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
@@ -28573,7 +28617,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28573
28617
  this._accentColor = this._session.getAccent(800);
28574
28618
  this._primeryColor = this._session.getPrimery();
28575
28619
  this.selectedItems = {
28576
- constraints: SelectorConstraints.UserHandle,
28620
+ constraints: SelectorConstraints$1.UserHandle,
28577
28621
  userHandles: [
28578
28622
  {
28579
28623
  name: 'info',
@@ -28597,13 +28641,13 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28597
28641
  this.nodeDefaults = (node) => {
28598
28642
  const { indicator, virtual } = node.addInfo || {};
28599
28643
  if (indicator) {
28600
- node.constraints = NodeConstraints.PointerEvents | NodeConstraints.Tooltip,
28644
+ node.constraints = NodeConstraints$1.PointerEvents | NodeConstraints$1.Tooltip,
28601
28645
  node.style.strokeWidth = 0,
28602
28646
  node.width = node.height = 15;
28603
28647
  }
28604
28648
  else if (node.id !== 'version') {
28605
- node.constraints = NodeConstraints.InConnect | NodeConstraints.OutConnect |
28606
- NodeConstraints.PointerEvents | NodeConstraints.Select;
28649
+ node.constraints = NodeConstraints$1.InConnect | NodeConstraints$1.OutConnect |
28650
+ NodeConstraints$1.PointerEvents | NodeConstraints$1.Select;
28607
28651
  this._decorateNode(node);
28608
28652
  node.ports = getPorts();
28609
28653
  }
@@ -28611,7 +28655,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28611
28655
  };
28612
28656
  this.connDefaults = (connector) => {
28613
28657
  const { virtual } = connector.addInfo || {};
28614
- connector.constraints = ConnectorConstraints.ReadOnly & ~ConnectorConstraints.Select;
28658
+ connector.constraints = ConnectorConstraints$1.ReadOnly & ~ConnectorConstraints$1.Select;
28615
28659
  this._decorateConnector(connector);
28616
28660
  };
28617
28661
  }
@@ -28666,7 +28710,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28666
28710
  this._timeline();
28667
28711
  this.mode = 'diagram';
28668
28712
  this._cd.detectChanges();
28669
- this.diagram = new Diagram({
28713
+ this.diagram = new Diagram$1({
28670
28714
  width: '100%', height: '100%',
28671
28715
  snapSettings: this.snapSettings,
28672
28716
  layout: this.layout,
@@ -28822,7 +28866,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28822
28866
  fontSize: 50,
28823
28867
  opacity: .1
28824
28868
  },
28825
- constraints: NodeConstraints.ReadOnly
28869
+ constraints: NodeConstraints$1.ReadOnly
28826
28870
  };
28827
28871
  this.diagram.addLayer({
28828
28872
  id: 'version',
@@ -28885,12 +28929,12 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28885
28929
  this.diagram.dataBind();
28886
28930
  }
28887
28931
  pan() {
28888
- this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
28889
- this.diagram.tool = DiagramTools.ZoomPan;
28932
+ this.diagram.constraints = this.diagram.constraints | DiagramConstraints$1.Pan;
28933
+ this.diagram.tool = DiagramTools$1.ZoomPan;
28890
28934
  }
28891
28935
  cursor() {
28892
- this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints.Pan;
28893
- this.diagram.tool = DiagramTools.SingleSelect;
28936
+ this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints$1.Pan;
28937
+ this.diagram.tool = DiagramTools$1.SingleSelect;
28894
28938
  }
28895
28939
  _highlight(ids) {
28896
28940
  for (let i = 0; i < ids.length; i++) {
@@ -29792,6 +29836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
29792
29836
 
29793
29837
  const SYSTEM_COMPONENTS = [RoleNodeComponent, ManageCubeIndexUtility, PermissionsUtility, PositionsComponent, ProfilerComponent,
29794
29838
  PatternsComponent, SystemDiffComponent, DocumentTraceComponent];
29839
+ /** administrative utilities */
29795
29840
  class SystemModule {
29796
29841
  static forChild() {
29797
29842
  registerComponents(SYSTEM_COMPONENTS);
@@ -30047,5 +30092,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
30047
30092
  * Generated bundle index. Do not edit.
30048
30093
  */
30049
30094
 
30050
- export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AvatarComponent, BIZDOC_CONFIG, BizDoc, BizDocApp, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareDepartmentsWidget, CompareGroupDirective, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeCompareWidget, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeMatrixComponent, CubeParallelComponent, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateFormatPipe, DateRangePipe, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, FadeSlideInOut, FieldType, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideService, INBOX, IdentityName, ItemResolveService, JoinPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationEnd, NavigationSelected, NavigationStart, NgxComponentOutlet, NotificationsTableComponent, OpenPolicy, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SessionService, ShakeAnimation, SharedModule, SlotRouterDirective, StateDirective, StatePipe, SubstitutionComponent, SwapAnimation, TagsComponent, TasksComponent, TimeAgoPipe, TimePicker, TimespanInput, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, WidgetItemComponent, WidgetRef, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, registerComponents };
30095
+ export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AvatarComponent, BIZDOC_CONFIG, BizDoc, BizDocApp, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeCompareWidget, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeMatrixComponent, CubeParallelComponent, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateFormatPipe, DateRangePipe, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, FadeSlideInOut, FieldType, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideService, INBOX, IdentityName, ItemResolveService, JoinPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationEnd, NavigationSelected, NavigationStart, NgxComponentOutlet, NotificationsTableComponent, OpenPolicy, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SessionService, ShakeAnimation, SharedModule, SlotRouterDirective, StateDirective, StatePipe, SubstitutionComponent, SwapAnimation, TagsComponent, TasksComponent, TimeAgoPipe, TimePicker, TimespanInput, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, WidgetItemComponent, WidgetRef, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, registerComponents };
30051
30096
  //# sourceMappingURL=bizdoc-core.mjs.map