@bizdoc/core 1.13.34 → 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 (42) 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/trace/flow.component.mjs +5 -6
  5. package/esm2020/lib/compose/trace/trace.component.mjs +7 -11
  6. package/esm2020/lib/core/models.mjs +1 -1
  7. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -1
  8. package/esm2020/lib/dashboard/cube/compare.widget.mjs +6 -5
  9. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +206 -0
  10. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +2 -2
  11. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +5 -9
  12. package/esm2020/lib/modules/chart.module.mjs +10 -10
  13. package/esm2020/lib/modules/circular-gauge.module.mjs +1 -1
  14. package/esm2020/lib/modules/dayjs.module.mjs +41 -0
  15. package/esm2020/lib/modules/diagram.module.mjs +1 -1
  16. package/esm2020/lib/modules/gantt.module.mjs +4 -3
  17. package/esm2020/lib/modules/pivot.module.mjs +1 -1
  18. package/esm2020/lib/reports/cube/usage-base.mjs +2 -2
  19. package/esm2020/lib/reports/cube/usage-chart.component.mjs +11 -7
  20. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +21 -3
  21. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  22. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  23. package/esm2020/lib/shared.module.mjs +14 -32
  24. package/esm2020/lib/system.module.mjs +2 -1
  25. package/esm2020/public-api.mjs +2 -2
  26. package/fesm2015/bizdoc-core.mjs +203 -135
  27. package/fesm2015/bizdoc-core.mjs.map +1 -1
  28. package/fesm2020/bizdoc-core.mjs +203 -136
  29. package/fesm2020/bizdoc-core.mjs.map +1 -1
  30. package/lib/admin/form/workflow/workflow.component.d.ts +9 -6
  31. package/lib/core/models.d.ts +1 -0
  32. package/lib/dashboard/score/{compare-departments.widget.d.ts → compare-groups.widget.d.ts} +3 -3
  33. package/lib/dashboard/score/pending-results.widget.d.ts +0 -1
  34. package/lib/modules/chart.module.d.ts +1 -1
  35. package/lib/modules/dayjs.module.d.ts +6 -0
  36. package/lib/reports/cube/usage-base.d.ts +1 -1
  37. package/lib/reports/cube/usage-pivot.component.d.ts +5 -1
  38. package/lib/shared.module.d.ts +21 -19
  39. package/lib/system.module.d.ts +1 -0
  40. package/package.json +1 -1
  41. package/public-api.d.ts +1 -1
  42. 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: '' })),
@@ -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,
@@ -13977,8 +14011,8 @@ class FlowViewComponent extends TraceBase {
13977
14011
  position: 'TopCenter'
13978
14012
  },
13979
14013
  constraints: content ?
13980
- NodeConstraints.Default | NodeConstraints.Tooltip :
13981
- NodeConstraints.Default,
14014
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14015
+ NodeConstraints$1.Default,
13982
14016
  addInfo: {
13983
14017
  tooltip,
13984
14018
  recipient,
@@ -14068,8 +14102,8 @@ class FlowViewComponent extends TraceBase {
14068
14102
  position: 'TopCenter'
14069
14103
  },
14070
14104
  constraints: content ?
14071
- NodeConstraints.Default | NodeConstraints.Tooltip :
14072
- NodeConstraints.Default,
14105
+ NodeConstraints$1.Default | NodeConstraints$1.Tooltip :
14106
+ NodeConstraints$1.Default,
14073
14107
  addInfo: {
14074
14108
  tooltip,
14075
14109
  node
@@ -14362,11 +14396,10 @@ class FlowViewComponent extends TraceBase {
14362
14396
  }
14363
14397
  }
14364
14398
  if (recipient.escalated) {
14365
- const escalations = this.model.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
14366
- const userIds = escalations.map(e => e.userId);
14367
- const users = await this._accounts.getAll(userIds).toPromise();
14368
- const duration = this._duration.transform(dayjs.duration(escalations[escalations.length - 1].duration, 's'));
14369
- 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);
14370
14403
  }
14371
14404
  if (recipient.replied) {
14372
14405
  const duration = dayjs(recipient.replied).diff(recipient.received, 's');
@@ -14699,18 +14732,14 @@ class TraceViewComponent extends TraceBase {
14699
14732
  }
14700
14733
  }
