@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
@@ -120,7 +120,7 @@ import { Platform } from '@angular/cdk/platform';
120
120
  import { SelectionModel } from '@angular/cdk/collections';
121
121
  import * as i25 from '@angular/flex-layout/extended';
122
122
  import * as i8$3 from '@syncfusion/ej2-angular-charts';
123
- 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';
123
+ 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';
124
124
  import { Workbook } from '@syncfusion/ej2-excel-export';
125
125
  import { Chart } from '@syncfusion/ej2-charts';
126
126
  import * as i6$5 from '@syncfusion/ej2-angular-grids';
@@ -131,8 +131,8 @@ import * as i9$5 from '@syncfusion/ej2-angular-spreadsheet';
131
131
  import { Spreadsheet, isNumber, SpreadsheetModule, SelectionService as SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService, KeyboardShortcutService, NumberFormatService } from '@syncfusion/ej2-angular-spreadsheet';
132
132
  import * as i4$1 from '@ctrl/ngx-emoji-mart';
133
133
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
134
- import * as i11$1 from '@syncfusion/ej2-angular-diagrams';
135
- 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';
134
+ import { Diagram, BpmnDiagrams, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, DataBinding, SymbolPalette, ConnectorDrawingTool, DiagramConstraints, DiagramTools, NodeConstraints, ConnectorConstraints, SelectorConstraints, Node } from '@syncfusion/ej2-diagrams';
135
+ 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';
136
136
  import * as i9$2 from '@syncfusion/ej2-angular-schedule';
137
137
  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';
138
138
  import * as i10$1 from '@syncfusion/ej2-angular-kanban';
@@ -140,13 +140,14 @@ import { KanbanComponent, KanbanModule } from '@syncfusion/ej2-angular-kanban';
140
140
  import { CircularGaugeModule, AnnotationsService, GaugeTooltipService, LegendService as LegendService$1, CircularGauge, Annotations, GaugeTooltip, CircularGaugeComponent, Legend as Legend$1 } from '@syncfusion/ej2-angular-circulargauge';
141
141
  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';
142
142
  import * as i7$5 from '@syncfusion/ej2-angular-gantt';
143
- import { GanttModule, Gantt, SelectionService as SelectionService$3, DayMarkersService } from '@syncfusion/ej2-angular-gantt';
144
- import { __decorate } from 'tslib';
145
- import player from 'lottie-web/build/player/lottie';
143
+ import { GanttModule, ExcelExportService as ExcelExportService$3, DayMarkersService, SelectionService as SelectionService$3, Gantt } from '@syncfusion/ej2-angular-gantt';
146
144
  import relativeTime from 'dayjs/plugin/relativeTime';
147
145
  import duration from 'dayjs/plugin/duration';
148
146
  import calendar from 'dayjs/plugin/calendar';
147
+ import advancedFormat from 'dayjs/plugin/advancedFormat';
149
148
  import updateLocale from 'dayjs/plugin/updateLocale';
149
+ import { __decorate } from 'tslib';
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: '' })),
@@ -1017,7 +1018,7 @@ class SessionService {
1017
1018
  _config && _config.maps && this._loadMaps();
1018
1019
  }
1019
1020
  get profile() { return this._profile; }
