@bizdoc/core 2.3.34 → 2.3.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
  2. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -4
  3. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -5
  4. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -5
  5. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -5
  6. package/esm2022/lib/admin/profiler/profiler.component.mjs +3 -5
  7. package/esm2022/lib/admin/utility.pane.component.mjs +3 -6
  8. package/esm2022/lib/browse/browse.pane.component.mjs +3 -5
  9. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  10. package/esm2022/lib/chat/chat-info.mjs +2 -2
  11. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -6
  12. package/esm2022/lib/chat/conversation.component.mjs +3 -4
  13. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -5
  14. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -5
  15. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  16. package/esm2022/lib/compose/comments/comments.component.mjs +3 -4
  17. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -5
  18. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  19. package/esm2022/lib/compose/compose.pane.component.mjs +3 -5
  20. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  21. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -5
  22. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +3 -5
  23. package/esm2022/lib/core/animations.mjs +9 -1
  24. package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
  25. package/esm2022/lib/core/slots/slots.component.mjs +9 -9
  26. package/esm2022/lib/core/sticky-toolbar.exp.mjs +30 -0
  27. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  28. package/esm2022/lib/core/translations.mjs +14 -8
  29. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +84 -0
  30. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -5
  31. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -5
  32. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  33. package/esm2022/lib/cube/filter/filter.component.mjs +3 -3
  34. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -5
  35. package/esm2022/lib/cube/view.pane.component.mjs +3 -5
  36. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  37. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  38. package/esm2022/lib/home/options/options.component.mjs +3 -3
  39. package/esm2022/lib/modules/chart.module.mjs +3 -3
  40. package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -6
  41. package/esm2022/lib/options/options.component.mjs +21 -16
  42. package/esm2022/lib/options/options.service.mjs +2 -1
  43. package/esm2022/lib/reports/cube/role-performance.component.mjs +127 -34
  44. package/esm2022/lib/reports/report-viewer.component.mjs +2 -1
  45. package/esm2022/lib/reports/report.pane.component.mjs +3 -5
  46. package/esm2022/lib/routes.desktop.mjs +2 -2
  47. package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
  48. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -6
  49. package/esm2022/lib/shared.module.mjs +7 -6
  50. package/esm2022/public-api.mjs +3 -2
  51. package/fesm2022/bizdoc-core.mjs +487 -348
  52. package/fesm2022/bizdoc-core.mjs.map +1 -1
  53. package/lib/admin/architecture/elements/performance-report.component.d.ts +0 -1
  54. package/lib/chat/conversation.component.d.ts +0 -1
  55. package/lib/compose/comments/comments.component.d.ts +0 -1
  56. package/lib/core/animations.d.ts +2 -0
  57. package/lib/core/slots/slots.component.d.ts +1 -1
  58. package/lib/core/translations.d.ts +11 -5
  59. package/lib/core/virtual-tabs.component.exp.d.ts +22 -0
  60. package/lib/options/options.component.d.ts +6 -5
  61. package/lib/reports/cube/role-performance.component.d.ts +26 -13
  62. package/lib/shared.module.d.ts +141 -140
  63. package/package.json +1 -1
  64. package/public-api.d.ts +2 -1
  65. package/esm2022/lib/core/StickyToolbar.mjs +0 -30
  66. /package/lib/core/{StickyToolbar.d.ts → sticky-toolbar.exp.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Injectable, Inject, Component, Pipe, Directive, Injector, TemplateRef, ViewContainerRef, ViewChild, Input, Optional, Self, Output, HostBinding, EventEmitter, ElementRef, HostListener, NgModule, ViewChildren, Host, SkipSelf, ViewEncapsulation, APP_INITIALIZER, ContentChild, ContentChildren } from '@angular/core';
2
+ import { InjectionToken, Injectable, Inject, Component, Pipe, Directive, Injector, TemplateRef, ViewContainerRef, ViewChild, Input, Optional, Self, Output, HostBinding, EventEmitter, ElementRef, HostListener, NgModule, ViewChildren, Host, SkipSelf, ViewEncapsulation, ContentChild, ContentChildren, APP_INITIALIZER } from '@angular/core';
3
3
  import { Subject, forkJoin, Observable, firstValueFrom, of, fromEvent, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1, map as map$1, takeWhile, interval, filter as filter$1, from, switchMap as switchMap$1, isObservable, catchError as catchError$1, startWith as startWith$1, EMPTY, debounceTime as debounceTime$1 } from 'rxjs';
4
4
  import { shareReplay, map, tap, filter, takeUntil, debounceTime, switchMap, startWith, catchError, first, take, finalize } from 'rxjs/operators';
5
5
  import * as i4 from '@angular/material/chips';
@@ -7,6 +7,7 @@ import { MatChipInput, MatChipsModule, MatChipListbox } from '@angular/material/
7
7
  import { ENTER, COMMA, SEMICOLON } from '@angular/cdk/keycodes';
8
8
  import * as i3$3 from '@angular/material/input';
9
9
  import { MatInput, MatInputModule } from '@angular/material/input';
10
+ import { style, animate, transition, trigger, state, animateChild, stagger, query, keyframes } from '@angular/animations';
10
11
  import * as i1$1 from '@angular/cdk/overlay';
11
12
  import { OverlayConfig, OverlayRef, OverlayModule, CdkScrollable } from '@angular/cdk/overlay';
12
13
  import * as i1$2 from '@angular/forms';
@@ -55,7 +56,6 @@ import * as i3$1 from '@angular/material/form-field';
55
56
  import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
56
57
  import * as i3$2 from '@angular/material/slide-toggle';
57
58
  import { MatSlideToggleModule, MatSlideToggle } from '@angular/material/slide-toggle';
58
- import { style, animate, transition, trigger, state, animateChild, stagger, query, keyframes } from '@angular/animations';
59
59
  import * as i1$3 from '@angular/cdk/bidi';
60
60
  import { __decorate } from 'tslib';
61
61
  import { coerceBooleanProperty, coerceNumberProperty, coerceArray } from '@angular/cdk/coercion';
@@ -141,7 +141,7 @@ import * as i3$4 from '@syncfusion/ej2-angular-inputs';
141
141
  import { SignatureModule } from '@syncfusion/ej2-angular-inputs';
142
142
  import { LinearGaugeModule, AnnotationsService, GaugeTooltipService } from '@syncfusion/ej2-angular-lineargauge';
143
143
  import * as i11$2 from '@syncfusion/ej2-angular-charts';
144
- import { 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, AreaSeries, LineSeries, DateTime, RangeTooltip, RangeNavigator, SparklineTooltip, Sparkline, PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection, AccumulationChart as AccumulationChart$1, Category, Tooltip as Tooltip$1, Legend, Selection, Zoom, Crosshair, DataLabel, BarSeries, BubbleSeries, ColumnSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, Chart as Chart$1, ChartComponent } from '@syncfusion/ej2-angular-charts';
144
+ import { 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, AreaSeries, LineSeries, DateTime, RangeTooltip, RangeNavigator, SparklineTooltip, Sparkline, PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection, AccumulationChart as AccumulationChart$1, Category, Tooltip as Tooltip$1, Legend, Selection, Zoom, Crosshair, DataLabel, BarSeries, BubbleSeries, ColumnSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, ChartAnnotation, Chart as Chart$1, ChartComponent } from '@syncfusion/ej2-angular-charts';
145
145
  import * as i8$3 from '@syncfusion/ej2-angular-grids';
146
146
  import { GridModule, PagerModule, ExcelExportService, AggregateService, FreezeService, GroupService, PageService, ResizeService, SortService, SelectionService as SelectionService$1, ExcelExport, Sort, Group, Page, Freeze, Selection as Selection$1, Aggregate, Grid as Grid$1, GridComponent } from '@syncfusion/ej2-angular-grids';
147
147
  import { Annotations, GaugeTooltip, Legend as Legend$1, CircularGauge, CircularGaugeModule, AnnotationsService as AnnotationsService$1, GaugeTooltipService as GaugeTooltipService$1, LegendService as LegendService$1 } from '@syncfusion/ej2-angular-circulargauge';
@@ -712,6 +712,173 @@ function getParameterByName(name, url = window.location.href) {
712
712
  return decodeURIComponent(results[2].replace(/\+/g, ' '));
713
713
  }
714
714
 
715
+ const noneAnimation = trigger('none', [
716
+ transition(':enter', [
717
+ style({ opacity: 0, transform: 'translateX(10px)' }),
718
+ animate('400ms ease', style({ opacity: .2, transform: 'translateX(0)' }))
719
+ ])
720
+ ]);
721
+ const expandListItemAnimation = trigger('detailExpand', [
722
+ state('collapsed', style({ height: '0px', minHeight: '0', display: '' })),
723
+ state('expanded', style({ height: '*', minHeight: '50px', display: '' })),
724
+ transition('expanded => collapsed', animate('1s cubic-bezier(0.4, 0.0, 0.2, 1)')),
725
+ transition('collapsed => expanded', animate('250ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
726
+ ]);
727
+ const listItemUpdatedAnimation = trigger('updated', [state('true', style({ opacity: 1, /*background: 'white'*/ })),
728
+ transition('*=>true', animate('300ms ease-in', style({ opacity: 0, /*background: 'darkgray'*/ })))]);
729
+ const searchAnimation = trigger('search', [state('false', style({ width: 0, padding: 0, borderWidth: 0 })),
730
+ state('true', style({ width: '300px', padding: '2px 6px', borderWidth: '1px' })),
731
+ transition('* <=> *', animate(200, style({})))]);
732
+ const deshboardAnimation = trigger('deshboard', [transition('* <=> *', [query('@card', stagger(250, animateChild()), { optional: true })])]);
733
+ const deshboardCardAnimation = trigger('card', [
734
+ transition(':enter', [
735
+ style({
736
+ transform: 'rotateY(180deg)',
737
+ }),
738
+ animate(".5s ease", style({
739
+ transform: 'rotateY(0deg)',
740
+ }))
741
+ ])
742
+ ]);
743
+ const ShakeAnimation = [
744
+ style({ transform: 'rotate(0)' }),
745
+ animate('0.1s', style({ transform: 'rotate(2deg)' })),
746
+ animate('0.1s', style({ transform: 'rotate(-2deg)' })),
747
+ animate('0.1s', style({ transform: 'rotate(2deg)' })),
748
+ animate('0.1s', style({ transform: 'rotate(0)' })),
749
+ ];
750
+ const EnterExitLeft = [
751
+ transition(':enter', [
752
+ style({ opacity: 0, transform: 'translateX(-200px)' }),
753
+ animate('300ms ease-in', style({ opacity: 1, transform: 'translateX(0)' })),
754
+ ]),
755
+ transition(':leave', [
756
+ animate('300ms ease-in', style({ opacity: 0, transform: 'translateX(-200px)' }))
757
+ ])
758
+ ];
759
+ const EnterExitRight = [
760
+ transition(':enter', [
761
+ style({ opacity: 0, transform: 'translateX(200px)' }),
762
+ animate('300ms ease-in', style({ opacity: 1, transform: 'translateX(0)' })),
763
+ ]),
764
+ transition(':leave', [
765
+ animate('300ms ease-in', style({ opacity: 0, transform: 'translateX(200px)' }))
766
+ ])
767
+ ];
768
+ const EnterExitTop = [
769
+ transition(':enter', [
770
+ style({ opacity: 0, transform: 'translateY(-200px)' }),
771
+ animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' })),
772
+ ]),
773
+ transition(':leave', [
774
+ animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(200px)' }))
775
+ ])
776
+ ];
777
+ const FadeSlideInOut = [
778
+ transition(':enter', [
779
+ style({ opacity: 0, transform: 'translateY(10px)' }),
780
+ animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),
781
+ ]),
782
+ transition(':leave', [
783
+ animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),
784
+ ]),
785
+ ];
786
+ const PulseAnimation = animate('1s', keyframes([
787
+ style({ opacity: 0.1, offset: 0.1 }),
788
+ style({ opacity: 0.6, offset: 0.2 }),
789
+ style({ opacity: 1, offset: 0.5 }),
790
+ style({ opacity: 0.2, offset: 0.7 })
791
+ ]));
792
+ const SwapAnimation = [
793
+ transition(':increment', [style({ transform: 'translateX(100px)' }), animate('200ms', style({ transform: 'translateX(0)' }))]),
794
+ transition(':decrement', [style({ transform: 'translateX(-100px)' }), animate('200ms', style({ transform: 'translateX(0)' }))])
795
+ ];
796
+ const VerticalSwapAnimation = [
797
+ transition(':increment', [style({
798
+ transform: 'translateY(50px)',
799
+ overflow: 'hidden'
800
+ }), animate('200ms', style({ transform: 'translateY(0)' }))]),
801
+ transition(':decrement', [style({ transform: 'translateY(-50px)' }), animate('200ms', style({ transform: 'translateY(0)' }))])
802
+ ];
803
+ const matrixAnimation = trigger('table', [transition('void=>*', [
804
+ query('.mat-mdc-row', [
805
+ style({ opacity: 0, transform: 'translateX(10px)' }),
806
+ stagger(100, style({ opacity: 1, transform: 'none' }))
807
+ ], { optional: true })
808
+ ])]);
809
+ const swapAnimation = trigger('swape', SwapAnimation);
810
+ const verticalSwapAnimation = trigger('v-swape', VerticalSwapAnimation);
811
+ const pageAnimation = trigger('page', [
812
+ state(':enter', style({ transform: 'translateX(0)' })),
813
+ state(':leave', style({ transform: 'translateX(-50%)' })),
814
+ transition('* => *', animate(300))
815
+ ]);
816
+ const fabAnimation = trigger('fabFull', [
817
+ //state('working', style({ height: '100%', width: '100%' })),
818
+ //query('mat-icon', style({ 'font-size': '200px' }))
819
+ transition('* <=> working', [animate('350ms')])
820
+ ]);
821
+ const submenuAnimation = trigger('submenu', [
822
+ state('full', style({ minWidth: '200px', width: '*' })),
823
+ state('shrink', style({ minWidth: '60px', width: '60px' })),
824
+ transition('full<=>shrink, void=>shrink', [animate('100ms ease-out')]),
825
+ transition(':enter', [
826
+ style({ width: 0 }),
827
+ animate('200ms ease-in', style({ minWidth: '200px', width: '*' })),
828
+ ]),
829
+ transition(':leave', [
830
+ animate('200ms ease-out', style({ minWidth: 0, width: 0 }))
831
+ ])
832
+ ]);
833
+ const listAnimation = trigger('list', [
834
+ // transition('* <=> *', [
835
+ // query('@item',
836
+ // stagger(50, animateChild()), { optional: true }
837
+ // )
838
+ // ])
839
+ ]);
840
+ const itemAnimation = trigger('item', [
841
+ transition(':enter', [
842
+ style({ opacity: 0, transform: 'translateX(100px)' }),
843
+ animate("200ms ease-out", style({ opacity: 1, transform: 'none' }))
844
+ ])
845
+ ]);
846
+ const tabsAnimation = trigger('tabs', [
847
+ //transition(':enter', [
848
+ // style({ width: 0 }),
849
+ // animate(
850
+ // '250ms ease-out',
851
+ // style({ minWidth: '200px', width: '*' })
852
+ // ),
853
+ //]),
854
+ transition(':leave', [
855
+ animate('200ms ease-out', style({ minWidth: 0, width: 0 }))
856
+ ]),
857
+ transition('* <=> *', [style({ width: '{{startWidth}}px' }), animate('.5s ease')], { params: { startWidth: 0 } })
858
+ ]);
859
+ const tabAnimation = trigger('tab', SwapAnimation);
860
+ const panesAnimation = trigger('panes', [transition(':enter, :leave', [
861
+ query('@pane', stagger(150, animateChild()), { optional: true }),
862
+ ])]);
863
+ const panesTitleAnimation = trigger('title', [
864
+ transition(':leave', [
865
+ query('h1', animate('500ms', style({ opacity: 0, transform: 'translateX(10px)' }))),
866
+ ]),
867
+ transition('*<=>*', [
868
+ query('h1', [style({ opacity: 0, transform: 'translateX(10px)' }),
869
+ animate('500ms', style({ opacity: 1, transform: 'translateX(0)' }))]),
870
+ ])
871
+ ]);
872
+ const paneAnimation = trigger('pane', [
873
+ //transition(':enter', [style({ opacity: 0, transform: 'translateX(100%)' }),
874
+ // animate('500ms', style({ opacity: 1, transform: 'translateX(0)' }))]),
875
+ //transition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateX(10px)' }))])
876
+ ]);
877
+ const paramAnimation = trigger('param', [state('*', style({ backgroundColor: 'unset', transform: 'scale(1)' })),
878
+ transition('*<=>*', animate(200, style({ backgroundColor: 'unset', transform: 'scale(1)' })))]);
879
+ const queryAnimation = trigger('query', [state('*', style({})),
880
+ transition('*<=>*', animate(0, style({})))]);
881
+
715
882
  class AuthenticationImpl {
716
883
  }
717
884
 