14701
14734
  else if (recipient.escalated) {
14702
- let escalations = this.model.log.filter(l => l.time > issued &&
14703
- l.type === 'Escalation' && l.recipientId === recipient.id);
14704
- let escalate = [];
14705
- 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 {
14706
14740
  let who = await profileOf(escalation.userId);
14707
- escalate.push(who);
14741
+ step.name = this._translate.get('EscalatedBy', nameOf(who), nameOf(to));
14708
14742
  }
14709
- let who = await profileOf(recipient.userId);
14710
- if (escalations.length === 1 && escalate[0] === this._session.userId)
14711
- step.name = this._translate.get('EscalatedByYou', nameOf(who));
14712
- else
14713
- step.name = this._translate.get('EscalatedBy', nameOf(who), this._translate.join(escalate.map(e => nameOf(e))));
14714
14743
  }
14715
14744
  else {
14716
14745
  if (recipient.userId === this._session.userId)
@@ -20291,10 +20320,10 @@ class ReportComponent {
20291
20320
  }
20292
20321
  }
20293
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 });
20294
- 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 } });
20295
20324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ReportComponent, decorators: [{
20296
20325
  type: Component,
20297
- 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"] }]
20298
20327
  }], ctorParameters: function () { return [{ type: WindowTitleService }, { type: i1$6.ActivatedRoute }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }]; }, propDecorators: { filter: [{
20299
20328
  type: ViewChild,
20300
20329
  args: [MatSidenav, { static: true }]
@@ -20655,8 +20684,8 @@ Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Export, BarSeries, AreaSer
20655
20684
  class SyncfusionChartModule {
20656
20685
  }
20657
20686
  SyncfusionChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20658
- SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule] });
20659
- 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,
20660
20689
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20661
20690
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20662
20691
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20664,14 +20693,14 @@ SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
20664
20693
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20665
20694
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20666
20695
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20667
- ExportService,
20668
- 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] });
20669
20698
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionChartModule, decorators: [{
20670
20699
  type: NgModule,
20671
20700
  args: [{
20672
- imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20673
- exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
20674
- 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,
20675
20704
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20676
20705
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
20677
20706
  BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
@@ -20679,7 +20708,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
20679
20708
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20680
20709
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20681
20710
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20682
- ExportService,
20711
+ SparklineTooltipService,
20683
20712
  AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService]
20684
20713
  }]
20685
20714
  }] });
@@ -20814,13 +20843,46 @@ class SyncfusionGanttModule {
20814
20843
  }
20815
20844
  SyncfusionGanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20816
20845
  SyncfusionGanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, imports: [GanttModule], exports: [GanttModule] });
20817
- 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] });
20818
20847
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: SyncfusionGanttModule, decorators: [{
20819
20848
  type: NgModule,
20820
20849
  args: [{
20821
20850
  imports: [GanttModule],
20822
20851
  exports: [GanttModule],
20823
- 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: [],
20824
20886
  }]
20825
20887
  }] });
20826
20888
 
@@ -22045,14 +22107,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22045
22107
  args: [ChartComponent]
22046
22108
  }] } });
22047
22109
 
22048
- var CompareDepartmentsWidget_1;
22110
+ var CompareGroupsWidget_1;
22049
22111
  /** */