1020
- get gender() { return this._profile.byGender || this._profile.gender; }
1021
+ get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
1021
1022
  get accentPalette() {
1022
1023
  const palette = MATERIAL_PALETTES[this.theme.accent];
1023
1024
  return this._constructpalette(palette);
@@ -2068,7 +2069,7 @@ const STRINGS = {
2068
2069
  YouSubstituteActionTakenTo: 'Document {0} to {1} by you instead of {2} {3}',
2069
2070
  Substituting: '{0} substituting {1}',
2070
2071
  SubstitutingForYou: '{0} substituting you',
2071
- YouSubstitute: 'You substituting {0}',
2072
+ YouSubstituting: 'You substituting {0}',
2072
2073
  SubstitutingBy: '{0} by {2} substituting {1}',
2073
2074
  SubstitutingByYou: '{0} by you substituting {1}',
2074
2075
  SubstitutingYou: 'Substituting for you',
@@ -2624,9 +2625,9 @@ const STRINGS = {
2624
2625
  SubstitutingForFemale: 'במקום {0}',
2625
2626
  Substituting: '{0} מחליף את {1}',
2626
2627
  SubstitutingForYou: '{0} מחליף אותך',
2627
- YouSubstitute: 'את/ה מחליף את {0}',
2628
- YouSubstituteMale: 'אתה מחליף את {0}',
2629
- YouSubstituteFemale: 'את מחליפה את {0}',
2628
+ YouSubstituting: 'את/ה מחליף את {0}',
2629
+ YouSubstitutingMale: 'אתה מחליף את {0}',
2630
+ YouSubstitutingFemale: 'את מחליפה את {0}',
2630
2631
  SubstitutingBy: '{0} מחליף את {1} דרך {2}',
2631
2632
  SubstitutingByYou: '{0} מחליף/פה את {1} דרכך}',
2632
2633
  SubstitutingByYouMale: '{0} מחליף את {1} דרכך}',
@@ -7440,10 +7441,8 @@ class ExpandedItemComponent {
7440
7441
  this.note = this._translate.personalize('YouSubstituteActionTaken', substituting.gender, adjective, this._formatUserElement(substituting), time);
7441
7442
  }
7442
7443
  else if (escalated) {
7443
- const escalations = log.filter(l => l.time > issued &&
7444
- l.type === 'Escalation'
7445
- && l.recipientId === id);
7446
- this.note = this._translate.personalize('EscalatedFrom', substituting.gender, this._formatUserElement(substituting), this._duration(escalations[0].duration));
7444
+ const escalation = log.find(l => l.type === 'Escalation' && l.recipientId === originId);
7445
+ this.note = this._translate.personalize('EscalatedFrom', substituting.gender, this._formatUserElement(substituting), this._duration(escalation.duration));
7447
7446
  }
7448
7447
  else {
7449
7448
  const time = this._fromNow(received);
@@ -10840,6 +10839,7 @@ class CubeSpreadsheetComponent {
10840
10839
  enableContextMenu: false,
10841
10840
  showFormulaBar: false,
10842
10841
  showSheetTabs: false,
10842
+ enableKeyboardNavigation: true,
10843
10843
  select: this.select.bind(this),
10844
10844
  sheets: [{
10845
10845
  columns: this.columns,
@@ -13011,12 +13011,12 @@ class ReportPaneComponent {
13011
13011
  }
13012
13012
  }
13013
13013
  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 });
13014
- 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 } });
13014
+ 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 } });
13015
13015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportPaneComponent, decorators: [{
13016
13016
  type: Component,
13017
13017
  args: [{ selector: 'bizdoc-report.pane', host: {
13018
13018
  class: 'pane'
13019
- }, 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"] }]
13019
+ }, 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"] }]
13020
13020
  }], ctorParameters: function () { return [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { viewer: [{
13021
13021
  type: ViewChild,
13022
13022
  args: [ReportViewerComponent, { static: true }]
@@ -13206,7 +13206,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
13206
13206
  type: Injectable
13207
13207
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
13208
13208
 
13209
- Diagram.Inject(UndoRedo);
13209
+ Diagram.Inject(BpmnDiagrams, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, DataBinding);
13210
+ SymbolPalette.Inject(BpmnDiagrams);
13210
13211
  function getPorts$1() {
13211
13212
  const ports = [
13212
13213
  { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },
@@ -13271,7 +13272,6 @@ class WorkflowComponent {
13271
13272
  this.connectorType = 'Bezier';
13272
13273
  this.alignment = 'Center';
13273
13274
  this.fontSize = 12;
13274
- this.getCustomTool = this.getTool.bind(this);
13275
13275
  this.saving = false;
13276
13276
  this.dirty = false;
13277
13277
  this.palettes = [];
@@ -13342,6 +13342,38 @@ class WorkflowComponent {
13342
13342
  tool = new DrawTool(this.diagram, this.connectorType);
13343
13343
  return tool;
13344
13344
  }
13345
+ ngOnInit() {
13346
+ }
13347
+ ngAfterViewInit() {
13348
+ this.symbolPalette = new SymbolPalette({
13349
+ expandMode: 'Multiple',
13350
+ palettes: this.palettes,
13351
+ width: "100%", height: "100%", symbolHeight: 80,
13352
+ enableRtl: false, enableAnimation: false, symbolWidth: 80,
13353
+ symbolMargin: this.symbolMargin,
13354
+ getSymbolInfo: this.getSymbolInfo.bind(this),
13355
+ getNodeDefaults: this.getSymbolDefaults.bind(this)
13356
+ });
13357
+ this.symbolPalette.appendTo(this.symbolPaletteEl.nativeElement);
13358
+ this.diagram = new Diagram({
13359
+ width: "100%", height: "100%",
13360
+ snapSettings: this.snapSettings,
13361
+ getConnectorDefaults: this.connDefaults.bind(this),
13362
+ constraints: this.diagramConstraints,
13363
+ tool: this.diagramTool,
13364
+ getNodeDefaults: this.nodeDefaults.bind(this),
13365
+ getCustomTool: this.getTool.bind(this),
13366
+ scrollSettings: this.scrollSettings,
13367
+ selectedItems: this.selectedItems,
13368
+ rulerSettings: this.rulerSettings,
13369
+ dragEnter: this.dragEnter.bind(this),
13370
+ connectionChange: this.change.bind(this),
13371
+ collectionChange: this.change.bind(this),
13372
+ propertyChange: this.propertyChange.bind(this),
13373
+ selectionChange: this.selectionChange.bind(this),
13374
+ }, this.diagramEl.nativeElement);
13375
+ this.diagramCreate();
13376
+ }
13345
13377
  diagramCreate() {
13346
13378
  paletteIconClick();
13347
13379
  this._pane.paramsChange.pipe(takeUntil(this._destroy)).subscribe(p => {
@@ -13370,7 +13402,7 @@ class WorkflowComponent {
13370
13402
  addInfo: {
13371
13403
  nodeType: n.name,
13372
13404
  title: n.title
13373
- }
13405
+ },
13374
13406
  };
13375
13407
  node.node = n.name;
13376
13408
  let palette = this.palettes.find(p => p.title === (n.palette || ''));
@@ -13546,7 +13578,7 @@ class WorkflowComponent {
13546
13578
  this.dirty = true;
13547
13579
  }
13548
13580
  save() {
13549
- this.diagram.serializationSettings = {};
13581
+ this.diagram.serializationSettings = { preventDefaults: true };
13550
13582
  const obj = JSON.parse(this.diagram.saveDiagram());
13551
13583
  this._form.workflow.connectors = obj.connectors;
13552
13584
  this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version').map((n) => {
@@ -13572,23 +13604,25 @@ class WorkflowComponent {
13572
13604
  });
13573
13605
  }
13574
13606
  ngOnDestroy() {
13607
+ this.symbolPalette?.destroy();
13608
+ this.diagram?.destroy();
13575
13609
  this._destroy.next();
13576
13610
  this._destroy.complete();
13577
13611
  }
13578
13612
  }
13579
13613
  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 });
13580
- 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 } });
13614
+ 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 } });
13581
13615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: WorkflowComponent, decorators: [{
13582
13616
  type: Component,
13583
13617
  args: [{ selector: 'bizdoc-workflow', host: {
13584
13618
  class: 'pane'
13585
- }, 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"] }]
13586
- }], ctorParameters: function () { return [{ type: PromptService }, { type: FormService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }]; }, propDecorators: { symbolPalette: [{
13619
+ }, 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"] }]
13620
+ }], ctorParameters: function () { return [{ type: PromptService }, { type: FormService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }]; }, propDecorators: { symbolPaletteEl: [{
13587
13621
  type: ViewChild,
13588
- args: [SymbolPaletteComponent]
13589
- }], diagram: [{
13622
+ args: ['symbolPalette', { static: true }]
13623
+ }], diagramEl: [{
13590
13624
  type: ViewChild,
13591
- args: ['diagram']
13625
+ args: ['diagram', { static: true }]
13592
13626
  }], handleKeyboardEvent: [{
13593
13627
  type: HostListener,
13594
13628
  args: ['document:keydown', ['$event']]
@@ -13779,7 +13813,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
13779
13813
  args: [{ name: 'amDurationFormat' }]
13780
13814
  }], ctorParameters: function () { return [{ type: TranslateService }]; } });
13781
13815
 
13782
- Diagram.Inject(ComplexHierarchicalTree, BpmnDiagrams, DataBinding, LineDistribution /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
13816
+ Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding$1, LineDistribution /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
13783
13817
  const
13784
13818
  //ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
13785
13819
  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';
@@ -13794,11 +13828,11 @@ class FlowViewComponent extends TraceBase {
13794
13828
  this._duration = _duration;
13795
13829
  this._elementRef = _elementRef;
13796
13830
  this.connectorType = 'Orthogonal';
13797
- this.tool = DiagramTools.ZoomPan;
13798
- this.diagramConstraints = DiagramConstraints.Default |
13799
- DiagramConstraints.Pan |
13800
- DiagramConstraints.LineRouting |
13801
- DiagramConstraints.Zoom;
13831
+ this.tool = DiagramTools$1.ZoomPan;
13832
+ this.diagramConstraints = DiagramConstraints$1.Default |
13833
+ DiagramConstraints$1.Pan |
13834
+ DiagramConstraints$1.LineRouting |
13835
+ DiagramConstraints$1.Zoom;
13802
13836
  this.layout = {
13803
13837
  type: 'ComplexHierarchicalTree',
13804
13838
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
@@ -13836,7 +13870,7 @@ class FlowViewComponent extends TraceBase {
13836
13870
  async _initialize() {
13837
13871
  const { connectors, nodes, indicators } = await this._prepare();
13838
13872
  this.diagram && this.diagram.destroy();
13839
- this.diagram = new Diagram({
13873
+ this.diagram = new Diagram$1({
13840
13874
  width: '100%',
13841
13875
  height: 380,
13842
13876
  nodes,
@@ -13967,15 +14001,18 @@ class FlowViewComponent extends TraceBase {
13967
14001
  for (r = 0; r < recipients.length; r++) {
13968
14002
  let recipient = recipients[r];
13969
14003
  const { annotation, tooltip } = await this._note(node, recipient);
14004
+ const content = this._tooltip(tooltip);
13970
14005
  const nod = {
13971
14006
  id: r === 0 ? node.id : node.id + r.toString(),
13972
14007
  shape: this._configuration[node.type].shape,
13973
14008
  zIndex: zIndex++,
13974
14009
  tooltip: {
13975
- content: this._tooltip(tooltip),
14010
+ content,
13976
14011
  position: 'TopCenter'
13977
14012
  },
13978
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default : NodeConstraints.Default & ~NodeConstraints.Tooltip,
14013
+ constraints: content ?
14014
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14015
+ NodeConstraints$1.Default,
13979
14016
  addInfo: {
13980
14017
  tooltip,
13981
14018
  recipient,
@@ -14055,15 +14092,18 @@ class FlowViewComponent extends TraceBase {
14055
14092
  else {
14056
14093
  const { state, annotation, tooltip } = await this._shape(node);
14057
14094
  const { shape } = configuration;
14095
+ const content = this._tooltip(tooltip);
14058
14096
  nodes.push({
14059
14097
  id: node.id,
14060
14098
  shape,
14061
14099
  zIndex: zIndex++,
14062
14100
  tooltip: {
14063
- content: this._tooltip(tooltip),
14101
+ content,
14064
14102
  position: 'TopCenter'
14065
14103
  },
14066
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default | NodeConstraints.Tooltip : NodeConstraints.Default,
14104
+ constraints: content ?
14105
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14106
+ NodeConstraints$1.Default,
14067
14107
  addInfo: {
14068
14108
  tooltip,
14069
14109
  node
@@ -14356,11 +14396,10 @@ class FlowViewComponent extends TraceBase {
14356
14396
  }
14357
14397
  }
14358
14398
  if (recipient.escalated) {
14359
- const escalations = this.model.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
14360
- const userIds = escalations.map(e => e.userId);
14361
- const users = await this._accounts.getAll(userIds).toPromise();
14362
- const duration = this._duration.transform(dayjs.duration(escalations[escalations.length - 1].duration, 's'));
14363
- tooltip.escalation = this._translate.get('EscalatedTo', this._translate.join(users.map(u => u.name)), duration);
14399
+ const escalation = this.model.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
14400
+ const who = await this._accounts.get(escalation.userId).toPromise();
14401
+ const duration = this._duration.transform(dayjs.duration(escalation.duration, 's'));
14402
+ tooltip.escalation = this._translate.get('EscalatedFrom', who.name, duration);
14364
14403
  }
14365
14404
  if (recipient.replied) {
14366
14405
  const duration = dayjs(recipient.replied).diff(recipient.received, 's');
@@ -14539,9 +14578,9 @@ class TraceViewComponent extends TraceBase {
14539
14578
  step.fyi = recipient.fyi;
14540
14579
  if (recipient.substituteId) {
14541
14580
  if (recipient.byId) {
14542
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14581
+ if (recipient.byId === this._session.userId) {
14543
14582
  let who = await profileOf(recipient.userId);
14544
- if (recipient.substituteId === this._session.userId && !this._session.isImpersonating)
14583
+ if (recipient.substituteId === this._session.userId)
14545
14584
  step.name = this._translate.get('ByYou', nameOf(who));
14546
14585
  else {
14547
14586
  let substituting = await profileOf(recipient.substituteId);
@@ -14551,9 +14590,7 @@ class TraceViewComponent extends TraceBase {
14551
14590
  step.action = await actionBy(action, You, recipient.id);
14552
14591
  }
14553
14592
  else {
14554
- let by = await profileOf(recipient.byId);
14555
- let who = await profileOf(recipient.userId);
14556
- let substituting = await profileOf(recipient.substituteId);
14593
+ let by = await profileOf(recipient.byId), who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
14557
14594
  step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14558
14595
  if (by.role)
14559
14596
  step.role = by.role;
@@ -14561,31 +14598,29 @@ class TraceViewComponent extends TraceBase {
14561
14598
  step.action = await actionBy(action, by.gender, recipient.id);
14562
14599
  }
14563
14600
  }
14601
+ else if (recipient.userId === this._session.userId) {
14602
+ let substituting = await profileOf(recipient.substituteId);
14603
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14604
+ if (action)
14605
+ step.action = await actionBy(action, this._session.gender, recipient.id);
14606
+ }
14607
+ else if (recipient.substituteId === this._session.userId) {
14608
+ let who = await profileOf(recipient.userId);
14609
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14610
+ if (action)
14611
+ step.action = await actionBy(action, who.gender, recipient.id);
14612
+ }
14564
14613
  else {
14565
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14566
- let substituting = await profileOf(recipient.substituteId);
14567
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(substituting));
14568
- if (action)
14569
- step.action = await actionBy(action, this._session.gender, recipient.id);
14570
- }
14571
- else if (recipient.substituteId === this._session.userId && !this._session.isImpersonating) {
14572
- let who = await profileOf(recipient.userId);
14573
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14574
- if (action)
14575
- step.action = await actionBy(action, who.gender, recipient.id);
14576
- }
14577
- else {
14578
- let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
14579
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14580
- if (who.role)
14581
- step.role = who.role;
14582
- if (action)
14583
- step.action = await actionBy(action, who.gender, recipient.id);
14584
- }
14614
+ let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
14615
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14616
+ if (who.role)
14617
+ step.role = who.role;
14618
+ if (action)
14619
+ step.action = await actionBy(action, who.gender, recipient.id);
14585
14620
  }
14586
14621
  }
14587
14622
  else if (recipient.byId) {
14588
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14623
+ if (recipient.userId === this._session.userId) {
14589
14624
  let by = await profileOf(recipient.byId);
14590
14625
  step.name = this._translate.get('YouBy', nameOf(by));
14591
14626
  if (action)
@@ -14593,7 +14628,7 @@ class TraceViewComponent extends TraceBase {
14593
14628
  }
14594
14629
  else {
14595
14630
  let who = await profileOf(recipient.userId);
14596
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14631
+ if (recipient.byId === this._session.userId) {
14597
14632
  step.name = this._translate.get('ByYou', nameOf(who));
14598
14633
  if (action)
14599
14634
  step.action = await actionBy(action, You, recipient.id);
@@ -14609,7 +14644,7 @@ class TraceViewComponent extends TraceBase {
14609
14644
  }
14610
14645
  }
14611
14646
  else {
14612
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14647
+ if (recipient.userId === this._session.userId) {
14613
14648
  step.name = this._translate.get('You');
14614
14649
  if (action)
14615
14650
  step.action = await actionBy(action, You, recipient.id);
@@ -14624,36 +14659,28 @@ class TraceViewComponent extends TraceBase {
14624
14659
  }
14625
14660
  }
14626
14661
  }
14627
- else {
14628
- if (l.userId === this._session.profile.userId) {
14629
- if (this._session.isImpersonating) {
14630
- if (l.userId === this._session.profile.byId)
14631
- step.name = this._translate.get('ByYou', this._session.profile.name);
14632
- else
14633
- step.name = this._session.profile.name;
14634
- }
14635
- else
14636
- step.name = this._translate.get('You');
14637
- }
14662
+ else if (l.byId) {
14663
+ let who = await profileOf(l.userId);
14664
+ if (l.byId === this._session.profile.byId)
14665
+ step.name = this._translate.get('ByYou', nameOf(who));
14638
14666
  else {
14639
- let who = await profileOf(l.userId);
14640
- if (who.role)
14641
- step.role = who.role;
14642
- if (l.byId) {
14643
- if (l.byId === this._session.profile.byId)
14644
- step.name = this._translate.get('ByYou', nameOf(who));
14645
- else {
14646
- let by = await profileOf(l.byId);
14647
- step.name = this._translate.get('By', nameOf(who), nameOf(by));
14648
- }
14649
- }
14650
- else
14651
- step.name = nameOf(who);
14667
+ let by = await profileOf(l.byId);
14668
+ step.name = this._translate.get('By', nameOf(who), nameOf(by));
14669
+ if (by.role)
14670
+ step.role = by.role;
14652
14671
  }
14653
14672
  }
14673
+ else if (l.userId === this._session.userId)
14674
+ step.name = this._translate.get('You');
14675
+ else {
14676
+ let who = await profileOf(l.userId);
14677
+ step.name = nameOf(who);
14678
+ if (who.role)
14679
+ step.role = who.role;
14680
+ }
14654
14681
  }
14655
14682
  for (let recipient of recipients) {
14656
- if (!recipient.pending && !recipient.estimate && !recipient.fyi)
14683
+ if (!recipient.pending && !recipient.estimate)
14657
14684
  continue;
14658
14685
  let step = {
14659
14686
  time: recipient.received,
@@ -14675,39 +14702,22 @@ class TraceViewComponent extends TraceBase {
14675
14702
  step.durationMin = min,
14676
14703
  step.durationMax = max;
14677
14704
  }
14678
- step.fyi = recipient.fyi;
14679
14705
  }
14680
14706
  }
14681
14707
  if (recipient.substituteId) {
14682
- let who = await profileOf(recipient.userId);
14683
- if (recipient.byId) {
14684
- if (recipient.byId === this._session.userId) {
14685
- if (recipient.substituteId === this._session.userId)
14686
- step.name = this._translate.get('ByYou', nameOf(who));
14687
- else {
14688
- let substituting = await profileOf(recipient.substituteId);
14689
- step.name = this._translate.personalize('SubstitutingByYou', who.gender, nameOf(who), nameOf(substituting));
14690
- }
14691
- }
14692
- else {
14693
- let substituting = await profileOf(recipient.substituteId);
14694
- let by = await profileOf(recipient.byId);
14695
- step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14696
- if (by.role)
14697
- step.role = by.role;
14698
- }
14708
+ if (recipient.substituteId === this._session.userId) {
14709
+ let who = await profileOf(recipient.userId);
14710
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14711
+ }
14712
+ else if (recipient.userId === this._session.userId) {
14713
+ let substituting = await profileOf(recipient.substituteId);
14714
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14699
14715
  }
14700
14716
  else {
14701
- if (recipient.substituteId === this._session.userId)
14702
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14703
- else if (recipient.userId === this._session.userId)
14704
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(who));
14705
- else {
14706
- let substituting = await profileOf(recipient.substituteId);
14707
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14708
- if (who.role)
14709
- step.role = who.role;
14710
- }
14717
+ let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
14718
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14719
+ if (who.role)
14720
+ step.role = who.role;
14711
14721
  }
14712
14722
  }
14713
14723
  else if (recipient.byId) {
@@ -14722,18 +14732,14 @@ class TraceViewComponent extends TraceBase {
14722
14732
  }
14723
14733
  }
14724
14734
  else if (recipient.escalated) {
14725
- let escalations = this.model.log.filter(l => l.time > issued &&
14726
- l.type === 'Escalation' && l.recipientId === recipient.id);
14727
- let escalate = [];
14728
- for (let escalation of escalations) {
14735
+ let escalation = this.model.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
14736
+ let to = await profileOf(recipient.userId);
14737
+ if (escalation.userId === this._session.userId)
14738
+ step.name = this._translate.get('EscalatedByYou', nameOf(to));
14739
+ else {
14729
14740
  let who = await profileOf(escalation.userId);
14730
- escalate.push(who);
14741
+ step.name = this._translate.get('EscalatedBy', nameOf(who), nameOf(to));
14731
14742
  }
14732
- let who = await profileOf(recipient.userId);
14733
- if (escalations.length === 1 && escalate[0] === this._session.userId)
14734
- step.name = this._translate.get('EscalatedByYou', nameOf(who));
14735
- else
14736
- step.name = this._translate.get('EscalatedBy', nameOf(who), this._translate.join(escalate.map(e => nameOf(e))));
14737
14743
  }
14738
14744
  else {
14739
14745
  if (recipient.userId === this._session.userId)
@@ -14781,7 +14787,7 @@ class TraceViewComponent extends TraceBase {
14781
14787
  this._chat.open(userId);
14782
14788
  }
14783
14789
  /**
14784
- * model version compare, form component in 'compare' view mode
14790
+ * model version compare
14785
14791
  * @param log
14786
14792
  */
14787
14793
  compare(log) {
@@ -20314,10 +20320,10 @@ class ReportComponent {
20314
20320
  }
20315
20321
  }
20316
20322
  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 });
20317
- 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 } });
20323
+ 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 } });
20318
20324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportComponent, decorators: [{
20319
20325
  type: Component,
20320
- 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"] }]
20326
+ 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"] }]
20321
20327
  }], ctorParameters: function () { return [{ type: WindowTitleService }, { type: i1$6.ActivatedRoute }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { filter: [{
20322
20328
  type: ViewChild,
20323
20329
  args: [MatSidenav, { static: true }]
@@ -20678,8 +20684,8 @@ Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Export, BarSeries, AreaSer
20678
20684
  class SyncfusionChartModule {
20679
20685
  }
20680
20686
  SyncfusionChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20681
- SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule] });
20682
- 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,
20687
+ 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] });
20688
+ 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,
20683
20689
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20684
20690
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20685
20691
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20687,14 +20693,14 @@ SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
20687
20693
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20688
20694
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20689
20695
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20690
- ExportService,
20691
- AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartAllModule, SparklineAllModule], ChartModule, AccumulationChartAllModule, SparklineAllModule] });
20696
+ SparklineTooltipService,
20697
+ AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule], ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule] });
20692
20698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, decorators: [{
20693
20699
  type: NgModule,
20694
20700
  args: [{
20695
- imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20696
- exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20697
- providers: [AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20701
+ imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20702
+ exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20703
+ providers: [RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20698
20704
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20699
20705
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20700
20706
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20702,7 +20708,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
20702
20708
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20703
20709
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20704
20710
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20705
- ExportService,
20711
+ SparklineTooltipService,
20706
20712
  AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService]
20707
20713
  }]
20708
20714
  }] });
@@ -20837,13 +20843,46 @@ class SyncfusionGanttModule {
20837
20843
  }
20838
20844
  SyncfusionGanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20839
20845
  SyncfusionGanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, imports: [GanttModule], exports: [GanttModule] });
20840
- SyncfusionGanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, providers: [], imports: [[GanttModule], GanttModule] });
20846
+ 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] });
20841
20847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, decorators: [{
20842
20848
  type: NgModule,
20843
20849
  args: [{
20844
20850
  imports: [GanttModule],
20845
20851
  exports: [GanttModule],
20846
- providers: []
20852
+ providers: [ExcelExportService$3, DayMarkersService, SelectionService$3]
20853
+ }]
20854
+ }] });
20855
+
20856
+ // https://day.js.org/docs/en/customization/relative-time
20857
+ dayjs.extend(relativeTime, {
20858
+ thresholds: [
20859
+ { l: 's', r: 1 },
20860
+ { l: 'm', r: 1 },
20861
+ { l: 'mm', r: 59, d: 'minute' },
20862
+ { l: 'h', r: 1 },
20863
+ { l: 'hh', r: 24, d: 'hour' },
20864
+ { l: 'd', r: 1 },
20865
+ { l: 'dd', r: 29, d: 'day' },
20866
+ { l: 'M', r: 1 },
20867
+ { l: 'MM', r: 11, d: 'month' },
20868
+ { l: 'y' },
20869
+ { l: 'yy', d: 'year' }
20870
+ ]
20871
+ });
20872
+ dayjs.extend(duration);
20873
+ dayjs.extend(calendar);
20874
+ dayjs.extend(updateLocale);
20875
+ dayjs.extend(advancedFormat);
20876
+ class DayJsModule {
20877
+ }
20878
+ DayJsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20879
+ DayJsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule });
20880
+ DayJsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, imports: [[]] });
20881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: DayJsModule, decorators: [{
20882
+ type: NgModule,
20883
+ args: [{
20884
+ imports: [],
20885
+ exports: [],
20847
20886
  }]
20848
20887
  }] });
