@bizdoc/core 1.14.0-next.11 → 1.14.0-next.12

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 (33) hide show
  1. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +2 -2
  2. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +120 -59
  3. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +52 -34
  4. package/esm2020/lib/admin/form/form.service.mjs +20 -3
  5. package/esm2020/lib/chat/conversation.component.mjs +2 -2
  6. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  7. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  8. package/esm2020/lib/core/slots/router.service.mjs +1 -4
  9. package/esm2020/lib/core/translate.service.mjs +5 -5
  10. package/esm2020/lib/core/translations.mjs +9 -3
  11. package/esm2020/lib/cube/accum/accum.component.mjs +1 -1
  12. package/esm2020/lib/cube/chart/chart.component.mjs +1 -1
  13. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  14. package/esm2020/lib/cube/pivot/pivot.component.mjs +14 -17
  15. package/esm2020/lib/modules/chart.module.mjs +12 -10
  16. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  17. package/esm2020/lib/modules/pivot.module.mjs +3 -2
  18. package/esm2020/lib/modules/spreadsheet.module.mjs +5 -3
  19. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  20. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +2 -3
  21. package/esm2020/public-api.mjs +1 -1
  22. package/fesm2015/bizdoc-core.mjs +202 -115
  23. package/fesm2015/bizdoc-core.mjs.map +1 -1
  24. package/fesm2020/bizdoc-core.mjs +202 -115
  25. package/fesm2020/bizdoc-core.mjs.map +1 -1
  26. package/lib/admin/document-trace/document-trace.component.d.ts +33 -18
  27. package/lib/admin/document-trace/trace-element.component.d.ts +22 -8
  28. package/lib/admin/form/form.service.d.ts +19 -2
  29. package/lib/core/slots/router.service.d.ts +2 -1
  30. package/lib/core/translations.d.ts +6 -0
  31. package/lib/modules/chart.module.d.ts +1 -1
  32. package/package.json +1 -1
  33. package/public-api.d.ts +1 -1
@@ -55,7 +55,7 @@ import * as i3 from '@angular/material/datepicker';
55
55
  import { MatDatepickerIntl, MatDatepickerModule } from '@angular/material/datepicker';
56
56
  import * as i12 from '@angular/cdk/text-field';
57
57
  import * as i2$2 from '@syncfusion/ej2-angular-richtexteditor';
58
- import { ToolbarType, RichTextEditorComponent, RichTextEditor, Toolbar, HtmlEditor, RichTextEditorModule, HtmlEditorService, ToolbarService } from '@syncfusion/ej2-angular-richtexteditor';
58
+ import { ToolbarType, RichTextEditorComponent, RichTextEditor, Toolbar, HtmlEditor, RichTextEditorModule, HtmlEditorService, ToolbarService, PasteCleanupService } from '@syncfusion/ej2-angular-richtexteditor';
59
59
  import * as i1$4 from '@angular/cdk/overlay';
60
60
  import { OverlayRef, OverlayConfig, OverlayModule, CdkScrollable } from '@angular/cdk/overlay';
61
61
  import { ComponentPortal, PortalModule, TemplatePortal } from '@angular/cdk/portal';
@@ -119,8 +119,8 @@ import localizedFormat from 'dayjs/plugin/localizedFormat';
119
119
  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