@@ -1003,7 +1170,7 @@ const STRINGS = {
1003
1170
  Preferences: 'Settings',
1004
1171
  Tags: 'Tags',
1005
1172
  Mention: 'Mention',
1006
- TagsHint: 'Choose or type new tags',
1173
+ TagsHint: 'Choose or type tags',
1007
1174
  ContinueEditing: 'Continue editing',
1008
1175
  Close: 'Close',
1009
1176
  View: 'View',
@@ -1110,9 +1277,10 @@ const STRINGS = {
1110
1277
  DeleteFileAsk: 'Are you sure you want to delete this attachment?',
1111
1278
  DeleteCommentAsk: 'Are you sure you want to delete this comment?',
1112
1279
  GrantAccess: 'Grant Access',
1113
- GrantTip: 'Who may view and take actions on your behalf.',
1280
+ GrantTip: 'May view and take actions on your behalf.',
1114
1281
  OutOfOfficeTip: 'Redirect mail to another user on your absence.',
1115
1282
  Timeline: 'Timeline',
1283
+ Theme: 'Theme',
1116
1284
  Back: 'Back',
1117
1285
  Active: 'Active',
1118
1286
  MyStateChange: 'As my document\'s state changes',
@@ -1202,7 +1370,6 @@ const STRINGS = {
1202
1370
  Discard: 'Discard',
1203
1371
  DiscardAsk: 'Are you sure you want to permenently discard this document?',
1204
1372
  DiscardSelected: 'Discard {0} item(s)',
1205
- TypeHere: 'Type here',
1206
1373
  ChatHere: 'Chat here',
1207
1374
  CommentHere: 'Comment here',
1208
1375
  DraftSaved: 'Draft saved',
@@ -1255,6 +1422,7 @@ const STRINGS = {
1255
1422
  DownloadExcel: 'Excel',
1256
1423
  Users: 'Users',
1257
1424
  Associate: 'Type associate name',
1425
+ Associates: 'Associates',
1258
1426
  Who: 'Who',
1259
1427
  Task: 'Task',
1260
1428
  When: 'When',
@@ -1271,7 +1439,9 @@ const STRINGS = {
1271
1439
  Duration: 'Duration',
1272
1440
  DurationTime: 'In {0} duration',
1273
1441
  Standard: 'Standard',
1442
+ StandardValue: 'Standard: {0}',
1274
1443
  Average: 'Average',
1444
+ AverageValue: 'Average: {0}',
1275
1445
  Open: 'Open',
1276
1446
  SoundOn: 'Sound on',
1277
1447
  SoundOff: 'Sound off',
@@ -1351,6 +1521,7 @@ const STRINGS = {
1351
1521
  MaxLengthErr: 'Maximum <strong>{0}</strong> length',
1352
1522
  },
1353
1523
  'he': {
1524
+ Theme: 'תבנית עיצוב',
1354
1525
  AltSHelp: 'מצא/י בתקיה / חיפוש כללי',
1355
1526
  CtrlSHelp: 'שמירת טופס במצב עריכה',
1356
1527
  AltNHelp: 'מילוי טופס חדש',
@@ -1656,6 +1827,7 @@ const STRINGS = {
1656
1827
  To: 'עד',
1657
1828
  Users: 'משתמשים',
1658
1829
  Associate: 'הקלד/י שם משתמש',
1830
+ Associates: 'עמיתים',
1659
1831
  AssociateFemale: 'הקלדי שם משתמש',
1660
1832
  AssociateMale: 'הקלד שם משתמש',
1661
1833
  Active: 'פעיל',
@@ -1744,6 +1916,8 @@ const STRINGS = {
1744
1916
  Duration: 'משך',
1745
1917
  DurationTime: 'משך {0}',
1746
1918
  Standard: 'תקן',
1919
+ StandardValue: 'תקן: {0}',
1920
+ AverageValue: 'ממוצע: {0}',
1747
1921
  Average: 'ממוצע',
1748
1922
  Awaiting: 'ממתין ל{0}',
1749
1923
  Escalated: 'הועבר',
@@ -1755,11 +1929,10 @@ const STRINGS = {
1755
1929
  Compare: 'גרסה',
1756
1930
  Notifications: 'התראות',
1757
1931
  NoNotifications: 'אין התראות',
1758
- TypeHere: 'כתוב/י כאן',
1759
- TypeHereMale: 'כתוב כאן',
1760
- TypeHereFemale: 'כתבי כאן',
1932
+ CommentHere: 'הער/י כאן',
1933
+ CommentHereMale: 'הער כאן',
1934
+ CommentHereFemale: 'הערי כאן',
1761
1935
  ChatHere: 'כתוב/י צ\'אט',
1762
- CommentHere: 'כתוב/י הערה',
1763
1936
  Collapse: 'סגירה',
1764
1937
  Flagged: 'חשוב',
1765
1938
  Back: 'חזרה',
@@ -2771,6 +2944,7 @@ class OptionsComponent {
2771
2944
  this._accounts = _accounts;
2772
2945
  this._sb = _sb;
2773
2946
  this._session = _session;
2947
+ this.sectionIndex = 0;
2774
2948
  this.saveing = false;
2775
2949
  this._requiredValidator = (control) => {
2776
2950
  const parent = control.parent;
@@ -2779,8 +2953,8 @@ class OptionsComponent {
2779
2953
  required: true
2780
2954
  };
2781
2955
  };
2782
- this.gusers = this._fb.control([]);
2783
- this.substitueId = this._fb.control(null);
2956
+ this.grantUserIds = this._fb.control([]);
2957
+ this.oooId = this._fb.control(null);
2784
2958
  this.form = this._fb.group({
2785
2959
  notifications: this._fb.group({
2786
2960
  active: this._fb.control(false),
@@ -2813,9 +2987,9 @@ class OptionsComponent {
2813
2987
  users: this._fb.control(null, this._requiredValidator)
2814
2988
  })
2815
2989
  });
2816
- this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
2817
2990
  this.today = new Date();
2818
2991
  this.isMobile = isMobile();
2992
+ this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
2819
2993
  /** options ctor */
2820
2994
  this._destroy = new Subject();
2821
2995
  this.display = (item) => {
@@ -2839,9 +3013,9 @@ class OptionsComponent {
2839
3013
  if (!this.options.emails.active)
2840
3014
  this._toggle(emails, false, 'mail', 'chat', 'notifications', 'events');
2841
3015
  if (!this.options.grantAccess.active)
2842
- this.gusers.disable();
3016
+ this.grantUserIds.disable();
2843
3017
  if (!this.options.outOfOffice.active) {
2844
- this.substitueId.disable();
3018
+ this.oooId.disable();
2845
3019
  this._toggle(outOfOffice, false, 'from', 'to');
2846
3020
  }
2847
3021
  else if (!this.options.outOfOffice.from)
@@ -2854,47 +3028,50 @@ class OptionsComponent {
2854
3028
  grantAccess.controls.active.valueChanges.pipe(takeUntil(this._destroy)).
2855
3029
  subscribe(active => {
2856
3030
  if (active) {
2857
- this.gusers.enable();
3031
+ this.grantUserIds.enable();
2858
3032
  this.grantInput.focus();
2859
3033
  }
2860
3034
  else
2861
- this.gusers.enable();
3035
+ this.grantUserIds.enable();
2862
3036
  });
2863
3037
  outOfOffice.controls.active.valueChanges.pipe(takeUntil(this._destroy)).
2864
3038
  subscribe(active => {
2865
3039
  if (active) {
2866
- this.substitueId.enable();
3040
+ this.oooId.enable();
2867
3041
  this.substitueInput.focus();
2868
3042
  }
2869
3043
  else
2870
- this.substitueId.disable();
3044
+ this.oooId.disable();
2871
3045
  this._toggle(outOfOffice, active, 'from');
2872
3046
  this._toggle(outOfOffice, active && outOfOffice.controls.from.value, 'to');
2873
3047
  });
2874
3048
  outOfOffice.controls.from.valueChanges.pipe(takeUntil(this._destroy)).
2875
3049
  subscribe(from => this._toggle(outOfOffice, from !== null, 'to'));
2876
- this.gusers$ = this.gusers.valueChanges.pipe(takeUntil(this._destroy), filter(v => isString(v)), debounceTime(100), switchMap(v => this._accounts.findAll(v)), map(r => {
3050
+ this.gusers$ = this.grantUserIds.valueChanges.pipe(takeUntil(this._destroy), filter(v => isString(v)), debounceTime(100), switchMap(v => this._accounts.findAll(v)), map(r => {
2877
3051
  const exclude = grantAccess.value.users?.slice() || [];
2878
3052
  exclude.push(this._session.profile.userId);
2879
3053
  return r.filter(u => exclude.indexOf(u.id) < 0);
2880
3054
  }));
2881
- this.susers$ = this.substitueId.valueChanges.pipe(takeUntil(this._destroy), tap(v => !v && outOfOffice.controls.substitueId.setValue(null)), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this._session.profile.userId)));
3055
+ this.susers$ = this.oooId.valueChanges.pipe(takeUntil(this._destroy), tap(v => !v && outOfOffice.controls.substitueId.setValue(null)), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this._session.profile.userId)));
2882
3056
  if (this.options.outOfOffice.substitueId)
2883
- this._accounts.get(this.options.outOfOffice.substitueId).subscribe(u => this.substitueId.setValue(u, { emitEvent: false }));
3057
+ this._accounts.get(this.options.outOfOffice.substitueId).subscribe(u => this.oooId.setValue(u, { emitEvent: false }));
2884
3058
  // auto save
2885
3059
  this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(400)).subscribe(() => this.form.valid && this.save());
2886
3060
  switch (this.sectionName) {
2887
3061
  case 'out_of_office':
2888
3062
  this.sectionTmpl = this.oooTmpl;
3063
+ this.sectionIndex = 2;
2889
3064
  break;
2890
3065
  case 'notifications':
2891
3066
  this.sectionTmpl = this.notificationsTmpl;
3067
+ this.sectionIndex = 0;
2892
3068
  break;
2893
3069
  }
2894
3070
  }
2895
- nav(sectionName, template) {
3071
+ nav(sectionName, template, index) {
2896
3072
  this.sectionName = sectionName;
2897
3073
  this.sectionTmpl = template;
3074
+ this.sectionIndex = index;
2898
3075
  }
2899
3076
  save() {
2900
3077
  this.saveing = true;
@@ -2964,11 +3141,11 @@ class OptionsComponent {
2964
3141
  this._destroy.complete();
2965
3142
  }
2966
3143
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: OptionsComponent, deps: [{ token: OPTION_PANEL, optional: true }, { token: i1$1.OverlayRef, optional: true }, { token: i1$2.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
2967
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: OptionsComponent, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"row\">\n <mat-nav-list class=\"nav-list\">\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl)\" [class.active]=\"sectionName === 'notifications'\">\n <span matListItemTitle>{{'Notifications' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('emails', emailsTmpl)\" [class.active]=\"sectionName === 'emails'\">\n <span matListItemTitle>{{'Emails' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl)\" [class.active]=\"sectionName === 'out_of_office'\">\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl)\" [class.active]=\"sectionName === 'grant_access'\">\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl)\" [class.active]=\"sectionName === 'preferences'\">\n <span matListItemTitle>{{'Preferences' | translate}}</span>\n </mat-list-item>\n </mat-nav-list>\n <div class=\"separator\"></div>\n <form autocomplete=\"off\"><ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container></form>\n</div>\n<!--preferences-->\n<ng-template #preferencesTmpl>\n <div class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Tags'|translate\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n</ng-template>\n<!--notifications-->\n<ng-template #notificationsTmpl>\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n</ng-template>\n<!--emails-->\n<ng-template #emailsTmpl>\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n</ng-template>\n<!--ooo-->\n<ng-template #oooTmpl>\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n</ng-template>\n<!--grantAccess-->\n<ng-template #grantAccessTmpl>\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <mat-form-field>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUsers\" placeholder=\"{{'Users'| translate}}\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [":host{max-width:80vw;min-width:420px}.separator{height:280px;width:1px;background-color:#0003}form{padding:8px;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }] }); }
3144
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: OptionsComponent, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<!--<bizdoc-v-tabs [initialName]=\"sectionName\">\n <tab name=\"notifications\" title=\"Notifications\">\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n </tab>\n <tab name=\"emails\" title=\"Emails\">\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n </tab>\n <tab name=\"out_of_office\" title=\"OutOfOffice\">\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u.id) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n </tab>\n <tab name=\"grant_access\" title=\"GrantAccess\">\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <mat-form-field>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u.id) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUserIds\" placeholder=\"{{'Users'| translate}}\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u.id) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n </tab>\n <tab name=\"preferences\" title=\"Preferences\">\n <div class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Tags'|translate\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n </tab>\n</bizdoc-v-tabs>-->\n<div class=\"row\">\n <mat-nav-list class=\"nav-list\">\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\n <span matListItemTitle>{{'Notifications' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\n <span matListItemTitle>{{'Emails' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\n <span matListItemTitle>{{'Preferences' | translate}}</span>\n </mat-list-item>\n </mat-nav-list>\n <div class=\"separator\"></div>\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\n </form>\n</div>\n<!--preferences-->\n<ng-template #preferencesTmpl>\n <div class=\"column\">\n <mat-form-field>\n <mat-label>{{'Tags'|translate}}</mat-label>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n</ng-template>\n<!--notifications-->\n<ng-template #notificationsTmpl>\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n</ng-template>\n<!--emails-->\n<ng-template #emailsTmpl>\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n</ng-template>\n<!--ooo-->\n<ng-template #oooTmpl>\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u.id) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n</ng-template>\n<!--grantAccess-->\n<ng-template #grantAccessTmpl>\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field>\n <mat-label>{{'Associates'| translate}}</mat-label>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u.id) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUserIds\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u.id) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [":host{max-width:80vw;min-width:420px}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
2968
3145
  }
2969
3146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: OptionsComponent, decorators: [{
2970
3147
  type: Component,
2971
- args: [{ selector: 'bizdoc-options', template: "<div class=\"row\">\n <mat-nav-list class=\"nav-list\">\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl)\" [class.active]=\"sectionName === 'notifications'\">\n <span matListItemTitle>{{'Notifications' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('emails', emailsTmpl)\" [class.active]=\"sectionName === 'emails'\">\n <span matListItemTitle>{{'Emails' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl)\" [class.active]=\"sectionName === 'out_of_office'\">\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl)\" [class.active]=\"sectionName === 'grant_access'\">\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl)\" [class.active]=\"sectionName === 'preferences'\">\n <span matListItemTitle>{{'Preferences' | translate}}</span>\n </mat-list-item>\n </mat-nav-list>\n <div class=\"separator\"></div>\n <form autocomplete=\"off\"><ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container></form>\n</div>\n<!--preferences-->\n<ng-template #preferencesTmpl>\n <div class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Tags'|translate\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n</ng-template>\n<!--notifications-->\n<ng-template #notificationsTmpl>\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n</ng-template>\n<!--emails-->\n<ng-template #emailsTmpl>\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n</ng-template>\n<!--ooo-->\n<ng-template #oooTmpl>\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n</ng-template>\n<!--grantAccess-->\n<ng-template #grantAccessTmpl>\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <mat-form-field>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUsers\" placeholder=\"{{'Users'| translate}}\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [":host{max-width:80vw;min-width:420px}.separator{height:280px;width:1px;background-color:#0003}form{padding:8px;min-width:320px}\n"] }]
3148
+ args: [{ selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<!--<bizdoc-v-tabs [initialName]=\"sectionName\">\n <tab name=\"notifications\" title=\"Notifications\">\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n </tab>\n <tab name=\"emails\" title=\"Emails\">\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n </tab>\n <tab name=\"out_of_office\" title=\"OutOfOffice\">\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u.id) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n </tab>\n <tab name=\"grant_access\" title=\"GrantAccess\">\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <mat-form-field>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u.id) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUserIds\" placeholder=\"{{'Users'| translate}}\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u.id) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n </tab>\n <tab name=\"preferences\" title=\"Preferences\">\n <div class=\"column\">\n <mat-form-field>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'Tags'|translate\"\n [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n </tab>\n</bizdoc-v-tabs>-->\n<div class=\"row\">\n <mat-nav-list class=\"nav-list\">\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\n <span matListItemTitle>{{'Notifications' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\n <span matListItemTitle>{{'Emails' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\n <span matListItemTitle>{{'Preferences' | translate}}</span>\n </mat-list-item>\n </mat-nav-list>\n <div class=\"separator\"></div>\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\n </form>\n</div>\n<!--preferences-->\n<ng-template #preferencesTmpl>\n <div class=\"column\">\n <mat-form-field>\n <mat-label>{{'Tags'|translate}}</mat-label>\n <mat-chip-grid #chips>\n @for (item of form.value.tags; track item) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [matChipInputFor]=\"chips\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addTag($event)\">\n </mat-form-field>\n </div>\n</ng-template>\n<!--notifications-->\n<ng-template #notificationsTmpl>\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\n <div class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\n </div>\n </div>\n</ng-template>\n<!--emails-->\n<ng-template #emailsTmpl>\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\n </div>\n</ng-template>\n<!--ooo-->\n<ng-template #oooTmpl>\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field class=\"flex\">\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"oooSelected($event)\">\n @for (u of susers$ | async; track u.id) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Dates'|translate}}</mat-label>\n <mat-date-range-input [rangePicker]=\"dates\">\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\n </mat-form-field>\n </div>\n</ng-template>\n<!--grantAccess-->\n<ng-template #grantAccessTmpl>\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\n <br />\n <mat-form-field>\n <mat-label>{{'Associates'| translate}}</mat-label>\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\n @for (u of form.value.grantAccess.users || []; track u.id) {\n <mat-chip-row (removed)=\"removeGrant(u)\">\n {{u | userName | async}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n </mat-chip-grid>\n <input [formControl]=\"grantUserIds\"\n #grantInput\n [matAutocomplete]=\"grantAuto\"\n [matChipInputFor]=\"grantList\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\n @for (u of gusers$ | async; track u.id) {\n <mat-option [value]=\"u.id\">\n {{u.name}}\n @if (u.email) {\n <span>&nbsp; - {{u.email}}</span>\n }\n </mat-option>\n }\n </mat-autocomplete>\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\n </mat-form-field>\n </div>\n</ng-template>\n", styles: [":host{max-width:80vw;min-width:420px}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"] }]
2972
3149
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2973
3150
  type: Inject,
2974
3151
  args: [OPTION_PANEL]
@@ -3004,165 +3181,6 @@ class NodeRef {
3004
3181
  get arguments() { return this._node.arguments; }
3005
3182
  }
3006
3183
 
3007
- const noneAnimation = trigger('none', [
3008
- transition(':enter', [
3009
- style({ opacity: 0, transform: 'translateX(10px)' }),
3010
- animate('400ms ease', style({ opacity: .2, transform: 'translateX(0)' }))
3011
- ])
3012
- ]);
3013
- const expandListItemAnimation = trigger('detailExpand', [
3014
- state('collapsed', style({ height: '0px', minHeight: '0', display: '' })),
3015
- state('expanded', style({ height: '*', minHeight: '50px', display: '' })),
3016
- transition('expanded => collapsed', animate('1s cubic-bezier(0.4, 0.0, 0.2, 1)')),
3017
- transition('collapsed => expanded', animate('250ms cubic-bezier(0.4, 0.0, 0.2, 1)'))
3018
- ]);
3019
- const listItemUpdatedAnimation = trigger('updated', [state('true', style({ opacity: 1, /*background: 'white'*/ })),
3020
- transition('*=>true', animate('300ms ease-in', style({ opacity: 0, /*background: 'darkgray'*/ })))]);
3021
- const searchAnimation = trigger('search', [state('false', style({ width: 0, padding: 0, borderWidth: 0 })),
3022
- state('true', style({ width: '300px', padding: '2px 6px', borderWidth: '1px' })),
3023
- transition('* <=> *', animate(200, style({})))]);
3024
- const deshboardAnimation = trigger('deshboard', [transition('* <=> *', [query('@card', stagger(250, animateChild()), { optional: true })])]);
3025
- const deshboardCardAnimation = trigger('card', [
3026
- transition(':enter', [
3027
- style({
3028
- transform: 'rotateY(180deg)',
3029
- }),
3030
- animate(".5s ease", style({
3031
- transform: 'rotateY(0deg)',
3032
- }))
3033
- ])
3034
- ]);
3035
- const ShakeAnimation = [
3036
- style({ transform: 'rotate(0)' }),
3037
- animate('0.1s', style({ transform: 'rotate(2deg)' })),
3038
- animate('0.1s', style({ transform: 'rotate(-2deg)' })),
3039
- animate('0.1s', style({ transform: 'rotate(2deg)' })),
3040
- animate('0.1s', style({ transform: 'rotate(0)' })),
3041
- ];
3042
- const EnterExitLeft = [
3043
- transition(':enter', [
3044
- style({ opacity: 0, transform: 'translateX(-200px)' }),
3045
- animate('300ms ease-in', style({ opacity: 1, transform: 'translateX(0)' })),
3046
- ]),
3047
- transition(':leave', [
3048
- animate('300ms ease-in', style({ opacity: 0, transform: 'translateX(-200px)' }))
3049
- ])
3050
- ];
3051
- const EnterExitRight = [
3052
- transition(':enter', [
3053
- style({ opacity: 0, transform: 'translateX(200px)' }),
3054
- animate('300ms ease-in', style({ opacity: 1, transform: 'translateX(0)' })),
3055
- ]),
3056
- transition(':leave', [
3057
- animate('300ms ease-in', style({ opacity: 0, transform: 'translateX(200px)' }))
3058
- ])
3059
- ];
3060
- const EnterExitTop = [
3061
- transition(':enter', [
3062
- style({ opacity: 0, transform: 'translateY(-200px)' }),
3063
- animate('300ms ease-in', style({ opacity: 1, transform: 'translateY(0)' })),
3064
- ]),
3065
- transition(':leave', [
3066
- animate('300ms ease-in', style({ opacity: 0, transform: 'translateY(200px)' }))
3067
- ])
3068
- ];
3069
- const FadeSlideInOut = [
3070
- transition(':enter', [
3071
- style({ opacity: 0, transform: 'translateY(10px)' }),
3072
- animate('500ms', style({ opacity: 1, transform: 'translateY(0)' })),
3073
- ]),
3074
- transition(':leave', [
3075
- animate('500ms', style({ opacity: 0, transform: 'translateY(10px)' })),
3076
- ]),
3077
- ];
3078
- const PulseAnimation = animate('1s', keyframes([
3079
- style({ opacity: 0.1, offset: 0.1 }),
3080
- style({ opacity: 0.6, offset: 0.2 }),
3081
- style({ opacity: 1, offset: 0.5 }),
3082
- style({ opacity: 0.2, offset: 0.7 })
3083
- ]));
3084
- const SwapAnimation = [
3085
- transition(':increment', [style({ transform: 'translateX(100px)' }), animate('200ms', style({ transform: 'translateX(0)' }))]),
3086
- transition(':decrement', [style({ transform: 'translateX(-100px)' }), animate('200ms', style({ transform: 'translateX(0)' }))])
3087
- ];
3088
- const matrixAnimation = trigger('table', [transition('void=>*', [
3089
- query('.mat-mdc-row', [
3090
- style({ opacity: 0, transform: 'translateX(10px)' }),
3091
- stagger(100, style({ opacity: 1, transform: 'none' }))
3092
- ], { optional: true })
3093
- ])]);
3094
- const swapAnimation = trigger('swape', SwapAnimation);
3095
- const pageAnimation = trigger('page', [
3096
- state(':enter', style({ transform: 'translateX(0)' })),
3097
- state(':leave', style({ transform: 'translateX(-50%)' })),
3098
- transition('* => *', animate(300))
3099
- ]);
3100
- const fabAnimation = trigger('fabFull', [
3101
- //state('working', style({ height: '100%', width: '100%' })),
3102
- //query('mat-icon', style({ 'font-size': '200px' }))
3103
- transition('* <=> working', [animate('350ms')])
3104
- ]);
3105
- const submenuAnimation = trigger('submenu', [
3106
- state('full', style({ minWidth: '200px', width: '*' })),
3107
- state('shrink', style({ minWidth: '60px', width: '60px' })),
3108
- transition('full<=>shrink, void=>shrink', [animate('100ms ease-out')]),
3109
- transition(':enter', [
3110
- style({ width: 0 }),
3111
- animate('200ms ease-in', style({ minWidth: '200px', width: '*' })),
3112
- ]),
3113
- transition(':leave', [
3114
- animate('200ms ease-out', style({ minWidth: 0, width: 0 }))
3115
- ])
3116
- ]);
3117
- const listAnimation = trigger('list', [
3118
- // transition('* <=> *', [
3119
- // query('@item',
3120
- // stagger(50, animateChild()), { optional: true }
3121
- // )
3122
- // ])
3123
- ]);
3124
- const itemAnimation = trigger('item', [
3125
- transition(':enter', [
3126
- style({ opacity: 0, transform: 'translateX(100px)' }),
3127
- animate("200ms ease-out", style({ opacity: 1, transform: 'none' }))
3128
- ])
3129
- ]);
3130
- const tabsAnimation = trigger('tabs', [
3131
- //transition(':enter', [
3132
- // style({ width: 0 }),
3133
- // animate(
3134
- // '250ms ease-out',
3135
- // style({ minWidth: '200px', width: '*' })
3136
- // ),
3137
- //]),
3138
- transition(':leave', [
3139
- animate('200ms ease-out', style({ minWidth: 0, width: 0 }))
3140
- ]),
3141
- transition('* <=> *', [style({ width: '{{startWidth}}px' }), animate('.5s ease')], { params: { startWidth: 0 } })
3142
- ]);
3143
- const tabAnimation = trigger('tab', SwapAnimation);
3144
- const panesAnimation = trigger('panes', [transition(':enter, :leave', [
3145
- query('@pane', stagger(150, animateChild()), { optional: true }),
3146
- ])]);
3147
- const panesTitleAnimation = trigger('title', [
3148
- transition(':leave', [
3149
- query('h1', animate('500ms', style({ opacity: 0, transform: 'translateX(10px)' }))),
3150
- ]),
3151
- transition('*<=>*', [
3152
- query('h1', [style({ opacity: 0, transform: 'translateX(10px)' }),
3153
- animate('500ms', style({ opacity: 1, transform: 'translateX(0)' }))]),
3154
- ])
3155
- ]);
3156
- const paneAnimation = trigger('pane', [
3157
- //transition(':enter', [style({ opacity: 0, transform: 'translateX(100%)' }),
3158
- // animate('500ms', style({ opacity: 1, transform: 'translateX(0)' }))]),
3159
- //transition(':leave', [animate('500ms', style({ opacity: 0, transform: 'translateX(10px)' }))])
3160
- ]);
3161
- const paramAnimation = trigger('param', [state('*', style({ backgroundColor: 'unset', transform: 'scale(1)' })),
3162
- transition('*<=>*', animate(200, style({ backgroundColor: 'unset', transform: 'scale(1)' })))]);
3163
- const queryAnimation = trigger('query', [state('*', style({})),
3164
- transition('*<=>*', animate(0, style({})))]);
3165
-
3166
3184
  class SanitizeHtmlPipe {
3167
3185
  constructor(_sanitizer) {
3168
3186
  this._sanitizer = _sanitizer;
@@ -7587,11 +7605,11 @@ class CubeFilterComponent {
7587
7605
  this._destroy.complete();
7588
7606
  }
7589
7607
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeFilterComponent, deps: [{ token: CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$2.FormBuilder }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
7590
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column\">\n @for (a of visibleAxes; track a) {\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\">\n @switch (a.selectionMode) {\n @case ('Pattern') {\n <input matInput autocomplete=\"off\"\n [pattern]=\"pattern\" autofocus\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @case ('Search') {\n <input matInput autocomplete=\"off\" type=\"search\"\n [matAutocomplete]=\"segment\" #inp\n [placeholder]=\"a.title||a.name\" />\n <mat-autocomplete #segment [displayWith]=\"display\"\n (optionSelected)=\"change(a.name, $event)\">\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\n }\n </mat-autocomplete>\n @if (inp.value) {\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\n }\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @default {\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\n @if (a.selectionMode !== 'Multiple') {\n <mat-option>{{'All' | translate}}</mat-option>\n }\n @for (r of sources[a.name] | async; track r) {\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\n }\n </mat-select>\n }\n }\n </mat-form-field>\n }\n </form>\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }] }); }
7608
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column gap\">\n @for (a of visibleAxes; track a) {\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\" subscriptSizing=\"dynamic\">\n @switch (a.selectionMode) {\n @case ('Pattern') {\n <input matInput autocomplete=\"off\"\n [pattern]=\"pattern\" autofocus\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @case ('Search') {\n <input matInput autocomplete=\"off\" type=\"search\"\n [matAutocomplete]=\"segment\" #inp\n [placeholder]=\"a.title||a.name\" />\n <mat-autocomplete #segment [displayWith]=\"display\"\n (optionSelected)=\"change(a.name, $event)\">\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\n }\n </mat-autocomplete>\n @if (inp.value) {\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\n }\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @default {\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\n @if (a.selectionMode !== 'Multiple') {\n <mat-option>{{'All' | translate}}</mat-option>\n }\n @for (r of sources[a.name] | async; track r) {\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\n }\n </mat-select>\n }\n }\n </mat-form-field>\n }\n</form>\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }] }); }
7591
7609
  }
7592
7610
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeFilterComponent, decorators: [{
7593
7611
  type: Component,
7594
- args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" class=\"column\">\n @for (a of visibleAxes; track a) {\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\">\n @switch (a.selectionMode) {\n @case ('Pattern') {\n <input matInput autocomplete=\"off\"\n [pattern]=\"pattern\" autofocus\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @case ('Search') {\n <input matInput autocomplete=\"off\" type=\"search\"\n [matAutocomplete]=\"segment\" #inp\n [placeholder]=\"a.title||a.name\" />\n <mat-autocomplete #segment [displayWith]=\"display\"\n (optionSelected)=\"change(a.name, $event)\">\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\n }\n </mat-autocomplete>\n @if (inp.value) {\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\n }\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @default {\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\n @if (a.selectionMode !== 'Multiple') {\n <mat-option>{{'All' | translate}}</mat-option>\n }\n @for (r of sources[a.name] | async; track r) {\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\n }\n </mat-select>\n }\n }\n </mat-form-field>\n }\n </form>\n", styles: ["form{padding:8px}\n"] }]
7612
+ args: [{ selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\" class=\"column gap\">\n @for (a of visibleAxes; track a) {\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\" subscriptSizing=\"dynamic\">\n @switch (a.selectionMode) {\n @case ('Pattern') {\n <input matInput autocomplete=\"off\"\n [pattern]=\"pattern\" autofocus\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @case ('Search') {\n <input matInput autocomplete=\"off\" type=\"search\"\n [matAutocomplete]=\"segment\" #inp\n [placeholder]=\"a.title||a.name\" />\n <mat-autocomplete #segment [displayWith]=\"display\"\n (optionSelected)=\"change(a.name, $event)\">\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\n }\n </mat-autocomplete>\n @if (inp.value) {\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\n }\n @if (form.controls[a.name].invalid) {\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\n }\n }\n @default {\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\n @if (a.selectionMode !== 'Multiple') {\n <mat-option>{{'All' | translate}}</mat-option>\n }\n @for (r of sources[a.name] | async; track r) {\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\n }\n </mat-select>\n }\n }\n </mat-form-field>\n }\n</form>\n", styles: ["form{padding:8px}\n"] }]
7595
7613
  }], ctorParameters: () => [{ type: CubeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$2.FormBuilder }, { type: SessionService }], propDecorators: { cube: [{
7596
7614
  type: Input
7597
7615
  }], exclude: [{
@@ -7928,7 +7946,7 @@ class ChatInfo {
7928
7946
  else if (this._isMobile)
7929
7947
  this._open$.next(contact.id);
7930
7948
  else if (!options || options.mode === 'room')
7931
- this._router.navigate(['chatroom', contact.id], {
7949
+ this._router.navigate(['chat', contact.id], {
7932
7950
  // group: options ? options.group : null
7933
7951
  });
7934
7952
  else {
@@ -8821,11 +8839,11 @@ class ExpandedItemComponent {
8821
8839
  this._typingTask && clearTimeout(this._typingTask);
8822
8840
  }
8823
8841
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExpandedItemComponent, deps: [{ token: PromptService }, { token: ChatInfo }, { token: AccountService }, { token: MailboxService }, { token: SessionService }, { token: i1$3.Directionality }, { token: i2$2.MatDialog }, { token: TranslateService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
8824
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { model: "model" }, outputs: { sent: "sent" }, ngImport: i0, template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n &nbsp;\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n &nbsp;\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [highlighted]=\"true\" [disableRipple]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"], dependencies: [{ kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { kind: "component", type: DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: StatePipe, name: "state" }] }); }
8842
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: { model: "model" }, outputs: { sent: "sent" }, ngImport: i0, template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n &nbsp;\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n &nbsp;\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [disabled]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"], dependencies: [{ kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }, { kind: "component", type: DocumentEventsComponent, selector: "bizdoc-events", inputs: ["model"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: StatePipe, name: "state" }] }); }
8825
8843
  }
8826
8844
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExpandedItemComponent, decorators: [{
8827
8845
  type: Component,
8828
- args: [{ selector: 'bizdoc-expanded-item', template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n &nbsp;\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n &nbsp;\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [highlighted]=\"true\" [disableRipple]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"] }]
8846
+ args: [{ selector: 'bizdoc-expanded-item', template: "@if (model.summary) {\n <div class=\"summary\" [innerHTML]=\"model.summary\">\n </div>\n}\n<div>\n <bizdoc-attachments [model]=\"model\"></bizdoc-attachments>\n <bizdoc-events [model]=\"model\"></bizdoc-events>\n</div>\n<div class=\"row\">\n <span class=\"note\" [innerHTML]=\"note | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <span class=\"divider\"></span>\n @for (a of actions; track a) {\n @if (a.icon) {\n <button mat-icon-button (click)=\"send(a.name)\" [bizdocTooltip]=\"a.title\" class=\"tool\">\n <mat-icon>{{a.icon}}</mat-icon>\n </button>\n }\n }\n</div>\n<div class=\"row\">\n <div class=\"mat-small row\">\n <span>{{model.stateId | state : 'past' }}</span>\n &nbsp;\n <span class=\"time\" [bizdocTooltip]=\"model.received | amCalendar\">{{model.received | amTimeAgo}}</span>\n &nbsp;\n <span [innerHTML]=\"sender | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>&nbsp;\n <span [innerHTML]=\"awaiting | sanitizeHtml\" (click)=\"chat($event)\" class=\"who\"></span>\n </div>\n <span class=\"divider\"></span>\n <div class=\"center center\">\n @if (typing) {\n <span class=\"mat-small\">{{'SomeoneTyping'|translate}}</span>\n }\n @if (model.comments.length) {\n <div class=\"mat-small\">\n @if (!newComments) {\n <span>{{model.comments.length > 1 ? ('CommentsCount' | translate : model.comments.length) : 'OneComment' | translate }}</span>\n } @else {\n <span [innerHTML]=\"'NewCommentsCount' | translate : model.comments.length : newComments | sanitizeHtml\"></span>\n }\n </div>\n }\n </div>\n @if (model.tags) {\n <mat-chip-set>\n @for (tag of model.tags; track tag) {\n <mat-chip [disabled]=\"true\">{{tag}}</mat-chip>\n }\n </mat-chip-set>\n }\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow:hidden;padding-right:24px;padding-left:24px;text-align:start}.row{align-items:center;min-height:27px;flex-direction:row;box-sizing:border-box;display:flex}.note{font-weight:200}.time{text-transform:uppercase}.summary{max-width:fit-content}\n"] }]
8829
8847
  }], ctorParameters: () => [{ type: PromptService }, { type: ChatInfo }, { type: AccountService }, { type: MailboxService }, { type: SessionService }, { type: i1$3.Directionality }, { type: i2$2.MatDialog }, { type: TranslateService }, { type: HubService }], propDecorators: { model: [{
8830
8848
  type: Input
8831
8849
  }], sent: [{
@@ -9396,11 +9414,11 @@ class TagsComponent {
9396
9414
  this._destroy.complete();
9397
9415
  }
9398
9416
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TagsComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
9399
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\n @for (item of tags; track item) {\n <mat-chip\n [removable]=\"true\" (removed)=\"remove(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'TagsHint'|translate\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [formControl]=\"control\"\n #input autocomplete=\"off\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of options | async; track item) {\n <mat-option [value]=\"item\">\n {{item}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9417
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\n @for (item of tags; track item) {\n <mat-chip\n [removable]=\"true\" (removed)=\"remove(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'TagsHint'|translate\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [formControl]=\"control\"\n #input autocomplete=\"off\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of options | async; track item) {\n <mat-option [value]=\"item\">\n {{item}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
9400
9418
  }
9401
9419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TagsComponent, decorators: [{
9402
9420
  type: Component,
9403
- args: [{ template: "<mat-form-field floatLabel=\"never\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\n @for (item of tags; track item) {\n <mat-chip\n [removable]=\"true\" (removed)=\"remove(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'TagsHint'|translate\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [formControl]=\"control\"\n #input autocomplete=\"off\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of options | async; track item) {\n <mat-option [value]=\"item\">\n {{item}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n", styles: [":host{padding:8px}\n"] }]
9421
+ args: [{ template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\n @for (item of tags; track item) {\n <mat-chip\n [removable]=\"true\" (removed)=\"remove(item)\">\n {{item}}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n }\n </mat-chip-grid>\n <input [placeholder]=\"'TagsHint'|translate\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipList\"\n [formControl]=\"control\"\n #input autocomplete=\"off\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"add($event)\">\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (item of options | async; track item) {\n <mat-option [value]=\"item\">\n {{item}}\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n", styles: [":host{padding:8px}\n"] }]
9404
9422
  }], ctorParameters: () => [{ type: undefined, decorators: [{
9405
9423
  type: Inject,
9406
9424
  args: [POPUP_DATA]
@@ -10008,13 +10026,11 @@ class ComposePaneComponent {
10008
10026
  this._navigate('views');
10009
10027
  }
10010
10028
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ComposePaneComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
10011
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ComposePaneComponent, selector: "bizdoc-compose.pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\">\n <span>{{'Submit' | translate}}</span>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\n <span>{{form.actions[0].title}}</span>\n </button>\n }\n @else if (form.actions.length > 1) {\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\n <span>{{'Send' | translate}}</span>\n </button>\n }\n <!-- action -->\n <mat-menu #actionMenu>\n <ng-template matMenuContent>\n @for (a of form.actions; track a; let i = $index) {\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </ng-template>\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && model.pending && !model.completed) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n @if (expendable) {\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<div class=\"file-dropable flex\" #dropable>\n <bizdoc-form [model]=model #form\n (modelChange)=\"change()\"\n (saved)=\"saved()\"\n (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
10029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ComposePaneComponent, selector: "bizdoc-compose.pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\">\n <span>{{'Submit' | translate}}</span>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\n <span>{{form.actions[0].title}}</span>\n </button>\n }\n @else if (form.actions.length > 1) {\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\n <span>{{'Send' | translate}}</span>\n </button>\n }\n <!-- action -->\n <mat-menu #actionMenu>\n <ng-template matMenuContent>\n @for (a of form.actions; track a; let i = $index) {\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </ng-template>\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && model.pending && !model.completed) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n @if (expendable) {\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<div class=\"file-dropable flex\" #dropable>\n <bizdoc-form [model]=model #form\n (modelChange)=\"change()\"\n (saved)=\"saved()\"\n (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
10012
10030
  }
10013
10031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ComposePaneComponent, decorators: [{
10014
10032
  type: Component,
10015
- args: [{ selector: 'bizdoc-compose.pane', host: {
10016
- class: 'pane'
10017
- }, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\">\n <span>{{'Submit' | translate}}</span>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\n <span>{{form.actions[0].title}}</span>\n </button>\n }\n @else if (form.actions.length > 1) {\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\n <span>{{'Send' | translate}}</span>\n </button>\n }\n <!-- action -->\n <mat-menu #actionMenu>\n <ng-template matMenuContent>\n @for (a of form.actions; track a; let i = $index) {\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </ng-template>\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && model.pending && !model.completed) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n @if (expendable) {\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<div class=\"file-dropable flex\" #dropable>\n <bizdoc-form [model]=model #form\n (modelChange)=\"change()\"\n (saved)=\"saved()\"\n (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n</div>\n" }]
10033
+ args: [{ selector: 'bizdoc-compose.pane', template: "<mat-toolbar class=\"nav-toolbar\">\n @if (form.page !== undefined) {\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\n </button>\n }\n @if (model.draft) {\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\n (click)=\"submit()\" [disabled]=\"!valid||working\">\n <span>{{'Submit' | translate}}</span>\n </button>\n }\n @if (form.actions.length === 1) {\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\n <span>{{form.actions[0].title}}</span>\n </button>\n }\n @else if (form.actions.length > 1) {\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\n <span>{{'Send' | translate}}</span>\n </button>\n }\n <!-- action -->\n <mat-menu #actionMenu>\n <ng-template matMenuContent>\n @for (a of form.actions; track a; let i = $index) {\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\n <mat-divider></mat-divider>\n }\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\n }\n </ng-template>\n </mat-menu>\n @if (mode === 'compose') {\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\n <mat-icon>save</mat-icon>\n </button>\n }\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\n @if (mode !== 'compose' && model.pending && !model.completed) {\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\n </button>\n @if (enableAnalysis) {\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\n }\n @if (expendable) {\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\n }\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\n <mat-menu #optionsMenu=\"matMenu\">\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\n <!--<mat-icon>content_copy</mat-icon>-->\n <span>{{'Copy' | translate}}</span>\n </button>\n @if (model.draft && !model.issued) {\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\n <!--<mat-icon>delete_outlined</mat-icon>-->\n <span>{{'Discard' | translate}}</span>\n </button>\n }\n @if (form.help) {\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"form.guide(form.help)\">\n <!--<mat-icon>help_outline</mat-icon>-->\n <span>{{'Help' | translate}}</span>\n </button>\n }\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\n </ng-template>\n </mat-menu>\n</mat-toolbar>\n<div class=\"file-dropable flex\" #dropable>\n <bizdoc-form [model]=model #form\n (modelChange)=\"change()\"\n (saved)=\"saved()\"\n (validChange)=\"valid=$event\"\n (workingChange)=\"working=$event\"\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\n</div>\n" }]
10018
10034
  }], ctorParameters: () => [{ type: SessionService }, { type: MailboxService }, { type: PaneRef }, { type: PanesRouter }], propDecorators: { form: [{
10019
10035
  type: ViewChild,
10020
10036
  args: [ComposeFormComponent, { static: true }]
@@ -10148,13 +10164,11 @@ class BrowsePaneComponent {
10148
10164
  this._destroy.complete();
10149
10165
  }
10150
10166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowsePaneComponent, deps: [{ token: PaneRef }, { token: SessionService }, { token: Popup }, { token: PanesRouter }, { token: i1$3.Directionality }, { token: TranslateService }, { token: i2$2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
10151
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: BrowsePaneComponent, selector: "bizdoc-browse.pane", host: { listeners: { "document:keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "items", first: true, predicate: BrowseItemsComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "search", first: true, predicate: ["searchEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:540px;display:contents!important}\n"], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: ["folderId", "filterType", "filters"], outputs: ["open", "view"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [searchAnimation] }); }
10167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: BrowsePaneComponent, selector: "bizdoc-browse.pane", host: { listeners: { "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "items", first: true, predicate: BrowseItemsComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "search", first: true, predicate: ["searchEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [""], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: BrowseItemsComponent, selector: "bizdoc-browse-items", inputs: ["folderId", "filterType", "filters"], outputs: ["open", "view"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [searchAnimation] }); }
10152
10168
  }
10153
10169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: BrowsePaneComponent, decorators: [{
10154
10170
  type: Component,
10155
- args: [{ selector: 'bizdoc-browse.pane', animations: [searchAnimation], host: {
10156
- class: 'pane'
10157
- }, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n", styles: [":host{min-width:540px;display:contents!important}\n"] }]
10171
+ args: [{ selector: 'bizdoc-browse.pane', animations: [searchAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\n @if (!items.selection.isEmpty()) {\n <!--<button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\" [attr.aria-label]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>-->\n @if (items.isAllDraft()) {\n <button mat-icon-button (click)=\"items.discardAll()\" [bizdocTooltip]=\"'DiscardSelected' | translate : items.selection.selected.length\" [attr.aria-label]=\"'DiscardSelected' | translate : items.selection.selected.length\"><mat-icon>delete_sweep</mat-icon></button>\n <button mat-button color=\"primary\" (click)=\"items.submitAll()\">{{'SubmitSelected' | translate : items.selection.selected.length }}</button>\n }\n @if (items.sharedActions.length === 1) {\n <button mat-button color=\"primary\" (click)=\"sendAll(items.sharedActions[0].name)\" [bizdocTooltip]=\"items.sharedActions[0].title\">\n @if (items.sharedActions[0].icon) {\n <mat-icon>{{items.sharedActions[0].icon}}</mat-icon>\n }{{'SendSelected' | translate : items.selection.selected.length}}\n </button>\n }\n @else if (items.sharedActions.length > 1) {\n <button mat-button color=\"primary\" [matMenuTriggerFor]=\"action\" [bizdocTooltip]=\"'Send' | translate\" [attr.aria-label]=\"'Send' | translate\">\n {{'SendSelected'| translate : items.selection.selected.length }}\n </button>\n <mat-menu #action>\n @for (a of items.sharedActions | sort : 'group'; track a; let i = $index) {\n @if (i > 0 && items.sharedActions[i-1].group !== a.group) {\n <mat-divider>\n </mat-divider>\n }\n <button mat-menu-item (click)=\"sendAll(a.name)\" [attr.aria-label]=\"a.title\">\n {{ a.title }}\n </button>\n }\n </mat-menu>\n }\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n } @else {\n <!--<button mat-icon-button (click)=\"openSearch()\"\n [bizdocTooltip]=\"'Search'|translate\" class=\"tool\">\n <mat-icon>search</mat-icon>\n </button>\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"-->\n <input matInput\n [formControl]=\"contains\" autocomplete=\"off\" placeholder=\"{{'SearchFolders' | translate}}\"\n class=\"mat-body search-box\"\n #searchEl\n (keydown.escape)=\"clearSearch($event)\">\n @if (contains.value) {\n <mat-icon (click)=\"clearSearch()\">close</mat-icon>\n }\n <span class=\"divider\"></span>\n <!--<button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>-->\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter' | translate\" #filterEl><mat-icon>filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-browse-items [filters]=\"filters\" [folderId]=\"folderId\" [filterType]=\"filterType\"\n (open)=\"open($event)\" (view)=\"view($event) \" #items></bizdoc-browse-items>\n" }]
10158
10172
  }], ctorParameters: () => [{ type: PaneRef }, { type: SessionService }, { type: Popup }, { type: PanesRouter }, { type: i1$3.Directionality }, { type: TranslateService }, { type: i2$2.MatDialog }], propDecorators: { items: [{
10159
10173
  type: ViewChild,
10160
10174
  args: [BrowseItemsComponent, { static: true }]
@@ -12149,13 +12163,11 @@ class CubeViewPaneComponent extends ViewBase {
12149
12163
  });
12150
12164
  }
12151
12165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeViewPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
12152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window.keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n {{p.title}}\n </button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-view [filters]=\"axes\" #vp\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n[(loading)]=\"loading\"></bizdoc-cube-view>\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window.keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n {{p.title}}\n </button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-view [filters]=\"axes\" #vp\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n[(loading)]=\"loading\"></bizdoc-cube-view>\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12153
12167
  }
12154
12168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeViewPaneComponent, decorators: [{
12155
12169
  type: Component,
12156
- args: [{ host: {
12157
- class: 'pane'
12158
- }, template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n {{p.title}}\n </button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-view [filters]=\"axes\" #vp\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n[(loading)]=\"loading\"></bizdoc-cube-view>\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
12170
+ args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n @if (view.guide) {\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\n <mat-menu #pmenu>\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"patternChange(p)\">\n {{p.title}}\n </button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-view [filters]=\"axes\" #vp\n (explore)=\"explore($event)\"\n [cube]=\"cube\"\n [view]=\"view\"\n[(loading)]=\"loading\"></bizdoc-cube-view>\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
12159
12171
  }], ctorParameters: () => [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }], propDecorators: { viewPane: [{
12160
12172
  type: ViewChild,
12161
12173
  args: [CubeViewComponent, { static: true }]
@@ -12712,11 +12724,11 @@ class EditInputComponent {
12712
12724
  this._image = null;
12713
12725
  }
12714
12726
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditInputComponent, deps: [{ token: Popup }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
12715
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: { placeholder: "placeholder", text: "text", image: "image", resource: "resource", disabled: "disabled", autofocus: "autofocus", cache: "cache" }, outputs: { change: "change", onOk: "ok", onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "_rte", first: true, predicate: RichTextEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"column\">\n @switch (mode) {\n @case ('html') {\n <ejs-richtexteditor [value]=\"text\"\n (change)=\"_htmlChange($event)\"\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\n }\n @default {\n <mat-form-field floatLabel=\"never\" class=\"flex\">\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\n [(bizdocTagging)]=\"resource\"\n (keydown)=\"_key($event)\"\n (input)=\"_textChange($event)\"\n [value]=\"text\"\n (paste)=\"_paste($event)\"\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\n (focus)=\"onFocus.emit()\"\n (focusout)=\"onBlur.emit()\"\n #textArea></textarea>\n </mat-form-field>\n }\n }\n <div class=\"row nav-toolbar\">\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n </div>\n</div>\n@if (_image) {\n <div>\n <img [src]=\"'data:image/png;base64,'+ _image\" />\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mat-mdc-form-field{-ms-flex:1 auto;-webkit-flex:1 auto;flex:1 auto;padding:0 8px}.mat-mdc-form-field textarea{overflow:hidden}img{max-width:300px}\n"], dependencies: [{ kind: "component", type: i2$9.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "emojiPickerSettings", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatPainterSettings", "formatter", "height", "htmlAttributes", "iframeSettings", "inlineMode", "insertAudioSettings", "insertImageSettings", "insertVideoSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "showTooltip", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterMediaDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeFileUpload", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "fileRemoving", "fileSelected", "fileUploadFailed", "fileUploadSuccess", "fileUploading", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TaggingDirective, selector: "[bizdocTagging]", inputs: ["bizdocTagging"], outputs: ["bizdocTaggingChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12727
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: { placeholder: "placeholder", text: "text", image: "image", resource: "resource", disabled: "disabled", autofocus: "autofocus", cache: "cache" }, outputs: { change: "change", onOk: "ok", onFocus: "focus", onBlur: "blur" }, viewQueries: [{ propertyName: "_textElement", first: true, predicate: ["textArea"], descendants: true }, { propertyName: "_rte", first: true, predicate: RichTextEditorComponent, descendants: true }], ngImport: i0, template: "<div class=\"column\">\n @switch (mode) {\n @case ('html') {\n <ejs-richtexteditor [value]=\"text\"\n (change)=\"_htmlChange($event)\"\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\n }\n @default {\n <mat-form-field floatLabel=\"never\" class=\"flex\">\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\n [(bizdocTagging)]=\"resource\"\n (keydown)=\"_key($event)\"\n (input)=\"_textChange($event)\"\n [value]=\"text\"\n (paste)=\"_paste($event)\"\n [placeholder]=\"(placeholder || 'CommentHere') | translate\"\n (focus)=\"onFocus.emit()\"\n (focusout)=\"onBlur.emit()\"\n #textArea></textarea>\n </mat-form-field>\n }\n }\n <div class=\"row nav-toolbar\">\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n </div>\n</div>\n@if (_image) {\n <div>\n <img [src]=\"'data:image/png;base64,'+ _image\" />\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mat-mdc-form-field{-ms-flex:1 auto;-webkit-flex:1 auto;flex:1 auto;padding:0 8px}.mat-mdc-form-field textarea{overflow:hidden}img{max-width:300px}\n"], dependencies: [{ kind: "component", type: i2$9.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "emojiPickerSettings", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatPainterSettings", "formatter", "height", "htmlAttributes", "iframeSettings", "inlineMode", "insertAudioSettings", "insertImageSettings", "insertVideoSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "showTooltip", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterMediaDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeFileUpload", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "fileRemoving", "fileSelected", "fileUploadFailed", "fileUploadSuccess", "fileUploading", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TaggingDirective, selector: "[bizdocTagging]", inputs: ["bizdocTagging"], outputs: ["bizdocTaggingChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12716
12728
  }
12717
12729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditInputComponent, decorators: [{
12718
12730
  type: Component,
12719
- args: [{ selector: 'bizdoc-edit-text', template: "<div class=\"column\">\n @switch (mode) {\n @case ('html') {\n <ejs-richtexteditor [value]=\"text\"\n (change)=\"_htmlChange($event)\"\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\n }\n @default {\n <mat-form-field floatLabel=\"never\" class=\"flex\">\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\n [(bizdocTagging)]=\"resource\"\n (keydown)=\"_key($event)\"\n (input)=\"_textChange($event)\"\n [value]=\"text\"\n (paste)=\"_paste($event)\"\n [placeholder]=\"(placeholder || 'TypeHere') | translate\"\n (focus)=\"onFocus.emit()\"\n (focusout)=\"onBlur.emit()\"\n #textArea></textarea>\n </mat-form-field>\n }\n }\n <div class=\"row nav-toolbar\">\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n </div>\n</div>\n@if (_image) {\n <div>\n <img [src]=\"'data:image/png;base64,'+ _image\" />\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mat-mdc-form-field{-ms-flex:1 auto;-webkit-flex:1 auto;flex:1 auto;padding:0 8px}.mat-mdc-form-field textarea{overflow:hidden}img{max-width:300px}\n"] }]
12731
+ args: [{ selector: 'bizdoc-edit-text', template: "<div class=\"column\">\n @switch (mode) {\n @case ('html') {\n <ejs-richtexteditor [value]=\"text\"\n (change)=\"_htmlChange($event)\"\n [toolbarSettings]=\"toolbarSettings\"></ejs-richtexteditor>\n }\n @default {\n <mat-form-field floatLabel=\"never\" class=\"flex\">\n <textarea matInput cdkTextareaAutosize [autofocus]=\"autofocus\"\n [(bizdocTagging)]=\"resource\"\n (keydown)=\"_key($event)\"\n (input)=\"_textChange($event)\"\n [value]=\"text\"\n (paste)=\"_paste($event)\"\n [placeholder]=\"(placeholder || 'CommentHere') | translate\"\n (focus)=\"onFocus.emit()\"\n (focusout)=\"onBlur.emit()\"\n #textArea></textarea>\n </mat-form-field>\n }\n }\n <div class=\"row nav-toolbar\">\n <button mat-icon-button (click)=\"_openDocument($event)\" [bizdocTooltip]=\"'Document'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>article</mat-icon></button>\n <button mat-icon-button (click)=\"_openMention($event)\" [bizdocTooltip]=\"'Mention'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>alternate_email</mat-icon></button>\n <button mat-icon-button (click)=\"_openEmoji($event)\" [bizdocTooltip]=\"'Emoji'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\" [disabled]=\"mode !== 'text'\"><mat-icon>insert_emoticon</mat-icon></button>\n <button mat-icon-button (click)=\"_toggleHtml()\" [bizdocTooltip]=\"'Text'|translate\" bizdocTooltipPosition=\"above\" class=\"tool\"><mat-icon>text_fields</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"_ok()\" [disabled]=\"disabled\" class=\"tool\">\n <mat-icon class=\"mat-icon-rtl-mirror\">send</mat-icon>\n </button>\n </div>\n</div>\n@if (_image) {\n <div>\n <img [src]=\"'data:image/png;base64,'+ _image\" />\n <button mat-icon-button (click)=\"_clearImage()\" [disabled]=\"disabled\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n}\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.mat-mdc-form-field{-ms-flex:1 auto;-webkit-flex:1 auto;flex:1 auto;padding:0 8px}.mat-mdc-form-field textarea{overflow:hidden}img{max-width:300px}\n"] }]
12720
12732
  }], ctorParameters: () => [{ type: Popup }, { type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
12721
12733
  type: Input
12722
12734
  }], text: [{
@@ -12765,11 +12777,11 @@ class EditCommentComponent {
12765
12777
  });
12766
12778
  }
12767
12779
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditCommentComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: PromptService }, { token: MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
12768
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: EditCommentComponent, selector: "bizdoc-edit-comment", ngImport: i0, template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\" [text]=\"data.text\" [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n", dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }] }); }
12780
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: EditCommentComponent, selector: "bizdoc-edit-comment", ngImport: i0, template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\"\r\n [text]=\"data.text\"\r\n [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n", dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }] }); }
12769
12781
  }
12770
12782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: EditCommentComponent, decorators: [{
12771
12783
  type: Component,
12772
- args: [{ selector: 'bizdoc-edit-comment', template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\" [text]=\"data.text\" [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n" }]
12784
+ args: [{ selector: 'bizdoc-edit-comment', template: "<bizdoc-edit-text (ok)=\"ok($event)\"\r\n [resource]=\"data.resource\"\r\n [text]=\"data.text\"\r\n [image]=\"data.image\"\r\n [disabled]=\"sending\" autofocus></bizdoc-edit-text>\r\n" }]
12773
12785
  }], ctorParameters: () => [{ type: PopupRef }, { type: undefined, decorators: [{
12774
12786
  type: Inject,
12775
12787
  args: [POPUP_DATA]
@@ -13019,13 +13031,13 @@ class CommentComponent {
13019
13031
  });
13020
13032
  }
13021
13033
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: AccountService }, { token: Popup }, { token: i1$1.Overlay }, { token: MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
13022
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CommentComponent, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" ><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" ><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
13034
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CommentComponent, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" [disableRipple]=\"true\"><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" [disableRipple]=\"true\"><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
13023
13035
  }
13024
13036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentComponent, decorators: [{
13025
13037
  type: Component,
13026
13038
  args: [{ selector: 'bizdoc-comment', host: {
13027
13039
  class: 'comment'
13028
- }, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" ><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" ><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n" }]
13040
+ }, template: "<div class=\"row\">\n <div class=\"comment-body\" #body>\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\n }\n </div>\n @if (me) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\n }\n <mat-menu #menu>\n <ng-template matMenuContent>\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\n <mat-divider></mat-divider>\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\n </ng-template>\n </mat-menu>\n</div>\n<div class=\"row\">\n <div class=\"column\">\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\n <div>\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\n @if (item.edited) {\n &nbsp;<a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\n }\n @if (!me) {\n &nbsp;<a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\n }\n </div>\n </div>\n @if (voting) {\n <div class=\"comment-actions\">\n @if (item.votes > 0 || item.votes < 0) {\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\n }\n <button mat-icon-button (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\" [disableRipple]=\"true\"><mat-icon>thumb_up_alt</mat-icon></button>\n <button mat-icon-button (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\" [disableRipple]=\"true\"><mat-icon>thumb_down_alt</mat-icon></button>\n </div>\n }\n</div>\n<ng-template #previewTemplate>\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n" }]
13029
13041
  }], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: AccountService }, { type: Popup }, { type: i1$1.Overlay }, { type: MailboxService }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
13030
13042
  type: Inject,
13031
13043
  args: [BIZDOC_CONFIG]
@@ -13065,7 +13077,6 @@ class CommentsComponent {
13065
13077
  this._top = false;
13066
13078
  this._textChange = new Subject();
13067
13079
  this._destroy = new Subject();
13068
- this.trackBy = (_, item) => item.id;
13069
13080
  this._preserveDraft = _config.comments && _config.comments.preserveDraft;
13070
13081
  }
13071
13082
  ngOnInit() {
@@ -13232,13 +13243,13 @@ class CommentsComponent {
13232
13243
  window.localStorage.setItem(id, this.input.text);
13233
13244
  }
13234
13245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentsComponent, deps: [{ token: AccountService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: MailboxService }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
13235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CommentsComponent, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column\" #thread (scroll)=\"onScroll($event)\" class=\"comments-thread\">\n @for (c of model.comments; track trackBy($index, c)) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:all-small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:all-small-caps}\n"], dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
13246
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CommentsComponent, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\n @for (c of model.comments; track c.id) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:small-caps}\n"], dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
13236
13247
  }
13237
13248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentsComponent, decorators: [{
13238
13249
  type: Component,
13239
13250
  args: [{ selector: 'bizdoc-comments', host: {
13240
13251
  class: 'comments'
13241
- }, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column\" #thread (scroll)=\"onScroll($event)\" class=\"comments-thread\">\n @for (c of model.comments; track trackBy($index, c)) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:all-small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:all-small-caps}\n"] }]
13252
+ }, template: "@if (!model.comments.length) {\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\n}\n\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\n @for (c of model.comments; track c.id) {\n <ng-container role=\"listitem\">\n @if (!c.deleted || showDeleted) {\n <bizdoc-comment\n [model]=\"model\"\n [item]=\"c\"\n (reply)=\"reply(c)\"\n (deleted)=\"deleted(c)\">\n </bizdoc-comment>\n } @else {\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\n }\n </ng-container>\n }\n</div>\n\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\n\n@if (replyName) {\n <div class=\"comments-reply\">\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\n &nbsp; <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\n </div>\n}\n\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\n</bizdoc-edit-text>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center;font-variant:small-caps}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}.modification{font-variant:small-caps}\n"] }]
13242
13253
  }], ctorParameters: () => [{ type: AccountService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: MailboxService }, { type: HubService }, { type: undefined, decorators: [{
13243
13254
  type: Inject,
13244
13255
  args: [BIZDOC_CONFIG]
@@ -13276,13 +13287,11 @@ class CommentsPaneComponent {
13276
13287
  this._destroy.complete();
13277
13288
  }
13278
13289
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentsPaneComponent, deps: [{ token: TranslateService }, { token: PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
13279
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CommentsPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "_comments", first: true, predicate: CommentsComponent, descendants: true, static: true }], ngImport: i0, template: `<bizdoc-comments [model]=model></bizdoc-comments>`, isInline: true, styles: [":host{min-width:320px}\n"], dependencies: [{ kind: "component", type: CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }] }); }
13290
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CommentsPaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "_comments", first: true, predicate: CommentsComponent, descendants: true, static: true }], ngImport: i0, template: `<bizdoc-comments [model]=model></bizdoc-comments>`, isInline: true, styles: [":host{min-width:320px}\n"], dependencies: [{ kind: "component", type: CommentsComponent, selector: "bizdoc-comments", inputs: ["model"], outputs: ["change"] }] }); }
13280
13291
  }
13281
13292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CommentsPaneComponent, decorators: [{
13282
13293
  type: Component,
13283
- args: [{ template: `<bizdoc-comments [model]=model></bizdoc-comments>`, host: {
13284
- class: 'pane'
13285
- }, styles: [":host{min-width:320px}\n"] }]
13294
+ args: [{ template: `<bizdoc-comments [model]=model></bizdoc-comments>`, styles: [":host{min-width:320px}\n"] }]
13286
13295
  }], ctorParameters: () => [{ type: TranslateService }, { type: PaneRef }], propDecorators: { _comments: [{
13287
13296
  type: ViewChild,
13288
13297
  args: [CommentsComponent, { static: true }]
@@ -13338,11 +13347,11 @@ class FilterTagsComponent {
13338
13347
  this.axesChange.emit(this.axes);
13339
13348
  }
13340
13349
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FilterTagsComponent, deps: [{ token: SessionService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
13341
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: { axes: "axes", cube: "cube", interactive: "interactive" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-set [attr.aria-label]=\"'Filters'|l18n\">\n @for (t of tags; track t) {\n <mat-chip\n [removable]=\"true\"\n (removed)=\"remove(t)\">\n {{t.value}}\n @if (interactive) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip>\n }\n</mat-chip-set>\n", styles: [":host{padding:0 8px}\n"], dependencies: [{ kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: L18nPipe, name: "l18n" }] }); }
13350
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: { axes: "axes", cube: "cube", interactive: "interactive" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-chip-set [attr.aria-label]=\"'Filters'|translate\">\n @for (t of tags; track t) {\n <mat-chip\n [removable]=\"true\"\n (removed)=\"remove(t)\">\n {{t.value}}\n @if (interactive) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip>\n }\n</mat-chip-set>\n", styles: [":host{padding:0 8px}\n"], dependencies: [{ kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13342
13351
  }
13343
13352
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FilterTagsComponent, decorators: [{
13344
13353
  type: Component,
13345
- args: [{ selector: 'bizdoc-cube-tags', template: "<mat-chip-set [attr.aria-label]=\"'Filters'|l18n\">\n @for (t of tags; track t) {\n <mat-chip\n [removable]=\"true\"\n (removed)=\"remove(t)\">\n {{t.value}}\n @if (interactive) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip>\n }\n</mat-chip-set>\n", styles: [":host{padding:0 8px}\n"] }]
13354
+ args: [{ selector: 'bizdoc-cube-tags', template: "<mat-chip-set [attr.aria-label]=\"'Filters'|translate\">\n @for (t of tags; track t) {\n <mat-chip\n [removable]=\"true\"\n (removed)=\"remove(t)\">\n {{t.value}}\n @if (interactive) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip>\n }\n</mat-chip-set>\n", styles: [":host{padding:0 8px}\n"] }]
13346
13355
  }], ctorParameters: () => [{ type: SessionService }, { type: DatasourceService }], propDecorators: { axes: [{
13347
13356
  type: Input
13348
13357
  }], cube: [{
@@ -13590,13 +13599,11 @@ class CubeExplorePaneComponent {
13590
13599
  });
13591
13600
  }
13592
13601
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeExplorePaneComponent, deps: [{ token: PaneRef }, { token: PromptService }, { token: SessionService }, { token: CubeService }, { token: TranslateService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
13593
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CubeExplorePaneComponent, selector: "ng-component", host: { listeners: { "window:resize": "resize()" }, classAttribute: "pane" }, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: ["axes", "cube", "interactive"], outputs: ["axesChange"] }, { kind: "component", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13602
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CubeExplorePaneComponent, selector: "ng-component", host: { listeners: { "window:resize": "resize()" } }, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: ["axes", "cube", "interactive"], outputs: ["axesChange"] }, { kind: "component", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13594
13603
  }
13595
13604
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeExplorePaneComponent, decorators: [{
13596
13605
  type: Component,
13597
- args: [{ host: {
13598
- class: 'pane'
13599
- }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"] }]
13606
+ args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{min-width:360px}\n"] }]
13600
13607
  }], ctorParameters: () => [{ type: PaneRef }, { type: PromptService }, { type: SessionService }, { type: CubeService }, { type: TranslateService }, { type: PanesRouter }], propDecorators: { resize: [{
13601
13608
  type: HostListener,
13602
13609
  args: ['window:resize']
@@ -13728,6 +13735,7 @@ class ReportViewerComponent {
13728
13735
  next: r => {
13729
13736
  this._instance.onBind(r, this.args);
13730
13737
  this._data = r;
13738
+ this.progress = -1;
13731
13739
  }, error: () => this._sb.error(),
13732
13740
  complete: () => this.progress = -1
13733
13741
  })));
@@ -13955,13 +13963,11 @@ class ReportPaneComponent {
13955
13963
  this._destroy.complete();
13956
13964
  }
13957
13965
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ReportPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: i0.ChangeDetectorRef }, { token: PromptService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
13958
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ReportPaneComponent, selector: "bizdoc-report.pane", host: { listeners: { "window.keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\n @if (report.guide) {\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n @if (hasFilters) {\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" class=\"flex\"></bizdoc-report-viewer>\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13966
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ReportPaneComponent, selector: "bizdoc-report.pane", host: { listeners: { "window.keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }, { propertyName: "viewer", first: true, predicate: ReportViewerComponent, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\n @if (report.guide) {\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n @if (hasFilters) {\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" class=\"flex\"></bizdoc-report-viewer>\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}\n"], dependencies: [{ kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ReportViewerComponent, selector: "bizdoc-report-viewer", inputs: ["report", "args"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13959
13967
  }
13960
13968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ReportPaneComponent, decorators: [{
13961
13969
  type: Component,
13962
- args: [{ selector: 'bizdoc-report.pane', host: {
13963
- class: 'pane'
13964
- }, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\n @if (report.guide) {\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n @if (hasFilters) {\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" class=\"flex\"></bizdoc-report-viewer>\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}\n"] }]
13970
+ args: [{ selector: 'bizdoc-report.pane', template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"viewer.execute()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"viewer.exportExcel()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\n @if (report.guide) {\n <button mat-icon-button (click)=\"guide($event)\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n }\n @if (hasFilters) {\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\n <button mat-icon-button (click)=\"openFilter($event)\" bizdocTooltip=\"{{'Filter' | translate}}\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\n }\n</mat-toolbar>\n<bizdoc-report-viewer [report]=\"report\" [args]=\"args\" class=\"flex\"></bizdoc-report-viewer>\n", styles: [":host{min-width:560px;display:block;height:100%;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}\n"] }]
13965
13971
  }], ctorParameters: () => [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: i0.ChangeDetectorRef }, { type: PromptService }, { type: GuideService }], propDecorators: { filterEl: [{
13966
13972
  type: ViewChild,
13967
13973
  args: ['filterEl', { read: ElementRef }]
@@ -14007,13 +14013,11 @@ class ExploreItemPaneComponent {
14007
14013
  this._pane.paramsChange().subscribe(p => this.template = p['template']);
14008
14014
  }
14009
14015
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExploreItemPaneComponent, deps: [{ token: PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
14010
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ExploreItemPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n", dependencies: [{ kind: "component", type: ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] }); }
14016
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ExploreItemPaneComponent, selector: "ng-component", ngImport: i0, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n", dependencies: [{ kind: "component", type: ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }] }); }
14011
14017
  }
14012
14018
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ExploreItemPaneComponent, decorators: [{
14013
14019
  type: Component,
14014
- args: [{ host: {
14015
- class: 'pane'
14016
- }, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n" }]
14020
+ args: [{ template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n" }]
14017
14021
  }], ctorParameters: () => [{ type: PaneRef }] });
14018
14022
 
14019
14023
  class WorkflowNodeComponent {
@@ -14701,13 +14705,11 @@ class WorkflowComponent {
14701
14705
  this._nodedestroy.complete();
14702
14706
  }
14703
14707
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WorkflowComponent, deps: [{ token: PromptService }, { token: SystemService }, { token: PaneRef }, { token: PanesRouter }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
14704
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
14708
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
14705
14709
  }
14706
14710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: WorkflowComponent, decorators: [{
14707
14711
  type: Component,
14708
- args: [{ selector: 'bizdoc-workflow', host: {
14709
- class: 'pane'
14710
- }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
14712
+ args: [{ selector: 'bizdoc-workflow', template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
14711
14713
  }], ctorParameters: () => [{ type: PromptService }, { type: SystemService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }], propDecorators: { symbolPaletteEl: [{
14712
14714
  type: ViewChild,
14713
14715
  args: ['symbolPaletteEl', { static: true }]
@@ -14783,15 +14785,12 @@ class UtilityPaneComponent {
14783
14785
  });
14784
14786
  }
14785
14787
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UtilityPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: i1.HttpClient }, { token: PromptService }, { token: HubService }, { token: BizDocComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
14786
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: UtilityPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "vc", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true }); }
14788
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: UtilityPaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "vc", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: '<ng-container #container></ng-container>', isInline: true }); }
14787
14789
  }
14788
14790
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: UtilityPaneComponent, decorators: [{
14789
14791
  type: Component,
14790
14792
  args: [{
14791
- template: '<ng-container #container></ng-container>',
14792
- host: {
14793
- class: 'pane'
14794
- }
14793
+ template: '<ng-container #container></ng-container>'
14795
14794
  }]
14796
14795
  }], ctorParameters: () => [{ type: SessionService }, { type: PaneRef }, { type: i1.HttpClient }, { type: PromptService }, { type: HubService }, { type: BizDocComponentFactoryResolver }, { type: i0.Injector }], propDecorators: { vc: [{
14797
14796
  type: ViewChild,
@@ -15959,13 +15958,11 @@ class TracePaneComponent {
15959
15958
  });
15960
15959
  }
15961
15960
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TracePaneComponent, deps: [{ token: TranslateService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
15962
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TracePaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "connectorType"] }] }); }
15961
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: TracePaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "connectorType"] }] }); }
15963
15962
  }
15964
15963
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: TracePaneComponent, decorators: [{
15965
15964
  type: Component,
15966
- args: [{ host: {
15967
- class: 'pane'
15968
- }, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"] }]
15965
+ args: [{ template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px}\n"] }]
15969
15966
  }], ctorParameters: () => [{ type: TranslateService }, { type: PaneRef }, { type: PanesRouter }], propDecorators: { trace: [{
15970
15967
  type: ViewChild,
15971
15968
  args: [TraceViewComponent, { static: true }]
@@ -16056,13 +16053,11 @@ class VersionPaneComponent {
16056
16053
  this._router.navigate(['../', 'version', new Date(time).valueOf().encodeId()], { policy: OpenPolicy.Tab });
16057
16054
  }
16058
16055
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: VersionPaneComponent, deps: [{ token: PaneRef }, { token: TranslateService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
16059
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: VersionPaneComponent, selector: "bizdoc-version.pane", host: { classAttribute: "pane" }, ngImport: i0, template: "<div class=\"row\">\n <span class=\"divider\"></span>\n @if (versions.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"'Version' | translate\">\n <mat-icon>filter_list</mat-icon>\n </button>\n }\n <mat-menu #menu>\n @for (l of versions; track l) {\n <button mat-menu-item (click)=\"switch(l.time)\">\n <bizdoc-identity-name [identity]=\"l.userId\" [by]=\"l.byId\" chating=\"none\"></bizdoc-identity-name>\n {{l.time | amCalendar : null : CALENDAR_SPEC}}\n </button>\n }\n </mat-menu>\n</div>\n<div class=\"info mat-body-1\">\n <bizdoc-identity-name [identity]=\"log.userId\" [by]=\"log.byId\"></bizdoc-identity-name>\n | <span>{{log.time | amCalendar : null : CALENDAR_SPEC }}</span>\n</div>\n<div>\n <bizdoc-version-compare [model]=\"model\" [version]=\"log.time\"></bizdoc-version-compare>\n</div>\n", styles: [":host{padding:0 8px;display:block;min-width:350px}\n"], dependencies: [{ kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: VersionCompareComponent, selector: "bizdoc-version-compare", inputs: ["model", "version"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
16056
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: VersionPaneComponent, selector: "bizdoc-version.pane", ngImport: i0, template: "<div class=\"row\">\n <span class=\"divider\"></span>\n @if (versions.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"'Version' | translate\">\n <mat-icon>filter_list</mat-icon>\n </button>\n }\n <mat-menu #menu>\n @for (l of versions; track l) {\n <button mat-menu-item (click)=\"switch(l.time)\">\n <bizdoc-identity-name [identity]=\"l.userId\" [by]=\"l.byId\" chating=\"none\"></bizdoc-identity-name>\n {{l.time | amCalendar : null : CALENDAR_SPEC}}\n </button>\n }\n </mat-menu>\n</div>\n<div class=\"info mat-body-1\">\n <bizdoc-identity-name [identity]=\"log.userId\" [by]=\"log.byId\"></bizdoc-identity-name>\n | <span>{{log.time | amCalendar : null : CALENDAR_SPEC }}</span>\n</div>\n<div>\n <bizdoc-version-compare [model]=\"model\" [version]=\"log.time\"></bizdoc-version-compare>\n</div>\n", styles: [":host{padding:0 8px;display:block;min-width:350px}\n"], dependencies: [{ kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: VersionCompareComponent, selector: "bizdoc-version-compare", inputs: ["model", "version"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
16060
16057
  }
16061
16058
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: VersionPaneComponent, decorators: [{
16062
16059
  type: Component,
16063
- args: [{ selector: 'bizdoc-version.pane', host: {
16064
- class: 'pane'
16065
- }, template: "<div class=\"row\">\n <span class=\"divider\"></span>\n @if (versions.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"'Version' | translate\">\n <mat-icon>filter_list</mat-icon>\n </button>\n }\n <mat-menu #menu>\n @for (l of versions; track l) {\n <button mat-menu-item (click)=\"switch(l.time)\">\n <bizdoc-identity-name [identity]=\"l.userId\" [by]=\"l.byId\" chating=\"none\"></bizdoc-identity-name>\n {{l.time | amCalendar : null : CALENDAR_SPEC}}\n </button>\n }\n </mat-menu>\n</div>\n<div class=\"info mat-body-1\">\n <bizdoc-identity-name [identity]=\"log.userId\" [by]=\"log.byId\"></bizdoc-identity-name>\n | <span>{{log.time | amCalendar : null : CALENDAR_SPEC }}</span>\n</div>\n<div>\n <bizdoc-version-compare [model]=\"model\" [version]=\"log.time\"></bizdoc-version-compare>\n</div>\n", styles: [":host{padding:0 8px;display:block;min-width:350px}\n"] }]
16060
+ args: [{ selector: 'bizdoc-version.pane', template: "<div class=\"row\">\n <span class=\"divider\"></span>\n @if (versions.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [attr.aria-label]=\"'Version' | translate\">\n <mat-icon>filter_list</mat-icon>\n </button>\n }\n <mat-menu #menu>\n @for (l of versions; track l) {\n <button mat-menu-item (click)=\"switch(l.time)\">\n <bizdoc-identity-name [identity]=\"l.userId\" [by]=\"l.byId\" chating=\"none\"></bizdoc-identity-name>\n {{l.time | amCalendar : null : CALENDAR_SPEC}}\n </button>\n }\n </mat-menu>\n</div>\n<div class=\"info mat-body-1\">\n <bizdoc-identity-name [identity]=\"log.userId\" [by]=\"log.byId\"></bizdoc-identity-name>\n | <span>{{log.time | amCalendar : null : CALENDAR_SPEC }}</span>\n</div>\n<div>\n <bizdoc-version-compare [model]=\"model\" [version]=\"log.time\"></bizdoc-version-compare>\n</div>\n", styles: [":host{padding:0 8px;display:block;min-width:350px}\n"] }]
16066
16061
  }], ctorParameters: () => [{ type: PaneRef }, { type: TranslateService }, { type: PanesRouter }] });
16067
16062
 
16068
16063
  class RecipientResolver {
@@ -16322,11 +16317,11 @@ class ScheduleViewComponent {
16322
16317
  this._router.navigate(['mailbox/d', evt.documentId.encodeId()]);
16323
16318
  }
16324
16319
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ScheduleViewComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PanesRouter }, { token: PromptService }], target: i0.ɵɵFactoryTarget.Component }); }
16325
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\" class=\"flex\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5$3.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "toolbarItems", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventDoubleClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5$3.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "maxEventsPerRow", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5$3.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: DateRangePipe, name: "dateRange" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
16320
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5$3.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "toolbarItems", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventDoubleClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5$3.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "maxEventsPerRow", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5$3.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: DateRangePipe, name: "dateRange" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
16326
16321
  }
16327
16322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ScheduleViewComponent, decorators: [{
16328
16323
  type: Component,
16329
- args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\" class=\"flex\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
16324
+ args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
16330
16325
  }], ctorParameters: () => [{ type: SessionService }, { type: MailboxService }, { type: PanesRouter }, { type: PromptService }], propDecorators: { selectedDateChange: [{
16331
16326
  type: Output
16332
16327
  }], selectedDate: [{
@@ -16370,15 +16365,12 @@ class SchedulerPaneComponent {
16370
16365
  });
16371
16366
  }
16372
16367
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SchedulerPaneComponent, deps: [{ token: PanesRouter }, { token: i0.ElementRef }, { token: TranslateService }, { token: PaneRef }], target: i0.ɵɵFactoryTarget.Component }); }
16373
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: SchedulerPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: `<bizdoc-schedule [selectedDate]=date (selectedDateChange)='change($event)'></bizdoc-schedule>`, isInline: true, dependencies: [{ kind: "component", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: ["selectedDate"], outputs: ["selectedDateChange"] }] }); }
16368
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: SchedulerPaneComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-schedule [selectedDate]=date (selectedDateChange)='change($event)'></bizdoc-schedule>`, isInline: true, dependencies: [{ kind: "component", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: ["selectedDate"], outputs: ["selectedDateChange"] }] }); }
16374
16369
  }
16375
16370
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SchedulerPaneComponent, decorators: [{
16376
16371
  type: Component,
16377
16372
  args: [{
16378
- template: `<bizdoc-schedule [selectedDate]=date (selectedDateChange)='change($event)'></bizdoc-schedule>`,
16379
- host: {
16380
- class: 'pane'
16381
- }
16373
+ template: `<bizdoc-schedule [selectedDate]=date (selectedDateChange)='change($event)'></bizdoc-schedule>`
16382
16374
  }]
16383
16375
  }], ctorParameters: () => [{ type: PanesRouter }, { type: i0.ElementRef }, { type: TranslateService }, { type: PaneRef }] });
16384
16376
 
@@ -17073,13 +17065,11 @@ class CubeMatrixPaneComponent extends CubeMatrixBase {
17073
17065
  });
17074
17066
  }
17075
17067
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: PaneRef }, { token: PanesRouter }, { token: TranslateService }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
17076
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"matrix.export()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <span class=\"divider\"></span>\n @if (patterns && patterns.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n }\n <mat-menu #options xPosition=\"before\">\n <!-- patterns -->\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\n <mat-icon>clear_all</mat-icon>\n </button>\n <!-- filters -->\n @for (f of filters; track f) {\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\n <mat-menu #fmenu xPosition=\"before\">\n @for (kv of sources[f.name] | async; track kv) {\n <button mat-menu-item\n (click)=\"filter(f.name, kv.key, kv.value)\">\n {{kv.value}}\n </button>\n }\n </mat-menu>\n }\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\n [filters]=\"axes\" #matrix\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\n [seriesTotalLabel]=\"seriesTotalLabel\"\n [placeAt]=\"placeAt\"\n [indexAt]=\"indexAt\"\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
17068
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: CubeMatrixPaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"matrix.export()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <span class=\"divider\"></span>\n @if (patterns && patterns.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n }\n <mat-menu #options xPosition=\"before\">\n <!-- patterns -->\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\n <mat-icon>clear_all</mat-icon>\n </button>\n <!-- filters -->\n @for (f of filters; track f) {\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\n <mat-menu #fmenu xPosition=\"before\">\n @for (kv of sources[f.name] | async; track kv) {\n <button mat-menu-item\n (click)=\"filter(f.name, kv.key, kv.value)\">\n {{kv.value}}\n </button>\n }\n </mat-menu>\n }\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\n [filters]=\"axes\" #matrix\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\n [seriesTotalLabel]=\"seriesTotalLabel\"\n [placeAt]=\"placeAt\"\n [indexAt]=\"indexAt\"\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
17077
17069
  }
17078
17070
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
17079
17071
  type: Component,
17080
- args: [{ host: {
17081
- class: 'pane'
17082
- }, template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"matrix.export()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <span class=\"divider\"></span>\n @if (patterns && patterns.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n }\n <mat-menu #options xPosition=\"before\">\n <!-- patterns -->\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\n <mat-icon>clear_all</mat-icon>\n </button>\n <!-- filters -->\n @for (f of filters; track f) {\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\n <mat-menu #fmenu xPosition=\"before\">\n @for (kv of sources[f.name] | async; track kv) {\n <button mat-menu-item\n (click)=\"filter(f.name, kv.key, kv.value)\">\n {{kv.value}}\n </button>\n }\n </mat-menu>\n }\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\n [filters]=\"axes\" #matrix\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\n [seriesTotalLabel]=\"seriesTotalLabel\"\n [placeAt]=\"placeAt\"\n [indexAt]=\"indexAt\"\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
17072
+ args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\n data-help=\"download\" (click)=\"matrix.export()\">\n <mat-icon>save_alt</mat-icon>\n </button>\n <span class=\"divider\"></span>\n @if (patterns && patterns.length) {\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\n }\n <mat-menu #options xPosition=\"before\">\n <!-- patterns -->\n @for (p of patterns; track p) {\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\n }\n </mat-menu>\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\n <mat-icon>clear_all</mat-icon>\n </button>\n <!-- filters -->\n @for (f of filters; track f) {\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\n <mat-menu #fmenu xPosition=\"before\">\n @for (kv of sources[f.name] | async; track kv) {\n <button mat-menu-item\n (click)=\"filter(f.name, kv.key, kv.value)\">\n {{kv.value}}\n </button>\n }\n </mat-menu>\n }\n</mat-toolbar>\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\n [filters]=\"axes\" #matrix\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\n [seriesTotalLabel]=\"seriesTotalLabel\"\n [placeAt]=\"placeAt\"\n [indexAt]=\"indexAt\"\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
17083
17073
  }], ctorParameters: () => [{ type: PaneRef }, { type: PanesRouter }, { type: TranslateService }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
17084
17074
  type: ViewChild,
17085
17075
  args: [CubeMatrixComponent, { static: true }]
@@ -17677,15 +17667,12 @@ class NotificationsPaneComponent {
17677
17667
  pane.title = translate.get('Notifications');
17678
17668
  }
17679
17669
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NotificationsPaneComponent, deps: [{ token: PaneRef }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
17680
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NotificationsPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: '<bizdoc-notifications-table></bizdoc-notifications-table>', isInline: true, dependencies: [{ kind: "component", type: NotificationsTableComponent, selector: "bizdoc-notifications-table" }] }); }
17670
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NotificationsPaneComponent, selector: "ng-component", ngImport: i0, template: '<bizdoc-notifications-table></bizdoc-notifications-table>', isInline: true, dependencies: [{ kind: "component", type: NotificationsTableComponent, selector: "bizdoc-notifications-table" }] }); }
17681
17671
  }
17682
17672
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NotificationsPaneComponent, decorators: [{
17683
17673
  type: Component,
17684
17674
  args: [{
17685
- template: '<bizdoc-notifications-table></bizdoc-notifications-table>',
17686
- host: {
17687
- class: 'pane'
17688
- }
17675
+ template: '<bizdoc-notifications-table></bizdoc-notifications-table>'
17689
17676
  }]
17690
17677
  }], ctorParameters: () => [{ type: PaneRef }, { type: TranslateService }] });
17691
17678
 
@@ -17888,15 +17875,12 @@ class ContactsPaneComponent {
17888
17875
  });
17889
17876
  }
17890
17877
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ContactsPaneComponent, deps: [{ token: PaneRef }, { token: TranslateService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
17891
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ContactsPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: `<bizdoc-contacts (selected)="selected($event)"></bizdoc-contacts>`, isInline: true, dependencies: [{ kind: "component", type: ContactsComponent, selector: "bizdoc-contacts", outputs: ["selected"] }] }); }
17878
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ContactsPaneComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-contacts (selected)="selected($event)"></bizdoc-contacts>`, isInline: true, dependencies: [{ kind: "component", type: ContactsComponent, selector: "bizdoc-contacts", outputs: ["selected"] }] }); }
17892
17879
  }
17893
17880
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ContactsPaneComponent, decorators: [{
17894
17881
  type: Component,
17895
17882
  args: [{
17896
- template: `<bizdoc-contacts (selected)="selected($event)"></bizdoc-contacts>`,
17897
- host: {
17898
- class: 'pane'
17899
- }
17883
+ template: `<bizdoc-contacts (selected)="selected($event)"></bizdoc-contacts>`
17900
17884
  }]
17901
17885
  }], ctorParameters: () => [{ type: PaneRef }, { type: TranslateService }, { type: PanesRouter }] });
17902
17886
 
@@ -17924,7 +17908,6 @@ class ConversationComponent {
17924
17908
  this._top = false;
17925
17909
  this._textChange = new Subject();
17926
17910
  this._destroy = new Subject();
17927
- this.trackBy = (_, item) => item.time;
17928
17911
  this._preserveDraft = config.chating && config.chating.preserveDraft;
17929
17912
  }
17930
17913
  ngOnInit() {
@@ -18053,11 +18036,11 @@ class ConversationComponent {
18053
18036
  window.localStorage.setItem(this.contact.id, this._input.text);
18054
18037
  }
18055
18038
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConversationComponent, deps: [{ token: BIZDOC_CONFIG }, { token: ChatService }, { token: HubService }, { token: TranslateService }, { token: AccountService }, { token: PromptService }, { token: i0.ViewContainerRef }, { token: i1$1.Overlay }], target: i0.ɵɵFactoryTarget.Component }); }
18056
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ConversationComponent, selector: "bizdoc-chat-conversation", inputs: { contact: "contact" }, viewQueries: [{ propertyName: "_input", first: true, predicate: EditInputComponent, descendants: true, static: true }, { propertyName: "conversationElement", first: true, predicate: ["conversation"], descendants: true, read: ElementRef, static: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div (wheel)=\"onScroll($event)\" class=\"chat-conversation\" #conversation>\n @for (item of items; track trackBy(i, item); let i = $index) {\n <div class=\"chat-item\" [class.you]=\"item.userId!==contact.id\">\n <div class=\"chat-text\" [innerHTML]=\"item.text|taggingHtml:item.resource\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview(item)\" />\n }\n @if ((i===items.length - 1)||item.userId!==items[i+1].userId) {\n <div class=\"chat-info\">\n <small>\n <bizdoc-identity-name [identity]=\"item.userId\" chating=\"none\">\n </bizdoc-identity-name>\n </small>\n <span class=\"divider\"></span>\n <small class=\"chat-time\" [bizdocTooltip]=\"item.time | amDateFormat: 'lll'\">{{item.time | amCalendar : null : CALENDAR_SPEC }}</small>\n </div>\n }\n </div>\n @if (watermark && ((i < items.length - 1 && items[i+1].time >\n watermark && item.time<=watermark)||(i===items.length - 1 &&item.time<=watermark))) {\n <div class=\"chat-watermark\">\n <mat-icon [bizdocTooltip]=\"'Watched' | translate : (watermark | amTimeAgo)\">done_all</mat-icon>\n </div>\n }\n }\n @empty {\n <bizdoc-none title=\"Chat\" icon=\"chat\"></bizdoc-none>\n }\n</div>\n<div class=\"chat-typing\" [style.visibility]=\"typing ? 'visible':'hidden'\" [innerHTML]=\"(profile?.gender === 'Male' ? 'TypingMale' : profile?.gender === 'Female' ? 'TypingFemale' : 'Typing') | translate : (profile?.nick || profile?.name)\"></div>\n\n<bizdoc-edit-text (ok)=\"send($event)\" (focus)=\"onFocus()\"\n(focusout)=\"onBlur()\" [disabled]=\"sending\" (change)=\"_textChange.next()\"></bizdoc-edit-text>\n<ng-template #previewTemplate let-item=\"item\">\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;flex:1 auto;overflow-y:auto}.chat-conversation{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:0 4px}\n"], dependencies: [{ kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
18039
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ConversationComponent, selector: "bizdoc-chat-conversation", inputs: { contact: "contact" }, viewQueries: [{ propertyName: "_input", first: true, predicate: EditInputComponent, descendants: true, static: true }, { propertyName: "conversationElement", first: true, predicate: ["conversation"], descendants: true, read: ElementRef, static: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div (wheel)=\"onScroll($event)\" class=\"chat-conversation\" #conversation>\n @for (item of items; track item.time; let i = $index) {\n <div class=\"chat-item\" [class.you]=\"item.userId !== contact.id\">\n <div class=\"chat-text\" [innerHTML]=\"item.text | taggingHtml:item.resource\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview(item)\" />\n }\n @if ((i === items.length - 1) || item.userId !== items[i+1].userId) {\n <div class=\"chat-info\">\n <small>\n <bizdoc-identity-name [identity]=\"item.userId\" chating=\"none\">\n </bizdoc-identity-name>\n </small>\n <span class=\"divider\"></span>\n <small class=\"chat-time\" [bizdocTooltip]=\"item.time | amDateFormat: 'lll'\">{{item.time | amCalendar : null : CALENDAR_SPEC }}</small>\n </div>\n }\n </div>\n @if (watermark && ((i < items.length - 1 && items[i+1].time >\n watermark && item.time <= watermark) || (i === items.length - 1 &&item.time <= watermark))) {\n <div class=\"chat-watermark\">\n <mat-icon [bizdocTooltip]=\"'Watched' | translate : (watermark | amTimeAgo)\">done_all</mat-icon>\n </div>\n }\n }\n @empty {\n <bizdoc-none title=\"Chat\" icon=\"chat\"></bizdoc-none>\n }\n</div>\n<div class=\"chat-typing\" [style.visibility]=\"typing ? 'visible':'hidden'\" [innerHTML]=\"(profile?.gender === 'Male' ? 'TypingMale' : profile?.gender === 'Female' ? 'TypingFemale' : 'Typing') | translate : (profile?.nick || profile?.name)\"></div>\n\n<bizdoc-edit-text (ok)=\"send($event)\" (focus)=\"onFocus()\"\n(focusout)=\"onBlur()\" [disabled]=\"sending\" (change)=\"_textChange.next()\"></bizdoc-edit-text>\n<ng-template #previewTemplate let-item=\"item\">\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;flex:1 auto;overflow-y:auto}.chat-conversation{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:0 4px}\n"], dependencies: [{ kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
18057
18040
  }
18058
18041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConversationComponent, decorators: [{
18059
18042
  type: Component,
18060
- args: [{ selector: 'bizdoc-chat-conversation', template: "<div (wheel)=\"onScroll($event)\" class=\"chat-conversation\" #conversation>\n @for (item of items; track trackBy(i, item); let i = $index) {\n <div class=\"chat-item\" [class.you]=\"item.userId!==contact.id\">\n <div class=\"chat-text\" [innerHTML]=\"item.text|taggingHtml:item.resource\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview(item)\" />\n }\n @if ((i===items.length - 1)||item.userId!==items[i+1].userId) {\n <div class=\"chat-info\">\n <small>\n <bizdoc-identity-name [identity]=\"item.userId\" chating=\"none\">\n </bizdoc-identity-name>\n </small>\n <span class=\"divider\"></span>\n <small class=\"chat-time\" [bizdocTooltip]=\"item.time | amDateFormat: 'lll'\">{{item.time | amCalendar : null : CALENDAR_SPEC }}</small>\n </div>\n }\n </div>\n @if (watermark && ((i < items.length - 1 && items[i+1].time >\n watermark && item.time<=watermark)||(i===items.length - 1 &&item.time<=watermark))) {\n <div class=\"chat-watermark\">\n <mat-icon [bizdocTooltip]=\"'Watched' | translate : (watermark | amTimeAgo)\">done_all</mat-icon>\n </div>\n }\n }\n @empty {\n <bizdoc-none title=\"Chat\" icon=\"chat\"></bizdoc-none>\n }\n</div>\n<div class=\"chat-typing\" [style.visibility]=\"typing ? 'visible':'hidden'\" [innerHTML]=\"(profile?.gender === 'Male' ? 'TypingMale' : profile?.gender === 'Female' ? 'TypingFemale' : 'Typing') | translate : (profile?.nick || profile?.name)\"></div>\n\n<bizdoc-edit-text (ok)=\"send($event)\" (focus)=\"onFocus()\"\n(focusout)=\"onBlur()\" [disabled]=\"sending\" (change)=\"_textChange.next()\"></bizdoc-edit-text>\n<ng-template #previewTemplate let-item=\"item\">\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;flex:1 auto;overflow-y:auto}.chat-conversation{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:0 4px}\n"] }]
18043
+ args: [{ selector: 'bizdoc-chat-conversation', template: "<div (wheel)=\"onScroll($event)\" class=\"chat-conversation\" #conversation>\n @for (item of items; track item.time; let i = $index) {\n <div class=\"chat-item\" [class.you]=\"item.userId !== contact.id\">\n <div class=\"chat-text\" [innerHTML]=\"item.text | taggingHtml:item.resource\"></div>\n @if (item.image) {\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview(item)\" />\n }\n @if ((i === items.length - 1) || item.userId !== items[i+1].userId) {\n <div class=\"chat-info\">\n <small>\n <bizdoc-identity-name [identity]=\"item.userId\" chating=\"none\">\n </bizdoc-identity-name>\n </small>\n <span class=\"divider\"></span>\n <small class=\"chat-time\" [bizdocTooltip]=\"item.time | amDateFormat: 'lll'\">{{item.time | amCalendar : null : CALENDAR_SPEC }}</small>\n </div>\n }\n </div>\n @if (watermark && ((i < items.length - 1 && items[i+1].time >\n watermark && item.time <= watermark) || (i === items.length - 1 &&item.time <= watermark))) {\n <div class=\"chat-watermark\">\n <mat-icon [bizdocTooltip]=\"'Watched' | translate : (watermark | amTimeAgo)\">done_all</mat-icon>\n </div>\n }\n }\n @empty {\n <bizdoc-none title=\"Chat\" icon=\"chat\"></bizdoc-none>\n }\n</div>\n<div class=\"chat-typing\" [style.visibility]=\"typing ? 'visible':'hidden'\" [innerHTML]=\"(profile?.gender === 'Male' ? 'TypingMale' : profile?.gender === 'Female' ? 'TypingFemale' : 'Typing') | translate : (profile?.nick || profile?.name)\"></div>\n\n<bizdoc-edit-text (ok)=\"send($event)\" (focus)=\"onFocus()\"\n(focusout)=\"onBlur()\" [disabled]=\"sending\" (change)=\"_textChange.next()\"></bizdoc-edit-text>\n<ng-template #previewTemplate let-item=\"item\">\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\n</ng-template>\n", styles: [":host{display:flex;flex-direction:column;flex:1 auto;overflow-y:auto}.chat-conversation{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:0 4px}\n"] }]
18061
18044
  }], ctorParameters: () => [{ type: undefined, decorators: [{
18062
18045
  type: Inject,
18063
18046
  args: [BIZDOC_CONFIG]
@@ -18103,13 +18086,11 @@ class ConversationPaneComponent {
18103
18086
  this._destroy.complete();
18104
18087
  }
18105
18088
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConversationPaneComponent, deps: [{ token: PaneRef }, { token: TranslateService }, { token: AccountService }, { token: ChatService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
18106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ConversationPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: '<bizdoc-chat-conversation [contact]=contact></bizdoc-chat-conversation>', isInline: true, styles: [":host{min-width:320px}\n"], dependencies: [{ kind: "component", type: ConversationComponent, selector: "bizdoc-chat-conversation", inputs: ["contact"] }] }); }
18089
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ConversationPaneComponent, selector: "ng-component", ngImport: i0, template: '<bizdoc-chat-conversation [contact]=contact></bizdoc-chat-conversation>', isInline: true, styles: [":host{display:flex;min-width:320px}\n"], dependencies: [{ kind: "component", type: ConversationComponent, selector: "bizdoc-chat-conversation", inputs: ["contact"] }] }); }
18107
18090
  }
18108
18091
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ConversationPaneComponent, decorators: [{
18109
18092
  type: Component,
18110
- args: [{ template: '<bizdoc-chat-conversation [contact]=contact></bizdoc-chat-conversation>', host: {
18111
- class: 'pane'
18112
- }, styles: [":host{min-width:320px}\n"] }]
18093
+ args: [{ template: '<bizdoc-chat-conversation [contact]=contact></bizdoc-chat-conversation>', styles: [":host{display:flex;min-width:320px}\n"] }]
18113
18094
  }], ctorParameters: () => [{ type: PaneRef }, { type: TranslateService }, { type: AccountService }, { type: ChatService }, { type: SessionService }] });
18114
18095
 
18115
18096
  class WidgetRef {
@@ -18307,11 +18288,11 @@ class DashboardPaneComponent {
18307
18288
  pane.title = translate.get('Dashboard');
18308
18289
  }
18309
18290
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DashboardPaneComponent, deps: [{ token: PaneRef }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
18310
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DashboardPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, ngImport: i0, template: '<bizdoc-dashboard></bizdoc-dashboard>', isInline: true, styles: [":host{min-width:1200px}\n"], dependencies: [{ kind: "component", type: DashboardComponent, selector: "bizdoc-dashboard" }] }); }
18291
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DashboardPaneComponent, selector: "ng-component", ngImport: i0, template: '<bizdoc-dashboard></bizdoc-dashboard>', isInline: true, styles: [":host{min-width:1200px}\n"], dependencies: [{ kind: "component", type: DashboardComponent, selector: "bizdoc-dashboard" }] }); }
18311
18292
  }
18312
18293
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DashboardPaneComponent, decorators: [{
18313
18294
  type: Component,
18314
- args: [{ template: '<bizdoc-dashboard></bizdoc-dashboard>', host: { class: 'pane' }, styles: [":host{min-width:1200px}\n"] }]
18295
+ args: [{ template: '<bizdoc-dashboard></bizdoc-dashboard>', styles: [":host{min-width:1200px}\n"] }]
18315
18296
  }], ctorParameters: () => [{ type: PaneRef }, { type: TranslateService }] });
18316
18297
 
18317
18298
  class DocumentViewRef {
@@ -18547,6 +18528,7 @@ class OptionsService {
18547
18528
  positionStrategy: position,
18548
18529
  hasBackdrop: true,
18549
18530
  disposeOnNavigation: true,
18531
+ panelClass: 'home-panel',
18550
18532
  backdropClass: 'cdk-overlay-dark-backdrop',
18551
18533
  direction: this._dir.value
18552
18534
  });
@@ -18792,11 +18774,11 @@ class QuickOptionsComponent {
18792
18774
  this._destroy.complete();
18793
18775
  }
18794
18776
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: QuickOptionsComponent, deps: [{ token: PromptService }, { token: i1$2.FormBuilder }, { token: GuideService }, { token: PopupRef, optional: true }, { token: HubService }, { token: SessionService }, { token: i2$2.MatDialog }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
18795
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: QuickOptionsComponent, selector: "bizdoc-quick-options", ngImport: i0, template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" bizdocTooltip=\"Theme\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionsComponent, selector: "bizdoc-options", inputs: ["section"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
18777
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: QuickOptionsComponent, selector: "bizdoc-quick-options", ngImport: i0, template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: OptionsComponent, selector: "bizdoc-options", inputs: ["section"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
18796
18778
  }
18797
18779
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: QuickOptionsComponent, decorators: [{
18798
18780
  type: Component,
18799
- args: [{ selector: 'bizdoc-quick-options', template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" bizdocTooltip=\"Theme\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"] }]
18781
+ args: [{ selector: 'bizdoc-quick-options', template: "<div class=\"column\">\n <div class=\"profile-name\">\n <span class=\"mat-headline-6\">\n @if (profile.byName) {\n {{profile.byName}} \\\n }\n {{profile.name}}\n </span>\n </div>\n <mat-divider />\n <bizdoc-options section=\"notifications\"></bizdoc-options>\n <mat-divider />\n <!--keys-->\n <div *ngTemplateOutlet=\"keysTmpl\"></div>\n <!--themes-->\n @if (themes.length > 1) {\n <div class=\"row center\">\n @for (t of themes; track t) {\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\n }\n </div>\n }\n</div>\n<!--guide-->\n<mat-nav-list role=\"list\">\n <mat-divider></mat-divider>\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\n @for (g of guides; track g) {\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\n }\n</mat-nav-list>\n<mat-divider></mat-divider>\n<!--footer-->\n<div class=\"row\">\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\n {{currentLanguage | translate}}\n <mat-icon>arrow_drop_down</mat-icon>\n <!--'ChangeLanguage'-->\n </button>\n <mat-menu #language>\n @for (l of languages; track l) {\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\n }\n </mat-menu>\n @if (online) {\n <button mat-button [matMenuTriggerFor]=\"availability\">\n {{'ShowAs' | translate : (available | translate | lowercase)}}\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n }\n <mat-menu #availability>\n @for (m of modes; track m) {\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\n @if (!online) {\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\n <mat-icon>wifi_off</mat-icon>\n </button>\n }\n</div>\n<!---->\n<ng-template #keysTmpl>\n <dl class=\"keys mat-body-2\">\n <dt>Alt+n</dt>\n <dd>{{'AltNHelp'|translate}}</dd>\n <dt>Ctrl+s</dt>\n <dd>{{'CtrlSHelp'|translate}}</dd>\n <dt>Alt+s</dt>\n <dd>{{'AltSHelp'|translate}}</dd>\n <dt>Alt+q</dt>\n <dd>{{'AltQHelp'|translate}}</dd>\n <dt>Alt+a</dt>\n <dd>{{'AltAHelp'|translate}}</dd>\n <dt>Alt+h</dt>\n <dd>{{'AltHHelp'|translate}}</dd>\n <dt>Ctrl+.</dt>\n <dd>{{'CtrlDotHelp'|translate}}</dd>\n </dl>\n</ng-template>\n", styles: [".profile-name{margin:8px}.theme{height:22px;width:22px;-moz-border-radius:13px 13px;-webkit-border-radius:13px 13px;border-radius:13px;margin:4px}.theme.active.dark{border:2px solid #f4f4f4}button{font-weight:300!important}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}\n"] }]
18800
18782
  }], ctorParameters: () => [{ type: PromptService }, { type: i1$2.FormBuilder }, { type: GuideService }, { type: PopupRef, decorators: [{
18801
18783
  type: Optional
18802
18784
  }] }, { type: HubService }, { type: SessionService }, { type: i2$2.MatDialog }, { type: undefined, decorators: [{
@@ -18933,7 +18915,7 @@ class SlotsComponent {
18933
18915
  this._title = _title;
18934
18916
  this._injector = _injector;
18935
18917
  this.dialogChange = new EventEmitter();
18936
- this.titleAnimation = 0;
18918
+ this.titleVariant = 0;
18937
18919
  this.panes = [];
18938
18920
  this.tabs = [];
18939
18921
  this._selectedTabIndex = -1;
@@ -19395,7 +19377,7 @@ class SlotsComponent {
19395
19377
  }
19396
19378
  });
19397
19379
  if (pane.mode === 'pane')
19398
- this.titleAnimation++;
19380
+ this.titleVariant++;
19399
19381
  this._cd.detectChanges();
19400
19382
  }
19401
19383
  /** */
@@ -19570,7 +19552,7 @@ class SlotsComponent {
19570
19552
  if (position === undefined)
19571
19553
  position = this.panes.length;
19572
19554
  this.panes.push(pane);
19573
- this.titleAnimation++;
19555
+ this.titleVariant++;
19574
19556
  this._cd.detectChanges();
19575
19557
  const evt = new NavigationStart(pane);
19576
19558
  this._router._events$.next(evt);
@@ -19906,7 +19888,7 @@ class SlotsComponent {
19906
19888
  this._resize();
19907
19889
  }
19908
19890
  enableNavigationArrows(_) {
19909
- const container = this._panesContainerRef.element.nativeElement, scrollLeft = Math.round(container.scrollLeft) + 1;
19891
+ const container = this._panesContainerRef.element.nativeElement, scrollLeft = Math.floor(container.scrollLeft) + 1;
19910
19892
  this.next = this._rtl ? container.clientWidth - scrollLeft < container.scrollWidth :
19911
19893
  scrollLeft + container.clientWidth < container.scrollWidth;
19912
19894
  this.prev = this._rtl ? scrollLeft < 1 : scrollLeft > 1;
@@ -19971,7 +19953,7 @@ class SlotsComponent {
19971
19953
  this._destroy.complete();
19972
19954
  }
19973
19955
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
19974
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panning"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabing"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panning class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane-content\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n<!--next-->\n @if (next) {\n<div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n</div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabing [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:last-child{right:0}.panes{overflow-x:auto;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane-content{display:block;height:inherit;-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto}.panes .pane-content .pane{flex-grow:1}.panes .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$3.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
19956
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n <!--panes-->\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane-content\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n <!--next-->\n @if (next) {\n <div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n </div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:last-child{right:0}.panes{overflow-x:auto;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane-content{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane-content>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$5.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$3.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
19975
19957
  panesAnimation,
19976
19958
  paneAnimation,
19977
19959
  paramAnimation,
@@ -19989,7 +19971,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
19989
19971
  queryAnimation,
19990
19972
  tabsAnimation,
19991
19973
  tabAnimation
19992
- ], template: "<div #panning class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane-content\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n<!--next-->\n @if (next) {\n<div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n</div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabing [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:last-child{right:0}.panes{overflow-x:auto;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane-content{display:block;height:inherit;-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto}.panes .pane-content .pane{flex-grow:1}.panes .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
19974
+ ], template: "<div #panesEl class=\"panes\"\n cdkScrollable\n @panes\n (scroll)=\"enableNavigationArrows($event)\">\n <!---->\n @if (prev) {\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\n <i class=\"material-icons mat-icon-rtl-mirror\">\n arrow_back_ios\n </i>\n </div>\n }\n <!--panes-->\n @for (p of panes; track p; let i = $index) {\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\n (click)=\"select(i)\"\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane-content\" @pane>\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\n </div>\n @if (i < panes.length - 1) {\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\n }\n }\n <!--dialog-->\n @if (dialog) {\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\n }\n <!--next-->\n @if (next) {\n <div class=\"scroll-arrow forward\">\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\n (click)=\"scrollBy(400)\">\n arrow_forward_ios\n </i>\n </div>\n }\n</div>\n<!--tabs-->\n@if (tabs.length) {\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\n <!--title-->\n <div class=\"row tabs-title\">\n @if (swapTab) {\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n }\n <h2>{{group}}</h2>\n @if (!dialog) {\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\n }\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\n </div>\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\n @for (t of tabs; track t; let i = $index) {\n <a mat-tab-link class=\"mat-tab-link\"\n (click)=\"selectedTabIndex = i\"\n [active]=\"selectedTabIndex === i\">\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\n {{t.title}}\n @if (t.dismissable) {\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\n }\n <!--inline=\"true\"-->\n </a>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel class=\"flex\">\n @for (t of tabs; track t; let i = $index) {\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\n </div>\n }\n </mat-tab-nav-panel>\n</div>\n}\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:last-child{right:0}.panes{overflow-x:auto;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane-content{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane-content>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
19993
19975
  }], ctorParameters: () => [{ type: undefined, decorators: [{
19994
19976
  type: Inject,
19995
19977
  args: [PANES_DATA]
@@ -19997,10 +19979,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
19997
19979
  type: Output
19998
19980
  }], _panesContainerRef: [{
19999
19981
  type: ViewChild,
20000
- args: ['panning', { read: ViewContainerRef, static: true }]
19982
+ args: ['panesEl', { read: ViewContainerRef, static: true }]
20001
19983
  }], _tabsElement: [{
20002
19984
  type: ViewChild,
20003
- args: ['tabing']
19985
+ args: ['tabsEl']
20004
19986
  }], _scrollable: [{
20005
19987
  type: ViewChild,
20006
19988
  args: [CdkScrollable, { static: true }]
@@ -20820,11 +20802,11 @@ class HomeComponent extends HomeBase {
20820
20802
  item.instance.onPick();
20821
20803
  }
20822
20804
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: HomeComponent, deps: [{ token: PanesRouter }, { token: SearchService }, { token: MailboxService }, { token: Popup }, { token: PromptService }, { token: GuideService }, { token: i0.Injector }, { token: SessionService }, { token: HubService }, { token: TranslateService }, { token: i3.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
20823
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "main", first: true, predicate: SlotsComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger }], usesInheritance: true, ngImport: i0, template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <!--[class.loading]=\"loading\"-->\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <!--@animate-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleAnimation\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--tool-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-basis:100%}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [submenuAnimation, panesTitleAnimation, searchAnimation] }); }
20805
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "main", first: true, predicate: SlotsComponent, descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger }], usesInheritance: true, ngImport: i0, template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleVariant\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--notifications-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n <!--panes & tabs-->\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;height:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex:1;overflow-x:hidden;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"], dependencies: [{ kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i5$2.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [submenuAnimation, panesTitleAnimation, searchAnimation] }); }
20824
20806
  }
20825
20807
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: HomeComponent, decorators: [{
20826
20808
  type: Component,
20827
- args: [{ selector: 'bizdoc-home', host: { class: 'mat-app-background' }, animations: [submenuAnimation, panesTitleAnimation, searchAnimation], template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <!--[class.loading]=\"loading\"-->\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <!--@animate-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleAnimation\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--tool-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-basis:100%}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"] }]
20809
+ args: [{ selector: 'bizdoc-home', host: { class: 'mat-app-background' }, animations: [submenuAnimation, panesTitleAnimation, searchAnimation], template: "<!-- menu -->\n<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\n [class.dialog]=\"dialog\"\n class=\"nav-menu row\">\n <div class=\"column\">\n <div>\n @if (forms.length) {\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\">\n <button mat-raised-button\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n (click)=\"opennew()\" [disabled]=\"creating\"\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\n <mat-icon>add</mat-icon>\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\n </button>\n </div>\n }\n <mat-nav-list>\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\n data-help=\"dashboard\"\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon>apps</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Dashboard' | translate}}</span>\n </mat-list-item>\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n [class.active]=\"activeMenu === 'mailbox'\"\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\n <mat-icon matListItemIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\" aria-hidden=\"false\">inbox</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Mailbox' | translate}}</span>\n </mat-list-item>\n @if (schedulerEnabled) {\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\"\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\" matListItemTitle>{{ 'Scheduler' | translate}}</span>\n </mat-list-item>\n }\n @if (chatEnabled) {\n <mat-list-item data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\n <mat-icon matListItemIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\" aria-hidden=\"false\">chat</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{ 'Chat' | translate}}</span>\n </mat-list-item>\n }\n <mat-divider></mat-divider>\n @if (enableAnalysis && profile.cubes.length) {\n <mat-list-item (click)=\"opensubmenu('cube')\"\n [class.active]=\"activeMenu === 'cube'\"\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\n <mat-icon matListItemIcon>equalizer</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Cube' | translate}}</span>\n </mat-list-item>\n }\n @if (profile.reports.length) {\n <mat-list-item (click)=\"opensubmenu('reports')\"\n [class.active]=\"activeMenu === 'reports'\"\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\n <mat-icon matListItemIcon>list_alt</mat-icon><span class=\"nav-label\" matListItemTitle>{{'Reports' | translate}}</span>\n </mat-list-item>\n }\n @if (sysAdmin) {\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"opensubmenu('admin')\"\n [class.active]=\"activeMenu === 'admin'\"\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\n <mat-icon matListItemIcon>device_hub</mat-icon>\n <span class=\"nav-label\" matListItemTitle>{{'Workflow' | translate}}</span>\n </mat-list-item>\n }\n </mat-nav-list>\n </div>\n <span class=\"divider\"></span>\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\n <div class=\"sign-in\">\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\n </button>\n <span class=\"divider\"></span>\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\n </button>\n </div>\n </div>\n <!-- -->\n @if (submenu) {\n <div class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\n @if (submenu !== 'new') {\n <div class=\"action\">\n <button mat-icon-button (click)=\"togglePinned()\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">{{pinned ? 'push_pin' : 'menu'}}</mat-icon></button>\n </div>\n }\n @switch (submenu) {\n @case ('new') {\n <bizdoc-new-menu (change)=\"closesubmenu()\"></bizdoc-new-menu>\n }\n @case ('mailbox') {\n <bizdoc-folders-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\n }\n @case ('admin') {\n <bizdoc-admin-menu [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\n }\n @case ('reports') {\n <bizdoc-reports-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\n }\n @case ('cube') {\n <bizdoc-cube-menu [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\n }\n }\n </div>\n }\n @if (dialog) {\n <div class=\"backdrop\"></div>\n }\n</div>\n<div class=\"main\">\n <!-- title -->\n <div class=\"row header\" [@title]=\"main.titleVariant\">\n <h1>\n @if (main.swap) {\n <button mat-icon-button (click)=\"main.back()\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\n }\n @for (p of main.panes; track p; let first = $first) {\n @if (!first) {\n <span class=\"breadcrumbs\">\\</span>\n }\n {{p.title}}\n }\n @if (main.panes[0]?.guide) {\n <button mat-icon-button (click)=\"guide(main.panes[0].guide)\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\n }\n </h1>\n <span class=\"divider\">\n </span>\n <!--search-->\n <input type=\"text\"\n [@search]=\"searching\"\n (@search.done)=\"searching && focus()\"\n #input\n (keydown.escape)=\"collapse($event)\"\n [attr.aria-label]=\"'Search'|translate\"\n [formControl]=\"search\"\n [matAutocomplete]=\"auto\" class=\"search-box\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"goto($event)\" [displayWith]=\"displayWith\">\n @for (o of results | async; track o) {\n <mat-option [value]=\"o\">\n <ng-container (attached)=\"onAttached(o, $event)\" [cdkPortalOutlet]=\"o.portal\"></ng-container>\n </mat-option>\n }\n </mat-autocomplete>\n <button mat-icon-button (click)=\"toggle($event)\" [bizdocTooltip]=\"'Search'|translate\" class=\"tool\"><mat-icon>search</mat-icon></button>\n <!--notifications-->\n <button mat-icon-button (click)=\"notifs($event)\" [bizdocTooltip]=\"'Notifications'|translate\" bizdocTooltipPosition=\"start\" class=\"tool\"\n [attr.aria-label]=\"'Notifications'| translate\"\n data-help=\"notifications\">\n <mat-icon matListItemIcon [matBadge]=\"profile.notificationsCount\" [matBadgeHidden]=\"!profile.notificationsCount\"\n matBadgeColor=\"accent\" aria-hidden=\"false\"\n [class.filled]=\"profile.notificationsCount\">\n {{profile.options.notifications.active ? 'notifications':'notifications_off'}}\n </mat-icon>\n </button>\n </div>\n <!--panes & tabs-->\n <bizdoc-panes-outlet (dialogChange)=\"dialog = $event\" #main></bizdoc-panes-outlet>\n</div>\n", styles: [":host{display:flex;height:100%}::ng-deep .nav-collapsed .mdc-list-item{padding-right:0}::ng-deep [dir=rtl] .nav-collapsed .mdc-list-item{padding-left:0}.nav-menu{z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden;align-self:stretch}.nav-menu .sub-menu .action{display:flex;-ms-flex-direction:row-reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0;text-align:center}.nav-menu .new-container button{min-width:35px;padding:0 14px;height:40px}.nav-menu .new-container button .mat-icon{margin-right:2px;margin-left:2px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;overflow:hidden;margin-bottom:5px;align-items:baseline}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}.main{flex:1;overflow-x:hidden;display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.main .header{align-items:center;min-width:max-content}.main .header h1{font-size:xx-large;margin:12px;font-weight:100}.main .header h1 button{vertical-align:middle}.main .header h1 .breadcrumbs{font-size:smaller}.main .header .search-box{font-size:large}\n"] }]
20828
20810
  }], ctorParameters: () => [{ type: PanesRouter }, { type: SearchService }, { type: MailboxService }, { type: Popup }, { type: PromptService }, { type: GuideService }, { type: i0.Injector }, { type: SessionService }, { type: HubService }, { type: TranslateService }, { type: i3.MatSnackBar }, { type: undefined, decorators: [{
20829
20811
  type: Inject,
20830
20812
  args: [BIZDOC_CONFIG]
@@ -21176,13 +21158,11 @@ class ActionPaneComponent extends ActionBase {
21176
21158
  this._destroy.complete();
21177
21159
  }
21178
21160
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ActionPaneComponent, deps: [{ token: PaneRef }, { token: MailboxService }, { token: BizDocComponentFactoryResolver }, { token: AccountService }, { token: PromptService }, { token: TranslateService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
21179
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ActionPaneComponent, selector: "bizdoc-action-dialog.pane", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<h2 mat-dialog-title>{{action.title}}</h2>\n<mat-dialog-content>\n @if (!action.arguments.length) {\n <p>\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\n </p>\n }\n <ng-container #container>\n </ng-container>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\n</mat-dialog-actions>\n", styles: [":host ::ng-deep form{display:flex}\n"], dependencies: [{ kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
21161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ActionPaneComponent, selector: "bizdoc-action-dialog.pane", viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<h2 mat-dialog-title>{{action.title}}</h2>\n<mat-dialog-content>\n @if (!action.arguments.length) {\n <p>\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\n </p>\n }\n <ng-container #container>\n </ng-container>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\n</mat-dialog-actions>\n", styles: [":host ::ng-deep form{display:flex}\n"], dependencies: [{ kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
21180
21162
  }
21181
21163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ActionPaneComponent, decorators: [{
21182
21164
  type: Component,
21183
- args: [{ selector: 'bizdoc-action-dialog.pane', host: {
21184
- class: 'pane'
21185
- }, template: "<h2 mat-dialog-title>{{action.title}}</h2>\n<mat-dialog-content>\n @if (!action.arguments.length) {\n <p>\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\n </p>\n }\n <ng-container #container>\n </ng-container>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\n</mat-dialog-actions>\n", styles: [":host ::ng-deep form{display:flex}\n"] }]
21165
+ args: [{ selector: 'bizdoc-action-dialog.pane', template: "<h2 mat-dialog-title>{{action.title}}</h2>\n<mat-dialog-content>\n @if (!action.arguments.length) {\n <p>\n {{ 'ActionAsk' | translate : (action.verb || action.title).toLowerCase() }}\n </p>\n }\n <ng-container #container>\n </ng-container>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!valid\" (click)=\"ok()\" color=\"primary\">{{'Yes'|translate}}</button>\n <button mat-button (click)='close()'>{{'No' | translate}}</button>\n</mat-dialog-actions>\n", styles: [":host ::ng-deep form{display:flex}\n"] }]
21186
21166
  }], ctorParameters: () => [{ type: PaneRef }, { type: MailboxService }, { type: BizDocComponentFactoryResolver }, { type: AccountService }, { type: PromptService }, { type: TranslateService }, { type: SessionService }], propDecorators: { container: [{
21187
21167
  type: ViewChild,
21188
21168
  args: ['container']
@@ -21341,7 +21321,7 @@ const PANES_CONFIG = [{
21341
21321
  }
21342
21322
  ]
21343
21323
  }, {
21344
- path: 'chatroom/:id',
21324
+ path: 'chat/:id',
21345
21325
  icon: 'person',
21346
21326
  component: ConversationPaneComponent,
21347
21327
  policy: OpenPolicy.Tab | OpenPolicy.Expandable
@@ -22037,7 +22017,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
22037
22017
  RangeNavigator.Inject(AreaSeries, LineSeries, DateTime, RangeTooltip);
22038
22018
  Sparkline.Inject(SparklineTooltip);
22039
22019
  AccumulationChart$1.Inject(PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection);
22040
- Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Selection, Zoom, Crosshair, DataLabel, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries);
22020
+ Chart$1.Inject(Category, DateTime, Tooltip$1, Legend, Selection, Zoom, Crosshair, DataLabel, BarSeries, AreaSeries, BubbleSeries, ColumnSeries, LineSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, ChartAnnotation);
22041
22021
 
22042
22022
  class SyncfusionDiagramModule {
22043
22023
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SyncfusionDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
@@ -27059,14 +27039,14 @@ class CombinationPicker {
27059
27039
  this.stateChanges.complete();
27060
27040
  }
27061
27041
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CombinationPicker, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i3$1.MatFormField, optional: true }, { token: i1$1.Overlay }, { token: i2$2.MatDialog }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i2$8.FocusMonitor }, { token: i0.ElementRef }, { token: i1$3.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
27062
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
27042
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
27063
27043
  }
27064
27044
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: CombinationPicker, decorators: [{
27065
27045
  type: Component,
27066
27046
  args: [{ selector: 'bizdoc-combination-picker', providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], host: {
27067
27047
  '[class.floating]': 'shouldLabelFloat',
27068
27048
  '[attr.aria-describedby]': 'describedBy'
27069
- }, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}\n"] }]
27049
+ }, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}\n"] }]
27070
27050
  }], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
27071
27051
  type: Optional
27072
27052
  }, {
@@ -29514,43 +29494,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
29514
29494
  }], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: FormRef }] });
29515
29495
 
29516
29496
  let RolesPerformanceComponent = class RolesPerformanceComponent {
29517
- constructor(_elementRef, _router, _session, _translate, _reportRef) {
29497
+ constructor(_elementRef, _router, _accounts, _session, _translate, _reportRef) {
29518
29498
  this._elementRef = _elementRef;
29519
29499
  this._router = _router;
29500
+ this._accounts = _accounts;
29520
29501
  this._session = _session;
29521
29502
  this._translate = _translate;
29522
29503
  this._reportRef = _reportRef;
29523
- this.legendSettings = {};
29504
+ this.maxStd = 0;
29505
+ this.maxDuration = 0;
29506
+ this.actions = {};
29507
+ this.legendSettings = {
29508
+ position: 'Left',
29509
+ enableHighlight: true,
29510
+ };
29511
+ this.tooltip = {
29512
+ enable: true,
29513
+ };
29514
+ this.primaryXAxis = { valueType: 'DateTime' };
29515
+ this.primaryYAxis = {};
29524
29516
  const { cube: name } = _reportRef.options;
29525
- this._cube = name ? this._session.profile.cubes.find(c => c.name === name) : this._session.profile.cubes[0];
29517
+ this._cube = name ?
29518
+ _session.profile.cubes.find(c => c.name === name) :
29519
+ _session.profile.cubes[0];
29520
+ _session.profile.actions.forEach(a => this.actions[a.name] = a);
29526
29521
  }
29522
+ ;
29527
29523
  onBind(data, args) {
29528
- const roles = [];
29529
- data.forEach(d => { });
29530
- const series = [{}];
29531
- new Chart({
29532
- series,
29533
- legendSettings: this.legendSettings,
29534
- axisLabelRender: this.labelRender.bind(this),
29535
- palettes: this._session.accentPalette,
29536
- enableRtl: this._session.inverse,
29537
- pointClick: this.explore.bind(this)
29538
- }, this._elementRef.nativeElement);
29524
+ if (!data.length)
29525
+ return;
29526
+ let accumStd = 0, countStd = 0, accumDuration = 0;
29527
+ data.forEach(e => {
29528
+ if (e.standardTime) {
29529
+ if (e.standardTime > this.maxStd)
29530
+ this.maxStd = e.standardTime;
29531
+ countStd++;
29532
+ accumStd += e.standardTime;
29533
+ }
29534
+ if (e.duration > this.maxDuration)
29535
+ this.maxDuration = e.duration;
29536
+ accumDuration += e.duration;
29537
+ e.yDate = new Date(e.date).valueOf();
29538
+ });
29539
+ let stdAvg = accumStd / countStd, durationAvg = accumDuration / data.length;
29540
+ const ids = data.distinct(e => e.userId);
29541
+ this._accounts.getAll([...ids]).
29542
+ subscribe(users => {
29543
+ const series = [{
29544
+ name: this._translate.get('Standard'),
29545
+ xName: 'yDate',
29546
+ yName: 'standardTime',
29547
+ type: 'Polar',
29548
+ drawType: 'Line',
29549
+ //opacity: .5,
29550
+ marker: {
29551
+ visible: true,
29552
+ shape: 'Triangle',
29553
+ width: 5,
29554
+ height: 5
29555
+ },
29556
+ dataSource: data.filter(e => e.standardTime).
29557
+ sort((e1, e2) => e1.standardTime < e2.standardTime ? -1 : 1),
29558
+ },
29559
+ ...users.map(u => ({
29560
+ dataSource: data.filter(e => e.userId === u.id).
29561
+ sort((e1, e2) => e1.duration < e2.duration ? -1 : 1),
29562
+ name: u.name,
29563
+ type: 'Polar',
29564
+ drawType: 'Line',
29565
+ marker: {
29566
+ visible: true,
29567
+ width: 5, height: 5,
29568
+ shape: 'Pentagon',
29569
+ },
29570
+ xName: 'yDate',
29571
+ yName: 'duration',
29572
+ }))];
29573
+ new Chart({
29574
+ title: this._translate.get('AverageValue', dayjs.duration(durationAvg, 'seconds').format('DD:HH:ss')),
29575
+ titleStyle: { fontFamily: FONT_FAMILY },
29576
+ subTitle: stdAvg ?
29577
+ this._translate.get('StandardValue', dayjs.duration(stdAvg, 'seconds').format('DD:HH:ss')) : null,
29578
+ subTitleStyle: { fontFamily: FONT_FAMILY },
29579
+ // primaryXAxis: { valueType: 'Double' },
29580
+ primaryYAxis: {
29581
+ //minimum: 0, maximum: Math.max(durationAvg, stdAvg)
29582
+ //interval: 60 * 5,
29583
+ },
29584
+ series,
29585
+ // pointRender: this.pointRender.bind(this),
29586
+ tooltip: this.tooltip,
29587
+ tooltipRender: this.tooltipRender.bind(this),
29588
+ legendSettings: this.legendSettings,
29589
+ axisLabelRender: this.labelRender.bind(this),
29590
+ palettes: [this._session.getPrimery(), ...this._session.accentPalette],
29591
+ enableRtl: this._session.inverse,
29592
+ height: '100%',
29593
+ highlightMode: 'Cluster',
29594
+ pointClick: this.explore.bind(this)
29595
+ }, this._elementRef.nativeElement);
29596
+ });
29597
+ }
29598
+ tooltipRender(evt) {
29599
+ evt.text = dayjs.duration(evt.data.pointY, 's').format('DD:HH:ss');
29600
+ }
29601
+ pointRender(evt) {
29602
+ // const action = this.actions[(evt.point.series[evt.point.index] as Model).actionId];
29603
+ // if (action.color) evt.fill = action.color;
29604
+ }
29605
+ labelRender(evt) {
29606
+ switch (evt.axis.name) {
29607
+ case 'primaryYAxis':
29608
+ evt.text = dayjs.duration(evt.value, 's').format('DD:HH:ss');
29609
+ break;
29610
+ case 'primaryXAxis':
29611
+ evt.text = dayjs(evt.value).format('MMM YYYY');
29612
+ break;
29613
+ }
29539
29614
  }
29540
- labelRender(evt) { }
29541
29615
  explore(evt) {
29542
29616
  const { point: { x, yValue }, series: { name: title } } = evt;
29543
- const { cube, series } = this._reportRef.options;
29544
- const axes = {};
29545
- axes[series] = x;
29546
- this._router.navigate(['cube', cube, 'explore'], {
29547
- queryParams: axes,
29548
- });
29549
- }
29550
- ngOnInit() {
29617
+ //const { cube } = this._reportRef.options;
29618
+ // this._router.navigate(PerformanceExplroeCompinent,
29619
+ // {
29620
+ // queryParams: axes,
29621
+ // });
29551
29622
  }
29552
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: RolesPerformanceComponent, deps: [{ token: i0.ElementRef }, { token: RouterImpl }, { token: SessionService }, { token: TranslateService }, { token: ReportRef }], target: i0.ɵɵFactoryTarget.Component }); }
29553
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: RolesPerformanceComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
29623
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: RolesPerformanceComponent, deps: [{ token: i0.ElementRef }, { token: RouterImpl }, { token: AccountService }, { token: SessionService }, { token: TranslateService }, { token: ReportRef }], target: i0.ɵɵFactoryTarget.Component }); }
29624
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: RolesPerformanceComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true, styles: [":host{flex:1}\n"] }); }
29554
29625
  };
29555
29626
  RolesPerformanceComponent = __decorate([
29556
29627
  BizDoc({
@@ -29559,10 +29630,8 @@ RolesPerformanceComponent = __decorate([
29559
29630
  ], RolesPerformanceComponent);
29560
29631
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: RolesPerformanceComponent, decorators: [{
29561
29632
  type: Component,
29562
- args: [{
29563
- template: ''
29564
- }]
29565
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: RouterImpl }, { type: SessionService }, { type: TranslateService }, { type: ReportRef }] });
29633
+ args: [{ template: '', styles: [":host{flex:1}\n"] }]
29634
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: RouterImpl }, { type: AccountService }, { type: SessionService }, { type: TranslateService }, { type: ReportRef }] });
29566
29635
 
29567
29636
  var DocumentStateWidgetComponent_1;
29568
29637
  let DocumentStateWidgetComponent = class DocumentStateWidgetComponent {
@@ -29766,6 +29835,83 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
29766
29835
  args: [{ selector: 'bizdoc-sticky' }]
29767
29836
  }], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
29768
29837
 
29838
+ /** */
29839
+ class Tab {
29840
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: Tab, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29841
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: Tab, selector: "tab", inputs: { name: "name", title: "title" }, queries: [{ propertyName: "template", first: true, predicate: (TemplateRef), descendants: true }], ngImport: i0 }); }
29842
+ }
29843
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: Tab, decorators: [{
29844
+ type: Directive,
29845
+ args: [{
29846
+ selector: 'tab',
29847
+ }]
29848
+ }], propDecorators: { name: [{
29849
+ type: Input
29850
+ }], title: [{
29851
+ type: Input
29852
+ }], template: [{
29853
+ type: ContentChild,
29854
+ args: [(TemplateRef)]
29855
+ }] } });
29856
+ /** */
29857
+ class VirtualTabs {
29858
+ constructor() {
29859
+ this.selectedIndex = 0;
29860
+ }
29861
+ ngOnInit() {
29862
+ // if (!this.tabs.length) throw 'no tabs in bizdoc-v-tabs.';
29863
+ // const tab = this.tabs.find(t => t.name === this.initialName);
29864
+ // this.change(tab || this.tabs[0]);
29865
+ }
29866
+ change(tab) {
29867
+ this.tabs.forEach((t, i) => {
29868
+ t.active = t == tab;
29869
+ if (t.active)
29870
+ this.selectedIndex = i;
29871
+ });
29872
+ this.activeTab = tab;
29873
+ }
29874
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: VirtualTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29875
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: VirtualTabs, selector: "bizdoc-v-tabs", inputs: { initialName: "initialName" }, queries: [{ propertyName: "tabs", predicate: Tab }], ngImport: i0, template: `
29876
+ <div class="row">
29877
+ <mat-nav-list class="nav-list">
29878
+ @for (t of tabs || []; track t) {
29879
+ <mat-list-item (click)="change(t)" [class.active]="activeTab?.name === t.name">
29880
+ <span matListItemTitle>{{t.title | translate}}</span>
29881
+ </mat-list-item>
29882
+ }
29883
+ </mat-nav-list>
29884
+ <div class="separator"></div>
29885
+ <form autocomplete="off" [@v-swape]="selectedIndex">
29886
+ <ng-container *ngTemplateOutlet="activeTab?.template"></ng-container>
29887
+ </form>
29888
+ </div>
29889
+ `, isInline: true, styles: [".separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [verticalSwapAnimation] }); }
29890
+ }
29891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: VirtualTabs, decorators: [{
29892
+ type: Component,
29893
+ args: [{ selector: 'bizdoc-v-tabs', template: `
29894
+ <div class="row">
29895
+ <mat-nav-list class="nav-list">
29896
+ @for (t of tabs || []; track t) {
29897
+ <mat-list-item (click)="change(t)" [class.active]="activeTab?.name === t.name">
29898
+ <span matListItemTitle>{{t.title | translate}}</span>
29899
+ </mat-list-item>
29900
+ }
29901
+ </mat-nav-list>
29902
+ <div class="separator"></div>
29903
+ <form autocomplete="off" [@v-swape]="selectedIndex">
29904
+ <ng-container *ngTemplateOutlet="activeTab?.template"></ng-container>
29905
+ </form>
29906
+ </div>
29907
+ `, animations: [verticalSwapAnimation], styles: [".separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"] }]
29908
+ }], propDecorators: { initialName: [{
29909
+ type: Input
29910
+ }], tabs: [{
29911
+ type: ContentChildren,
29912
+ args: [Tab]
29913
+ }] } });
29914
+
29769
29915
  class SpContainer {
29770
29916
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SpContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29771
29917
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: SpContainer, isStandalone: true, selector: "bizdoc-sp-container", ngImport: i0, template: `<ejs-spreadsheet/>`, isInline: true, dependencies: [{ kind: "ngmodule", type: SyncfusionSpreadsheetModule }, { kind: "component", type: i9$1.SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: ["activeSheetIndex", "allowAutoFill", "allowCellFormatting", "allowChart", "allowConditionalFormat", "allowDataValidation", "allowDelete", "allowEditing", "allowFiltering", "allowFindAndReplace", "allowFreezePane", "allowHyperlink", "allowImage", "allowInsert", "allowMerge", "allowNumberFormatting", "allowOpen", "allowResizing", "allowSave", "allowScrolling", "allowSorting", "allowUndoRedo", "allowWrap", "autoFillSettings", "cellStyle", "cssClass", "currencyCode", "definedNames", "enableClipboard", "enableContextMenu", "enableKeyboardNavigation", "enableKeyboardShortcut", "enablePersistence", "enableRtl", "height", "isProtected", "locale", "openUrl", "password", "saveUrl", "scrollSettings", "selectionSettings", "sheets", "showAggregate", "showFormulaBar", "showRibbon", "showSheetTabs", "width"], outputs: ["actionBegin", "actionComplete", "afterHyperlinkClick", "afterHyperlinkCreate", "beforeCellFormat", "beforeCellRender", "beforeCellSave", "beforeCellUpdate", "beforeConditionalFormat", "beforeDataBound", "beforeHyperlinkClick", "beforeHyperlinkCreate", "beforeOpen", "beforeSave", "beforeSelect", "beforeSort", "cellEdit", "cellEdited", "cellEditing", "cellSave", "contextMenuBeforeClose", "contextMenuBeforeOpen", "contextMenuItemSelect", "created", "dataBound", "dataSourceChanged", "dialogBeforeOpen", "fileMenuBeforeClose", "fileMenuBeforeOpen", "fileMenuItemSelect", "openComplete", "openFailure", "queryCellInfo", "saveComplete", "select", "sortComplete"] }] }); }
@@ -29844,7 +29990,7 @@ class SharedModule {
29844
29990
  AceInput, TimespanInput, AddressInput,
29845
29991
  FileInput,
29846
29992
  TimePicker,
29847
- LayoutComponent, StickyToolbar,
29993
+ LayoutComponent, StickyToolbar, VirtualTabs, Tab,
29848
29994
  TimeField, SignatureField, AddressField, RadioButtonField, ChecklistField, YesNoField, HtmlField, FileField, NumericField, AutocompleteField, CheckboxField, DateField, DateRangeField, ExpressionField,
29849
29995
  InputField, SelectField, SwitchField, TextareaField, ChipsField, TimespanField,
29850
29996
  ReturnActionComponent, AssignActionComponent, MoveToActionComponent,
@@ -29924,7 +30070,7 @@ class SharedModule {
29924
30070
  TagsComponent, QuickCommentComponent,
29925
30071
  CommentsComponent,
29926
30072
  LayoutComponent,
29927
- ActionDialog, StickyToolbar,
30073
+ ActionDialog, StickyToolbar, VirtualTabs, Tab,
29928
30074
  BrowseFilterComponent, CubeFilterComponent, ScheduleViewComponent, ReportViewerComponent, WidgetItemComponent, CubeViewComponent,
29929
30075
  ExploreItemsComponent, ComposeFormComponent, BrowseItemsComponent, NotificationsTableComponent,
29930
30076
  ActionPicker, ConversationComponent,
@@ -30024,7 +30170,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
30024
30170
  AceInput, TimespanInput, AddressInput,
30025
30171
  FileInput,
30026
30172
  TimePicker,
30027
- LayoutComponent, StickyToolbar,
30173
+ LayoutComponent, StickyToolbar, VirtualTabs, Tab,
30028
30174
  TimeField, SignatureField, AddressField, RadioButtonField, ChecklistField, YesNoField, HtmlField, FileField, NumericField, AutocompleteField, CheckboxField, DateField, DateRangeField, ExpressionField,
30029
30175
  InputField, SelectField, SwitchField, TextareaField, ChipsField, TimespanField,
30030
30176
  ReturnActionComponent, AssignActionComponent, MoveToActionComponent,
@@ -30125,7 +30271,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
30125
30271
  TagsComponent, QuickCommentComponent,
30126
30272
  CommentsComponent,
30127
30273
  LayoutComponent,
30128
- ActionDialog, StickyToolbar,
30274
+ ActionDialog, StickyToolbar, VirtualTabs, Tab,
30129
30275
  BrowseFilterComponent, CubeFilterComponent, ScheduleViewComponent, ReportViewerComponent, WidgetItemComponent, CubeViewComponent,
30130
30276
  ExploreItemsComponent, ComposeFormComponent, BrowseItemsComponent, NotificationsTableComponent,
30131
30277
  ActionPicker, ConversationComponent,
@@ -31198,7 +31344,7 @@ let SystemDiffComponent = class SystemDiffComponent {
31198
31344
  this._destroy.complete();
31199
31345
  }
31200
31346
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SystemDiffComponent, deps: [{ token: PromptService }, { token: UtilityRef }, { token: TranslateService }, { token: DatasourceService }, { token: AccountService }], target: i0.ɵɵFactoryTarget.Component }); }
31201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: SystemDiffComponent, selector: "ng-component", host: { classAttribute: "pane" }, viewQueries: [{ propertyName: "contents", first: true, predicate: ["contents"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"properties.toggle()\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<mat-sidenav-container autosize class=\"flex\">\n <mat-sidenav-content>\n <mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\n <div [innerHTML]=\"html | sanitizeHtml\" (mouseleave)=\"focusOut()\" (mousemove)=\"focusIn($event)\" class=\"configuration-diff\" (click)=\"collapse($event)\" #contents></div>\n </mat-sidenav-content>\n <mat-sidenav mode=\"side\" opened #properties class=\"timeline\">\n @if (versions) {\n <mat-nav-list class=\"nav-list\">\n @for (v of versions; track v; let index = $index; let last = $last) {\n @if (!last) {\n <mat-list-item (click)=\"compare(index)\" [class.active]=\"v.time === activeDate\">\n <h3 matListItemTitle>\n {{(v.author || 'System') | userName | async }}\n </h3>\n <p class=\"time\" matListItemLine>\n {{v.time | amCalendar: null: CALENDAR_SPEC }}\n </p>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [":host{flex:1 1 auto}.timeline{border:none;width:150px}.timeline .time{font-size:12px!important}:host ::ng-deep .mat-drawer-inner-container{overflow:auto}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i6$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6$4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
31347
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: SystemDiffComponent, selector: "ng-component", viewQueries: [{ propertyName: "contents", first: true, predicate: ["contents"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"properties.toggle()\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<mat-sidenav-container autosize class=\"flex\">\n <mat-sidenav-content>\n <mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\n <div [innerHTML]=\"html | sanitizeHtml\" (mouseleave)=\"focusOut()\" (mousemove)=\"focusIn($event)\" class=\"configuration-diff\" (click)=\"collapse($event)\" #contents></div>\n </mat-sidenav-content>\n <mat-sidenav mode=\"side\" opened #properties class=\"timeline\">\n @if (versions) {\n <mat-nav-list class=\"nav-list\">\n @for (v of versions; track v; let index = $index; let last = $last) {\n @if (!last) {\n <mat-list-item (click)=\"compare(index)\" [class.active]=\"v.time === activeDate\">\n <h3 matListItemTitle>\n {{(v.author || 'System') | userName | async }}\n </h3>\n <p class=\"time\" matListItemLine>\n {{v.time | amCalendar: null: CALENDAR_SPEC }}\n </p>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [":host{flex:1 1 auto}.timeline{border:none;width:150px}.timeline .time{font-size:12px!important}:host ::ng-deep .mat-drawer-inner-container{overflow:auto}\n"], dependencies: [{ kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i6$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6$4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
31202
31348
  };
31203
31349
  SystemDiffComponent = __decorate([
31204
31350
  BizDoc({ selector: 'bizdoc-configuration-diff' })
@@ -31206,9 +31352,7 @@ SystemDiffComponent = __decorate([
31206
31352
  ], SystemDiffComponent);
31207
31353
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SystemDiffComponent, decorators: [{
31208
31354
  type: Component,
31209
- args: [{ host: {
31210
- class: 'pane'
31211
- }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"properties.toggle()\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<mat-sidenav-container autosize class=\"flex\">\n <mat-sidenav-content>\n <mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\n <div [innerHTML]=\"html | sanitizeHtml\" (mouseleave)=\"focusOut()\" (mousemove)=\"focusIn($event)\" class=\"configuration-diff\" (click)=\"collapse($event)\" #contents></div>\n </mat-sidenav-content>\n <mat-sidenav mode=\"side\" opened #properties class=\"timeline\">\n @if (versions) {\n <mat-nav-list class=\"nav-list\">\n @for (v of versions; track v; let index = $index; let last = $last) {\n @if (!last) {\n <mat-list-item (click)=\"compare(index)\" [class.active]=\"v.time === activeDate\">\n <h3 matListItemTitle>\n {{(v.author || 'System') | userName | async }}\n </h3>\n <p class=\"time\" matListItemLine>\n {{v.time | amCalendar: null: CALENDAR_SPEC }}\n </p>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [":host{flex:1 1 auto}.timeline{border:none;width:150px}.timeline .time{font-size:12px!important}:host ::ng-deep .mat-drawer-inner-container{overflow:auto}\n"] }]
31355
+ args: [{ template: "<mat-toolbar>\n <button mat-icon-button (click)=\"properties.toggle()\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<mat-sidenav-container autosize class=\"flex\">\n <mat-sidenav-content>\n <mat-progress-bar mode=\"buffer\" [value]=progress [bufferValue]=0 [style.visibility]=\"progress > 0 && progress < 100 ? 'visible':'hidden'\"></mat-progress-bar>\n <div [innerHTML]=\"html | sanitizeHtml\" (mouseleave)=\"focusOut()\" (mousemove)=\"focusIn($event)\" class=\"configuration-diff\" (click)=\"collapse($event)\" #contents></div>\n </mat-sidenav-content>\n <mat-sidenav mode=\"side\" opened #properties class=\"timeline\">\n @if (versions) {\n <mat-nav-list class=\"nav-list\">\n @for (v of versions; track v; let index = $index; let last = $last) {\n @if (!last) {\n <mat-list-item (click)=\"compare(index)\" [class.active]=\"v.time === activeDate\">\n <h3 matListItemTitle>\n {{(v.author || 'System') | userName | async }}\n </h3>\n <p class=\"time\" matListItemLine>\n {{v.time | amCalendar: null: CALENDAR_SPEC }}\n </p>\n </mat-list-item>\n }\n }\n </mat-nav-list>\n }\n </mat-sidenav>\n</mat-sidenav-container>\n", styles: [":host{flex:1 1 auto}.timeline{border:none;width:150px}.timeline .time{font-size:12px!important}:host ::ng-deep .mat-drawer-inner-container{overflow:auto}\n"] }]
31212
31356
  }], ctorParameters: () => [{ type: PromptService }, { type: UtilityRef, decorators: [{
31213
31357
  type: Inject,
31214
31358
  args: [UtilityRef]
@@ -31685,7 +31829,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
31685
31829
  this._destroy.complete();
31686
31830
  }
31687
31831
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DocumentTraceComponent, deps: [{ token: UtilityRef }, { token: SystemService }, { 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 }); }
31688
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.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$1, descendants: true }], ngImport: i0, template: "@switch (mode) {\n<!-- diagram -->\n @case ('diagram') {\n<div class=\"column flex\">\n <mat-toolbar>\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n |\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n </mat-toolbar>\n <div class=\"row flex\">\n <!-- timeline -->\n @if (timeline?.items.length > 1) {\n <div class=\"timeline\" data-help=\"timeline\">\n @for (date of timeline.items; track date; let last = $last) {\n <div class=\"item\"\n [class.active]=\"date.time === timeline.date\"\n (click)=\"highlightTime(date.time)\" matRipple>\n <div class=\"title\">\n @if (!last || !timeline.estimate) {\n @if (date.userId) {\n <span class=\"who\">\n {{date.userId | userName | async }}\n </span>\n }\n <br />\n <span class=\"time\">\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\n </span>\n } @else {\n {{'Estimate' | translate}}\n }\n </div>\n <div class=\"indicator-container\">\n <div class=\"indicator\"></div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"flex\" #diagram dir=\"ltr\">\n </div>\n </div>\n</div>\n }\n<!-- browse -->\n @default {\n<div class=\"flex column fill\">\n <mat-toolbar class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </mat-toolbar>\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- table -->\n <mat-table class=\"flex\" [dataSource]=\"dataSource\" matSort>\n <!-- Number column -->\n <ng-container matColumnDef=\"number\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\n </ng-container>\n <!-- Subject column -->\n <ng-container matColumnDef=\"subject\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\n </ng-container>\n <!-- StateId column -->\n <ng-container matColumnDef=\"stateId\">\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\n (click)=\"open(item)\">\n </mat-row>\n </mat-table>\n <!-- range -->\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM' background=\"transparent\"\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\n groupBy=\"Years\" intervalType='Months'\n (changed)='rangeChanged($event)'>\n <e-rangenavigator-series-collection>\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\n </e-rangenavigator-series>\n </e-rangenavigator-series-collection>\n </ejs-rangenavigator>\n</div>\n }\n}\n<!-- args -->\n<ng-template #args>\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\n </mat-form-field>\n </form>\n</ng-template>\n<ng-template #estimate>\n {{'Estimate' | translate}}\n</ng-template>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-mdc-row{cursor:pointer}form{margin:8px}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i11$2.RangeNavigatorComponent, selector: "ejs-rangenavigator", inputs: ["allowIntervalData", "allowSnapping", "animationDuration", "background", "dataSource", "disableRangeSelector", "enableDeferredUpdate", "enableGrouping", "enablePersistence", "enableRtl", "groupBy", "height", "interval", "intervalType", "labelFormat", "labelIntersectAction", "labelPlacement", "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"] }, { kind: "directive", type: i11$2.RangenavigatorSeriesDirective, selector: "e-rangenavigator-series-collection>e-rangenavigator-series", inputs: ["animation", "border", "dashArray", "dataSource", "fill", "opacity", "query", "type", "width", "xName", "yName"] }, { kind: "directive", type: i11$2.RangenavigatorSeriesCollectionDirective, selector: "ej-rangenavigator>e-rangenavigator-series-collection" }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [trigger('element', EnterExitRight)] }); }
31832
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: DocumentTraceComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" } }, 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$1, descendants: true }], ngImport: i0, template: "@switch (mode) {\n<!-- diagram -->\n @case ('diagram') {\n<div class=\"column flex\">\n <mat-toolbar>\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n |\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n </mat-toolbar>\n <div class=\"row flex\">\n <!-- timeline -->\n @if (timeline?.items.length > 1) {\n <div class=\"timeline\" data-help=\"timeline\">\n @for (date of timeline.items; track date; let last = $last) {\n <div class=\"item\"\n [class.active]=\"date.time === timeline.date\"\n (click)=\"highlightTime(date.time)\" matRipple>\n <div class=\"title\">\n @if (!last || !timeline.estimate) {\n @if (date.userId) {\n <span class=\"who\">\n {{date.userId | userName | async }}\n </span>\n }\n <br />\n <span class=\"time\">\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\n </span>\n } @else {\n {{'Estimate' | translate}}\n }\n </div>\n <div class=\"indicator-container\">\n <div class=\"indicator\"></div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"flex\" #diagram dir=\"ltr\">\n </div>\n </div>\n</div>\n }\n<!-- browse -->\n @default {\n<div class=\"flex column fill\">\n <mat-toolbar class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </mat-toolbar>\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- table -->\n <mat-table class=\"flex\" [dataSource]=\"dataSource\" matSort>\n <!-- Number column -->\n <ng-container matColumnDef=\"number\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\n </ng-container>\n <!-- Subject column -->\n <ng-container matColumnDef=\"subject\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\n </ng-container>\n <!-- StateId column -->\n <ng-container matColumnDef=\"stateId\">\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\n (click)=\"open(item)\">\n </mat-row>\n </mat-table>\n <!-- range -->\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM' background=\"transparent\"\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\n groupBy=\"Years\" intervalType='Months'\n (changed)='rangeChanged($event)'>\n <e-rangenavigator-series-collection>\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\n </e-rangenavigator-series>\n </e-rangenavigator-series-collection>\n </ejs-rangenavigator>\n</div>\n }\n}\n<!-- args -->\n<ng-template #args>\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\n </mat-form-field>\n </form>\n</ng-template>\n<ng-template #estimate>\n {{'Estimate' | translate}}\n</ng-template>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-mdc-row{cursor:pointer}form{margin:8px}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i11$2.RangeNavigatorComponent, selector: "ejs-rangenavigator", inputs: ["allowIntervalData", "allowSnapping", "animationDuration", "background", "dataSource", "disableRangeSelector", "enableDeferredUpdate", "enableGrouping", "enablePersistence", "enableRtl", "groupBy", "height", "interval", "intervalType", "labelFormat", "labelIntersectAction", "labelPlacement", "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"] }, { kind: "directive", type: i11$2.RangenavigatorSeriesDirective, selector: "e-rangenavigator-series-collection>e-rangenavigator-series", inputs: ["animation", "border", "dashArray", "dataSource", "fill", "opacity", "query", "type", "width", "xName", "yName"] }, { kind: "directive", type: i11$2.RangenavigatorSeriesCollectionDirective, selector: "ej-rangenavigator>e-rangenavigator-series-collection" }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$2.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$2.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [trigger('element', EnterExitRight)] }); }
31689
31833
  };
31690
31834
  DocumentTraceComponent = __decorate([
31691
31835
  BizDoc({ selector: 'bizdoc-trace-utility' })
@@ -31693,9 +31837,7 @@ DocumentTraceComponent = __decorate([
31693
31837
  ], DocumentTraceComponent);
31694
31838
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DocumentTraceComponent, decorators: [{
31695
31839
  type: Component,
31696
- args: [{ host: {
31697
- class: 'pane'
31698
- }, animations: [trigger('element', EnterExitRight)], template: "@switch (mode) {\n<!-- diagram -->\n @case ('diagram') {\n<div class=\"column flex\">\n <mat-toolbar>\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n |\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n </mat-toolbar>\n <div class=\"row flex\">\n <!-- timeline -->\n @if (timeline?.items.length > 1) {\n <div class=\"timeline\" data-help=\"timeline\">\n @for (date of timeline.items; track date; let last = $last) {\n <div class=\"item\"\n [class.active]=\"date.time === timeline.date\"\n (click)=\"highlightTime(date.time)\" matRipple>\n <div class=\"title\">\n @if (!last || !timeline.estimate) {\n @if (date.userId) {\n <span class=\"who\">\n {{date.userId | userName | async }}\n </span>\n }\n <br />\n <span class=\"time\">\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\n </span>\n } @else {\n {{'Estimate' | translate}}\n }\n </div>\n <div class=\"indicator-container\">\n <div class=\"indicator\"></div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"flex\" #diagram dir=\"ltr\">\n </div>\n </div>\n</div>\n }\n<!-- browse -->\n @default {\n<div class=\"flex column fill\">\n <mat-toolbar class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </mat-toolbar>\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- table -->\n <mat-table class=\"flex\" [dataSource]=\"dataSource\" matSort>\n <!-- Number column -->\n <ng-container matColumnDef=\"number\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\n </ng-container>\n <!-- Subject column -->\n <ng-container matColumnDef=\"subject\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\n </ng-container>\n <!-- StateId column -->\n <ng-container matColumnDef=\"stateId\">\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\n (click)=\"open(item)\">\n </mat-row>\n </mat-table>\n <!-- range -->\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM' background=\"transparent\"\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\n groupBy=\"Years\" intervalType='Months'\n (changed)='rangeChanged($event)'>\n <e-rangenavigator-series-collection>\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\n </e-rangenavigator-series>\n </e-rangenavigator-series-collection>\n </ejs-rangenavigator>\n</div>\n }\n}\n<!-- args -->\n<ng-template #args>\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\n </mat-form-field>\n </form>\n</ng-template>\n<ng-template #estimate>\n {{'Estimate' | translate}}\n</ng-template>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-mdc-row{cursor:pointer}form{margin:8px}\n"] }]
31840
+ args: [{ animations: [trigger('element', EnterExitRight)], template: "@switch (mode) {\n<!-- diagram -->\n @case ('diagram') {\n<div class=\"column flex\">\n <mat-toolbar>\n <button mat-icon-button (click)=\"browse()\" [bizdocTooltip]=\"'Back' | translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\n |\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n </mat-toolbar>\n <div class=\"row flex\">\n <!-- timeline -->\n @if (timeline?.items.length > 1) {\n <div class=\"timeline\" data-help=\"timeline\">\n @for (date of timeline.items; track date; let last = $last) {\n <div class=\"item\"\n [class.active]=\"date.time === timeline.date\"\n (click)=\"highlightTime(date.time)\" matRipple>\n <div class=\"title\">\n @if (!last || !timeline.estimate) {\n @if (date.userId) {\n <span class=\"who\">\n {{date.userId | userName | async }}\n </span>\n }\n <br />\n <span class=\"time\">\n {{date.time | amDateFormat: 'MMM Do H:mm' }}\n </span>\n } @else {\n {{'Estimate' | translate}}\n }\n </div>\n <div class=\"indicator-container\">\n <div class=\"indicator\"></div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"flex\" #diagram dir=\"ltr\">\n </div>\n </div>\n</div>\n }\n<!-- browse -->\n @default {\n<div class=\"flex column fill\">\n <mat-toolbar class=\"row\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </mat-toolbar>\n <mat-progress-bar [mode]=\"loading\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- table -->\n <mat-table class=\"flex\" [dataSource]=\"dataSource\" matSort>\n <!-- Number column -->\n <ng-container matColumnDef=\"number\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.number}} </mat-cell>\n </ng-container>\n <!-- Subject column -->\n <ng-container matColumnDef=\"subject\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\"> {{item.subject}} </mat-cell>\n </ng-container>\n <!-- StateId column -->\n <ng-container matColumnDef=\"stateId\">\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\n <mat-cell *matCellDef=\"let item\" class=\"data-column\">\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\n </mat-cell>\n </ng-container>\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let item; columns: displayedColumns;\"\n (click)=\"open(item)\">\n </mat-row>\n </mat-table>\n <!-- range -->\n <ejs-rangenavigator valueType='DateTime' [value]=range labelFormat='MMM' background=\"transparent\"\n [theme]=\"theme\" labelIntersectAction='Hide' enableGrouping=\"false\"\n groupBy=\"Years\" intervalType='Months'\n (changed)='rangeChanged($event)'>\n <e-rangenavigator-series-collection>\n <e-rangenavigator-series [dataSource]='rangeData' [fill]=\"accent\" type='Area' xName='date' yName='count' width=2>\n </e-rangenavigator-series>\n </e-rangenavigator-series-collection>\n </ejs-rangenavigator>\n</div>\n }\n}\n<!-- args -->\n<ng-template #args>\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n <mat-form-field>\n <input matInput type=\"search\" #search formControlName=\"search\" data-help=\"search\" [placeholder]=\"'Number'|translate\" />\n <mat-icon matSuffix class=\"mat-icon-rtl-mirror\">search</mat-icon>\n </mat-form-field>\n <mat-form-field>\n <bizdoc-select type=\"forms\" [placeholder]=\"'Form'|translate\" formControlName=\"formId\"></bizdoc-select>\n </mat-form-field>\n </form>\n</ng-template>\n<ng-template #estimate>\n {{'Estimate' | translate}}\n</ng-template>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}:host ::ng-deep .mat-mdc-row{cursor:pointer}form{margin:8px}\n"] }]
31699
31841
  }], ctorParameters: () => [{ type: UtilityRef, decorators: [{
31700
31842
  type: Inject,
31701
31843
  args: [UtilityRef]
@@ -32700,7 +32842,7 @@ let ProfilerComponent = class ProfilerComponent {
32700
32842
  this._destroy.complete();
32701
32843
  }
32702
32844
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ProfilerComponent, deps: [{ token: PromptService }, { token: UtilityRef }, { token: SessionService }, { token: i2$2.MatDialog }, { token: DocumentInfo }, { token: ChatInfo }, { token: GuideService }, { token: PanesRouter }, { token: i0.ChangeDetectorRef }, { token: PaneRef }, { token: TranslateService }, { token: AccountService }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
32703
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\n (optionSelected)=\"change($event)\">\n @for (u of users$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\" matSuffix>search</mat-icon>\n </mat-form-field>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n</mat-toolbar>\n@if (data) {\n <div class=\"row wrap\">\n <!-- info -->\n <mat-card class=\"flex\">\n <mat-card-header>\n <mat-card-title>\n <span>{{data.info.name}}</span>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <br />\n </mat-card-content>\n <mat-card-actions>\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n <mat-card class=\"flex\" data-help=\"activity\">\n <mat-card-header>\n <mat-card-title>\n {{'Activity' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\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)\">\n <e-series-collection>\n </e-series-collection>\n </ejs-chart>\n </mat-card-content>\n </mat-card>\n <!-- pending -->\n <mat-card class=\"flex\" data-help=\"pending\">\n <mat-card-header>\n <mat-card-title>\n {{'Pending' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.pending.length) {\n <table class=\"mat-mdc-table\">\n <thead>\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-header-cell\"></td>\n <td class=\"mat-mdc-header-cell\"></td>\n </tr>\n </thead>\n <tbody role=\"rowgroup\">\n @for (r of data.pending; track r) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n </mat-card>\n <!-- positions -->\n <mat-card class=\"flex\" data-help=\"positions\">\n <mat-card-header>\n <mat-card-title>\n {{'Positions' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.positions.length) {\n <table class=\"mat-mdc-table\">\n @for (p of data.positions; track p) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\n <td class=\"mat-mdc-cell\">\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n <mat-card-actions>\n <span class=\"divider\"></span>\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>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n<!-- assign dialog -->\n<ng-template #assignTpl>\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\n <mat-dialog-content>\n <form autocomplete=\"off\" class=\"column\">\n <mat-form-field>\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\n @for (u of assignable$ | async; track u) {\n <mat-option [value]=\"u.id\">{{u.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </form>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n </mat-dialog-actions>\n</ng-template>\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i11$2.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"] }, { kind: "directive", type: i11$2.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i11.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i2$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: DifferencePipe, name: "amDifference" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: RolePipe, name: "role" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
32845
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" } }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\n (optionSelected)=\"change($event)\">\n @for (u of users$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\" matSuffix>search</mat-icon>\n </mat-form-field>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n</mat-toolbar>\n@if (data) {\n <div class=\"row wrap\">\n <!-- info -->\n <mat-card class=\"flex\">\n <mat-card-header>\n <mat-card-title>\n <span>{{data.info.name}}</span>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <br />\n </mat-card-content>\n <mat-card-actions>\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n <mat-card class=\"flex\" data-help=\"activity\">\n <mat-card-header>\n <mat-card-title>\n {{'Activity' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\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)\">\n <e-series-collection>\n </e-series-collection>\n </ejs-chart>\n </mat-card-content>\n </mat-card>\n <!-- pending -->\n <mat-card class=\"flex\" data-help=\"pending\">\n <mat-card-header>\n <mat-card-title>\n {{'Pending' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.pending.length) {\n <table class=\"mat-mdc-table\">\n <thead>\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-header-cell\"></td>\n <td class=\"mat-mdc-header-cell\"></td>\n </tr>\n </thead>\n <tbody role=\"rowgroup\">\n @for (r of data.pending; track r) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n </mat-card>\n <!-- positions -->\n <mat-card class=\"flex\" data-help=\"positions\">\n <mat-card-header>\n <mat-card-title>\n {{'Positions' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.positions.length) {\n <table class=\"mat-mdc-table\">\n @for (p of data.positions; track p) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\n <td class=\"mat-mdc-cell\">\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n <mat-card-actions>\n <span class=\"divider\"></span>\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>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n<!-- assign dialog -->\n<ng-template #assignTpl>\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\n <mat-dialog-content>\n <form autocomplete=\"off\" class=\"column\">\n <mat-form-field>\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\n @for (u of assignable$ | async; track u) {\n <mat-option [value]=\"u.id\">{{u.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </form>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n </mat-dialog-actions>\n</ng-template>\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i11$2.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"] }, { kind: "directive", type: i11$2.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i11.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i2$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: DifferencePipe, name: "amDifference" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: RolePipe, name: "role" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
32704
32846
  };
32705
32847
  ProfilerComponent = __decorate([
32706
32848
  BizDoc({ selector: 'bizdoc-user-profiler' })
@@ -32708,9 +32850,7 @@ ProfilerComponent = __decorate([
32708
32850
  ], ProfilerComponent);
32709
32851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ProfilerComponent, decorators: [{
32710
32852
  type: Component,
32711
- args: [{ host: {
32712
- class: 'pane'
32713
- }, template: "<mat-toolbar>\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\n (optionSelected)=\"change($event)\">\n @for (u of users$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\" matSuffix>search</mat-icon>\n </mat-form-field>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n</mat-toolbar>\n@if (data) {\n <div class=\"row wrap\">\n <!-- info -->\n <mat-card class=\"flex\">\n <mat-card-header>\n <mat-card-title>\n <span>{{data.info.name}}</span>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <br />\n </mat-card-content>\n <mat-card-actions>\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n <mat-card class=\"flex\" data-help=\"activity\">\n <mat-card-header>\n <mat-card-title>\n {{'Activity' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\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)\">\n <e-series-collection>\n </e-series-collection>\n </ejs-chart>\n </mat-card-content>\n </mat-card>\n <!-- pending -->\n <mat-card class=\"flex\" data-help=\"pending\">\n <mat-card-header>\n <mat-card-title>\n {{'Pending' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.pending.length) {\n <table class=\"mat-mdc-table\">\n <thead>\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-header-cell\"></td>\n <td class=\"mat-mdc-header-cell\"></td>\n </tr>\n </thead>\n <tbody role=\"rowgroup\">\n @for (r of data.pending; track r) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n </mat-card>\n <!-- positions -->\n <mat-card class=\"flex\" data-help=\"positions\">\n <mat-card-header>\n <mat-card-title>\n {{'Positions' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.positions.length) {\n <table class=\"mat-mdc-table\">\n @for (p of data.positions; track p) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\n <td class=\"mat-mdc-cell\">\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n <mat-card-actions>\n <span class=\"divider\"></span>\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>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n<!-- assign dialog -->\n<ng-template #assignTpl>\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\n <mat-dialog-content>\n <form autocomplete=\"off\" class=\"column\">\n <mat-form-field>\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\n @for (u of assignable$ | async; track u) {\n <mat-option [value]=\"u.id\">{{u.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </form>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n </mat-dialog-actions>\n</ng-template>\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"] }]
32853
+ args: [{ template: "<mat-toolbar>\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\n (optionSelected)=\"change($event)\">\n @for (u of users$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\" matSuffix>search</mat-icon>\n </mat-form-field>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\n</mat-toolbar>\n@if (data) {\n <div class=\"row wrap\">\n <!-- info -->\n <mat-card class=\"flex\">\n <mat-card-header>\n <mat-card-title>\n <span>{{data.info.name}}</span>\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <br />\n </mat-card-content>\n <mat-card-actions>\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n <mat-card class=\"flex\" data-help=\"activity\">\n <mat-card-header>\n <mat-card-title>\n {{'Activity' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\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)\">\n <e-series-collection>\n </e-series-collection>\n </ejs-chart>\n </mat-card-content>\n </mat-card>\n <!-- pending -->\n <mat-card class=\"flex\" data-help=\"pending\">\n <mat-card-header>\n <mat-card-title>\n {{'Pending' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.pending.length) {\n <table class=\"mat-mdc-table\">\n <thead>\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-header-cell\"></td>\n <td class=\"mat-mdc-header-cell\"></td>\n </tr>\n </thead>\n <tbody role=\"rowgroup\">\n @for (r of data.pending; track r) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n </mat-card>\n <!-- positions -->\n <mat-card class=\"flex\" data-help=\"positions\">\n <mat-card-header>\n <mat-card-title>\n {{'Positions' | translate}}\n </mat-card-title>\n </mat-card-header>\n <mat-card-content>\n @if (data.positions.length) {\n <table class=\"mat-mdc-table\">\n @for (p of data.positions; track p) {\n <tr class=\"mat-mdc-row\">\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\n <td class=\"mat-mdc-cell\">\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n } @else {\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\n }\n </mat-card-content>\n <mat-card-actions>\n <span class=\"divider\"></span>\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>\n </mat-card-actions>\n </mat-card>\n </div>\n}\n<!-- assign dialog -->\n<ng-template #assignTpl>\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\n <mat-dialog-content>\n <form autocomplete=\"off\" class=\"column\">\n <mat-form-field>\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\n @for (u of assignable$ | async; track u) {\n <mat-option [value]=\"u.id\">{{u.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </form>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n </mat-dialog-actions>\n</ng-template>\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"] }]
32714
32854
  }], ctorParameters: () => [{ type: PromptService }, { type: UtilityRef }, { type: SessionService }, { type: i2$2.MatDialog }, { type: DocumentInfo }, { type: ChatInfo }, { type: GuideService }, { type: PanesRouter }, { type: i0.ChangeDetectorRef }, { type: PaneRef }, { type: TranslateService }, { type: AccountService }, { type: i1$2.FormBuilder }], propDecorators: { chart: [{
32715
32855
  type: ViewChild,
32716
32856
  args: ['activity']
@@ -35045,14 +35185,14 @@ let MatrixViewDesignComponent = class MatrixViewDesignComponent extends Designer
35045
35185
  });
35046
35186
  }
35047
35187
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MatrixViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35048
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: MatrixViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n @if (view) {\n<h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n<div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</div>\n<div class=\"row actions\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\n</div>\n } @else {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length>1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n </mat-select>\n @if (form.controls.xAxis.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n }\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Filters'|translate}}</mat-label>\n <mat-select formControlName=\"filters\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\n </mat-form-field>\n </div>\n <h2 class=\"mat-h2 row\">\n {{'Summary'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(form.controls.sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table class=\"mat-mdc-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, form.controls.sum)\">\n @for (s of form.controls.sum.controls; track s; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell\" style=\"width: 100%\">{{s.controls.title.value}}</td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"form.controls.sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n</ng-container>\n }\n}\n<ng-template #sumform let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n </mat-form-field>\n <mat-radio-group formControlName=\"axis\">\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\n </mat-radio-group>\n <mat-form-field>\n <mat-label>{{'Calculate'|translate}}</mat-label>\n <mat-select formControlName=\"calculate\">\n <mat-option>{{'None'|translate}}</mat-option>\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"row\"></div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: MatrixViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n @if (view) {\n<h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n<div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</div>\n<div class=\"row actions\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\n</div>\n } @else {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length>1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n </mat-select>\n @if (form.controls.xAxis.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n }\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Filters'|translate}}</mat-label>\n <mat-select formControlName=\"filters\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\n </mat-form-field>\n </div>\n <h2 class=\"mat-h2 row\">\n {{'Summary'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(form.controls.sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table class=\"mat-mdc-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, form.controls.sum)\">\n @for (s of form.controls.sum.controls; track s; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell\" style=\"width: 100%\">{{s.controls.title.value}}</td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"form.controls.sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n</ng-container>\n }\n}\n<ng-template #sumform let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n </mat-form-field>\n <mat-radio-group formControlName=\"axis\">\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\n </mat-radio-group>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Calculate'|translate}}</mat-label>\n <mat-select formControlName=\"calculate\">\n <mat-option>{{'None'|translate}}</mat-option>\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Value'|translate}}</mat-label>\n <input matInput formControlName=\"value\" />\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Format'|translate}}</mat-label>\n <mat-select formControlName=\"format\">\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n <mat-option value=\"Percent\">{{'Percent'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", 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]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35049
35189
  };
35050
35190
  MatrixViewDesignComponent = __decorate([
35051
35191
  BizDoc({ selector: 'matrix-view-designer' })
35052
35192
  ], MatrixViewDesignComponent);
35053
35193
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: MatrixViewDesignComponent, decorators: [{
35054
35194
  type: Component,
35055
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n @if (view) {\n<h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n<div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</div>\n<div class=\"row actions\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\n</div>\n } @else {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length>1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n </mat-select>\n @if (form.controls.xAxis.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n }\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Filters'|translate}}</mat-label>\n <mat-select formControlName=\"filters\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\n </mat-form-field>\n </div>\n <h2 class=\"mat-h2 row\">\n {{'Summary'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(form.controls.sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table class=\"mat-mdc-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, form.controls.sum)\">\n @for (s of form.controls.sum.controls; track s; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell\" style=\"width: 100%\">{{s.controls.title.value}}</td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"form.controls.sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n</ng-container>\n }\n}\n<ng-template #sumform let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n </mat-form-field>\n <mat-radio-group formControlName=\"axis\">\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\n </mat-radio-group>\n <mat-form-field>\n <mat-label>{{'Calculate'|translate}}</mat-label>\n <mat-select formControlName=\"calculate\">\n <mat-option>{{'None'|translate}}</mat-option>\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"row\"></div>\n </ng-container>\n</ng-template>\n" }]
35195
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n @if (view) {\n<h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n<div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</div>\n<div class=\"row actions\">\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\n</div>\n } @else {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length>1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n </mat-select>\n @if (form.controls.xAxis.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n }\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Filters'|translate}}</mat-label>\n <mat-select formControlName=\"filters\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\n </mat-form-field>\n </div>\n <h2 class=\"mat-h2 row\">\n {{'Summary'|translate}}\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"add(form.controls.sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n </h2>\n <table class=\"mat-mdc-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, form.controls.sum)\">\n @for (s of form.controls.sum.controls; track s; let index = $index) {\n <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n <td class=\"mat-mdc-cell\">\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n </td>\n <td class=\"mat-mdc-cell\" style=\"width: 100%\">{{s.controls.title.value}}</td>\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n <button mat-icon-button (click)=\"form.controls.sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n </td>\n </tr>\n }\n </table>\n</ng-container>\n }\n}\n<ng-template #sumform let-form=\"form\">\n <ng-container [formGroup]=\"form\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Title'|translate}}</mat-label>\n <input matInput formControlName=\"title\" required />\n </mat-form-field>\n <mat-radio-group formControlName=\"axis\">\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\n </mat-radio-group>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Calculate'|translate}}</mat-label>\n <mat-select formControlName=\"calculate\">\n <mat-option>{{'None'|translate}}</mat-option>\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'Value'|translate}}</mat-label>\n <input matInput formControlName=\"value\" />\n </mat-form-field>\n <mat-form-field class=\"flex\">\n <mat-label>{{'Format'|translate}}</mat-label>\n <mat-select formControlName=\"format\">\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n <mat-option value=\"Percent\">{{'Percent'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n </ng-container>\n</ng-template>\n" }]
35056
35196
  }] });
35057
35197
 
35058
35198
  let ChartViewDesignComponent = class ChartViewDesignComponent extends DesignerCubeElementComponent {
@@ -35486,19 +35626,18 @@ let PerformanceReportDesignComponent = class PerformanceReportDesignComponent ex
35486
35626
  super(...arguments);
35487
35627
  this.form = this._fb.group({
35488
35628
  cube: null,
35489
- series: null,
35490
35629
  filters: this._fb.group({}),
35491
35630
  });
35492
35631
  }
35493
35632
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PerformanceReportDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35494
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: PerformanceReportDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35633
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: PerformanceReportDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35495
35634
  };
35496
35635
  PerformanceReportDesignComponent = __decorate([
35497
35636
  BizDoc({ selector: 'performance-report-designer' })
35498
35637
  ], PerformanceReportDesignComponent);
35499
35638
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: PerformanceReportDesignComponent, decorators: [{
35500
35639
  type: Component,
35501
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\n }\n </mat-select>\n @if (form.controls.series.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n }\n </mat-form-field>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35640
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n @for (c of cubes; track c) {\n <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35502
35641
  }] });
35503
35642
 
35504
35643
  let DocumentStateWidgetDesignComponent = class DocumentStateWidgetDesignComponent extends DesignerCubeElementComponent {
@@ -36337,5 +36476,5 @@ function withRoute(routes) {
36337
36476
  * Generated bundle index. Do not edit.
36338
36477
  */
36339
36478
 
36340
- export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
36479
+ export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, Tab, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, VirtualTabs, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
36341
36480
  //# sourceMappingURL=bizdoc-core.mjs.map