20849
20888
 
@@ -22068,14 +22107,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22068
22107
  args: [ChartComponent]
22069
22108
  }] } });
22070
22109
 
22071
- var CompareDepartmentsWidget_1;
22110
+ var CompareGroupsWidget_1;
22072
22111
  /** */
22073
- let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartmentsWidget {
22112
+ let CompareGroupsWidget = CompareGroupsWidget_1 = class CompareGroupsWidget {
22074
22113
  constructor(_translate, widgetRef, _elementRef, _session) {
22075
22114
  this._translate = _translate;
22076
22115
  this._elementRef = _elementRef;
22077
22116
  this._session = _session;
22078
- this.id = `department-compare-${CompareDepartmentsWidget_1.nextId++}`;
22117
+ this.id = `groups-compare-${CompareGroupsWidget_1.nextId++}`;
22079
22118
  this.palettes = this._session.accentPalette;
22080
22119
  this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
22081
22120
  this.enableRtl = this._session.inverse;
@@ -22237,18 +22276,18 @@ let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartm
22237
22276
  this._destroy.complete();
22238
22277
  }
22239
22278
  };
22240
- CompareDepartmentsWidget.nextId = 0;
22241
- 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 });
22242
- 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 });
22243
- CompareDepartmentsWidget = CompareDepartmentsWidget_1 = __decorate([
22279
+ CompareGroupsWidget.nextId = 0;
22280
+ 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 });
22281
+ 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 });
22282
+ CompareGroupsWidget = CompareGroupsWidget_1 = __decorate([
22244
22283
  BizDoc({
22245
- selector: 'bizdoc-compare-departments'
22284
+ selector: 'bizdoc-compare-groups'
22246
22285
  })
22247
- ], CompareDepartmentsWidget);
22248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareDepartmentsWidget, decorators: [{
22286
+ ], CompareGroupsWidget);
22287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: CompareGroupsWidget, decorators: [{
22249
22288
  type: Component,
22250
22289
  args: [{
22251
- //templateUrl: './compare-departments.widget.html',
22290
+ //templateUrl: './compare-groups.widget.html',
22252
22291
  template: '',
22253
22292
  providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
22254
22293
  host: {
@@ -22478,7 +22517,7 @@ PeersPerformanceWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
22478
22517
  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 });
22479
22518
  PeersPerformanceWidget = PeersPerformanceWidget_1 = __decorate([
22480
22519
  BizDoc({
22481
- selector: 'bizdoc-departmental-performance'
22520
+ selector: 'bizdoc-peers-performance'
22482
22521
  })
22483
22522
  ], PeersPerformanceWidget);
22484
22523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PeersPerformanceWidget, decorators: [{
@@ -22510,17 +22549,13 @@ let PendingResultsWidget = class PendingResultsWidget {
22510
22549
  this.sort.direction = 'desc';
22511
22550
  this.dataSource.sort = this.sort;
22512
22551
  }
22513
- asDays(seconds) {
22514
- const duration = dayjs.duration(seconds, 's');
22515
- return `${Math.floor(duration.asDays())}:${Math.round(duration.hours())}`;
22516
- }
22517
22552
  ngOnDestroy() {
22518
22553
  this._destroy.next();
22519
22554
  this._destroy.complete();
22520
22555
  }
22521
22556
  };
22522
22557
  PendingResultsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PendingResultsWidget, deps: [{ token: WidgetRef }], target: i0.ɵɵFactoryTarget.Component });
22523
- 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: [
22558
+ 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: [
22524
22559
  listAnimation,
22525
22560
  itemAnimation
22526
22561
  ] });
@@ -22534,7 +22569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22534
22569
  args: [{ selector: 'bizdoc-pending-results', animations: [
22535
22570
  listAnimation,
22536
22571
  itemAnimation
22537
- ], 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"] }]
22572
+ ], 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"] }]
22538
22573
  }], ctorParameters: function () { return [{ type: WidgetRef }]; }, propDecorators: { sort: [{
22539
22574
  type: ViewChild,
22540
22575
  args: [MatSort]
@@ -22932,7 +22967,7 @@ class UsageReportBase {
22932
22967
  this._series = series ? this._cube.axes.filter(a => isArray(series) ? series.indexOf(a.name) > -1 : a.name === series) :
22933
22968
  this._cube.axes.filter(a => a.combination && !a.hidden);
22934
22969
  this.currencyCode = this._cube.currencyCode;
22935
- this._collapse = collapse;
22970
+ this._expandAll = collapse !== true;
22936
22971
  this._yTitle = yTitle || this._translate.get('Usage');
22937
22972
  }
22938
22973
  ngOnInit() {
@@ -22996,7 +23031,7 @@ class UsageChartComponent extends UsageReportBase {
22996
23031
  /** set defaults */
22997
23032
  _defaults() {
22998
23033
  const { chartType } = this._reportRef.options;
22999
- const line = chartType === 'Line' || chartType === 'Spline';
23034
+ const isLine = chartType === 'Line' || chartType === 'Spline';
23000
23035
  this.chartSettings = {
23001
23036
  pointClick: this.pointClick.bind(this),
23002
23037
  zoomSettings: {
@@ -23007,7 +23042,7 @@ class UsageChartComponent extends UsageReportBase {
23007
23042
  enableSelectionZooming: false
23008
23043
  },
23009
23044
  crosshair: {
23010
- enable: line,
23045
+ enable: isLine,
23011
23046
  line: {
23012
23047
  width: 1
23013
23048
  }
@@ -23017,7 +23052,7 @@ class UsageChartComponent extends UsageReportBase {
23017
23052
  type: chartType || 'Column',
23018
23053
  //width: 2,
23019
23054
  border: { width: 0 },
23020
- marker: { height: 10, width: 10, shape: 'Pentagon', visible: line },
23055
+ marker: { height: 10, width: 10, shape: 'Pentagon', visible: isLine },
23021
23056
  },
23022
23057
  enableExport: true,
23023
23058
  chartArea: {
@@ -23058,7 +23093,12 @@ class UsageChartComponent extends UsageReportBase {
23058
23093
  labelStyle: {
23059
23094
  fontFamily: FONT_FAMILY
23060
23095
  },
23061
- crosshairTooltip: { enable: line }
23096
+ crosshairTooltip: {
23097
+ enable: true,
23098
+ textStyle: {
23099
+ fontFamily: FONT_FAMILY
23100
+ }
23101
+ }
23062
23102
  }
23063
23103
  };
23064
23104
  const formatSettings = [{
@@ -23086,7 +23126,7 @@ class UsageChartComponent extends UsageReportBase {
23086
23126
  ],
23087
23127
  enableSorting: false,
23088
23128
  sortSettings: this._series.map(s => { return { name: `_${s.name}` }; }),
23089
- expandAll: this._collapse || false,
23129
+ expandAll: this._expandAll,
23090
23130
  formatSettings,
23091
23131
  dataSource: []
23092
23132
  };
@@ -23121,7 +23161,6 @@ class UsageChartComponent extends UsageReportBase {
23121
23161
  dataSourceSettings: this.dataSourceSettings,
23122
23162
  spinnerTemplate: '',
23123
23163
  allowConditionalFormatting: true,
23124
- allowExcelExport: true,
23125
23164
  currencyCode: this.currencyCode,
23126
23165
  }, this._elementRef.nativeElement);
23127
23166
  }
@@ -23411,7 +23450,7 @@ class UsagePivotComponent extends UsageReportBase {
23411
23450
  values,
23412
23451
  conditionalFormatSettings: this.conditionalFormatSettings,
23413
23452
  emptyCellsTextContent: this._emptyCellsTextContent,
23414
- expandAll: this._collapse || false,
23453
+ expandAll: this._expandAll,
23415
23454
  showColumnGrandTotals: true,
23416
23455
  alwaysShowValueHeader: false,
23417
23456
  formatSettings,
@@ -23484,8 +23523,20 @@ class UsagePivotComponent extends UsageReportBase {
23484
23523
  gridSettings: this.gridSettings,
23485
23524
  cellClick: this.cellClick.bind(this),
23486
23525
  currencyCode: this.currencyCode,
23526
+ dataBound: this.dataBound.bind(this)
23487
23527
  }, this._elementRef.nativeElement);
23488
23528
  }
23529
+ dataBound(_) {
23530
+ this.tooltip = new Tooltip({
23531
+ target: '.e-icons',
23532
+ cssClass: 'e-custom-tooltip',
23533
+ position: 'BottomCenter',
23534
+ offsetY: 15,
23535
+ enableRtl: this.pivot.enableRtl,
23536
+ locale: this.pivot.locale,
23537
+ });
23538
+ this.tooltip.appendTo(this._elementRef.nativeElement);
23539
+ }
23489
23540
  /**
23490
23541
  *
23491
23542
  * @param evt
@@ -23496,7 +23547,7 @@ class UsagePivotComponent extends UsageReportBase {
23496
23547
  super.browse(axes, actualText === 'usage' ? null : actualText);
23497
23548
  }
23498
23549
  /**
23499
- * reverse engineering axes from headers
23550
+ * reverse engineer axes from headers
23500
23551
  * @param columnHeaders
23501
23552
  * @param rowHeaders
23502
23553
  */
@@ -23517,6 +23568,11 @@ class UsagePivotComponent extends UsageReportBase {
23517
23568
  });
23518
23569
  return axes;
23519
23570
  }
23571
+ ngOnDestroy() {
23572
+ this.tooltip && this.tooltip.destroy();
23573
+ this.pivot && this.pivot.destroy();
23574
+ super.ngOnDestroy();
23575
+ }
23520
23576
  }
23521
23577
  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 });
23522
23578
  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 });