- import * as i8$4 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';
122
+ import * as i16 from '@syncfusion/ej2-angular-charts';
123
+ import { AccumulationChart, ChartModule, AccumulationChartModule, SparklineModule, 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, SplineRangeAreaSeriesService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, RangeNavigator, AreaSeries, LineSeries, DateTime, RangeTooltip, Sparkline, SparklineTooltip, PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection, Chart as Chart$1, Category, Tooltip as Tooltip$1, Legend, Selection as Selection$1, Zoom, Crosshair, DataLabel, BarSeries, BubbleSeries, ColumnSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, 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';
@@ -132,13 +132,13 @@ import { Spreadsheet, isNumber, SpreadsheetModule, SelectionService as Selection
132
132
  import * as i4 from '@ctrl/ngx-emoji-mart';
133
133
  import { PickerModule } from '@ctrl/ngx-emoji-mart';
134
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';
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, LineDistributionService, ToolBase, SelectorConstraints as SelectorConstraints$1, ConnectorConstraints as ConnectorConstraints$1 } from '@syncfusion/ej2-angular-diagrams';
136
136
  import * as i9$3 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';
139
139
  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
- 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';
141
+ import { PivotViewModule, ExcelExportService as ExcelExportService$1, GroupingBarService, NumberFormattingService, GroupingService, PivotChartService, ConditionalFormattingService, PivotView as PivotView$1, GroupingBar, ExcelExport as ExcelExport$2, PivotChart, PivotViewComponent } from '@syncfusion/ej2-angular-pivotview';
142
142
  import * as i7$5 from '@syncfusion/ej2-angular-gantt';
143
143
  import { GanttModule, ExcelExportService as ExcelExportService$3, DayMarkersService, SelectionService as SelectionService$3, Gantt } from '@syncfusion/ej2-angular-gantt';
144
144
  import relativeTime from 'dayjs/plugin/relativeTime';
@@ -1969,8 +1969,10 @@ const STRINGS = {
1969
1969
  'ar': {},
1970
1970
  'ru': {},
1971
1971
  'en': {
1972
- TodayAt: 'Today at',
1972
+ LastDay: '[Last] {0}',
1973
+ TodayAt: '[Today at] {0}',
1973
1974
  Tomorrow: 'Tomorrow',
1975
+ TomorrowAt: '[Tomorrow] {0}',
1974
1976
  Editing: '{0} editing...',
1975
1977
  CheckOut: 'Check out',
1976
1978
  CheckIn: 'Check in',
@@ -2088,6 +2090,7 @@ const STRINGS = {
2088
2090
  YouSubmittedNoteBy: 'You submitted this document on behalf of {0} {1}',
2089
2091
  Today: 'Today',
2090
2092
  Yesterday: 'Yesterday',
2093
+ YesterdayAt: '[Yesterday] {0}',
2091
2094
  Forget: 'Forget',
2092
2095
  SomeoneTyping: 'Someone\'s typing...',
2093
2096
  Typing: '{0} typing...',
@@ -2434,8 +2437,10 @@ const STRINGS = {
2434
2437
  Working: 'Working on it...'
2435
2438
  },
2436
2439
  'he': {
2437
- TodayAt: 'היום ב-',
2440
+ LastDay: '{0} [שעבר]',
2441
+ TodayAt: '[היום ב-]{0}',
2438
2442
  Tomorrow: 'מחר',
2443
+ TomorrowAt: '[מחר] {0}',
2439
2444
  Editing: '{0} עורך/ת...',
2440
2445
  EditingMale: '{0} עורך...',
2441
2446
  EditingFemale: '{0} עורכת...',
@@ -2640,6 +2645,7 @@ const STRINGS = {
2640
2645
  YouSubmittedNoteBy: 'שלחת את המסמך בשם {0} לחתימה {1}',
2641
2646
  Today: 'היום',
2642
2647
  Yesterday: 'אתמול',
2648
+ YesterdayAt: '[אתמול] {0}',
2643
2649
  SomeoneTyping: 'מישהו מקליד/ה...',
2644
2650
  Typing: '{0} מקליד/ה...',
2645
2651
  TypingFemale: '{0} מקלידה...',
@@ -3042,11 +3048,11 @@ class TranslateService {
3042
3048
  }
3043
3049
  }
3044
3050
  dayjs.updateLocale(culture, {
3045
- //sameDay: `[${this.get('TodayAt')}] h:mm A`,
3046
- //nextDay: `[${this.get('Tomorrow')}] h:mm A`,
3051
+ //sameDay: this.get('TodayAt', 'h:mm A'),
3052
+ //nextDay: this.get('TomorrowAt', 'h:mm A'),
3047
3053
  //nextWeek: 'dddd',
3048
- //lastDay: `[${this.get('Yesterday')}] h:mm A`,
3049
- //lastWeek: '[Last] dddd LT',
3054
+ //lastDay: this.get('YesterdayAt', 'h:mm A'),
3055
+ //lastWeek: this.get('LastDay', 'dddd LT'),
3050
3056
  sameElse: 'LLL'
3051
3057
  });
3052
3058
  _session.loaded.subscribe(() => this._gender = this._session.gender);
@@ -7024,9 +7030,6 @@ class PanesRouter {
7024
7030
  get active() {
7025
7031
  return this._active;
7026
7032
  }
7027
- //replace(url: string) {
7028
- // history.pushState({}, '', url);
7029
- //}
7030
7033
  navigate(commands, options) {
7031
7034
  return new Promise((resolve, reject) => {
7032
7035
  this._events$.pipe(filter(e => e instanceof NavigationStart), first()).subscribe((e) => resolve(e.pane), reject);
@@ -10535,17 +10538,20 @@ class CubePivotComponent {
10535
10538
  * @param evt
10536
10539
  */
10537
10540
  cellClick(evt) {
10538
- const { columnHeaders, rowHeaders, actualText, actualValue, axis, valueSort, type } = evt.data;
10541
+ const { columnHeaders, rowHeaders, actualText, actualValue, axis, valueSort, isGrandSum } = evt.data;
10542
+ if (actualValue === 0)
10543
+ return;
10539
10544
  let axes, index;
10540
- if (columnHeaders || rowHeaders) {
10541
- if (actualValue === 0)
10542
- return;
10545
+ if (columnHeaders || rowHeaders)
10543
10546
  axes = this._parseAxes(columnHeaders, rowHeaders);
10544
- if (actualText !== 'value')
10545
- index = actualText;
10546
- }
10547
- else if (axis === 'row' && type !== 'grand sum')
10547
+ else if (axis === 'row')
10548
10548
  axes = this._parseAxes('', valueSort.levelName);
10549
+ else if (axis === 'column')
10550
+ axes = this._parseAxes(valueSort.levelName, '');
10551
+ else if (isGrandSum)
10552
+ return;
10553
+ if (actualText !== 'value')
10554
+ index = actualText;
10549
10555
  this.explore.emit({ axes, index });
10550
10556
  }
10551
10557
  /**
@@ -10561,18 +10567,12 @@ class CubePivotComponent {
10561
10567
  // find any row with header
10562
10568
  element = this._data.find(e => e[column].toString() === c);
10563
10569
  // translate back to key
10564
- if (!element)
10565
- console.error(`${columnHeaders}`);
10566
- else
10567
- axes[column] = element[`_${column}`];
10570
+ axes[column] = element[`_${column}`];
10568
10571
  });
10569
10572
  if (rowHeaders !== '')
10570
10573
  rowHeaders.split(PIVOT_HEADER_DELIMITER$1).forEach((r, i) => {
10571
10574
  const column = this.dataSource.rows[i].name, element = this._data.find(e => e[column] === r);
10572
- if (!element)
10573
- console.error(`${rowHeaders}`);
10574
- else
10575
- axes[column] = element[`_${column}`];
10575
+ axes[column] = element[`_${column}`];
10576
10576
  });
10577
10577
  return axes;
10578
10578
  }
@@ -13311,11 +13311,27 @@ class FormService {
13311
13311
  constructor(_http) {
13312
13312
  this._http = _http;
13313
13313
  }
13314
- findAll(value) {
13314
+ findAll(options) {
13315
+ const params = {};
13316
+ if (isString(options))
13317
+ params['search'] = options;
13318
+ else {
13319
+ if (options.search)
13320
+ params['search'] = options.search;
13321
+ if (options.formId)
13322
+ params['formId'] = options.formId;
13323
+ if (options.start)
13324
+ params['start'] = new Date(options.start).toISOString();
13325
+ if (options.end)
13326
+ params['end'] = new Date(options.end).toISOString();
13327
+ }
13315
13328
  return this._http.get('/api/form/findAll', {
13316
- params: { value }
13329
+ params
13317
13330
  });
13318
13331
  }
13332
+ range() {
13333
+ return this._http.get('/api/form/range', {});
13334
+ }
13319
13335
  get(name) {
13320
13336
  return this._http.get(`/api/form/${name}`);
13321
13337
  }
@@ -14650,9 +14666,9 @@ class TraceViewComponent extends TraceBase {
14650
14666
  this.versionSelected = new EventEmitter();
14651
14667
  this.data = [];
14652
14668
  this.CALENDAR_SPEC = {
14653
- lastDay: `[${this._translate.get('Yesterday')}] HH:mm`,
14669
+ lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
14654
14670
  lastWeek: 'dddd HH:mm',
14655
- sameDay: `[${this._translate.get('Today')}] HH:mm`,
14671
+ sameDay: this._translate.get('TodayAt', 'HH:mm'),
14656
14672
  sameElse: 'MMM D HH:mm'
14657
14673
  };
14658
14674
  this._showMode = localStorage.getItem('traceMode') || 'everything';
@@ -15074,9 +15090,9 @@ class VersionPaneComponent {
15074
15090
  this._translate = _translate;
15075
15091
  this._router = _router;
15076
15092
  this.CALENDAR_SPEC = {
15077
- lastDay: `[${this._translate.get('Yesterday')}] HH:mm`,
15093
+ lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
15078
15094
  lastWeek: 'dddd HH:mm',
15079
- sameDay: `[${this._translate.get('Today')}] HH:mm`,
15095
+ sameDay: this._translate.get('TodayAt', 'HH:mm'),
15080
15096
  sameElse: 'MMM D HH:mm'
15081
15097
  };
15082
15098
  _pane.title = _translate.get('Version');
@@ -16908,7 +16924,7 @@ class ConversationComponent {
16908
16924
  this.sending = false;
16909
16925
  this.working = false;
16910
16926
  this.CALENDAR_SPEC = {
16911
- lastDay: `[${this._translate.get('Yesterday')}] HH:mm`,
16927
+ lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
16912
16928
  lastWeek: 'ddd HH:mm',
16913
16929
  sameDay: 'HH:mm',
16914
16930
  sameElse: 'MMM D HH:mm'
@@ -20876,7 +20892,7 @@ class SyncfusionTextEditorModule {
20876
20892
  SyncfusionTextEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionTextEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20877
20893
  SyncfusionTextEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionTextEditorModule, imports: [CommonModule,
20878
20894
  RichTextEditorModule], exports: [RichTextEditorModule] });
20879
- SyncfusionTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionTextEditorModule, providers: [HtmlEditorService, ToolbarService], imports: [[
20895
+ SyncfusionTextEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionTextEditorModule, providers: [HtmlEditorService, ToolbarService, PasteCleanupService], imports: [[
20880
20896
  CommonModule,
20881
20897
  RichTextEditorModule
20882
20898
  ], RichTextEditorModule] });
@@ -20890,16 +20906,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
20890
20906
  CommonModule,
20891
20907
  RichTextEditorModule
20892
20908
  ],
20893
- providers: [HtmlEditorService, ToolbarService]
20909
+ providers: [HtmlEditorService, ToolbarService, PasteCleanupService]
20894
20910
  }]
20895
20911
  }] });
20896
20912
 
20897
- AccumulationChart.Inject(PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationLegend, Export, PieSeries);
20898
- Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Export, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries);
20899
20913
  class SyncfusionChartModule {
20900
20914
  }
20901
20915
  SyncfusionChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20902
- SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule] });
20916
+ SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule], exports: [ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule] });
20903
20917
  SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionChartModule, providers: [RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20904
20918
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20905
20919
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
@@ -20908,13 +20922,13 @@ SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
20908
20922
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20909
20923
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20910
20924
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20911
- SparklineTooltipService,
20912
- AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule], ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule] });
20925
+ SparklineTooltipService, SplineRangeAreaSeriesService,
20926
+ AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService], imports: [[ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule], ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule] });
20913
20927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionChartModule, decorators: [{
20914
20928
  type: NgModule,
20915
20929
  args: [{
20916
- imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20917
- exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule, RangeNavigatorModule],
20930
+ imports: [ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule],
20931
+ exports: [ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule],
20918
20932
  providers: [RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
20919
20933
  SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
20920
20934
  StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
@@ -20923,10 +20937,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
20923
20937
  SelectionService, ChartAnnotationService, WaterfallSeriesService,
20924
20938
  RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService,
20925
20939
  MultiLevelLabelService, ParetoSeriesService, TooltipRenderService,
20926
- SparklineTooltipService,
20940
+ SparklineTooltipService, SplineRangeAreaSeriesService,
20927
20941
  AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService]
20928
20942
  }]
20929
- }] });
20943
+ }] });
20944
+ RangeNavigator.Inject(AreaSeries, LineSeries, DateTime, RangeTooltip);
20945
+ Sparkline.Inject(SparklineTooltip);
20946
+ AccumulationChart.Inject(PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection);
20947
+ Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Selection$1, Zoom, Crosshair, DataLabel, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries);
20930
20948
 
20931
20949
  class SyncfusionDiagramModule {
20932
20950
  }
@@ -20935,7 +20953,7 @@ SyncfusionDiagramModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
20935
20953
  DiagramModule,
20936
20954
  SymbolPaletteModule], exports: [DiagramModule,
20937
20955
  SymbolPaletteModule] });
20938
- SyncfusionDiagramModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService], imports: [[
20956
+ SyncfusionDiagramModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService], imports: [[
20939
20957
  CommonModule,
20940
20958
  DiagramModule,
20941
20959
  SymbolPaletteModule
@@ -20954,7 +20972,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
20954
20972
  DiagramModule,
20955
20973
  SymbolPaletteModule
20956
20974
  ],
20957
- providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService]
20975
+ providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService]
20958
20976
  }]
20959
20977
  }] });
20960
20978
 
@@ -21010,7 +21028,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
21010
21028
  ],
21011
21029
  providers: [ExcelExportService$1, GroupingBarService, NumberFormattingService, GroupingService, PivotChartService, ConditionalFormattingService]
21012
21030
  }]
21013
- }] });
21031
+ }] });
21032
+ PivotView$1.Inject(GroupingBar, ExcelExport$2, PivotChart);
21014
21033
 
21015
21034
  class SyncfusionScheduleModule {
21016
21035
  }
@@ -21035,7 +21054,8 @@ class SyncfusionSpreadsheetModule {
21035
21054
  SyncfusionSpreadsheetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionSpreadsheetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21036
21055
  SyncfusionSpreadsheetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionSpreadsheetModule, imports: [SpreadsheetModule,
21037
21056
  CommonModule], exports: [SpreadsheetModule] });
21038
- SyncfusionSpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionSpreadsheetModule, providers: [SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService, KeyboardShortcutService, NumberFormatService], imports: [[
21057
+ SyncfusionSpreadsheetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SyncfusionSpreadsheetModule, providers: [SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService,
21058
+ KeyboardShortcutService, NumberFormatService], imports: [[
21039
21059
  SpreadsheetModule,
21040
21060
  CommonModule
21041
21061
  ], SpreadsheetModule] });
@@ -21050,7 +21070,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
21050
21070
  SpreadsheetModule,
21051
21071
  CommonModule
21052
21072
  ],
21053
- providers: [SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService, KeyboardShortcutService, NumberFormatService]
21073
+ providers: [SelectionService$2, BasicModuleService, ClipboardService, CellFormatService, KeyboardNavigationService,
21074
+ KeyboardShortcutService, NumberFormatService]
21054
21075
  }]
21055
21076
  }] });
21056
21077
 
@@ -23044,7 +23065,7 @@ class CubeDocumentsGridComponent {
23044
23065
  }
23045
23066
  }
23046
23067
  CubeDocumentsGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeDocumentsGridComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: AccountService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component });
23047
- CubeDocumentsGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeDocumentsGridComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", components: [{ type: i6$5.GridComponent, selector: "ejs-grid", inputs: ["aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "currencyCode", "currentAction", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualization", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }], directives: [{ type: i7$5.ColumnsDirective, selector: "ejs-gantt>e-columns" }, { type: i8$4.ColumnsDirective, selector: "ejs-chart>e-columns" }, { type: i6$5.ColumnsDirective, selector: "ejs-grid>e-columns" }, { type: i6$5.AggregateColumnsDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns" }, { type: i9$5.ColumnsDirective, selector: "e-sheet>e-columns" }, { type: i10$1.ColumnsDirective, selector: "ejs-kanban>e-columns" }, { type: i7$5.ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowReordering", "allowResizing", "allowSorting", "clipMode", "customAttributes", "disableHtmlEncode", "displayAsCheckBox", "edit", "editType", "field", "filter", "format", "formatter", "headerTemplate", "headerText", "headerTextAlign", "hideAtMedia", "isPrimaryKey", "maxWidth", "minWidth", "sortComparer", "template", "textAlign", "type", "valueAccessor", "visible", "width"] }, { type: i8$4.ColumnDirective, selector: "e-columns>e-column", inputs: ["border", "width"] }, { type: i6$5.ColumnDirective, selector: "ejs-grid>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowGrouping", "allowReordering", "allowResizing", "allowSearching", "allowSorting", "autoFit", "clipMode", "columns", "commands", "customAttributes", "dataSource", "defaultValue", "disableHtmlEncode", "displayAsCheckBox", "edit", "editTemplate", "editType", "enableGroupByFormat", "field", "filter", "filterBarTemplate", "filterTemplate", "foreignKeyField", "foreignKeyValue", "format", "formatter", "freeze", "headerTemplate", "headerText", "headerTextAlign", "headerValueAccessor", "hideAtMedia", "index", "isFrozen", "isIdentity", "isPrimaryKey", "lockColumn", "maxWidth", "minWidth", "showColumnMenu", "showInColumnChooser", "sortComparer", "template", "textAlign", "type", "uid", "validationRules", "valueAccessor", "visible", "width"] }, { type: i6$5.AggregateColumnDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns>e-column", inputs: ["columnName", "customAggregate", "field", "footerTemplate", "format", "groupCaptionTemplate", "groupFooterTemplate", "type"] }, { type: i9$5.ColumnDirective, selector: "e-columns>e-column", inputs: ["customWidth", "format", "hidden", "index", "isLocked", "validation", "width"] }, { type: i10$1.ColumnDirective, selector: "e-columns>e-column", inputs: ["allowDrag", "allowDrop", "allowToggle", "headerText", "isExpanded", "keyField", "maxCount", "minCount", "showAddButton", "showItemCount", "template", "transitionColumns"] }], pipes: { "translate": TranslatePipe, "state": StatePipe, "amDateFormat": DateFormatPipe, "form": FormPipe } });
23068
+ CubeDocumentsGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeDocumentsGridComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", components: [{ type: i6$5.GridComponent, selector: "ejs-grid", inputs: ["aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "currencyCode", "currentAction", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualization", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }], directives: [{ type: i7$5.ColumnsDirective, selector: "ejs-gantt>e-columns" }, { type: i16.ColumnsDirective, selector: "ejs-chart>e-columns" }, { type: i6$5.ColumnsDirective, selector: "ejs-grid>e-columns" }, { type: i6$5.AggregateColumnsDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns" }, { type: i9$5.ColumnsDirective, selector: "e-sheet>e-columns" }, { type: i10$1.ColumnsDirective, selector: "ejs-kanban>e-columns" }, { type: i7$5.ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowReordering", "allowResizing", "allowSorting", "clipMode", "customAttributes", "disableHtmlEncode", "displayAsCheckBox", "edit", "editType", "field", "filter", "format", "formatter", "headerTemplate", "headerText", "headerTextAlign", "hideAtMedia", "isPrimaryKey", "maxWidth", "minWidth", "sortComparer", "template", "textAlign", "type", "valueAccessor", "visible", "width"] }, { type: i16.ColumnDirective, selector: "e-columns>e-column", inputs: ["border", "width"] }, { type: i6$5.ColumnDirective, selector: "ejs-grid>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowGrouping", "allowReordering", "allowResizing", "allowSearching", "allowSorting", "autoFit", "clipMode", "columns", "commands", "customAttributes", "dataSource", "defaultValue", "disableHtmlEncode", "displayAsCheckBox", "edit", "editTemplate", "editType", "enableGroupByFormat", "field", "filter", "filterBarTemplate", "filterTemplate", "foreignKeyField", "foreignKeyValue", "format", "formatter", "freeze", "headerTemplate", "headerText", "headerTextAlign", "headerValueAccessor", "hideAtMedia", "index", "isFrozen", "isIdentity", "isPrimaryKey", "lockColumn", "maxWidth", "minWidth", "showColumnMenu", "showInColumnChooser", "sortComparer", "template", "textAlign", "type", "uid", "validationRules", "valueAccessor", "visible", "width"] }, { type: i6$5.AggregateColumnDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns>e-column", inputs: ["columnName", "customAggregate", "field", "footerTemplate", "format", "groupCaptionTemplate", "groupFooterTemplate", "type"] }, { type: i9$5.ColumnDirective, selector: "e-columns>e-column", inputs: ["customWidth", "format", "hidden", "index", "isLocked", "validation", "width"] }, { type: i10$1.ColumnDirective, selector: "e-columns>e-column", inputs: ["allowDrag", "allowDrop", "allowToggle", "headerText", "isExpanded", "keyField", "maxCount", "minCount", "showAddButton", "showItemCount", "template", "transitionColumns"] }], pipes: { "translate": TranslatePipe, "state": StatePipe, "amDateFormat": DateFormatPipe, "form": FormPipe } });
23048
23069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeDocumentsGridComponent, decorators: [{
23049
23070
  type: Component,
23050
23071
  args: [{ template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n" }]
@@ -23548,7 +23569,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
23548
23569
  }]
23549
23570
  }], ctorParameters: function () { return [{ type: ReportRef }, { type: DatasourceService }, { type: CubeService }, { type: SessionService }, { type: RouterImpl }, { type: PromptService }, { type: i0.ElementRef }, { type: i7$2.Directionality }, { type: TranslateService }]; } });
23550
23571
 
23551
- PivotView$1.Inject(ExcelExport$2);
23552
23572
  const PIVOT_HEADER_DELIMITER = '|';
23553
23573
  /**
23554
23574
  * cube usage
@@ -26799,10 +26819,10 @@ class CubeParallelComponent {
26799
26819
  }
26800
26820
  }
26801
26821
  CubeParallelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeParallelComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
26802
- CubeParallelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeParallelComponent, selector: "bizdoc-cube-parallel", inputs: { filters: "filters", xAxis: "xAxis", series: "series", indices: "indices", cube: "cube", size: "size", chartType: "chartType", scope: "scope", palettes: "palettes" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px' [type]='s.chartType' [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\" xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\" [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"], components: [{ type: i8$4.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
26822
+ CubeParallelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeParallelComponent, selector: "bizdoc-cube-parallel", inputs: { filters: "filters", xAxis: "xAxis", series: "series", indices: "indices", cube: "cube", size: "size", chartType: "chartType", scope: "scope", palettes: "palettes" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"], components: [{ type: i16.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
26803
26823
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeParallelComponent, decorators: [{
26804
26824
  type: Component,
26805
- args: [{ selector: 'bizdoc-cube-parallel', template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px' [type]='s.chartType' [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\" xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\" [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"] }]
26825
+ args: [{ selector: 'bizdoc-cube-parallel', template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"] }]
26806
26826
  }], ctorParameters: function () { return [{ type: PromptService }, { type: CubeService }, { type: SessionService }]; }, propDecorators: { filters: [{
26807
26827
  type: Input
26808
26828
  }], xAxis: [{
@@ -27609,15 +27629,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
27609
27629
 
27610
27630
  const VISIABLE_LOG_TYPES = ['StateChange', 'ModelChange', 'Download'];
27611
27631
  class TraceElementComponent {
27612
- constructor(_chat, _router, _translate, _accounts, _session) {
27632
+ constructor(_pane, _chat, _sb, _router, _translate, _accounts, _dialog, _session) {
27633
+ this._pane = _pane;
27613
27634
  this._chat = _chat;
27635
+ this._sb = _sb;
27614
27636
  this._router = _router;
27615
27637
  this._translate = _translate;
27616
27638
  this._accounts = _accounts;
27639
+ this._dialog = _dialog;
27617
27640
  this._session = _session;
27618
- this.assign = new EventEmitter();
27641
+ _pane.dataChange.subscribe(this.change.bind(this));
27619
27642
  }
27620
- ngOnChanges() {
27643
+ change(state) {
27644
+ this.model = state.model;
27645
+ this.timeline = state.timeline;
27646
+ this.node = state.node;
27647
+ this._utilityRef = state.utilityRef;
27621
27648
  const { id, addInfo } = this.node;
27622
27649
  const recipients = this.timeline.recipients.filter(r => r.nodeId === id), log = this.timeline.log.filter(l => l.nodeId === id);
27623
27650
  this.recipients = recipients,
@@ -27626,8 +27653,22 @@ class TraceElementComponent {
27626
27653
  this.log = log.filter(l => VISIABLE_LOG_TYPES.indexOf(l.type) > -1),
27627
27654
  this.estimate = log.find(l => l.estimate) !== undefined,
27628
27655
  this.skip = log.find(l => l.type === 'NodeJump') !== undefined,
27629
- this.none = log.length === 0,
27630
- this.nodeType = this._session.profile.nodes.find(n => n.name === addInfo.nodeType);
27656
+ this.none = log.length === 0;
27657
+ const nodeType = this._session.profile.nodes.find(n => n.name === addInfo.nodeType);
27658
+ this._pane.title = nodeType.title;
27659
+ }
27660
+ fileName(fileId) {
27661
+ const file = this.model.attachments.find(f => f.id === fileId);
27662
+ return file.fileName;
27663
+ }
27664
+ /** */
27665
+ assign(recipient) {
27666
+ this._dialog.open(ReassignDialog, { data: { exclude: [recipient.userId] } }).afterClosed().
27667
+ subscribe((m) => {
27668
+ m && this._utilityRef.execute({ id: recipient.id, ...m }).subscribe(r => {
27669
+ Object.assign(this.model, r);
27670
+ }, () => this._sb.error());
27671
+ });
27631
27672
  }
27632
27673
  async recipientInfo(recipient) {
27633
27674
  const info = [];
@@ -27677,20 +27718,12 @@ class TraceElementComponent {
27677
27718
  this._chat.open(userId);
27678
27719
  }
27679
27720
  }
27680
- TraceElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TraceElementComponent, deps: [{ token: ChatInfo }, { token: PanesRouter }, { token: TranslateService }, { token: AccountService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
27681
- TraceElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: TraceElementComponent, selector: "bizdoc-document-trace-element", inputs: { model: "model", timeline: "timeline", node: "node" }, outputs: { assign: "assign" }, usesOnChanges: true, ngImport: i0, template: "<h3>\r\n {{nodeType.title}}\r\n</h3>\r\n\r\n<h4 *ngIf=\"estimate\">{{'Estimate' | translate}}</h4>\r\n<h4 *ngIf=\"none\">{{'NoEstimate' | translate}}</h4>\r\n<h4 *ngIf=\"skip\">{{'Skipped' | translate}}</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-table\">\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign.emit(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let l of log\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;display:block}:host .message{text-align:center}:host .message>*{vertical-align:text-bottom}:host table{background:none}:host table tr td{padding-left:2px;padding-right:2px}\n"], components: [{ type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: i9$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": TranslatePipe, "sanitizeHtml": SanitizeHtmlPipe, "async": i10.AsyncPipe, "action": ActionPipe, "amDateFormat": DateFormatPipe, "state": StatePipe } });
27721
+ TraceElementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TraceElementComponent, deps: [{ token: PaneRef }, { token: ChatInfo }, { token: PromptService }, { token: PanesRouter }, { token: TranslateService }, { token: AccountService }, { token: i3$1.MatDialog }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
27722
+ TraceElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: TraceElementComponent, selector: "bizdoc-document-trace-element", ngImport: i0, template: "<h4 fxLayoutAlign=\"center\" class=\"mat-body-2\">\r\n <span *ngIf=\"estimate\">{{'Estimate' | translate}}</span>\r\n <span *ngIf=\"none\">{{'NoEstimate' | translate}}</span>\r\n <span *ngIf=\"skip\">{{'Skipped' | translate}}</span>\r\n</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-table\">\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let l of log\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;min-width:300px;display:block}.message{text-align:center}.message>*{vertical-align:text-bottom}table{background:none;width:100%}table tr td{padding-left:2px;padding-right:2px}\n"], components: [{ type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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: i9$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": TranslatePipe, "sanitizeHtml": SanitizeHtmlPipe, "async": i10.AsyncPipe, "action": ActionPipe, "amDateFormat": DateFormatPipe, "state": StatePipe } });
27682
27723
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: TraceElementComponent, decorators: [{
27683
27724
  type: Component,
27684
- args: [{ selector: 'bizdoc-document-trace-element', template: "<h3>\r\n {{nodeType.title}}\r\n</h3>\r\n\r\n<h4 *ngIf=\"estimate\">{{'Estimate' | translate}}</h4>\r\n<h4 *ngIf=\"none\">{{'NoEstimate' | translate}}</h4>\r\n<h4 *ngIf=\"skip\">{{'Skipped' | translate}}</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-table\">\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign.emit(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let l of log\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;display:block}:host .message{text-align:center}:host .message>*{vertical-align:text-bottom}:host table{background:none}:host table tr td{padding-left:2px;padding-right:2px}\n"] }]
27685
- }], ctorParameters: function () { return [{ type: ChatInfo }, { type: PanesRouter }, { type: TranslateService }, { type: AccountService }, { type: SessionService }]; }, propDecorators: { assign: [{
27686
- type: Output
27687
- }], model: [{
27688
- type: Input
27689
- }], timeline: [{
27690
- type: Input
27691
- }], node: [{
27692
- type: Input
27693
- }] } });
27725
+ args: [{ selector: 'bizdoc-document-trace-element', template: "<h4 fxLayoutAlign=\"center\" class=\"mat-body-2\">\r\n <span *ngIf=\"estimate\">{{'Estimate' | translate}}</span>\r\n <span *ngIf=\"none\">{{'NoEstimate' | translate}}</span>\r\n <span *ngIf=\"skip\">{{'Skipped' | translate}}</span>\r\n</h4>\r\n\r\n<h4 *ngIf=\"recurring\" class=\"message mat-body-1\"><mat-icon>info</mat-icon> {{'TimelineMore' | translate}}</h4>\r\n\r\n<table class=\"mat-table\">\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let r of recipients\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"recipientInfo(r) | async | sanitizeHtml\">\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"r.action\">\r\n {{r.action | action : 'past'}}\r\n </span>\r\n <span *ngIf=\"r.pending\">\r\n <span *ngIf=\"!r.estimate; else estimate\">\r\n {{'IsPending' | translate}}\r\n </span>\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!r.estimate; estimate\">{{r.received || r.replied | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button *ngIf=\"!r.estimate\" [matMenuTriggerFor]=\"options\" [disabled]=\"!r.pending\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"assign(r)\" *ngIf=\"r.pending\">{{'Reassign'|translate}}</button>\r\n </mat-menu>\r\n </td>\r\n </tr>\r\n </tbody>\r\n <tbody class=\"mat-table-body\">\r\n <tr *ngFor=\"let l of log\" class=\"mat-row\">\r\n <td class=\"mat-cell\" (click)=\"chat($event)\" [innerHTML]=\"logInfo(l) | async | sanitizeHtml\">\r\n </td>\r\n <td [ngSwitch]=\"l.type\" class=\"mat-cell\">\r\n <span *ngSwitchCase=\"'StateChange'\">\r\n {{l.state | state : (l.estimate ? 'future' : 'past')}}\r\n </span>\r\n <span *ngSwitchCase=\"'ModelChange'\">\r\n {{'Changed' | translate}}\r\n </span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"!l.estimate\">{{l.time | amDateFormat: 'lll'}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"compare(l)\" *ngIf=\"l.type==='ModelChange'\" [bizdocTooltip]=\"'Compare'|translate\"><mat-icon>visibility</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{padding:8px;min-width:300px;display:block}.message{text-align:center}.message>*{vertical-align:text-bottom}table{background:none;width:100%}table tr td{padding-left:2px;padding-right:2px}\n"] }]
27726
+ }], ctorParameters: function () { return [{ type: PaneRef }, { type: ChatInfo }, { type: PromptService }, { type: PanesRouter }, { type: TranslateService }, { type: AccountService }, { type: i3$1.MatDialog }, { type: SessionService }]; } });
27694
27727
 
27695
27728
  class PositionsPopup {
27696
27729
  constructor(data, _cd, _service) {
@@ -28050,7 +28083,7 @@ let SystemDiffComponent = class SystemDiffComponent {
28050
28083
  this.progress = 0;
28051
28084
  this._working = new Subject();
28052
28085
  this.CALENDAR_SPEC = {
28053
- lastDay: `[${this._translate.get('Yesterday')}] HH:mm`,
28086
+ lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
28054
28087
  lastWeek: 'ddd HH:mm',
28055
28088
  sameDay: 'HH:mm',
28056
28089
  sameElse: 'MMM D HH:mm'
@@ -28591,19 +28624,21 @@ class InfoTool extends ToolBase {
28591
28624
  }
28592
28625
  let DocumentTraceComponent = class DocumentTraceComponent {
28593
28626
  /** workflow ctor */
28594
- constructor(_utilityRef, _service, _session, _slot, _router, _sb, _translate, _dialog, _guide, _cd, _fb) {
28627
+ constructor(_utilityRef, _service, _session, _pane, _router, _sb, _translate, _popup, _guide, _cd, _fb) {
28595
28628
  this._utilityRef = _utilityRef;
28596
28629
  this._service = _service;
28597
28630
  this._session = _session;
28598
- this._slot = _slot;
28631
+ this._pane = _pane;
28599
28632
  this._router = _router;
28600
28633
  this._sb = _sb;
28601
28634
  this._translate = _translate;
28602
- this._dialog = _dialog;
28635
+ this._popup = _popup;
28603
28636
  this._guide = _guide;
28604
28637
  this._cd = _cd;
28605
28638
  this._fb = _fb;
28606
- this.search = this._fb.control(null);
28639
+ this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
28640
+ this.accent = this._session.getAccent();
28641
+ this.form = this._fb.group({ search: null, formId: null });
28607
28642
  this.diagramConstraints = DiagramConstraints$1.Default | DiagramConstraints$1.Bridging |
28608
28643
  DiagramConstraints$1.LineRouting |
28609
28644
  DiagramConstraints$1.Pan |
@@ -28644,10 +28679,13 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28644
28679
  ]
28645
28680
  };
28646
28681
  this.getCustomTool = this.getTool.bind(this);
28647
- this.mode = 'search';
28682
+ this.mode = 'browse';
28683
+ this.loading = 'query';
28684
+ this.displayedColumns = ['number', 'subject', 'stateId'];
28648
28685
  this._highLightedIds = [];
28649
28686
  this._tap = new Subject();
28650
28687
  this._destroy = new Subject();
28688
+ this._dateschange = new Subject();
28651
28689
  this.nodeDefaults = (node) => {
28652
28690
  const { indicator, virtual } = node.addInfo || {};
28653
28691
  if (indicator) {
@@ -28677,13 +28715,40 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28677
28715
  return tool;
28678
28716
  }
28679
28717
  ngOnInit() {
28680
- this.documents$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => !isObject(v)), switchMap(v => this._service.findAll(v)));
28681
- this._tap.pipe(takeUntil(this._destroy)).subscribe(n => this._info(n));
28682
- this._slot.queryParamsChange.subscribe(p => {
28718
+ const now = dayjs();
28719
+ this._session.themeChange.pipe(takeUntil(this._destroy)).subscribe(t => {
28720
+ this.theme = t.dark ? 'MaterialDark' : 'Material';
28721
+ this.accent = this._session.getAccent();
28722
+ //this.rangeNavigator.refresh();
28723
+ });
28724
+ this._service.range().subscribe(r => this.rangeData = r);
28725
+ this._dateschange.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(r => {
28726
+ this._start = r.start, this._end = r.end;
28727
+ this._list();
28728
+ });
28729
+ this.range = [now.add(-2, 'w').toDate(),
28730
+ now.toDate()];
28731
+ this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(200)).
28732
+ subscribe(this._list.bind(this));
28733
+ this._pane.queryParamsChange.subscribe(p => {
28683
28734
  const { id } = p;
28684
28735
  id && this._open(id.decodeId());
28685
28736
  });
28686
- this._slot.resize.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram?.refresh());
28737
+ this._pane.resize.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram?.refresh());
28738
+ }
28739
+ openFilter(evt) {
28740
+ this._popup.open(this.filterArgs, evt.target).opened.subscribe(() => this.searchInput.focus());
28741
+ }
28742
+ _list() {
28743
+ this.loading = 'query';
28744
+ this._service.findAll({ ...this.form.value, start: this._start, end: this._end }).subscribe(l => {
28745
+ this.dataSource = new MatTableDataSource(l);
28746
+ this.dataSource.sort = this.sort;
28747
+ this.loading = null;
28748
+ });
28749
+ }
28750
+ rangeChanged(args) {
28751
+ this._dateschange.next(args);
28687
28752
  }
28688
28753
  guide(evt) {
28689
28754
  const steps = [];
@@ -28710,14 +28775,22 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28710
28775
  });
28711
28776
  evt && evt.preventDefault();
28712
28777
  }
28778
+ browse() {
28779
+ this._router.navigate([]);
28780
+ this._router.collapse();
28781
+ this.mode = 'browse';
28782
+ this._cd.detectChanges();
28783
+ this.dataSource.sort = this.sort;
28784
+ }
28713
28785
  _open(id) {
28714
- this.mode = null;
28715
28786
  this.diagram?.destroy();
28787
+ this.loading = 'buffer';
28716
28788
  this._utilityRef.populate(id).subscribe(e => {
28717
28789
  this._highLightedIds = [];
28718
28790
  this.model = e;
28719
28791
  this._timeline();
28720
28792
  this.mode = 'diagram';
28793
+ this.loading = null;
28721
28794
  this._cd.detectChanges();
28722
28795
  this.diagram = new Diagram$1({
28723
28796
  width: '100%', height: '100%',
@@ -28736,14 +28809,13 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28736
28809
  this._version();
28737
28810
  this._indicators();
28738
28811
  this.diagram.fitToPage();
28739
- }, () => this._sb.error());
28740
- }
28741
- display(item) {
28742
- return item ? item.number : null;
28812
+ }, () => {
28813
+ this.loading = null;
28814
+ this._sb.error();
28815
+ });
28743
28816
  }
28744
- change(evt) {
28745
- const { id } = evt.option.value;
28746
- this._router.navigate([], { queryParams: { id: id.encodeId() } });
28817
+ open(item) {
28818
+ this._router.navigate([], { queryParams: { id: item.id.encodeId() } });
28747
28819
  }
28748
28820
  _timeline() {
28749
28821
  const items = [], submissions = [];
@@ -28846,7 +28918,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28846
28918
  node.style.fill = recipients.find(r => r.pending && !r.estimate) ? this._accentColor : 'white';
28847
28919
  }
28848
28920
  else
28849
- node.style.fill = 'transparent',
28921
+ node.style.fill = 'white',
28850
28922
  node.style.strokeColor = 'darkgray',
28851
28923
  node.style.strokeDashArray = '6 2';
28852
28924
  }
@@ -28885,11 +28957,9 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28885
28957
  });
28886
28958
  this.diagram.add(version);
28887
28959
  }
28888
- fileName(fileId) {
28889
- const file = this.model.attachments.find(f => f.id === fileId);
28890
- return file.fileName;
28891
- }
28892
28960
  selectionChange(evt) {
28961
+ if (evt.state !== 'Changed')
28962
+ return;
28893
28963
  this._unhighlight();
28894
28964
  if (evt.newValue.length) {
28895
28965
  let node = evt.newValue[0];
@@ -28904,23 +28974,28 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28904
28974
  this._highlight(ids);
28905
28975
  }
28906
28976
  this.diagram.dataBind();
28907
- this._info(node);
28977
+ if (node) {
28978
+ if (this._infoRef)
28979
+ this._infoRef.close();
28980
+ this._router.navigate(TraceElementComponent, {
28981
+ state: {
28982
+ node,
28983
+ timeline: this.timeline,
28984
+ model: this.model,
28985
+ utilityRef: this._utilityRef,
28986
+ },
28987
+ policy: OpenPolicy.Tab
28988
+ }).then((e) => {
28989
+ this._infoRef = e;
28990
+ e.animation;
28991
+ });
28992
+ }
28993
+ else
28994
+ this._router.collapse();
28908
28995
  }
28909
28996
  else
28910
28997
  this.node = null;
28911
28998
  }
28912
- /** */
28913
- assign(recipient) {
28914
- this._dialog.open(ReassignDialog, { data: { exclude: [recipient.userId] } }).afterClosed().
28915
- subscribe((m) => {
28916
- m && this._utilityRef.execute({ id: recipient.id, ...m }).subscribe(r => {
28917
- Object.assign(this.model, r);
28918
- }, () => this._sb.error());
28919
- });
28920
- }
28921
- _info(node) {
28922
- this.node = node;
28923
- }
28924
28999
  highlightTime(time) {
28925
29000
  this.timeline.date = time;
28926
29001
  this.diagram.clearSelection();
@@ -28972,8 +29047,8 @@ let DocumentTraceComponent = class DocumentTraceComponent {
28972
29047
  this._destroy.complete();
28973
29048
  }
28974
29049
  };
28975
- DocumentTraceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DocumentTraceComponent, deps: [{ token: UtilityRef }, { token: FormService }, { token: SessionService }, { token: PaneRef }, { token: PanesRouter }, { token: PromptService }, { token: TranslateService }, { token: i3$1.MatDialog }, { token: GuideService }, { token: i0.ChangeDetectorRef }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
28976
- DocumentTraceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: DocumentTraceComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "diagramElement", first: true, predicate: ["diagram"], descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\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)=\"mode = null\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon>refresh</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM D H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n <bizdoc-document-trace-element [timeline]=\"timeline\" [node]=\"node\" *ngIf=\"node\"\r\n [model]=model (assign)=\"assign($event)\"></bizdoc-document-trace-element>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'search'\" fxFlex fxLayoutAlign=\"center\">\r\n <form>\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"40\" [placeholder]=\"'Number'|translate\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let d of documents$ | async\" [value]=\"d\">\r\n <span>{{d.number}} | {{d.subject}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n <mat-progress-bar mode=\"indeterminate\" *ngSwitchDefault></mat-progress-bar>\r\n</ng-container>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}\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: TraceElementComponent, selector: "bizdoc-document-trace-element", inputs: ["model", "timeline", "node"], outputs: ["assign"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], directives: [{ type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i6$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe, "userName": UserNamePipe, "amDateFormat": DateFormatPipe }, animations: [trigger('element', EnterExitRight)] });
29050
+ DocumentTraceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DocumentTraceComponent, deps: [{ token: UtilityRef }, { token: FormService }, { token: SessionService }, { token: PaneRef }, { token: PanesRouter }, { token: PromptService }, { token: TranslateService }, { token: Popup }, { token: GuideService }, { token: i0.ChangeDetectorRef }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
29051
+ DocumentTraceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: DocumentTraceComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "diagramElement", first: true, predicate: ["diagram"], descendants: true }, { propertyName: "filterArgs", first: true, predicate: ["args"], descendants: true }, { propertyName: "searchInput", first: true, predicate: ["search"], descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "rangeNavigator", first: true, predicate: RangeNavigator, descendants: true }], ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\r\n <!-- diagram -->\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n |\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)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <!-- timeline -->\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n </div>\r\n </div>\r\n <!-- browse -->\r\n <div *ngSwitchDefault fxFlex fxLayout=\"column\" fxFlexFill>\r\n <mat-toolbar fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </mat-toolbar>\r\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- table -->\r\n <mat-table fxFlex [dataSource]=\"dataSource\" matSort>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n <!-- StateId column -->\r\n <ng-container matColumnDef=\"stateId\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\r\n (click)=\"open(item)\">\r\n </mat-row>\r\n </mat-table>\r\n <!-- range -->\r\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM-dd' background=\"transparent\"\r\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\r\n groupBy=\"Years\" intervalType='Days'\r\n (changed)='rangeChanged($event)'>\r\n <e-rangenavigator-series-collection>\r\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\r\n </e-rangenavigator-series>\r\n </e-rangenavigator-series-collection>\r\n </ejs-rangenavigator>\r\n </div>\r\n</ng-container>\r\n<!-- args -->\r\n<ng-template #args>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-row{cursor:pointer}form{margin:8px}\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: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i5$2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { 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"] }, { type: i16.RangeNavigatorComponent, selector: "ejs-rangenavigator", inputs: ["allowIntervalData", "allowSnapping", "animationDuration", "background", "dataSource", "disableRangeSelector", "enableDeferredUpdate", "enableGrouping", "enablePersistence", "enableRtl", "groupBy", "height", "interval", "intervalType", "labelFormat", "labelIntersectAction", "labelPosition", "labelStyle", "locale", "logBase", "majorGridLines", "majorTickLines", "margin", "maximum", "minimum", "navigatorBorder", "navigatorStyleSettings", "periodSelectorSettings", "query", "secondaryLabelAlignment", "series", "skeleton", "skeletonType", "theme", "tickPosition", "tooltip", "useGroupingSeparator", "value", "valueType", "width", "xName", "yName"], outputs: ["beforePrint", "beforeResize", "changed", "labelRender", "load", "loaded", "resized", "selectorRender", "tooltipRender", "dataSourceChange"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }], directives: [{ type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: i7$2.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6$1.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { 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: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { type: i5$2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5$2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i16.RangenavigatorSeriesCollectionDirective, selector: "ej-rangenavigator>e-rangenavigator-series-collection" }, { type: i16.RangenavigatorSeriesDirective, selector: "e-rangenavigator-series-collection>e-rangenavigator-series", inputs: ["animation", "border", "dashArray", "dataSource", "fill", "opacity", "query", "type", "width", "xName", "yName"] }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe, "userName": UserNamePipe, "amDateFormat": DateFormatPipe }, animations: [trigger('element', EnterExitRight)] });
28977
29052
  DocumentTraceComponent = __decorate([
28978
29053
  BizDoc({ selector: 'bizdoc-trace-utility' })
28979
29054
  /** workflow component*/
@@ -28982,13 +29057,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
28982
29057
  type: Component,
28983
29058
  args: [{ host: {
28984
29059
  class: 'pane'
28985
- }, animations: [trigger('element', EnterExitRight)], template: "<ng-container [ngSwitch]=\"mode\">\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\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)=\"mode = null\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon>refresh</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM D H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n <bizdoc-document-trace-element [timeline]=\"timeline\" [node]=\"node\" *ngIf=\"node\"\r\n [model]=model (assign)=\"assign($event)\"></bizdoc-document-trace-element>\r\n </div>\r\n </div>\r\n <div *ngSwitchCase=\"'search'\" fxFlex fxLayoutAlign=\"center\">\r\n <form>\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"40\" [placeholder]=\"'Number'|translate\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let d of documents$ | async\" [value]=\"d\">\r\n <span>{{d.number}} | {{d.subject}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n <mat-progress-bar mode=\"indeterminate\" *ngSwitchDefault></mat-progress-bar>\r\n</ng-container>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}\n"] }]
29060
+ }, animations: [trigger('element', EnterExitRight)], template: "<ng-container [ngSwitch]=\"mode\">\r\n <!-- diagram -->\r\n <div *ngSwitchCase=\"'diagram'\" class=\"column\" fxFlex>\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n |\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)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-toolbar>\r\n <div class=\"row\" fxFlex>\r\n <!-- timeline -->\r\n <div class=\"timeline\" *ngIf=\"timeline?.items.length > 1\" data-help=\"timeline\">\r\n <div *ngFor=\"let date of timeline.items; let last = last\" class=\"item\"\r\n [class.active]=\"date.time === timeline.date\"\r\n (click)=\"highlightTime(date.time)\" matRipple>\r\n <div class=\"title\">\r\n <ng-container *ngIf=\"!last || !timeline.estimate; else estimate\">\r\n <span class=\"who\" *ngIf=\"userId\">\r\n {{date.userId | userName | async }}\r\n </span>\r\n <br />\r\n <span class=\"time\">\r\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\r\n </span>\r\n </ng-container>\r\n </div>\r\n <div class=\"indicator-container\">\r\n <div class=\"indicator\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div fxFlex #diagram dir=\"ltr\">\r\n </div>\r\n </div>\r\n </div>\r\n <!-- browse -->\r\n <div *ngSwitchDefault fxFlex fxLayout=\"column\" fxFlexFill>\r\n <mat-toolbar fxLayout=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </mat-toolbar>\r\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- table -->\r\n <mat-table fxFlex [dataSource]=\"dataSource\" matSort>\r\n <!-- Number column -->\r\n <ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\r\n </ng-container>\r\n\r\n <!-- Subject column -->\r\n <ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\r\n </ng-container>\r\n <!-- StateId column -->\r\n <ng-container matColumnDef=\"stateId\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\r\n (click)=\"open(item)\">\r\n </mat-row>\r\n </mat-table>\r\n <!-- range -->\r\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM-dd' background=\"transparent\"\r\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\r\n groupBy=\"Years\" intervalType='Days'\r\n (changed)='rangeChanged($event)'>\r\n <e-rangenavigator-series-collection>\r\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\r\n </e-rangenavigator-series>\r\n </e-rangenavigator-series-collection>\r\n </ejs-rangenavigator>\r\n </div>\r\n</ng-container>\r\n<!-- args -->\r\n<ng-template #args>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\r\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<ng-template #estimate>\r\n {{'Estimate' | translate}}\r\n</ng-template>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-row{cursor:pointer}form{margin:8px}\n"] }]
28986
29061
  }], ctorParameters: function () { return [{ type: UtilityRef, decorators: [{
28987
29062
  type: Inject,
28988
29063
  args: [UtilityRef]
28989
- }] }, { type: FormService }, { type: SessionService }, { type: PaneRef }, { type: PanesRouter }, { type: PromptService }, { type: TranslateService }, { type: i3$1.MatDialog }, { type: GuideService }, { type: i0.ChangeDetectorRef }, { type: i1$2.FormBuilder }]; }, propDecorators: { diagramElement: [{
29064
+ }] }, { type: FormService }, { type: SessionService }, { type: PaneRef }, { type: PanesRouter }, { type: PromptService }, { type: TranslateService }, { type: Popup }, { type: GuideService }, { type: i0.ChangeDetectorRef }, { type: i1$2.FormBuilder }]; }, propDecorators: { diagramElement: [{
28990
29065
  type: ViewChild,
28991
29066
  args: ['diagram']
29067
+ }], filterArgs: [{
29068
+ type: ViewChild,
29069
+ args: ['args']
29070
+ }], searchInput: [{
29071
+ type: ViewChild,
29072
+ args: ['search']
29073
+ }], sort: [{
29074
+ type: ViewChild,
29075
+ args: [MatSort]
29076
+ }], rangeNavigator: [{
29077
+ type: ViewChild,
29078
+ args: [RangeNavigator]
28992
29079
  }], guide: [{
28993
29080
  type: HostListener,
28994
29081
  args: ['window:keydown.f1', ['$event']]
@@ -29806,7 +29893,7 @@ let ProfilerComponent = class ProfilerComponent {
29806
29893
  }
29807
29894
  };
29808
29895
  ProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfilerComponent, deps: [{ token: PromptService }, { token: UtilityRef }, { token: SessionService }, { token: i3$1.MatDialog }, { token: DocumentInfo }, { token: i2$4.MediaObserver }, { token: ChatInfo }, { token: GuideService }, { token: PanesRouter }, { token: PaneRef }, { token: TranslateService }, { token: AccountService }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
29809
- ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assign", first: true, predicate: ["assign"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <div>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-grid-list [cols]=\"cols\" [style.display]=\"data ? '': 'none'\">\r\n <mat-grid-tile>\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data?.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <button mat-icon-button (click)=\"chat(data.info.id)\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data?.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.positions.length; else none\">\r\n <tr *ngFor=\"let p of data?.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n<!-- dialog -->\r\n<ng-template #assign>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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: i6$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i6$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i7$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i7$4.MatCardHeader, selector: "mat-card-header" }, { type: i8$4.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i7$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i7$4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i8$4.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i10.AsyncPipe, "translate": TranslatePipe, "amDuration": DurationPipe, "amDifference": DifferencePipe, "role": RolePipe } });
29896
+ ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assign", first: true, predicate: ["assign"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <div>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-grid-list [cols]=\"cols\" [style.display]=\"data ? '': 'none'\">\r\n <mat-grid-tile>\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data?.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <button mat-icon-button (click)=\"chat(data.info.id)\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data?.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.positions.length; else none\">\r\n <tr *ngFor=\"let p of data?.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n<!-- dialog -->\r\n<ng-template #assign>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { 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: i6$3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i6$3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i7$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i7$4.MatCardHeader, selector: "mat-card-header" }, { type: i16.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i7$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i7$4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i16.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i10.AsyncPipe, "translate": TranslatePipe, "amDuration": DurationPipe, "amDifference": DifferencePipe, "role": RolePipe } });
29810
29897
  ProfilerComponent = __decorate([
29811
29898
  BizDoc({ selector: 'bizdoc-user-profiler' })
29812
29899
  /** component*/