22050
- let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartmentsWidget {
22112
+ let CompareGroupsWidget = CompareGroupsWidget_1 = class CompareGroupsWidget {
22051
22113
  constructor(_translate, widgetRef, _elementRef, _session) {
22052
22114
  this._translate = _translate;
22053
22115
  this._elementRef = _elementRef;
22054
22116
  this._session = _session;
22055
- this.id = `department-compare-${CompareDepartmentsWidget_1.nextId++}`;
22117
+ this.id = `groups-compare-${CompareGroupsWidget_1.nextId++}`;
22056
22118
  this.palettes = this._session.accentPalette;
22057
22119
  this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
22058
22120
  this.enableRtl = this._session.inverse;
@@ -22214,18 +22276,18 @@ let CompareDepartmentsWidget = CompareDepartmentsWidget_1 = class CompareDepartm
22214
22276
  this._destroy.complete();
22215
22277
  }
22216
22278
  };
22217
- CompareDepartmentsWidget.nextId = 0;
22218
- 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 });
22219
- 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 });
22220
- 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([
22221
22283
  BizDoc({
22222
- selector: 'bizdoc-compare-departments'
22284
+ selector: 'bizdoc-compare-groups'
22223
22285
  })
22224
- ], CompareDepartmentsWidget);
22225
- 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: [{
22226
22288
  type: Component,
22227
22289
  args: [{
22228
- //templateUrl: './compare-departments.widget.html',
22290
+ //templateUrl: './compare-groups.widget.html',
22229
22291
  template: '',
22230
22292
  providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
22231
22293
  host: {
@@ -22455,7 +22517,7 @@ PeersPerformanceWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", v
22455
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 });
22456
22518
  PeersPerformanceWidget = PeersPerformanceWidget_1 = __decorate([
22457
22519
  BizDoc({
22458
- selector: 'bizdoc-departmental-performance'
22520
+ selector: 'bizdoc-peers-performance'
22459
22521
  })
22460
22522
  ], PeersPerformanceWidget);
22461
22523
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PeersPerformanceWidget, decorators: [{
@@ -22487,17 +22549,13 @@ let PendingResultsWidget = class PendingResultsWidget {
22487
22549
  this.sort.direction = 'desc';
22488
22550
  this.dataSource.sort = this.sort;
22489
22551
  }
22490
- asDays(seconds) {
22491
- const duration = dayjs.duration(seconds, 's');
22492
- return `${Math.floor(duration.asDays())}:${Math.round(duration.hours())}`;
22493
- }
22494
22552
  ngOnDestroy() {
22495
22553
  this._destroy.next();
22496
22554
  this._destroy.complete();
22497
22555
  }
22498
22556
  };
22499
22557
  PendingResultsWidget.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: PendingResultsWidget, deps: [{ token: WidgetRef }], target: i0.ɵɵFactoryTarget.Component });
22500
- 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: [
22501
22559
  listAnimation,
22502
22560
  itemAnimation
22503
22561
  ] });