@@ -26778,14 +26834,15 @@ let CubeCompareWidget = CubeCompareWidget_1 = class CubeCompareWidget {
26778
26834
  this.primaryYAxis = {
26779
26835
  skeleton: 'duration',
26780
26836
  labelStyle: {
26781
- size: '0px'
26782
- }, visible: true,
26837
+ //size: '0px'
26838
+ },
26839
+ labelFormat: '',
26783
26840
  titleStyle: {
26784
26841
  fontFamily: FONT_FAMILY
26785
26842
  },
26786
26843
  title: this._translate.get('Duration'),
26787
- lineStyle: { width: 0 },
26788
- minorTickLines: { width: 0 }
26844
+ //lineStyle: { width: 0 },
26845
+ //minorTickLines: { width: 0 }
26789
26846
  };
26790
26847
  this.margin = {
26791
26848
  bottom: 0
@@ -26974,31 +27031,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
26974
27031
  args: ['nameInput', { static: true, read: ElementRef }]
26975
27032
  }] } });
26976
27033
 
26977
- // https://day.js.org/docs/en/customization/relative-time
26978
- dayjs.extend(relativeTime, {
26979
- thresholds: [
26980
- { l: 's', r: 1 },
26981
- { l: 'm', r: 1 },
26982
- { l: 'mm', r: 59, d: 'minute' },
26983
- { l: 'h', r: 1 },
26984
- { l: 'hh', r: 24, d: 'hour' },
26985
- { l: 'd', r: 1 },
26986
- { l: 'dd', r: 29, d: 'day' },
26987
- { l: 'M', r: 1 },
26988
- { l: 'MM', r: 11, d: 'month' },
26989
- { l: 'y' },
26990
- { l: 'yy', d: 'year' }
26991
- ]
26992
- });
26993
- dayjs.extend(duration);
26994
- dayjs.extend(calendar);
26995
- dayjs.extend(updateLocale);
27034
+ /** configuration componenets */
26996
27035
  const CORE_COMPONENTS = [CubeCompareWidget, CubeParallelViewComponent, CubeExploreViewComponent, CubeChartViewComponent, CubeDocumentSumComponent, CubeDocumentMatrixComponent, CubeDocumentViewComponent, CubePivotViewComponent, TimelineViewComponent,
26997
27036
  SubstitutionComponent, MoveToActionComponent, AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
26998
27037
  ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
26999
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27038
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27000
27039
  CubeDocumentsComponent, TasksComponent, UsageReportArgs, CubeUsageComponent
27001
27040
  ];
27041
+ /** common BizDoc components */
27002
27042
  class SharedModule {
27003
27043
  static forChild(config) {
27004
27044
  const { formats } = config || {};
@@ -27080,9 +27120,10 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27080
27120
  ImpersonateDialog,
27081
27121
  ConversationComponent, CubeMatrixPopupComponent,
27082
27122
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27083
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27123
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27084
27124
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27085
- EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [CommonModule,
27125
+ EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [DayJsModule,
27126
+ CommonModule,
27086
27127
  HttpClientModule,
27087
27128
  ReactiveFormsModule,
27088
27129
  FlexLayoutModule,
@@ -27119,7 +27160,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27119
27160
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27120
27161
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27121
27162
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27122
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27163
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27123
27164
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27124
27165
  VersionCompareComponent, LottieAnimation,
27125
27166
  CubeAccumulationChartComponent,
@@ -27143,6 +27184,7 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
27143
27184
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27144
27185
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27145
27186
  ], imports: [[
27187
+ DayJsModule,
27146
27188
  CommonModule,
27147
27189
  HttpClientModule,
27148
27190
  ReactiveFormsModule,
@@ -27219,10 +27261,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27219
27261
  ImpersonateDialog,
27220
27262
  ConversationComponent, CubeMatrixPopupComponent,
27221
27263
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27222
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27264
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27223
27265
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27224
27266
  EmojiHostComponent, TooltipDirective, TooltipComponent],
27225
27267
  imports: [
27268
+ DayJsModule,
27226
27269
  CommonModule,
27227
27270
  HttpClientModule,
27228
27271
  ReactiveFormsModule,
@@ -27279,7 +27322,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27279
27322
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27280
27323
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27281
27324
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27282
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27325
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27283
27326
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27284
27327
  VersionCompareComponent, LottieAnimation,
27285
27328
  CubeAccumulationChartComponent,
@@ -27376,9 +27419,9 @@ class TraceElementComponent {
27376
27419
  const info = [];
27377
27420
  const who = await this._accounts.get(recipient.userId).toPromise();
27378
27421
  if (recipient.escalated) {
27379
- const escalations = this.timeline.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
27380
- const escalate = await this._accounts.get(escalations[0].userId).toPromise();
27381
- info.push(this._translate.get('EscalatedBy', this._chat.format(escalate), this._chat.format(who)));
27422
+ const escalation = this.timeline.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
27423
+ const to = await this._accounts.get(escalation.userId).toPromise();
27424
+ info.push(this._translate.get('EscalatedBy', this._chat.format(to), this._chat.format(who)));
27382
27425
  }
27383
27426
  if (recipient.substituteId) {
27384
27427
  const substitute = await this._accounts.get(recipient.substituteId).toPromise();
@@ -28347,11 +28390,11 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28347
28390
  this._cd = _cd;
28348
28391
  this._fb = _fb;
28349
28392
  this.search = this._fb.control(null);
28350
- this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging |
28351
- DiagramConstraints.LineRouting |
28352
- DiagramConstraints.Pan |
28353
- DiagramConstraints.Zoom;
28354
- this.diagramTool = DiagramTools.SingleSelect;
28393
+ this.diagramConstraints = DiagramConstraints$1.Default | DiagramConstraints$1.Bridging |
28394
+ DiagramConstraints$1.LineRouting |
28395
+ DiagramConstraints$1.Pan |
28396
+ DiagramConstraints$1.Zoom;
28397
+ this.diagramTool = DiagramTools$1.SingleSelect;
28355
28398
  this.layout = {
28356
28399
  type: 'ComplexHierarchicalTree',
28357
28400
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
@@ -28370,7 +28413,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28370
28413
  this._accentColor = this._session.getAccent(800);
28371
28414
  this._primeryColor = this._session.getPrimery();
28372
28415
  this.selectedItems = {
28373
- constraints: SelectorConstraints.UserHandle,
28416
+ constraints: SelectorConstraints$1.UserHandle,
28374
28417
  userHandles: [
28375
28418
  {
28376
28419
  name: 'info',
@@ -28394,13 +28437,13 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28394
28437
  this.nodeDefaults = (node) => {
28395
28438
  const { indicator, virtual } = node.addInfo || {};
28396
28439
  if (indicator) {
28397
- node.constraints = NodeConstraints.PointerEvents | NodeConstraints.Tooltip,
28440
+ node.constraints = NodeConstraints$1.PointerEvents | NodeConstraints$1.Tooltip,
28398
28441
  node.style.strokeWidth = 0,
28399
28442
  node.width = node.height = 15;
28400
28443
  }
28401
28444
  else if (node.id !== 'version') {
28402
- node.constraints = NodeConstraints.InConnect | NodeConstraints.OutConnect |
28403
- NodeConstraints.PointerEvents | NodeConstraints.Select;
28445
+ node.constraints = NodeConstraints$1.InConnect | NodeConstraints$1.OutConnect |
28446
+ NodeConstraints$1.PointerEvents | NodeConstraints$1.Select;
28404
28447
  this._decorateNode(node);
28405
28448
  node.ports = getPorts();
28406
28449
  }
@@ -28408,7 +28451,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28408
28451
  };
28409
28452
  this.connDefaults = (connector) => {
28410
28453
  const { virtual } = connector.addInfo || {};
28411
- connector.constraints = ConnectorConstraints.ReadOnly & ~ConnectorConstraints.Select;
28454
+ connector.constraints = ConnectorConstraints$1.ReadOnly & ~ConnectorConstraints$1.Select;
28412
28455
  this._decorateConnector(connector);
28413
28456
  };
28414
28457
  }
@@ -28462,7 +28505,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28462
28505
  this._timeline();
28463
28506
  this.mode = 'diagram';
28464
28507
  this._cd.detectChanges();
28465
- this.diagram = new Diagram({
28508
+ this.diagram = new Diagram$1({
28466
28509
  width: '100%', height: '100%',
28467
28510
  snapSettings: this.snapSettings,
28468
28511
  layout: this.layout,
@@ -28618,7 +28661,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28618
28661
  fontSize: 50,
28619
28662
  opacity: .1
28620
28663
  },
28621
- constraints: NodeConstraints.ReadOnly
28664
+ constraints: NodeConstraints$1.ReadOnly
28622
28665
  };
28623
28666
  this.diagram.addLayer({
28624
28667
  id: 'version',
@@ -28681,12 +28724,12 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28681
28724
  this.diagram.dataBind();
28682
28725
  }
28683
28726
  pan() {
28684
- this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
28685
- this.diagram.tool = DiagramTools.ZoomPan;
28727
+ this.diagram.constraints = this.diagram.constraints | DiagramConstraints$1.Pan;
28728
+ this.diagram.tool = DiagramTools$1.ZoomPan;
28686
28729
  }
28687
28730
  cursor() {
28688
- this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints.Pan;
28689
- this.diagram.tool = DiagramTools.SingleSelect;
28731
+ this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints$1.Pan;
28732
+ this.diagram.tool = DiagramTools$1.SingleSelect;
28690
28733
  }
28691
28734
  _highlight(ids) {
28692
28735
  for (let i = 0; i < ids.length; i++) {
@@ -29578,6 +29621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
29578
29621
 
29579
29622
  const SYSTEM_COMPONENTS = [RoleNodeComponent, ManageCubeIndexUtility, PermissionsUtility, PositionsComponent, ProfilerComponent,
29580
29623
  PatternsComponent, SystemDiffComponent, DocumentTraceComponent];
29624
+ /** administrative utilities */
29581
29625
  class SystemModule {
29582
29626
  static forChild() {
29583
29627
  registerComponents(SYSTEM_COMPONENTS);
@@ -29833,5 +29877,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
29833
29877
  * Generated bundle index. Do not edit.
29834
29878
  */
29835
29879
 
29836
- 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 };
29880
+ 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 };
29837
29881
  //# sourceMappingURL=bizdoc-core.mjs.map