@@ -22511,7 +22569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
22511
22569
  args: [{ selector: 'bizdoc-pending-results', animations: [
22512
22570
  listAnimation,
22513
22571
  itemAnimation
22514
- ], 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"] }]
22515
22573
  }], ctorParameters: function () { return [{ type: WidgetRef }]; }, propDecorators: { sort: [{
22516
22574
  type: ViewChild,
22517
22575
  args: [MatSort]
@@ -22909,7 +22967,7 @@ class UsageReportBase {
22909
22967
  this._series = series ? this._cube.axes.filter(a => isArray(series) ? series.indexOf(a.name) > -1 : a.name === series) :
22910
22968
  this._cube.axes.filter(a => a.combination && !a.hidden);
22911
22969
  this.currencyCode = this._cube.currencyCode;
22912
- this._collapse = collapse;
22970
+ this._expandAll = collapse !== true;
22913
22971
  this._yTitle = yTitle || this._translate.get('Usage');
22914
22972
  }
22915
22973
  ngOnInit() {
@@ -22973,7 +23031,7 @@ class UsageChartComponent extends UsageReportBase {
22973
23031
  /** set defaults */
22974
23032
  _defaults() {
22975
23033
  const { chartType } = this._reportRef.options;
22976
- const line = chartType === 'Line' || chartType === 'Spline';
23034
+ const isLine = chartType === 'Line' || chartType === 'Spline';
22977
23035
  this.chartSettings = {
22978
23036
  pointClick: this.pointClick.bind(this),
22979
23037
  zoomSettings: {
@@ -22984,7 +23042,7 @@ class UsageChartComponent extends UsageReportBase {
22984
23042
  enableSelectionZooming: false
22985
23043
  },
22986
23044
  crosshair: {
22987
- enable: line,
23045
+ enable: isLine,
22988
23046
  line: {
22989
23047
  width: 1
22990
23048
  }
@@ -22994,7 +23052,7 @@ class UsageChartComponent extends UsageReportBase {
22994
23052
  type: chartType || 'Column',
22995
23053
  //width: 2,
22996
23054
  border: { width: 0 },
22997
- marker: { height: 10, width: 10, shape: 'Pentagon', visible: line },
23055
+ marker: { height: 10, width: 10, shape: 'Pentagon', visible: isLine },
22998
23056
  },
22999
23057
  enableExport: true,
23000
23058
  chartArea: {
@@ -23035,7 +23093,12 @@ class UsageChartComponent extends UsageReportBase {
23035
23093
  labelStyle: {
23036
23094
  fontFamily: FONT_FAMILY
23037
23095
  },
23038
- crosshairTooltip: { enable: line }
23096
+ crosshairTooltip: {
23097
+ enable: true,
23098
+ textStyle: {
23099
+ fontFamily: FONT_FAMILY
23100
+ }
23101
+ }
23039
23102
  }
23040
23103
  };
23041
23104
  const formatSettings = [{
@@ -23063,7 +23126,7 @@ class UsageChartComponent extends UsageReportBase {
23063
23126
  ],
23064
23127
  enableSorting: false,
23065
23128
  sortSettings: this._series.map(s => { return { name: `_${s.name}` }; }),
23066
- expandAll: this._collapse || false,
23129
+ expandAll: this._expandAll,
23067
23130
  formatSettings,
23068
23131
  dataSource: []
23069
23132
  };
@@ -23098,7 +23161,6 @@ class UsageChartComponent extends UsageReportBase {
23098
23161
  dataSourceSettings: this.dataSourceSettings,
23099
23162
  spinnerTemplate: '',
23100
23163
  allowConditionalFormatting: true,
23101
- allowExcelExport: true,
23102
23164
  currencyCode: this.currencyCode,
23103
23165
  }, this._elementRef.nativeElement);
23104
23166
  }
@@ -23388,7 +23450,7 @@ class UsagePivotComponent extends UsageReportBase {
23388
23450
  values,
23389
23451
  conditionalFormatSettings: this.conditionalFormatSettings,
23390
23452
  emptyCellsTextContent: this._emptyCellsTextContent,
23391
- expandAll: this._collapse || false,
23453
+ expandAll: this._expandAll,
23392
23454
  showColumnGrandTotals: true,
23393
23455
  alwaysShowValueHeader: false,
23394
23456
  formatSettings,
@@ -23461,8 +23523,20 @@ class UsagePivotComponent extends UsageReportBase {
23461
23523
  gridSettings: this.gridSettings,
23462
23524
  cellClick: this.cellClick.bind(this),
23463
23525
  currencyCode: this.currencyCode,
23526
+ dataBound: this.dataBound.bind(this)
23464
23527
  }, this._elementRef.nativeElement);
23465
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
+ }
23466
23540
  /**
23467
23541
  *
23468
23542
  * @param evt
@@ -23473,7 +23547,7 @@ class UsagePivotComponent extends UsageReportBase {
23473
23547
  super.browse(axes, actualText === 'usage' ? null : actualText);
23474
23548
  }
23475
23549
  /**
23476
- * reverse engineering axes from headers
23550
+ * reverse engineer axes from headers
23477
23551
  * @param columnHeaders
23478
23552
  * @param rowHeaders
23479
23553
  */
@@ -23494,6 +23568,11 @@ class UsagePivotComponent extends UsageReportBase {
23494
23568
  });
23495
23569
  return axes;
23496
23570
  }
23571
+ ngOnDestroy() {
23572
+ this.tooltip && this.tooltip.destroy();
23573
+ this.pivot && this.pivot.destroy();
23574
+ super.ngOnDestroy();
23575
+ }
23497
23576
  }
23498
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 });
23499
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 });
@@ -26755,14 +26834,15 @@ let CubeCompareWidget = CubeCompareWidget_1 = class CubeCompareWidget {
26755
26834
  this.primaryYAxis = {
26756
26835
  skeleton: 'duration',
26757
26836
  labelStyle: {
26758
- size: '0px'
26759
- }, visible: true,
26837
+ //size: '0px'
26838
+ },
26839
+ labelFormat: '',
26760
26840
  titleStyle: {
26761
26841
  fontFamily: FONT_FAMILY
26762
26842
  },
26763
26843
  title: this._translate.get('Duration'),
26764
- lineStyle: { width: 0 },
26765
- minorTickLines: { width: 0 }
26844
+ //lineStyle: { width: 0 },
26845
+ //minorTickLines: { width: 0 }
26766
26846
  };
26767
26847
  this.margin = {
26768
26848
  bottom: 0
@@ -26951,31 +27031,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
26951
27031
  args: ['nameInput', { static: true, read: ElementRef }]
26952
27032
  }] } });
26953
27033
 
26954
- // https://day.js.org/docs/en/customization/relative-time
26955
- dayjs.extend(relativeTime, {
26956
- thresholds: [
26957
- { l: 's', r: 1 },
26958
- { l: 'm', r: 1 },
26959
- { l: 'mm', r: 59, d: 'minute' },
26960
- { l: 'h', r: 1 },
26961
- { l: 'hh', r: 24, d: 'hour' },
26962
- { l: 'd', r: 1 },
26963
- { l: 'dd', r: 29, d: 'day' },
26964
- { l: 'M', r: 1 },
26965
- { l: 'MM', r: 11, d: 'month' },
26966
- { l: 'y' },
26967
- { l: 'yy', d: 'year' }
26968
- ]
26969
- });
26970
- dayjs.extend(duration);
26971
- dayjs.extend(calendar);
26972
- dayjs.extend(updateLocale);
27034
+ /** configuration componenets */
26973
27035
  const CORE_COMPONENTS = [CubeCompareWidget, CubeParallelViewComponent, CubeExploreViewComponent, CubeChartViewComponent, CubeDocumentSumComponent, CubeDocumentMatrixComponent, CubeDocumentViewComponent, CubePivotViewComponent, TimelineViewComponent,
26974
27036
  SubstitutionComponent, MoveToActionComponent, AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
26975
27037
  ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
26976
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27038
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
26977
27039
  CubeDocumentsComponent, TasksComponent, UsageReportArgs, CubeUsageComponent
26978
27040
  ];
27041
+ /** common BizDoc components */
26979
27042
  class SharedModule {
26980
27043
  static forChild(config) {
26981
27044
  const { formats } = config || {};
@@ -27057,9 +27120,10 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27057
27120
  ImpersonateDialog,
27058
27121
  ConversationComponent, CubeMatrixPopupComponent,
27059
27122
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27060
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27123
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27061
27124
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27062
- EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [CommonModule,
27125
+ EmojiHostComponent, TooltipDirective, TooltipComponent], imports: [DayJsModule,
27126
+ CommonModule,
27063
27127
  HttpClientModule,
27064
27128
  ReactiveFormsModule,
27065
27129
  FlexLayoutModule,
@@ -27096,7 +27160,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
27096
27160
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27097
27161
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27098
27162
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27099
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27163
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27100
27164
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27101
27165
  VersionCompareComponent, LottieAnimation,
27102
27166
  CubeAccumulationChartComponent,
@@ -27120,6 +27184,7 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
27120
27184
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27121
27185
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27122
27186
  ], imports: [[
27187
+ DayJsModule,
27123
27188
  CommonModule,
27124
27189
  HttpClientModule,
27125
27190
  ReactiveFormsModule,
@@ -27196,10 +27261,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27196
27261
  ImpersonateDialog,
27197
27262
  ConversationComponent, CubeMatrixPopupComponent,
27198
27263
  VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
27199
- PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27264
+ PendingResultsWidget, CompareGroupsWidget, CubeDocumentsTableComponent, CubeDocumentsWidget,
27200
27265
  PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
27201
27266
  EmojiHostComponent, TooltipDirective, TooltipComponent],
27202
27267
  imports: [
27268
+ DayJsModule,
27203
27269
  CommonModule,
27204
27270
  HttpClientModule,
27205
27271
  ReactiveFormsModule,
@@ -27256,7 +27322,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
27256
27322
  PrivilegeDisabledDirective, CompareGroupDirective, CompareNameDirective, CompareContextDirective, TraceViewComponent, FlowViewComponent,
27257
27323
  AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
27258
27324
  CubeCompareWidget, ActionsWidget, CubeAnalysisWidget, CubeDocumentsWidget, RecentsWidget, PersonalActivityWidget,
27259
- CompareDepartmentsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27325
+ CompareGroupsWidget, PeersPerformanceWidget, PendingResultsWidget, PersonalScoreWidget, CubeWidgetFilterComponent,
27260
27326
  CubeDocumentsTableComponent, CubeDocumentsGridComponent, TasksComponent, UsageReportArgs, UsageChartComponent, UsagePivotComponent, TimespanInput,
27261
27327
  VersionCompareComponent, LottieAnimation,
27262
27328
  CubeAccumulationChartComponent,
@@ -27353,9 +27419,9 @@ class TraceElementComponent {
27353
27419
  const info = [];
27354
27420
  const who = await this._accounts.get(recipient.userId).toPromise();
27355
27421
  if (recipient.escalated) {
27356
- const escalations = this.timeline.log.filter(l => l.type === 'Escalation' && l.recipientId === recipient.id);
27357
- const escalate = await this._accounts.get(escalations[0].userId).toPromise();
27358
- 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)));
27359
27425
  }
27360
27426
  if (recipient.substituteId) {
27361
27427
  const substitute = await this._accounts.get(recipient.substituteId).toPromise();
@@ -28324,11 +28390,11 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28324
28390
  this._cd = _cd;
28325
28391
  this._fb = _fb;
28326
28392
  this.search = this._fb.control(null);
28327
- this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging |
28328
- DiagramConstraints.LineRouting |
28329
- DiagramConstraints.Pan |
28330
- DiagramConstraints.Zoom;
28331
- 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;
28332
28398
  this.layout = {
28333
28399
  type: 'ComplexHierarchicalTree',
28334
28400
  connectionPointOrigin: ConnectionPointOrigin.DifferentPoint,
@@ -28347,7 +28413,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28347
28413
  this._accentColor = this._session.getAccent(800);
28348
28414
  this._primeryColor = this._session.getPrimery();
28349
28415
  this.selectedItems = {
28350
- constraints: SelectorConstraints.UserHandle,
28416
+ constraints: SelectorConstraints$1.UserHandle,
28351
28417
  userHandles: [
28352
28418
  {
28353
28419
  name: 'info',
@@ -28371,13 +28437,13 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28371
28437
  this.nodeDefaults = (node) => {
28372
28438
  const { indicator, virtual } = node.addInfo || {};
28373
28439
  if (indicator) {
28374
- node.constraints = NodeConstraints.PointerEvents | NodeConstraints.Tooltip,
28440
+ node.constraints = NodeConstraints$1.PointerEvents | NodeConstraints$1.Tooltip,
28375
28441
  node.style.strokeWidth = 0,
28376
28442
  node.width = node.height = 15;
28377
28443
  }
28378
28444
  else if (node.id !== 'version') {
28379
- node.constraints = NodeConstraints.InConnect | NodeConstraints.OutConnect |
28380
- NodeConstraints.PointerEvents | NodeConstraints.Select;
28445
+ node.constraints = NodeConstraints$1.InConnect | NodeConstraints$1.OutConnect |
28446
+ NodeConstraints$1.PointerEvents | NodeConstraints$1.Select;
28381
28447
  this._decorateNode(node);
28382
28448
  node.ports = getPorts();
28383
28449
  }
@@ -28385,7 +28451,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28385
28451
  };
28386
28452
  this.connDefaults = (connector) => {
28387
28453
  const { virtual } = connector.addInfo || {};
28388
- connector.constraints = ConnectorConstraints.ReadOnly & ~ConnectorConstraints.Select;
28454
+ connector.constraints = ConnectorConstraints$1.ReadOnly & ~ConnectorConstraints$1.Select;
28389
28455
  this._decorateConnector(connector);
28390
28456
  };
28391
28457
  }
@@ -28439,7 +28505,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28439
28505
  this._timeline();
28440
28506
  this.mode = 'diagram';
28441
28507
  this._cd.detectChanges();
28442
- this.diagram = new Diagram({
28508
+ this.diagram = new Diagram$1({
28443
28509
  width: '100%', height: '100%',
28444
28510
  snapSettings: this.snapSettings,
28445
28511
  layout: this.layout,
@@ -28595,7 +28661,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28595
28661
  fontSize: 50,
28596
28662
  opacity: .1
28597
28663
  },
28598
- constraints: NodeConstraints.ReadOnly
28664
+ constraints: NodeConstraints$1.ReadOnly
28599
28665
  };
28600
28666
  this.diagram.addLayer({
28601
28667
  id: 'version',
@@ -28658,12 +28724,12 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28658
28724
  this.diagram.dataBind();
28659
28725
  }
28660
28726
  pan() {
28661
- this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
28662
- this.diagram.tool = DiagramTools.ZoomPan;
28727
+ this.diagram.constraints = this.diagram.constraints | DiagramConstraints$1.Pan;
28728
+ this.diagram.tool = DiagramTools$1.ZoomPan;
28663
28729
  }
28664
28730
  cursor() {
28665
- this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints.Pan;
28666
- this.diagram.tool = DiagramTools.SingleSelect;
28731
+ this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints$1.Pan;
28732
+ this.diagram.tool = DiagramTools$1.SingleSelect;
28667
28733
  }
28668
28734
  _highlight(ids) {
28669
28735
  for (let i = 0; i < ids.length; i++) {
@@ -29555,6 +29621,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
29555
29621
 
29556
29622
  const SYSTEM_COMPONENTS = [RoleNodeComponent, ManageCubeIndexUtility, PermissionsUtility, PositionsComponent, ProfilerComponent,
29557
29623
  PatternsComponent, SystemDiffComponent, DocumentTraceComponent];
29624
+ /** administrative utilities */
29558
29625
  class SystemModule {
29559
29626
  static forChild() {
29560
29627
  registerComponents(SYSTEM_COMPONENTS);
@@ -29810,5 +29877,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
29810
29877
  * Generated bundle index. Do not edit.
29811
29878
  */
29812
29879
 
29813
- 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 };
29814
29881
  //# sourceMappingURL=bizdoc-core.mjs.map