@bizdoc/core 2.1.2 → 2.1.3

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 (113) hide show
  1. package/esm2022/lib/admin/architecture/designer.component.mjs +1 -1
  2. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +2 -3
  3. package/esm2022/lib/admin/core/color-picker.input.mjs +2 -3
  4. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +42 -38
  5. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +30 -28
  6. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +13 -11
  7. package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -7
  8. package/esm2022/lib/admin/form/designer/section.component.mjs +5 -7
  9. package/esm2022/lib/admin/form/designer/settings.component.mjs +5 -7
  10. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -2
  11. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +4 -4
  12. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -4
  13. package/esm2022/lib/admin/patterns/patterns.component.mjs +7 -5
  14. package/esm2022/lib/admin/permissions/permissions.component.mjs +7 -5
  15. package/esm2022/lib/admin/positions/positions.component.mjs +57 -54
  16. package/esm2022/lib/browse/browse-items.component.mjs +57 -43
  17. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  18. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +25 -24
  19. package/esm2022/lib/chat/chat-info.mjs +2 -2
  20. package/esm2022/lib/chat/contacts.component.mjs +7 -5
  21. package/esm2022/lib/chat/conversation.component.mjs +27 -22
  22. package/esm2022/lib/compose/action/action-picker.component.mjs +9 -7
  23. package/esm2022/lib/compose/action/action.base.mjs +4 -3
  24. package/esm2022/lib/compose/action/moveto-action.component.mjs +1 -1
  25. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +2 -2
  26. package/esm2022/lib/compose/comments/comment.component.mjs +9 -8
  27. package/esm2022/lib/compose/comments/comments.component.mjs +15 -13
  28. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +10 -8
  29. package/esm2022/lib/compose/compose-resolve.service.mjs +10 -5
  30. package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
  31. package/esm2022/lib/compose/copy/copy.dialog.mjs +2 -3
  32. package/esm2022/lib/compose/document.mobile.component.mjs +3 -2
  33. package/esm2022/lib/compose/document.pane.component.mjs +3 -2
  34. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +10 -6
  35. package/esm2022/lib/compose/tag/tags.component.mjs +3 -5
  36. package/esm2022/lib/compose/trace/trace.component.mjs +4 -3
  37. package/esm2022/lib/core/avatar/avatar.component.mjs +2 -2
  38. package/esm2022/lib/core/component-factory-resolver.mjs +6 -4
  39. package/esm2022/lib/core/guide/guide.component.mjs +17 -18
  40. package/esm2022/lib/core/http.interceptor.mjs +9 -6
  41. package/esm2022/lib/core/identity/identity.component.mjs +2 -2
  42. package/esm2022/lib/core/info/location-info.component.mjs +2 -3
  43. package/esm2022/lib/core/inputs/combination-picker-body.mjs +9 -8
  44. package/esm2022/lib/core/inputs/combination-picker.mjs +1 -1
  45. package/esm2022/lib/core/inputs/combination-pool.mjs +6 -6
  46. package/esm2022/lib/core/inputs/file.input.mjs +28 -28
  47. package/esm2022/lib/core/mailbox.service.mjs +69 -63
  48. package/esm2022/lib/core/slots/router.service.mjs +4 -2
  49. package/esm2022/lib/core/slots/slots.component.mjs +13 -13
  50. package/esm2022/lib/core/tagging/edit-input.component.mjs +9 -12
  51. package/esm2022/lib/core/tagging/tagging.directive.mjs +5 -6
  52. package/esm2022/lib/core/tagging/tagging.pipe.mjs +2 -2
  53. package/esm2022/lib/core/translate.service.mjs +3 -3
  54. package/esm2022/lib/cube/accum/accum.component.mjs +10 -8
  55. package/esm2022/lib/cube/chart/chart.component.mjs +10 -8
  56. package/esm2022/lib/cube/cube.service.mjs +81 -73
  57. package/esm2022/lib/cube/explore/explore-items.component.mjs +38 -34
  58. package/esm2022/lib/cube/explore/item-resolver.service.mjs +13 -15
  59. package/esm2022/lib/cube/grid/grid.component.mjs +24 -23
  60. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +25 -20
  61. package/esm2022/lib/cube/matrix/matrix.base.mjs +6 -6
  62. package/esm2022/lib/cube/matrix/popup.component.mjs +7 -4
  63. package/esm2022/lib/cube/matrix/table.component.mjs +24 -20
  64. package/esm2022/lib/cube/parallel/parallel.component.mjs +12 -10
  65. package/esm2022/lib/cube/pivot/pivot.component.mjs +1 -1
  66. package/esm2022/lib/cube/sum/sum.component.mjs +15 -16
  67. package/esm2022/lib/dashboard/cube/compare.widget.mjs +5 -4
  68. package/esm2022/lib/dashboard/cube/documents.widget.mjs +10 -8
  69. package/esm2022/lib/dashboard/recents/recents.widget.mjs +9 -7
  70. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -2
  71. package/esm2022/lib/desktop.module.mjs +4 -4
  72. package/esm2022/lib/home/home.desktop.component.mjs +16 -14
  73. package/esm2022/lib/home/home.mobile.component.mjs +2 -2
  74. package/esm2022/lib/home/notifications/notifications.component.mjs +2 -2
  75. package/esm2022/lib/home/tools.component.mjs +2 -2
  76. package/esm2022/lib/impersonate/impersonate.component.mjs +10 -9
  77. package/esm2022/lib/mobile.module.mjs +4 -4
  78. package/esm2022/lib/notifications/notifications-table.component.mjs +2 -2
  79. package/esm2022/lib/notifications/notifications.component-base.mjs +2 -2
  80. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +2 -2
  81. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -2
  82. package/esm2022/lib/notifications/types/notification-base.mjs +2 -2
  83. package/esm2022/lib/options/options.component.mjs +5 -8
  84. package/esm2022/lib/options/options.service.mjs +7 -5
  85. package/esm2022/lib/reports/cube/usage.component.mjs +3 -2
  86. package/esm2022/lib/routes.desktop.mjs +3 -3
  87. package/esm2022/lib/routes.mobile.mjs +17 -9
  88. package/esm2022/lib/scheduler/schedule.component.mjs +18 -17
  89. package/esm2022/lib/search/search.service.mjs +2 -2
  90. package/esm2022/lib/views/cube/cube-base.mjs +3 -3
  91. package/esm2022/lib/views/cube/explore.component.mjs +13 -11
  92. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +20 -8
  93. package/esm2022/public-api.mjs +2 -2
  94. package/fesm2022/bizdoc-core.mjs +906 -784
  95. package/fesm2022/bizdoc-core.mjs.map +1 -1
  96. package/lib/admin/indices/manage-cube-index.component.d.ts +1 -1
  97. package/lib/admin/positions/positions.component.d.ts +1 -3
  98. package/lib/browse/browse-items.component.d.ts +1 -1
  99. package/lib/compose/can-deactivate-changes.service.d.ts +3 -3
  100. package/lib/compose/compose-resolve.service.d.ts +3 -3
  101. package/lib/compose/document.mobile.component.d.ts +1 -1
  102. package/lib/compose/document.pane.component.d.ts +1 -1
  103. package/lib/core/component-factory-resolver.d.ts +3 -1
  104. package/lib/core/mailbox.service.d.ts +2 -2
  105. package/lib/core/tagging/tagging.directive.d.ts +1 -1
  106. package/lib/cube/explore/item-resolver.service.d.ts +8 -9
  107. package/lib/cube/pivot/pivot.component.d.ts +1 -2
  108. package/lib/dashboard/cube/compare.widget.d.ts +1 -1
  109. package/lib/dashboard/score/compare-groups.widget.d.ts +1 -1
  110. package/lib/notifications/types/liked.notification.d.ts +1 -1
  111. package/lib/reports/cube/usage.component.d.ts +1 -1
  112. package/package.json +2 -2
  113. package/public-api.d.ts +1 -1
@@ -1,10 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { TemplateRef, Component, Optional, Self, Input, Output, HostBinding, ViewChild, InjectionToken, Injectable, Inject, Injector, ViewContainerRef, Directive, Pipe, EventEmitter, ElementRef, HostListener, NgModule, ViewChildren, Host, SkipSelf, ViewEncapsulation, APP_INITIALIZER, ContentChild } from '@angular/core';
2
+ import { TemplateRef, Component, Optional, Self, Input, Output, HostBinding, ViewChild, InjectionToken, Injectable, Inject, Injector, ViewContainerRef, Directive, Pipe, EventEmitter, ElementRef, HostListener, NgModule, ViewChildren, inject, Host, SkipSelf, ViewEncapsulation, APP_INITIALIZER, ContentChild } from '@angular/core';
3
3
  import * as i4 from '@angular/material/form-field';
4
4
  import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
5
- import { Subject, merge, Observable, firstValueFrom, of, fromEvent, forkJoin, takeUntil, shareReplay as shareReplay$1, tap as tap$1, map as map$1, BehaviorSubject, interval, takeWhile, filter as filter$1, debounceTime as debounceTime$1, from, first as first$1, throwError, switchMap as switchMap$1, isObservable, startWith as startWith$1, EMPTY } from 'rxjs';
6
- import { filter, map, tap, shareReplay, takeUntil as takeUntil$1, debounceTime, switchMap, startWith, first, take, finalize, catchError } from 'rxjs/operators';
7
- import { ESCAPE, RIGHT_ARROW, LEFT_ARROW, ENTER, COMMA, UP_ARROW, DOWN_ARROW, SEMICOLON } from '@angular/cdk/keycodes';
5
+ import { Subject, merge, Observable, firstValueFrom, of, fromEvent, forkJoin, takeUntil, shareReplay as shareReplay$1, tap as tap$1, map as map$1, BehaviorSubject, interval, takeWhile, catchError, filter as filter$1, debounceTime as debounceTime$1, from, first as first$1, throwError, switchMap as switchMap$1, isObservable, startWith as startWith$1, EMPTY } from 'rxjs';
6
+ import { filter, map, tap, shareReplay, takeUntil as takeUntil$1, debounceTime, switchMap, startWith, first, take, finalize, catchError as catchError$1 } from 'rxjs/operators';
8
7
  import * as i5$6 from '@angular/cdk/portal';
9
8
  import { TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
10
9
  import * as i1 from '@angular/forms';
@@ -62,7 +61,7 @@ import * as i5$1 from '@angular/material/autocomplete';
62
61
  import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
63
62
  import { trigger, state, style, transition, animate, query, stagger, animateChild, keyframes } from '@angular/animations';
64
63
  import * as i1$4 from '@angular/router';
65
- import { NavigationStart as NavigationStart$1, ActivationEnd, RouterModule } from '@angular/router';
64
+ import { NavigationStart as NavigationStart$1, ActivationEnd, ActivatedRouteSnapshot, RouterModule } from '@angular/router';
66
65
  import * as i2$4 from '@angular/material/dialog';
67
66
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
68
67
  import * as i8 from '@angular/material/snack-bar';
@@ -119,6 +118,7 @@ import customParseFormat from 'dayjs/plugin/customParseFormat';
119
118
  import localizedFormat from 'dayjs/plugin/localizedFormat';
120
119
  import { Platform } from '@angular/cdk/platform';
121
120
  import { SelectionModel } from '@angular/cdk/collections';
121
+ import { ENTER, COMMA, SEMICOLON } from '@angular/cdk/keycodes';
122
122
  import * as i12 from '@syncfusion/ej2-angular-charts';
123
123
  import { AccumulationChart, ChartModule, AccumulationChartModule, SparklineModule, RangeNavigatorModule, RangeTooltipService, AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService, SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService, StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService, BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService, CrosshairService, CategoryService, DateTimeService, LogarithmicService, LegendService, ZoomService, DataLabelService, SelectionService, ChartAnnotationService, WaterfallSeriesService, RangeAreaSeriesService, PolarSeriesService, RadarSeriesService, DateTimeCategoryService, MultiLevelLabelService, ParetoSeriesService, TooltipRenderService, SparklineTooltipService, SplineRangeAreaSeriesService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, RangeNavigator, AreaSeries, LineSeries, DateTime, RangeTooltip, Sparkline, SparklineTooltip, PieSeries, PyramidSeries, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationAnnotation, AccumulationLegend, AccumulationSelection, Chart as Chart$1, Category, Tooltip as Tooltip$1, Legend, Selection as Selection$1, Zoom, Crosshair, DataLabel, BarSeries, BubbleSeries, ColumnSeries, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingStepAreaSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries, AccumulationChartComponent, ChartComponent } from '@syncfusion/ej2-angular-charts';
124
124
  import { Workbook } from '@syncfusion/ej2-excel-export';
@@ -605,7 +605,7 @@ class ColorPicker {
605
605
  hasBackdrop: true,
606
606
  backdropClass: 'cdk-overlay-transparent-backdrop'
607
607
  });
608
- merge(ref.backdropClick(), ref.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE))).subscribe(() => this.close());
608
+ merge(ref.backdropClick(), ref.keydownEvents().pipe(filter(k => k.key === 'Escape'))).subscribe(() => this.close());
609
609
  return ref;
610
610
  }
611
611
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ColorPicker, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1$1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i3.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -2666,7 +2666,7 @@ class TranslateService {
2666
2666
  if ('en' === this._session.language)
2667
2667
  return Promise.resolve();
2668
2668
  const observables = files.map(f => this._http.get('/assets/i18n/' + f.replace('{0}', culture)).pipe(tap(loadCldr)));
2669
- return forkJoin(observables).toPromise();
2669
+ return firstValueFrom(forkJoin(observables));
2670
2670
  }
2671
2671
  get(key, ...args) {
2672
2672
  return this._get(key, this._gender, args);
@@ -4677,13 +4677,15 @@ function decoratorOfType(decoratedType, decoratorType) {
4677
4677
  annotation instanceof decoratorType);
4678
4678
  }
4679
4679
  class BizDocComponentFactoryResolver {
4680
- constructor() {
4680
+ constructor(_appRef) {
4681
+ this._appRef = _appRef;
4681
4682
  //_appRef
4682
4683
  // .componentTypes.forEach(t => {
4683
4684
  // const type = t['__bizdoc'] as ComponentType;
4684
4685
  // REGISTRY[type.selector] = t;
4685
4686
  // });
4686
4687
  //this._factories = Array.from(_componentFactoryResolver['_factories'].keys());
4688
+ // _appRef.
4687
4689
  }
4688
4690
  component(componentSelector) {
4689
4691
  const comp = REGISTRY[componentSelector];
@@ -4691,12 +4693,12 @@ class BizDocComponentFactoryResolver {
4691
4693
  throw (`No component registered using @BizDoc({selector: '${componentSelector}'}).`);
4692
4694
  return comp;
4693
4695
  }
4694
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BizDocComponentFactoryResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4696
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BizDocComponentFactoryResolver, deps: [{ token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
4695
4697
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BizDocComponentFactoryResolver }); }
4696
4698
  }
4697
4699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: BizDocComponentFactoryResolver, decorators: [{
4698
4700
  type: Injectable
4699
- }], ctorParameters: function () { return []; } });
4701
+ }], ctorParameters: function () { return [{ type: i0.ApplicationRef }]; } });
4700
4702
 
4701
4703
  class LayoutComponent {
4702
4704
  /** layout ctor */
@@ -4930,8 +4932,7 @@ class GuideComponent {
4930
4932
  withGrowAfterOpen();
4931
4933
  if (outOfBound(element)) {
4932
4934
  element.scrollIntoView({ behavior: 'smooth' });
4933
- await interval(150).pipe(takeWhile(() => outOfBound(element))).
4934
- toPromise();
4935
+ await firstValueFrom(interval(150).pipe(takeWhile(() => outOfBound(element))));
4935
4936
  }
4936
4937
  execute &&
4937
4938
  element.click();
@@ -4949,19 +4950,20 @@ class GuideComponent {
4949
4950
  this._data.name && localStorage.removeItem(this._data.name + '_guide_step');
4950
4951
  }
4951
4952
  keydown(evt) {
4952
- if (!this.working)
4953
- switch (evt.keyCode) {
4954
- case LEFT_ARROW:
4955
- this._moveBy(this._session.direction === 'ltr' ? -1 : 1);
4956
- break;
4957
- case RIGHT_ARROW:
4958
- this._moveBy(this._session.direction === 'ltr' ? 1 : -1);
4959
- break;
4960
- case ESCAPE:
4961
- this.close();
4962
- evt.stopPropagation();
4963
- break;
4964
- }
4953
+ if (this.working)
4954
+ return;
4955
+ switch (evt.key) {
4956
+ case 'ArrowLeft':
4957
+ this._moveBy(this._session.direction === 'ltr' ? -1 : 1);
4958
+ break;
4959
+ case 'ArrowRight':
4960
+ this._moveBy(this._session.direction === 'ltr' ? 1 : -1);
4961
+ break;
4962
+ case 'Escape':
4963
+ this.close();
4964
+ evt.stopPropagation();
4965
+ break;
4966
+ }
4965
4967
  }
4966
4968
  next() {
4967
4969
  this._moveBy(1);
@@ -5391,27 +5393,29 @@ class MailboxService {
5391
5393
  // // implementation
5392
5394
  //}
5393
5395
  return new Observable(observe => {
5394
- this._http.request(req).subscribe(event => {
5395
- if (event instanceof ProgressEvent) {
5396
- // observe.next(new UploadEvent(
5397
- // file.name,
5398
- // (event as ProgressEvent).loaded,
5399
- // (event as ProgressEvent).total
5400
- // ));
5401
- }
5402
- else if (event instanceof HttpResponse) {
5403
- const res = event;
5404
- if (res.status === 200) {
5405
- const model = res.body;
5406
- observe.next(model);
5396
+ this._http.request(req).subscribe({
5397
+ next: event => {
5398
+ if (event instanceof ProgressEvent) {
5399
+ // observe.next(new UploadEvent(
5400
+ // file.name,
5401
+ // (event as ProgressEvent).loaded,
5402
+ // (event as ProgressEvent).total
5403
+ // ));
5407
5404
  }
5408
- else
5409
- observe.error({ status: res.status, error: res.body });
5405
+ else if (event instanceof HttpResponse) {
5406
+ const res = event;
5407
+ if (res.status === 200) {
5408
+ const model = res.body;
5409
+ observe.next(model);
5410
+ }
5411
+ else
5412
+ observe.error({ status: res.status, error: res.body });
5413
+ observe.complete();
5414
+ }
5415
+ }, error: e => {
5416
+ observe.error(e);
5410
5417
  observe.complete();
5411
5418
  }
5412
- }, e => {
5413
- observe.error(e);
5414
- observe.complete();
5415
5419
  });
5416
5420
  return {
5417
5421
  unsubscribe() {
@@ -5438,25 +5442,27 @@ class MailboxService {
5438
5442
  const req = new HttpRequest('POST', url, fd, {
5439
5443
  reportProgress: true,
5440
5444
  });
5441
- this._http.request(req).subscribe(event => {
5442
- if (event instanceof ProgressEvent) {
5443
- // This is an upload progress event. Compute and show the % done:
5444
- //const percentDone = Math.round(100 * event.loaded / event.total);
5445
- //console.log(`File is ${percentDone}% uploaded.`);
5446
- }
5447
- else if (event instanceof HttpResponse) {
5448
- const res = event;
5449
- if (res.status === 200) {
5450
- const model = res.body;
5451
- observe.next(isArray(files) ? model : model[0]);
5445
+ this._http.request(req).subscribe({
5446
+ next: event => {
5447
+ if (event instanceof ProgressEvent) {
5448
+ // This is an upload progress event. Compute and show the % done:
5449
+ //const percentDone = Math.round(100 * event.loaded / event.total);
5450
+ //console.log(`File is ${percentDone}% uploaded.`);
5452
5451
  }
5453
- else
5454
- observe.error({ status: res.status, error: res.body });
5452
+ else if (event instanceof HttpResponse) {
5453
+ const res = event;
5454
+ if (res.status === 200) {
5455
+ const model = res.body;
5456
+ observe.next(isArray(files) ? model : model[0]);
5457
+ }
5458
+ else
5459
+ observe.error({ status: res.status, error: res.body });
5460
+ observe.complete();
5461
+ }
5462
+ }, error: e => {
5463
+ observe.error(e);
5455
5464
  observe.complete();
5456
5465
  }
5457
- }, e => {
5458
- observe.error(e);
5459
- observe.complete();
5460
5466
  });
5461
5467
  return {
5462
5468
  unsubscribe() {
@@ -5482,10 +5488,10 @@ class MailboxService {
5482
5488
  return this._http.put(`/api/comments/viewed/${id}`, {}, { headers: { 'no-progress': 'true' } }).pipe(tap((e) => this._change$.next({ id, viewed: e.time })));
5483
5489
  }
5484
5490
  typing(id) {
5485
- return this._http.put(`/api/comments/typing/${id}`, {}, { headers: { 'no-progress': 'true' } }).toPromise();
5491
+ return this._http.put(`/api/comments/typing/${id}`, {}, { headers: { 'no-progress': 'true' } });
5486
5492
  }
5487
5493
  editing(id) {
5488
- return this._http.put(`/api/mailbox/editing/${id}`, {}, { headers: { 'no-progress': 'true' } }).toPromise();
5494
+ return this._http.put(`/api/mailbox/editing/${id}`, {}, { headers: { 'no-progress': 'true' } });
5489
5495
  }
5490
5496
  copy(id) {
5491
5497
  return this._http.post(`/api/mailbox/copy/${id}`, {});
@@ -5673,32 +5679,34 @@ class UploadEvent {
5673
5679
  }
5674
5680
  function reportProgress(attachment) {
5675
5681
  return (source) => new Observable(observe => {
5676
- source.subscribe(r => {
5677
- //TODO progress
5678
- //if (event instanceof ProgressEvent) {
5679
- // observe.next(new UploadEvent(
5680
- // file.name,
5681
- // (event as ProgressEvent).loaded,
5682
- // (event as ProgressEvent).total
5683
- // ));
5684
- //} else if (event instanceof HttpResponse) {
5685
- // const res = event as HttpResponse<any>;
5686
- // if (res.status === 200) {
5687
- // const model = res.body as Attachment;
5688
- // observe.next(model);
5689
- // }
5690
- // else
5691
- // observe.error({ status: res.status, error: res.body });
5692
- // observe.complete();
5693
- //if (a instanceof UploadEvent) {
5694
- // Object.assign(item, {
5695
- // progress: a.loaded / a.total
5696
- // });
5697
- // return;
5698
- //}
5699
- observe.next(r);
5700
- observe.complete();
5701
- }, e => observe.error(e));
5682
+ source.subscribe({
5683
+ next: r => {
5684
+ //TODO progress
5685
+ //if (event instanceof ProgressEvent) {
5686
+ // observe.next(new UploadEvent(
5687
+ // file.name,
5688
+ // (event as ProgressEvent).loaded,
5689
+ // (event as ProgressEvent).total
5690
+ // ));
5691
+ //} else if (event instanceof HttpResponse) {
5692
+ // const res = event as HttpResponse<any>;
5693
+ // if (res.status === 200) {
5694
+ // const model = res.body as Attachment;
5695
+ // observe.next(model);
5696
+ // }
5697
+ // else
5698
+ // observe.error({ status: res.status, error: res.body });
5699
+ // observe.complete();
5700
+ //if (a instanceof UploadEvent) {
5701
+ // Object.assign(item, {
5702
+ // progress: a.loaded / a.total
5703
+ // });
5704
+ // return;
5705
+ //}
5706
+ observe.next(r);
5707
+ observe.complete();
5708
+ }, error: e => observe.error(e)
5709
+ });
5702
5710
  });
5703
5711
  }
5704
5712
  class PositionError {
@@ -5822,8 +5830,9 @@ class ActionBase {
5822
5830
  this._accounts.getAll(origin.map(r => r.userId)).subscribe(u => this._sb.toast('SentTo', number, (action.adjective || action.past || action.title).toLowerCase(), this._translate.join(u.map(u => u.name))));
5823
5831
  else
5824
5832
  this._sb.toast('Sent', number, (action.adjective || action.past || action.title).toLowerCase());
5825
- }, e => {
5833
+ }), catchError(e => {
5826
5834
  this._handleError(e, 'SendErr');
5835
+ throw new Error();
5827
5836
  }));
5828
5837
  }
5829
5838
  _handleError(response, message, ...args) {
@@ -6039,12 +6048,14 @@ class ActionPicker extends ActionBase {
6039
6048
  this.workingChange.emit(true);
6040
6049
  this.working = true;
6041
6050
  return super._ok(action, params).
6042
- subscribe(() => {
6043
- this.working = false;
6044
- this.workingChange.emit(false);
6045
- }, e => {
6046
- this.working = false;
6047
- this.workingChange.emit(false);
6051
+ subscribe({
6052
+ next: () => {
6053
+ this.working = false;
6054
+ this.workingChange.emit(false);
6055
+ }, error: e => {
6056
+ this.working = false;
6057
+ this.workingChange.emit(false);
6058
+ }
6048
6059
  });
6049
6060
  }
6050
6061
  });
@@ -6712,64 +6723,68 @@ class CubeService {
6712
6723
  */
6713
6724
  _decorate(cube, xAxis, series) {
6714
6725
  return (source) => new Observable(observe => {
6715
- source.subscribe(r => {
6716
- const observables = [];
6717
- const options = this._session.profile.cubes.find(c => c.name === cube);
6718
- const axisTypeMap = {};
6719
- options.axes.forEach(x => axisTypeMap[x.name] = x.dataType);
6720
- if (!r.length) {
6721
- observe.next(r);
6722
- observe.complete();
6723
- return;
6724
- }
6725
- const base = r[0].points;
6726
- r.forEach((s, i) => {
6727
- s.points.forEach(p => {
6728
- if (!p.x)
6729
- return;
6730
- const pobservable = forkJoin(p.x.split(AXES_CODE_DIVIDER).map((k, j) => this._type.get(axisTypeMap[xAxis[j]], k))).
6731
- pipe(tap(o => p.name = o.join(AXES_LABEL_DIVIDER)));
6732
- observables.push(pobservable);
6733
- if (i > 0) {
6734
- let j = 0, missing = true;
6735
- while (j < base.length) {
6736
- let x = base[j].x;
6737
- if (p.x === x) {
6738
- missing = false;
6739
- break;
6726
+ source.subscribe({
6727
+ next: r => {
6728
+ const observables = [];
6729
+ const options = this._session.profile.cubes.find(c => c.name === cube);
6730
+ const axisTypeMap = {};
6731
+ options.axes.forEach(x => axisTypeMap[x.name] = x.dataType);
6732
+ if (!r.length) {
6733
+ observe.next(r);
6734
+ observe.complete();
6735
+ return;
6736
+ }
6737
+ const base = r[0].points;
6738
+ r.forEach((s, i) => {
6739
+ s.points.forEach(p => {
6740
+ if (!p.x)
6741
+ return;
6742
+ const pobservable = forkJoin(p.x.split(AXES_CODE_DIVIDER).map((k, j) => this._type.get(axisTypeMap[xAxis[j]], k))).
6743
+ pipe(tap(o => p.name = o.join(AXES_LABEL_DIVIDER)));
6744
+ observables.push(pobservable);
6745
+ if (i > 0) {
6746
+ let j = 0, missing = true;
6747
+ while (j < base.length) {
6748
+ let x = base[j].x;
6749
+ if (p.x === x) {
6750
+ missing = false;
6751
+ break;
6752
+ }
6753
+ if (p.x < x)
6754
+ break;
6755
+ j++;
6756
+ }
6757
+ if (missing) {
6758
+ const clone = { x: p.x, y: 0 };
6759
+ base.splice(j, 0, clone);
6760
+ const cobservable = forkJoin(p.x.split(AXES_CODE_DIVIDER).map((k, j) => this._type.get(axisTypeMap[xAxis[j]], k))).
6761
+ pipe(tap(o => clone.name = o.join(AXES_LABEL_DIVIDER)));
6762
+ observables.push(cobservable);
6740
6763
  }
6741
- if (p.x < x)
6742
- break;
6743
- j++;
6744
- }
6745
- if (missing) {
6746
- const clone = { x: p.x, y: 0 };
6747
- base.splice(j, 0, clone);
6748
- const cobservable = forkJoin(p.x.split(AXES_CODE_DIVIDER).map((k, j) => this._type.get(axisTypeMap[xAxis[j]], k))).
6749
- pipe(tap(o => clone.name = o.join(AXES_LABEL_DIVIDER)));
6750
- observables.push(cobservable);
6751
6764
  }
6765
+ });
6766
+ if (s.index) {
6767
+ const index = options.indices.find(i => i.name === s.index);
6768
+ s.title = index.title;
6769
+ }
6770
+ else if (s.name) {
6771
+ const sobservable = forkJoin(s.name.split(AXES_CODE_DIVIDER).map((k, i) => this._type.get(axisTypeMap[series[i]], k))).pipe(tap(v => s.title = v.join(AXES_LABEL_DIVIDER)));
6772
+ observables.push(sobservable);
6752
6773
  }
6753
6774
  });
6754
- if (s.index) {
6755
- const index = options.indices.find(i => i.name === s.index);
6756
- s.title = index.title;
6757
- }
6758
- else if (s.name) {
6759
- const sobservable = forkJoin(s.name.split(AXES_CODE_DIVIDER).map((k, i) => this._type.get(axisTypeMap[series[i]], k))).pipe(tap(v => s.title = v.join(AXES_LABEL_DIVIDER)));
6760
- observables.push(sobservable);
6761
- }
6762
- });
6763
- if (observables.length)
6764
- forkJoin(observables).subscribe(() => {
6775
+ if (observables.length)
6776
+ forkJoin(observables).subscribe({
6777
+ next: () => {
6778
+ observe.next(r);
6779
+ observe.complete();
6780
+ }, error: e => observe.error(e)
6781
+ });
6782
+ else {
6765
6783
  observe.next(r);
6766
6784
  observe.complete();
6767
- }, e => observe.error(e));
6768
- else {
6769
- observe.next(r);
6770
- observe.complete();
6771
- }
6772
- }, e => observe.error(e));
6785
+ }
6786
+ }, error: e => observe.error(e)
6787
+ });
6773
6788
  });
6774
6789
  }
6775
6790
  /**
@@ -6779,27 +6794,31 @@ class CubeService {
6779
6794
  _decorateTable(cube, columns) {
6780
6795
  const ccube = this._session.profile.cubes.find(c => c.name === cube), axes = ccube.axes.filter(a => !columns || columns.indexOf(a.name) > -1);
6781
6796
  return (source) => new Observable(observe => {
6782
- source.subscribe(r => {
6783
- const observables = [];
6784
- r.forEach(row => axes.forEach(a => {
6785
- const { name, dataType } = a, value = row[name];
6786
- if (value !== undefined) {
6787
- // keep key
6788
- row['_' + name] = value;
6789
- const observable = this._type.get(dataType, value).pipe(tap(v => row[name] = v || value));
6790
- observables.push(observable);
6791
- }
6792
- }));
6793
- if (observables.length)
6794
- forkJoin(observables).subscribe(() => {
6795
- observe.next(r);
6797
+ source.subscribe({
6798
+ next: r => {
6799
+ const observables = [];
6800
+ r.forEach(row => axes.forEach(a => {
6801
+ const { name, dataType } = a, value = row[name];
6802
+ if (value !== undefined) {
6803
+ // keep key
6804
+ row['_' + name] = value;
6805
+ const observable = this._type.get(dataType, value).pipe(tap(v => row[name] = v || value));
6806
+ observables.push(observable);
6807
+ }
6808
+ }));
6809
+ if (observables.length)
6810
+ forkJoin(observables).subscribe({
6811
+ next: () => {
6812
+ observe.next(r);
6813
+ observe.complete();
6814
+ }, error: e => observe.error(e)
6815
+ });
6816
+ else {
6817
+ observe.next([]);
6796
6818
  observe.complete();
6797
- }, e => observe.error(e));
6798
- else {
6799
- observe.next([]);
6800
- observe.complete();
6801
- }
6802
- }, e => observe.error(e));
6819
+ }
6820
+ }, error: e => observe.error(e)
6821
+ });
6803
6822
  });
6804
6823
  }
6805
6824
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeService, deps: [{ token: BIZDOC_CONFIG }, { token: i1$3.HttpClient }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -7125,7 +7144,9 @@ class PanesRouter {
7125
7144
  }
7126
7145
  navigate(commands, options) {
7127
7146
  return new Promise((resolve, reject) => {
7128
- this._events$.pipe(filter(e => e instanceof NavigationStart), first()).subscribe((e) => resolve(e.pane), reject);
7147
+ this._events$.pipe(filter(e => e instanceof NavigationStart), first()).subscribe({
7148
+ next: (e) => resolve(e.pane), error: reject
7149
+ });
7129
7150
  this._navigate$.next(isArray(commands) ? { commands: commands, ...options } : { component: commands, ...options });
7130
7151
  });
7131
7152
  }
@@ -7254,7 +7275,7 @@ class ChatInfo {
7254
7275
  format(person) {
7255
7276
  if (this._config && isString(this._config.app)) {
7256
7277
  const { app } = this._config;
7257
- return `<a href="${app.formatArgs(person.id)}">${name}</a>`;
7278
+ return `<a href="${app.formatArgs(person.id)}">${person.name} </a>`;
7258
7279
  }
7259
7280
  else if (this._config !== false)
7260
7281
  return `<a data-info="${person.id}">${person.name}</a>`;
@@ -7335,7 +7356,7 @@ class IdentityName {
7335
7356
  * @param e
7336
7357
  */
7337
7358
  chat(e) {
7338
- const userId = e.srcElement.getAttribute('data-info');
7359
+ const userId = e.target.getAttribute('data-info');
7339
7360
  userId &&
7340
7361
  this._chat.open(userId, { mode: this.chating });
7341
7362
  }
@@ -7970,7 +7991,7 @@ class ExpandedItemComponent {
7970
7991
  target = await this._target(id);
7971
7992
  }
7972
7993
  if (substituteId) {
7973
- const substituting = await this._accounts.get(substituteId).toPromise();
7994
+ const substituting = await firstValueFrom(this._accounts.get(substituteId));
7974
7995
  if (replied) {
7975
7996
  const time = this._fromNow(replied), action = this._session.profile.actions.find(a => a.name === action), adjective = (action.adjective || action.title).toLowerCase();
7976
7997
  if (target)
@@ -8025,12 +8046,12 @@ class ExpandedItemComponent {
8025
8046
  if ((origin.byId || origin.userId) === this._session.userId)
8026
8047
  this.note = this._translate.get('ActionByYou', adjective);
8027
8048
  else if (origin.byId) {
8028
- const who = await this._accounts.get(origin.userId).toPromise();
8029
- const by = await this._accounts.get(origin.byId).toPromise();
8049
+ const who = await firstValueFrom(this._accounts.get(origin.userId));
8050
+ const by = await firstValueFrom(this._accounts.get(origin.byId));
8030
8051
  this.note = this._translate.get('ActionByBy', adjective, by.name, who.name);
8031
8052
  }
8032
8053
  else {
8033
- const who = await this._accounts.get(origin.userId).toPromise();
8054
+ const who = await firstValueFrom(this._accounts.get(origin.userId));
8034
8055
  this.note = this._translate.get('ActionBy', adjective, who.name);
8035
8056
  }
8036
8057
  }
@@ -8040,7 +8061,7 @@ class ExpandedItemComponent {
8040
8061
  if (ownerById === this._session.profile.byId)
8041
8062
  this.note = this._translate.personalize('YouSubmittedNoteBy', this._session.profile.byGender, this._session.profile.name, time);
8042
8063
  else {
8043
- const by = await this._accounts.get(ownerById).toPromise();
8064
+ const by = await firstValueFrom(this._accounts.get(ownerById));
8044
8065
  if (this._session.isImpersonating)
8045
8066
  this.note = this._translate.personalize('SubmittedNoteBy', by.gender, this._formatUserElement(by), this._session.profile.name, time);
8046
8067
  else
@@ -8058,8 +8079,7 @@ class ExpandedItemComponent {
8058
8079
  async _target(id) {
8059
8080
  const origin = this.model.recipients.filter(r => r.originId === id);
8060
8081
  if (origin.length) {
8061
- const users = await this._accounts.getAll(origin.map(r => r.userId)).
8062
- toPromise();
8082
+ const users = await firstValueFrom(this._accounts.getAll(origin.map(r => r.userId)));
8063
8083
  return this._translate.join(users.map(u => this._formatUserElement(u)));
8064
8084
  }
8065
8085
  }
@@ -8092,7 +8112,7 @@ class ExpandedItemComponent {
8092
8112
  const { senderId } = this.model;
8093
8113
  // sender
8094
8114
  if (senderId && (senderId !== this._session.userId)) {
8095
- const who = await this._accounts.get(senderId).toPromise();
8115
+ const who = await firstValueFrom(this._accounts.get(senderId));
8096
8116
  this.sender = this._formatUserElement(who);
8097
8117
  }
8098
8118
  this._comments();
@@ -8112,7 +8132,7 @@ class ExpandedItemComponent {
8112
8132
  recipients = recipients.filter((r, i) => recipients.indexOf(r) === i); /* unique */
8113
8133
  if (recipients.length > 0) {
8114
8134
  if (recipients.indexOf(this._session.userId) < 0 || recipients.length > 1) {
8115
- const users = await this._accounts.getAll(recipients.filter(r => r !== this._session.userId)).toPromise();
8135
+ const users = await firstValueFrom(this._accounts.getAll(recipients.filter(r => r !== this._session.userId)));
8116
8136
  const names = users.map(p => this._formatUserElement(p));
8117
8137
  recipients.indexOf(this._session.userId) > -1 &&
8118
8138
  names.push(this._translate.get('Yourself'));
@@ -8125,7 +8145,7 @@ class ExpandedItemComponent {
8125
8145
  * @param e
8126
8146
  */
8127
8147
  chat(e) {
8128
- const userId = e.srcElement.getAttribute('data-info');
8148
+ const userId = e.target.getAttribute('data-info');
8129
8149
  userId &&
8130
8150
  this._chat.open(userId);
8131
8151
  }
@@ -8148,18 +8168,20 @@ class ExpandedItemComponent {
8148
8168
  }).afterClosed().subscribe(args => {
8149
8169
  if (args) {
8150
8170
  this.mode = 'working';
8151
- this._mailbox.send(id, version, formId, null, action, args).subscribe(async (r) => {
8152
- const caction = this._session.profile.actions.find(a => a.name === action), adjective = caction.adjective || caction.title;
8153
- const target = await this._target(id);
8154
- if (target)
8155
- this._sb.toast('SentTo', number, adjective.toLowerCase(), target);
8156
- else
8157
- this._sb.toast('Sent', number, adjective.toLowerCase());
8158
- this.sent.emit(this.model);
8159
- this.mode = 'done';
8160
- }, e => {
8161
- this._handleResponse(e, this.model, 'SendErr');
8162
- this.mode = 'failed';
8171
+ this._mailbox.send(id, version, formId, null, action, args).subscribe({
8172
+ next: async (r) => {
8173
+ const caction = this._session.profile.actions.find(a => a.name === action), adjective = caction.adjective || caction.title;
8174
+ const target = await this._target(id);
8175
+ if (target)
8176
+ this._sb.toast('SentTo', number, adjective.toLowerCase(), target);
8177
+ else
8178
+ this._sb.toast('Sent', number, adjective.toLowerCase());
8179
+ this.sent.emit(this.model);
8180
+ this.mode = 'done';
8181
+ }, error: e => {
8182
+ this._handleResponse(e, this.model, 'SendErr');
8183
+ this.mode = 'failed';
8184
+ }
8163
8185
  });
8164
8186
  }
8165
8187
  });
@@ -8354,27 +8376,33 @@ class BrowseItemsComponent {
8354
8376
  });
8355
8377
  });
8356
8378
  }
8357
- open(item, evt) {
8358
- this._retrieve(item).subscribe(() => this.onopen.next(item), () => this._sb.error());
8379
+ open(item, _) {
8380
+ this._retrieve(item).subscribe({
8381
+ next: () => this.onopen.next(item), error: () => this._sb.error()
8382
+ });
8359
8383
  }
8360
8384
  view(item, evt) {
8361
8385
  evt.stopPropagation();
8362
- this._retrieve(item).subscribe(() => this.onview.next(item), () => this._sb.error());
8386
+ this._retrieve(item).subscribe({
8387
+ next: () => this.onview.next(item), error: () => this._sb.error()
8388
+ });
8363
8389
  }
8364
8390
  refresh() {
8365
8391
  this._pendingItems = {};
8366
8392
  this._loading$.next(true);
8367
8393
  return this._mailbox.findAll({ ...this.filters, folderId: this.folderId, type: this.filterType }, { take: TAKE }).
8368
8394
  pipe(finalize(() => this._loading$.next(false))).
8369
- subscribe(r => {
8370
- this.selection.clear();
8371
- this.dataSource = new MatTableDataSource(r);
8372
- this.sort.active = this.sorting;
8373
- this.sort.start = this.direction;
8374
- this.dataSource.sort = this.sort;
8375
- this.dataSource.paginator = this.paginator;
8376
- this.paginator.pageIndex > 0 && this.paginator.firstPage();
8377
- }, () => this._sb.error());
8395
+ subscribe({
8396
+ next: r => {
8397
+ this.selection.clear();
8398
+ this.dataSource = new MatTableDataSource(r);
8399
+ this.sort.active = this.sorting;
8400
+ this.sort.start = this.direction;
8401
+ this.dataSource.sort = this.sort;
8402
+ this.dataSource.paginator = this.paginator;
8403
+ this.paginator.pageIndex > 0 && this.paginator.firstPage();
8404
+ }, error: () => this._sb.error()
8405
+ });
8378
8406
  }
8379
8407
  _group(data) {
8380
8408
  const groups = {};
@@ -8407,10 +8435,12 @@ class BrowseItemsComponent {
8407
8435
  flag(item, evt) {
8408
8436
  const extra = item;
8409
8437
  extra.working = true;
8410
- this._mailbox.flag(item.id, !item.flag).subscribe(() => {
8411
- item.flag = !item.flag;
8412
- extra.working = false;
8413
- }, () => extra.working = false);
8438
+ this._mailbox.flag(item.id, !item.flag).subscribe({
8439
+ next: () => {
8440
+ item.flag = !item.flag;
8441
+ extra.working = false;
8442
+ }, error: () => extra.working = false
8443
+ });
8414
8444
  evt.stopPropagation();
8415
8445
  }
8416
8446
  get sorting() {
@@ -8439,10 +8469,12 @@ class BrowseItemsComponent {
8439
8469
  }
8440
8470
  toggleExpanded(item, event) {
8441
8471
  if (this.expandedElement != item) {
8442
- this._retrieve(item).subscribe(() => {
8443
- //playAudio('navigation_hover-tap');
8444
- this.expandedElement = item;
8445
- }, () => this._sb.error());
8472
+ this._retrieve(item).subscribe({
8473
+ next: () => {
8474
+ //playAudio('navigation_hover-tap');
8475
+ this.expandedElement = item;
8476
+ }, error: () => this._sb.error()
8477
+ });
8446
8478
  }
8447
8479
  else
8448
8480
  this.expandedElement = null;
@@ -8468,33 +8500,37 @@ class BrowseItemsComponent {
8468
8500
  _sharedActions() {
8469
8501
  if (this.selection.hasValue() && !this.isAllDraft()) {
8470
8502
  this.sharedActions = [];
8471
- forkJoin(this.selection.selected.map(i => this._retrieve(i))).subscribe((m) => {
8472
- if (!m[0].actions)
8473
- return;
8474
- const actions = m[0].actions.slice();
8475
- for (let i = 1; i < m.length; i++) {
8476
- let item = m[i];
8477
- if (!item.actions)
8503
+ forkJoin(this.selection.selected.map(i => this._retrieve(i))).subscribe({
8504
+ next: (m) => {
8505
+ if (!m[0].actions)
8478
8506
  return;
8479
- for (let j = 0; j < actions.length; j++) {
8480
- if (item.actions.indexOf(actions[j]) < 0)
8481
- actions.splice(j, 1);
8507
+ const actions = m[0].actions.slice();
8508
+ for (let i = 1; i < m.length; i++) {
8509
+ let item = m[i];
8510
+ if (!item.actions)
8511
+ return;
8512
+ for (let j = 0; j < actions.length; j++) {
8513
+ if (item.actions.indexOf(actions[j]) < 0)
8514
+ actions.splice(j, 1);
8515
+ }
8482
8516
  }
8517
+ this.sharedActions = this._session.profile.actions.filter(a => actions.indexOf(a.name) > -1 && (this.selection.selected.length === 1 || a.multiple !== false));
8483
8518
  }
8484
- this.sharedActions = this._session.profile.actions.filter(a => actions.indexOf(a.name) > -1 && (this.selection.selected.length === 1 || a.multiple !== false));
8485
- }, undefined);
8519
+ });
8486
8520
  }
8487
8521
  else
8488
8522
  this.sharedActions = [];
8489
8523
  }
8490
8524
  copy(item) {
8491
- this._mailbox.copy(item.documentId).subscribe(i => {
8492
- this._sb.toast('Copied', i.number || formTitle(item.formId));
8493
- this._router.navigate(['mailbox/i', i.id.encodeId()], {
8494
- state: { item: i },
8495
- policy: OpenPolicy.Clear
8496
- });
8497
- }, () => this._sb.error());
8525
+ this._mailbox.copy(item.documentId).subscribe({
8526
+ next: i => {
8527
+ this._sb.toast('Copied', i.number || formTitle(item.formId));
8528
+ this._router.navigate(['mailbox/i', i.id.encodeId()], {
8529
+ state: { item: i },
8530
+ policy: OpenPolicy.Clear
8531
+ });
8532
+ }, error: () => this._sb.error()
8533
+ });
8498
8534
  function formTitle(name) {
8499
8535
  const form = this._session.profile.forms.find(f => f.name === name);
8500
8536
  return form.title;
@@ -8509,8 +8545,7 @@ class BrowseItemsComponent {
8509
8545
  const items = this.selection.selected.slice();
8510
8546
  const errors = new Subject();
8511
8547
  errors.pipe().subscribe(m => this._sb.errorString(m));
8512
- const promises = items.map(m => fn(m).pipe(tap(() => {
8513
- }, (e) => {
8548
+ const promises = items.map(m => fn(m).pipe(catchError((e) => {
8514
8549
  let message;
8515
8550
  switch (e.status) {
8516
8551
  case 404:
@@ -8527,6 +8562,7 @@ class BrowseItemsComponent {
8527
8562
  message = this._translate.get(error);
8528
8563
  }
8529
8564
  errors.next(message);
8565
+ throw new Error();
8530
8566
  }), finalize(() => m.working = false)));
8531
8567
  return forkJoin(promises).pipe(tap(() => {
8532
8568
  errors.unsubscribe();
@@ -8730,7 +8766,7 @@ class TagsComponent {
8730
8766
  }
8731
8767
  add(event) {
8732
8768
  if (!this.auto.isOpen) {
8733
- const { input, value } = event;
8769
+ const { chipInput, value } = event;
8734
8770
  if ((value || '').trim()) {
8735
8771
  const tag = value.trim();
8736
8772
  this.data.tags.push(tag);
@@ -8738,9 +8774,7 @@ class TagsComponent {
8738
8774
  this._options.push(tag);
8739
8775
  this._save();
8740
8776
  }
8741
- if (input) {
8742
- input.value = '';
8743
- }
8777
+ chipInput?.clear();
8744
8778
  this.control.setValue(null);
8745
8779
  }
8746
8780
  }
@@ -8842,7 +8876,7 @@ class AvatarComponent {
8842
8876
  }
8843
8877
  _initials(name) {
8844
8878
  this.initials = name.split(REGEX).map(p => p.charAt(0).toUpperCase()).
8845
- join('').substr(0, 3);
8879
+ join('').substring(0, 3);
8846
8880
  let c = this.initials.charCodeAt(0);
8847
8881
  if (this.initials.length > 1)
8848
8882
  c += this.initials.charCodeAt(1) * 18;
@@ -9063,7 +9097,7 @@ class ComposeFormComponent {
9063
9097
  this.model.attachments.push(model);
9064
9098
  this.working = false;
9065
9099
  this.workingChange.emit(false);
9066
- }), catchError(e => {
9100
+ }), catchError$1(e => {
9067
9101
  this._handleError(e, 'UploadFailed', f.name);
9068
9102
  this.working = false;
9069
9103
  this.workingChange.emit(false);
@@ -9464,8 +9498,8 @@ class ComposePaneComponent {
9464
9498
  * @param event
9465
9499
  */
9466
9500
  handleKeydown(event) {
9467
- if (event.ctrlKey && (event.which === 83 || event.which === 115)) {
9468
- if (this.dirty && !this.working)
9501
+ if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
9502
+ this.dirty && !this.working &&
9469
9503
  this.save();
9470
9504
  event.preventDefault();
9471
9505
  }
@@ -9564,7 +9598,7 @@ class BrowsePaneComponent {
9564
9598
  get folder() { return this._session.profile.folders.find(f => f.name === this.folderId); }
9565
9599
  openFilter(evt) {
9566
9600
  //this.filterElement.nativeElement.scrollIntoView({ behavior: 'smooth' });
9567
- this._popup.open(BrowseFilterComponent, evt.srcElement, { position: 'end' }).
9601
+ this._popup.open(BrowseFilterComponent, evt.target, { position: 'end' }).
9568
9602
  opened().subscribe(e => {
9569
9603
  e.folderId = this.folderId;
9570
9604
  e.values = this.filters;
@@ -9577,7 +9611,7 @@ class BrowsePaneComponent {
9577
9611
  * @param event
9578
9612
  */
9579
9613
  handleKeydown(event) {
9580
- if (event.ctrlKey && (event.which === 70 || event.which === 102)) {
9614
+ if (event.ctrlKey && (event.key === 'f' || event.key === 'F')) {
9581
9615
  this.search.nativeElement.focus();
9582
9616
  event.preventDefault();
9583
9617
  }
@@ -9753,13 +9787,15 @@ class CubeAccumulationChartComponent {
9753
9787
  this._service.series(this.cube, this._xAxis, {
9754
9788
  filters: this.filters,
9755
9789
  scope: this.scope
9756
- }).subscribe(r => {
9757
- this.dataSource = r[0].points;
9758
- this._draw();
9759
- this.loadingChange.emit(false);
9760
- }, (e) => {
9761
- this._sb.error(errResource(e));
9762
- this.loadingChange.emit(false);
9790
+ }).subscribe({
9791
+ next: r => {
9792
+ this.dataSource = r[0].points;
9793
+ this._draw();
9794
+ this.loadingChange.emit(false);
9795
+ }, error: (e) => {
9796
+ this._sb.error(errResource(e));
9797
+ this.loadingChange.emit(false);
9798
+ }
9763
9799
  });
9764
9800
  }
9765
9801
  _draw() {
@@ -10021,13 +10057,15 @@ class CubeChartComponent {
10021
10057
  indices: this.indices, series: this.series,
10022
10058
  filters: this.filters,
10023
10059
  scope: this.scope
10024
- }).subscribe(r => {
10025
- this._data = r;
10026
- this._draw();
10027
- this.loadingChange.emit(false);
10028
- }, (e) => {
10029
- this._sb.error(errResource(e));
10030
- this.loadingChange.emit(false);
10060
+ }).subscribe({
10061
+ next: r => {
10062
+ this._data = r;
10063
+ this._draw();
10064
+ this.loadingChange.emit(false);
10065
+ }, error: (e) => {
10066
+ this._sb.error(errResource(e));
10067
+ this.loadingChange.emit(false);
10068
+ }
10031
10069
  });
10032
10070
  }
10033
10071
  /** */
@@ -10287,8 +10325,7 @@ class CubeGridComponent {
10287
10325
  pipe(tap(r => this._rows = r));
10288
10326
  promises.push(observe);
10289
10327
  // prepare
10290
- this._prepare =
10291
- forkJoin(promises).toPromise();
10328
+ this._prepare = firstValueFrom(forkJoin(promises));
10292
10329
  this.execute();
10293
10330
  }
10294
10331
  /** */
@@ -10301,27 +10338,29 @@ class CubeGridComponent {
10301
10338
  execute() {
10302
10339
  this.loadingChange.emit(true);
10303
10340
  this._service.series(this._cube.name, this._xAxis, { series: this._series, filters: this.filters, indices: this._indices }).
10304
- subscribe(series => {
10305
- this._prepare.then(() => {
10306
- const rows = [];
10307
- series.filter(s => s.index).forEach(s => {
10308
- const row = { title: s.title, type: 'Index', key: s.index };
10309
- this._normalize(row, s.points);
10310
- rows.push(row);
10311
- });
10312
- this._rows.forEach(r => {
10313
- const row = { title: r.value, key: r.key }, serie = series.find(s => s.name === r.key);
10314
- serie &&
10315
- this._normalize(row, serie.points);
10316
- rows.push(row);
10341
+ subscribe({
10342
+ next: series => {
10343
+ this._prepare.then(() => {
10344
+ const rows = [];
10345
+ series.filter(s => s.index).forEach(s => {
10346
+ const row = { title: s.title, type: 'Index', key: s.index };
10347
+ this._normalize(row, s.points);
10348
+ rows.push(row);
10349
+ });
10350
+ this._rows.forEach(r => {
10351
+ const row = { title: r.value, key: r.key }, serie = series.find(s => s.name === r.key);
10352
+ serie &&
10353
+ this._normalize(row, serie.points);
10354
+ rows.push(row);
10355
+ });
10356
+ this.dataSource = rows;
10357
+ this._draw();
10358
+ this.loadingChange.emit(false);
10317
10359
  });
10318
- this.dataSource = rows;
10319
- this._draw();
10360
+ }, error: (e) => {
10361
+ this._sb.error(errResource(e));
10320
10362
  this.loadingChange.emit(false);
10321
- });
10322
- }, (e) => {
10323
- this._sb.error(errResource(e));
10324
- this.loadingChange.emit(false);
10363
+ }
10325
10364
  });
10326
10365
  }
10327
10366
  _normalize(row, points) {
@@ -10972,18 +11011,18 @@ class CubeSpreadsheetComponent {
10972
11011
  width: 120
10973
11012
  }];
10974
11013
  // acquire columns source
10975
- let observe = this._ds.all(xAxis.dataType).toPromise().
11014
+ let promise = firstValueFrom(this._ds.all(xAxis.dataType)).
10976
11015
  then(c => {
10977
11016
  this._xcolumns = c;
10978
11017
  c.forEach(_ => this.columns.push({
10979
11018
  width: 90
10980
11019
  }));
10981
11020
  });
10982
- promises.push(observe);
11021
+ promises.push(promise);
10983
11022
  // acquire rows source
10984
- observe = this._ds.all(yAxis.dataType).toPromise().
11023
+ promise = firstValueFrom(this._ds.all(yAxis.dataType)).
10985
11024
  then(r => this._yrows = r);
10986
- promises.push(observe);
11025
+ promises.push(promise);
10987
11026
  this._prepare = Promise.all(promises);
10988
11027
  }
10989
11028
  else {
@@ -11021,25 +11060,29 @@ class CubeSpreadsheetComponent {
11021
11060
  this.loadingChange.emit(true);
11022
11061
  if (this._series)
11023
11062
  this._service.series(this.cube, this._xAxis, { series: this._series, filters: this.filters, indices: this._indices }).
11024
- subscribe(data => {
11025
- this._prepare.then(() => {
11026
- this._dataseries(data);
11027
- this._draw();
11063
+ subscribe({
11064
+ next: data => {
11065
+ this._prepare.then(() => {
11066
+ this._dataseries(data);
11067
+ this._draw();
11068
+ this.loadingChange.emit(false);
11069
+ });
11070
+ }, error: e => {
11071
+ this._sb.error(errResource(e));
11028
11072
  this.loadingChange.emit(false);
11029
- });
11030
- }, e => {
11031
- this._sb.error(errResource(e));
11032
- this.loadingChange.emit(false);
11073
+ }
11033
11074
  });
11034
11075
  else
11035
11076
  this._service.table(this._cube.name, this._xAxis, { filters: this.filters, indices: this._indices }).
11036
- subscribe(data => {
11037
- this._datatable(data);
11038
- this._draw();
11039
- this.loadingChange.emit(false);
11040
- }, e => {
11041
- this._sb.error(errResource(e));
11042
- this.loadingChange.emit(false);
11077
+ subscribe({
11078
+ next: data => {
11079
+ this._datatable(data);
11080
+ this._draw();
11081
+ this.loadingChange.emit(false);
11082
+ }, error: e => {
11083
+ this._sb.error(errResource(e));
11084
+ this.loadingChange.emit(false);
11085
+ }
11043
11086
  });
11044
11087
  }
11045
11088
  _datatable(data) {
@@ -11776,16 +11819,16 @@ class TaggingDirective {
11776
11819
  _handleKeydown(evt) {
11777
11820
  if (!this._instance)
11778
11821
  return;
11779
- if (evt.char && !TEXT_CHAR.test(evt.char))
11822
+ !TEXT_CHAR.test(evt.key) &&
11780
11823
  this._close();
11781
- else if (evt.keyCode == UP_ARROW || evt.keyCode == DOWN_ARROW) {
11824
+ if (evt.key == 'ArrowUp' || evt.key == 'ArrowDown') {
11782
11825
  this._instance.keyManager.onKeydown(evt);
11783
11826
  const { key } = this._instance.keyManager.activeItem;
11784
11827
  this._assign(key);
11785
11828
  evt.preventDefault();
11786
11829
  evt.stopPropagation();
11787
11830
  }
11788
- else if (evt.keyCode === ENTER) {
11831
+ else if (evt.key === 'Enter') {
11789
11832
  if (this._instance.keyManager.activeItemIndex > -1) {
11790
11833
  const { key, value } = this._instance.keyManager.activeItem;
11791
11834
  this._select(key, value);
@@ -11793,7 +11836,7 @@ class TaggingDirective {
11793
11836
  evt.preventDefault();
11794
11837
  evt.stopPropagation();
11795
11838
  }
11796
- else if (evt.keyCode == ESCAPE) {
11839
+ else if (evt.key === 'Escape') {
11797
11840
  this._close();
11798
11841
  evt.preventDefault();
11799
11842
  evt.stopPropagation();
@@ -11939,18 +11982,16 @@ class EditInputComponent {
11939
11982
  this.autofocus && setTimeout(this.focus.bind(this));
11940
11983
  }
11941
11984
  _key(evt) {
11942
- if (evt.cancelBubble)
11943
- return;
11944
- if (evt.which === ENTER && !evt.shiftKey) {
11985
+ if (evt.key === 'Enter' && !evt.shiftKey) {
11945
11986
  this._submit();
11946
- event.preventDefault();
11947
- event.stopPropagation();
11987
+ evt.preventDefault();
11988
+ evt.stopPropagation();
11948
11989
  }
11949
- else if (evt.which === ESCAPE) {
11990
+ else if (evt.key === 'Escape') {
11950
11991
  if (this._textElement.nativeElement.value && this._textElement.nativeElement.value.length) {
11951
11992
  this._textElement.nativeElement.value = null;
11952
- event.preventDefault();
11953
- event.stopPropagation();
11993
+ evt.preventDefault();
11994
+ evt.stopPropagation();
11954
11995
  }
11955
11996
  }
11956
11997
  }
@@ -11966,7 +12007,7 @@ class EditInputComponent {
11966
12007
  this.onOk.emit({ text, resource: this._resource, image: this._image });
11967
12008
  }
11968
12009
  _textChange(evt) {
11969
- this._text = evt.srcElement.value;
12010
+ this._text = evt.target.value;
11970
12011
  this.change.emit(this._text);
11971
12012
  }
11972
12013
  _htmlChange(evt) {
@@ -12048,7 +12089,7 @@ class EditInputComponent {
12048
12089
  let reader = new FileReader();
12049
12090
  reader.onload = function (event) {
12050
12091
  const { result } = event.target;
12051
- me._image = result.substr(22);
12092
+ me._image = result.substring(22);
12052
12093
  };
12053
12094
  reader.readAsDataURL(blob);
12054
12095
  }
@@ -12162,7 +12203,7 @@ class TaggingPipe {
12162
12203
  return this._sanitizer.bypassSecurityTrustHtml(text);
12163
12204
  }
12164
12205
  _click(evt) {
12165
- const src = evt.srcElement;
12206
+ const src = evt.target;
12166
12207
  if (src.tagName === 'A') {
12167
12208
  const id = src.getAttribute('data-id');
12168
12209
  if (id) {
@@ -12295,7 +12336,7 @@ class CommentComponent {
12295
12336
  * @param e
12296
12337
  */
12297
12338
  chat(e) {
12298
- const userId = e.srcElement.getAttribute('data-info');
12339
+ const userId = e.target.getAttribute('data-info');
12299
12340
  userId &&
12300
12341
  this._chat.open(userId);
12301
12342
  }
@@ -12332,10 +12373,12 @@ class CommentComponent {
12332
12373
  ok: 'Delete',
12333
12374
  color: 'warn'
12334
12375
  }).subscribe(ok => {
12335
- ok && this._mailbox.removecomment(this.item.id).subscribe(() => {
12336
- this.item.deleted = true;
12337
- this.deleted.emit();
12338
- }, () => this._ps.error());
12376
+ ok && this._mailbox.removecomment(this.item.id).subscribe({
12377
+ next: () => {
12378
+ this.item.deleted = true;
12379
+ this.deleted.emit();
12380
+ }, error: () => this._ps.error()
12381
+ });
12339
12382
  });
12340
12383
  }
12341
12384
  edits() {
@@ -12353,7 +12396,7 @@ class CommentComponent {
12353
12396
  positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
12354
12397
  });
12355
12398
  oRef.attach(new TemplatePortal(this.previewTemplate, this._vc));
12356
- merge(oRef.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE)), oRef.backdropClick()).subscribe(() => oRef.detach());
12399
+ merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
12357
12400
  }
12358
12401
  votes() {
12359
12402
  this._open(CommentLikesComponent, {
@@ -12388,7 +12431,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
12388
12431
  args: ['previewTemplate']
12389
12432
  }] } });
12390
12433
 
12391
- const TYPING_NOTIFY = 500, TYPING_MESSAGE_TIME = 1500;
12434
+ const TYPING_NOTIFY$1 = 500, TYPING_MESSAGE_TIME = 1500;
12392
12435
  class CommentsComponent {
12393
12436
  /** comments ctor */
12394
12437
  constructor(_accounts, _session, _sb, _translate, _chat, _mailbox, _messaging, _config) {
@@ -12440,7 +12483,7 @@ class CommentsComponent {
12440
12483
  comment.deleted = true;
12441
12484
  this.change.emit();
12442
12485
  });
12443
- this._textChange.pipe(debounceTime(TYPING_NOTIFY), takeUntil$1(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId));
12486
+ this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil$1(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId).subscribe());
12444
12487
  }
12445
12488
  _formatUserElement(person) {
12446
12489
  if (this._config.chating !== false)
@@ -12453,7 +12496,7 @@ class CommentsComponent {
12453
12496
  * @param e
12454
12497
  */
12455
12498
  chat(e) {
12456
- const userId = e.srcElement.getAttribute('data-info');
12499
+ const userId = e.target.getAttribute('data-info');
12457
12500
  userId &&
12458
12501
  this._chat.open(userId);
12459
12502
  }
@@ -12548,16 +12591,18 @@ class CommentsComponent {
12548
12591
  const options = { ...evt };
12549
12592
  if (this._replyTo)
12550
12593
  options.parentId = this._replyTo.id;
12551
- this._mailbox.comment(this.model.documentId, options).subscribe(c => {
12552
- this.model.comments.push(c);
12553
- this.input.clear();
12554
- this.model.viewed = c.time;
12555
- this.change.emit();
12556
- setTimeout(() => this._scrollToBottom());
12557
- this.sending = false;
12558
- }, () => {
12559
- this._sb.error();
12560
- this.sending = false;
12594
+ this._mailbox.comment(this.model.documentId, options).subscribe({
12595
+ next: c => {
12596
+ this.model.comments.push(c);
12597
+ this.input.clear();
12598
+ this.model.viewed = c.time;
12599
+ this.change.emit();
12600
+ setTimeout(() => this._scrollToBottom());
12601
+ this.sending = false;
12602
+ }, error: () => {
12603
+ this._sb.error();
12604
+ this.sending = false;
12605
+ }
12561
12606
  });
12562
12607
  }
12563
12608
  ngOnDestroy() {
@@ -12744,41 +12789,45 @@ class ExploreItemsComponent {
12744
12789
  _view() {
12745
12790
  this._loading$.next(true);
12746
12791
  (this.index ? this._service.resolveIndex(this.cube, this.index) :
12747
- this._service.resolve(this.cube, this.axes)).subscribe(e => {
12748
- const { columns, template } = e;
12749
- (this.index ? this._service.indices(this.cube, this.index, this.axes, { scope: this.scope }) :
12750
- this._service.explore(this.cube, this.axes, { scope: this.scope })).subscribe(r => {
12751
- if (this.index && !columns.length) {
12752
- this._cube.axes.
12753
- filter(a => this.axes[a.name] === undefined && a.selectionMode !== 'None' &&
12754
- r.find(row => row[a.name] !== undefined)).
12755
- forEach(a => columns.push({ controlType: 'text', name: a.name, label: a.title }));
12756
- const index = this._cube.indices.find(i => i.name === this.index);
12757
- columns.push({
12758
- controlType: 'number', name: 'value', label: index.title,
12759
- kind: FieldKind.Currency
12760
- });
12761
- this.columns = columns;
12762
- this.displayedColumns = columns.map(c => c.name);
12763
- this._template = null;
12764
- this.selectable = false;
12765
- }
12766
- else {
12767
- this.columns = columns;
12768
- this.displayedColumns =
12769
- columns.filter(c => !c.flags || (c.flags.indexOf('Hidden') < 0 && c.flags.indexOf('Key') < 0)).
12770
- map(c => c.name);
12771
- this._template = template;
12772
- this.selectable = template !== null;
12773
- }
12774
- this._datasource(r);
12775
- }, () => {
12792
+ this._service.resolve(this.cube, this.axes)).subscribe({
12793
+ next: e => {
12794
+ const { columns, template } = e;
12795
+ (this.index ? this._service.indices(this.cube, this.index, this.axes, { scope: this.scope }) :
12796
+ this._service.explore(this.cube, this.axes, { scope: this.scope })).subscribe({
12797
+ next: r => {
12798
+ if (this.index && !columns.length) {
12799
+ this._cube.axes.
12800
+ filter(a => this.axes[a.name] === undefined && a.selectionMode !== 'None' &&
12801
+ r.find(row => row[a.name] !== undefined)).
12802
+ forEach(a => columns.push({ controlType: 'text', name: a.name, label: a.title }));
12803
+ const index = this._cube.indices.find(i => i.name === this.index);
12804
+ columns.push({
12805
+ controlType: 'number', name: 'value', label: index.title,
12806
+ kind: FieldKind.Currency
12807
+ });
12808
+ this.columns = columns;
12809
+ this.displayedColumns = columns.map(c => c.name);
12810
+ this._template = null;
12811
+ this.selectable = false;
12812
+ }
12813
+ else {
12814
+ this.columns = columns;
12815
+ this.displayedColumns =
12816
+ columns.filter(c => !c.flags || (c.flags.indexOf('Hidden') < 0 && c.flags.indexOf('Key') < 0)).
12817
+ map(c => c.name);
12818
+ this._template = template;
12819
+ this.selectable = template !== null;
12820
+ }
12821
+ this._datasource(r);
12822
+ }, error: () => {
12823
+ this._loading$.next(false);
12824
+ this._sb.error();
12825
+ }
12826
+ });
12827
+ }, error: () => {
12776
12828
  this._loading$.next(false);
12777
12829
  this._sb.error();
12778
- });
12779
- }, () => {
12780
- this._loading$.next(false);
12781
- this._sb.error();
12830
+ }
12782
12831
  });
12783
12832
  }
12784
12833
  _datasource(data) {
@@ -13916,7 +13965,7 @@ class WorkflowComponent {
13916
13965
  * @param event
13917
13966
  */
13918
13967
  handleKeyboardEvent(event) {
13919
- if (this.dirty && event.ctrlKey && (event.which === 83 || event.which === 115)) {
13968
+ if (this.dirty && event.ctrlKey && (event.key === 's' || event.key === 'S')) {
13920
13969
  this.save();
13921
13970
  event.preventDefault();
13922
13971
  }
@@ -14000,7 +14049,7 @@ class WorkflowComponent {
14000
14049
  this._form.workflow.connectors = obj.connectors;
14001
14050
  this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version');
14002
14051
  this.saving = true;
14003
- return this._service.save(this._form).toPromise().then(v => {
14052
+ return firstValueFrom(this._service.save(this._form)).then(v => {
14004
14053
  this._ps.toast('ChangesSaved');
14005
14054
  if (this._form.workflow.version < v) {
14006
14055
  this._ps.toast('DiagramVersion', v);
@@ -14057,7 +14106,7 @@ class UtilityRef {
14057
14106
  execute(args) {
14058
14107
  return this._http.post(`/api/utility/${encodeURIComponent(this._utility.name)}`, args, { observe: 'response' }).pipe(tap((r) => {
14059
14108
  this._jobId = r.headers.get('job-id');
14060
- }), map((r) => r.body), catchError((e) => {
14109
+ }), map((r) => r.body), catchError$1((e) => {
14061
14110
  if (e.status === 406) // validation exception
14062
14111
  this._sb.errorString(e.error);
14063
14112
  else
@@ -14945,7 +14994,7 @@ class TraceViewComponent extends TraceBase {
14945
14994
  * @param id
14946
14995
  */
14947
14996
  function profileOf(id) {
14948
- return me._accounts.get(id).toPromise();
14997
+ return firstValueFrom(me._accounts.get(id));
14949
14998
  }
14950
14999
  /**
14951
15000
  * user name, chat anchor tag
@@ -15228,7 +15277,7 @@ class TraceViewComponent extends TraceBase {
15228
15277
  this._data && this._filter();
15229
15278
  }
15230
15279
  chat(e) {
15231
- const userId = e.srcElement.getAttribute('data-info');
15280
+ const userId = e.target.getAttribute('data-info');
15232
15281
  userId &&
15233
15282
  this._chat.open(userId);
15234
15283
  }
@@ -15602,24 +15651,25 @@ class ScheduleViewComponent {
15602
15651
  }
15603
15652
  this.starting = dates[0],
15604
15653
  this.ending = dates[dates.length - 1];
15605
- this._mailbox.events(this.starting, this.ending).subscribe(r => {
15606
- const data = r.map(e => {
15607
- return {
15608
- Id: e.id,
15609
- documentId: e.documentId,
15610
- StartTime: new Date(e.starting),
15611
- EndTime: e.ending ? new Date(e.ending) : null,
15612
- Subject: e.title,
15613
- IsAllDay: !e.ending || e.ending === e.starting
15614
- };
15615
- });
15616
- this.schedule.eventSettings.dataSource = data;
15617
- this.page = this.starting.valueOf();
15618
- }, () => this._sb.error());
15654
+ this._mailbox.events(this.starting, this.ending).subscribe({
15655
+ next: r => {
15656
+ const data = r.map(e => {
15657
+ return {
15658
+ Id: e.id,
15659
+ documentId: e.documentId,
15660
+ StartTime: new Date(e.starting),
15661
+ EndTime: e.ending ? new Date(e.ending) : null,
15662
+ Subject: e.title,
15663
+ IsAllDay: !e.ending || e.ending === e.starting
15664
+ };
15665
+ });
15666
+ this.schedule.eventSettings.dataSource = data;
15667
+ this.page = this.starting.valueOf();
15668
+ }, error: () => this._sb.error()
15669
+ });
15619
15670
  }
15620
15671
  drag(_) {
15621
- this._mailbox.changeEvent(1, { starting: null }).subscribe(() => {
15622
- }, () => this._sb.error());
15672
+ this._mailbox.changeEvent(1, { starting: null }).subscribe({ error: () => this._sb.error() });
15623
15673
  }
15624
15674
  nav(e) {
15625
15675
  switch (e.action) {
@@ -15723,7 +15773,7 @@ class FormResolve {
15723
15773
  this._service = _service;
15724
15774
  }
15725
15775
  onResolve(params) {
15726
- return this._service.form(params['id']).toPromise();
15776
+ return firstValueFrom(this._service.form(params['id']));
15727
15777
  }
15728
15778
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FormResolve, deps: [{ token: SystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
15729
15779
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: FormResolve }); }
@@ -15787,7 +15837,7 @@ class CubeMatrixBase {
15787
15837
  delete axes[g];
15788
15838
  });
15789
15839
  this.axes = axes;
15790
- this._listen().then(() => {
15840
+ this._listen().subscribe(() => {
15791
15841
  const combination = this._combine(axes);
15792
15842
  this.title = combination.join(ACCOUNT_DELIMITER);
15793
15843
  });
@@ -15809,10 +15859,10 @@ class CubeMatrixBase {
15809
15859
  const axes = { ...this.axes };
15810
15860
  axes[name] = value;
15811
15861
  this.onFilter(axes);
15812
- this._listen().then(() => this.values[name] = value);
15862
+ this._listen().subscribe(() => this.values[name] = value);
15813
15863
  }
15814
15864
  _listen() {
15815
- return this.table.loadingChange.pipe(filter$1(ok => !ok), first$1()).toPromise();
15865
+ return this.table.loadingChange.pipe(filter$1(ok => !ok), first$1());
15816
15866
  }
15817
15867
  onFilter(axes) {
15818
15868
  this.axes = axes;
@@ -15825,14 +15875,14 @@ class CubeMatrixBase {
15825
15875
  const axes = { ...pattern.axes };
15826
15876
  this._service.base(this.cube, axes, this.originalAxes);
15827
15877
  this.axes = { ...axes, ...this.values };
15828
- this._listen().then(() => {
15878
+ this._listen().subscribe(() => {
15829
15879
  this.title = pattern.title;
15830
15880
  this.pattern = pattern;
15831
15881
  });
15832
15882
  }
15833
15883
  reset() {
15834
15884
  this._populate();
15835
- this._listen().then(() => {
15885
+ this._listen().subscribe(() => {
15836
15886
  this.pattern = null;
15837
15887
  this.title = null;
15838
15888
  });
@@ -15915,10 +15965,11 @@ class CubeMatrixComponent {
15915
15965
  this.xAxis = this.cube.axes.find(a => a.name === this._xAxis);
15916
15966
  this.series = this.cube.axes.find(a => a.name === this._series);
15917
15967
  this.data = null;
15918
- this._prepare = forkJoin(this._ds.all(this.series.dataType).pipe(tap(r => this.rows = r)), this._ds.all(this.xAxis.dataType).pipe(tap(c => this.columns = c))).toPromise().then(() => {
15919
- this._indices && this._addindices();
15920
- this._sum && this._addsumheaders();
15921
- });
15968
+ this._prepare = firstValueFrom(forkJoin([this._ds.all(this.series.dataType).pipe(tap(r => this.rows = r)),
15969
+ this._ds.all(this.xAxis.dataType).pipe(tap(c => this.columns = c)).pipe(tap(() => {
15970
+ this._indices && this._addindices();
15971
+ this._sum && this._addsumheaders();
15972
+ }))]));
15922
15973
  this.refresh();
15923
15974
  }
15924
15975
  else if (changes['filters'])
@@ -15983,20 +16034,23 @@ class CubeMatrixComponent {
15983
16034
  filters: this.filters,
15984
16035
  inverseIndices: this.indexAt === 'XAxis',
15985
16036
  scope: this.scope
15986
- }).subscribe(r => {
15987
- const data = this._serialize(r);
15988
- this._clone(data);
15989
- this._sum && this._calculatesum(data);
15990
- this._totals(data);
15991
- this._stringify(data);
15992
- this.data = data;
15993
- clearTimeout(progressTask);
15994
- this.loadingChange.next(this.loading = false);
15995
- }, (e) => {
15996
- this._sb.error(errResource(e));
15997
- clearTimeout(progressTask);
15998
- this.loadingChange.next(this.loading = false);
15999
- this.loadingChange.error(e);
16037
+ }).subscribe({
16038
+ next: r => {
16039
+ const data = this._serialize(r);
16040
+ this._clone(data);
16041
+ this._sum && this._calculatesum(data);
16042
+ this._totals(data);
16043
+ this._stringify(data);
16044
+ this.data = data;
16045
+ clearTimeout(progressTask);
16046
+ this.loadingChange.next(this.loading = false);
16047
+ },
16048
+ error: (e) => {
16049
+ this._sb.error(errResource(e));
16050
+ clearTimeout(progressTask);
16051
+ this.loadingChange.next(this.loading = false);
16052
+ this.loadingChange.error(e);
16053
+ }
16000
16054
  }));
16001
16055
  }
16002
16056
  _serialize(series) {
@@ -16397,7 +16451,7 @@ class NotificationBase {
16397
16451
  return this._chat.format(person);
16398
16452
  }
16399
16453
  open(e) {
16400
- const userId = e.srcElement.getAttribute('data-info');
16454
+ const userId = e.target.getAttribute('data-info');
16401
16455
  if (userId)
16402
16456
  this._chat.open(userId);
16403
16457
  else if (this.notification.recipientId)
@@ -16469,7 +16523,7 @@ class CubeAnomalyNotification {
16469
16523
  forkJoin(observables).subscribe(a => this.axes = this._translate.join(a.map((e, i) => e || this.notification.axes[i])));
16470
16524
  }
16471
16525
  open(e) {
16472
- const id = e.srcElement.getAttribute('data-info');
16526
+ const id = e.target.getAttribute('data-info');
16473
16527
  if (id) {
16474
16528
  this._router.navigate(['mailbox/i', parseInt(id).encodeId()]);
16475
16529
  }
@@ -16547,7 +16601,7 @@ class LikedNotification extends NotificationBase {
16547
16601
  this._accounts = _accounts;
16548
16602
  }
16549
16603
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LikedNotification, deps: [{ token: NOTIFICATION_DATA }, { token: AccountService }, { token: TranslateService }, { token: RouterImpl }, { token: SessionService }, { token: ChatInfo }], target: i0.ɵɵFactoryTarget.Component }); }
16550
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: LikedNotification, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<ng-container *ngIf='message'>
16604
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: LikedNotification, selector: "bizdoc-liked-notification", usesInheritance: true, ngImport: i0, template: `<ng-container *ngIf='message'>
16551
16605
  <span *ngIf='notification.userIds.length < 3' [innerHTML]='message | sanitizeHtml'></span>
16552
16606
  <span *ngIf='notification.userIds.length >= 3' [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
16553
16607
  </ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
@@ -16555,6 +16609,7 @@ class LikedNotification extends NotificationBase {
16555
16609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: LikedNotification, decorators: [{
16556
16610
  type: Component,
16557
16611
  args: [{
16612
+ selector: 'bizdoc-liked-notification',
16558
16613
  template: `<ng-container *ngIf='message'>
16559
16614
  <span *ngIf='notification.userIds.length < 3' [innerHTML]='message | sanitizeHtml'></span>
16560
16615
  <span *ngIf='notification.userIds.length >= 3' [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
@@ -16778,7 +16833,7 @@ class NotificationsComponentBase {
16778
16833
  }
16779
16834
  }
16780
16835
  _getInjector(item) {
16781
- return Injector.create([{ provide: NOTIFICATION_DATA, useValue: item }], this._injector);
16836
+ return Injector.create({ providers: [{ provide: NOTIFICATION_DATA, useValue: item }], parent: this._injector });
16782
16837
  }
16783
16838
  }
16784
16839
 
@@ -16918,7 +16973,7 @@ class NotificationsTableComponent extends NotificationsComponentBase {
16918
16973
  this.selection.select(...this.dataSource.data);
16919
16974
  }
16920
16975
  openFilter(evt) {
16921
- const popupRef = this._popup.open(NotificationsFilterComponent, evt.srcElement);
16976
+ const popupRef = this._popup.open(NotificationsFilterComponent, evt.target);
16922
16977
  popupRef.opened().
16923
16978
  subscribe(e => {
16924
16979
  e.form.setValue({ text: this.dataSource.filter, showDeleted: this.showDeleted });
@@ -17128,10 +17183,12 @@ class ContactsComponent {
17128
17183
  this.selected.next(item);
17129
17184
  }
17130
17185
  forget(item) {
17131
- this._service.forget(item.id).subscribe(() => {
17132
- item.forgotten = true;
17133
- this.contacts.remove(item);
17134
- }, () => this._sb.error());
17186
+ this._service.forget(item.id).subscribe({
17187
+ next: () => {
17188
+ item.forgotten = true;
17189
+ this.contacts.remove(item);
17190
+ }, error: () => this._sb.error()
17191
+ });
17135
17192
  }
17136
17193
  ngOnDestroy() {
17137
17194
  this._destroy.next();
@@ -17170,7 +17227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
17170
17227
  }]
17171
17228
  }], ctorParameters: function () { return [{ type: PaneRef }, { type: TranslateService }, { type: PanesRouter }]; } });
17172
17229
 
17173
- const CONTACT_TYPING_NOTE = 1500;
17230
+ const TYPING_NOTIFY = 500, CONTACT_TYPING_NOTE = 1500;
17174
17231
  class ConversationComponent {
17175
17232
  constructor(config, _service, _messaging, _translate, _accounts, _sb, _vc, _overlay) {
17176
17233
  this._service = _service;
@@ -17216,26 +17273,30 @@ class ConversationComponent {
17216
17273
  if (e.contactId === this.contact.id)
17217
17274
  this.watermark = e.time;
17218
17275
  });
17219
- this._textChange.pipe(debounceTime(350), takeUntil$1(this._destroy)).subscribe(() => this._service.typing(this.contact.id));
17276
+ this._textChange.pipe(debounceTime(TYPING_NOTIFY), takeUntil$1(this._destroy)).subscribe(() => this._service.typing(this.contact.id));
17220
17277
  }
17221
17278
  ngOnChanges(_) {
17222
17279
  this.profile &&
17223
17280
  this._preserveDraft && this._persist();
17224
- this._accounts.get(this.contact.id).subscribe(u => {
17225
- this.profile = u;
17226
- }, () => this._sb.error());
17281
+ this._accounts.get(this.contact.id).subscribe({
17282
+ next: u => {
17283
+ this.profile = u;
17284
+ }, error: () => this._sb.error()
17285
+ });
17227
17286
  // latest
17228
17287
  this.watermark = this.contact.visited || this.contact.watermark ? (this.contact.visited && this.contact.watermark ?
17229
17288
  this.contact.watermark > this.contact.visited ?
17230
17289
  this.contact.watermark : this.contact.visited :
17231
17290
  this.contact.watermark || this.contact.visited) : null;
17232
17291
  // fetch
17233
- this._service.conversations(this.contact.id).subscribe(cs => {
17234
- this.items = cs.reverse();
17235
- this._scrollToBottom();
17236
- !this.contact.count &&
17237
- this.focus();
17238
- }, () => this._sb.error());
17292
+ this._service.conversations(this.contact.id).subscribe({
17293
+ next: c => {
17294
+ this.items = c.reverse();
17295
+ this._scrollToBottom();
17296
+ !this.contact.count &&
17297
+ this.focus();
17298
+ }, error: () => this._sb.error()
17299
+ });
17239
17300
  if (this._preserveDraft) {
17240
17301
  const text = localStorage.getItem(this.contact.id);
17241
17302
  if (text)
@@ -17268,14 +17329,16 @@ class ConversationComponent {
17268
17329
  }
17269
17330
  send(evt) {
17270
17331
  this.sending = true;
17271
- this._service.send(this.contact.id, evt).subscribe(c => {
17272
- this.items.push(c);
17273
- this._input.clear();
17274
- this._scrollToBottom();
17275
- this.sending = false;
17276
- }, e => {
17277
- this.sending = false;
17278
- this._sb.error();
17332
+ this._service.send(this.contact.id, evt).subscribe({
17333
+ next: c => {
17334
+ this.items.push(c);
17335
+ this._input.clear();
17336
+ this._scrollToBottom();
17337
+ this.sending = false;
17338
+ }, error: e => {
17339
+ this.sending = false;
17340
+ this._sb.error();
17341
+ }
17279
17342
  });
17280
17343
  }
17281
17344
  onFocus() {
@@ -17303,7 +17366,7 @@ class ConversationComponent {
17303
17366
  positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
17304
17367
  });
17305
17368
  oRef.attach(new TemplatePortal(this.previewTemplate, this._vc, { item }));
17306
- merge(oRef.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE)), oRef.backdropClick()).subscribe(() => oRef.detach());
17369
+ merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
17307
17370
  }
17308
17371
  ngOnDestroy() {
17309
17372
  if (this._typingTask)
@@ -17760,42 +17823,42 @@ class DocumentInfoPaneComponent {
17760
17823
  });
17761
17824
  }
17762
17825
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentInfoPaneComponent, deps: [{ token: PaneRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
17763
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: DocumentInfoPaneComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, dependencies: [{ kind: "component", type: DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] }); }
17826
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: DocumentInfoPaneComponent, selector: "bizdoc-document-info-pane", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, dependencies: [{ kind: "component", type: DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] }); }
17764
17827
  }
17765
17828
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentInfoPaneComponent, decorators: [{
17766
17829
  type: Component,
17767
17830
  args: [{
17831
+ selector: 'bizdoc-document-info-pane',
17768
17832
  template: `<bizdoc-document [model]=model></bizdoc-document>`
17769
17833
  }]
17770
17834
  }], ctorParameters: function () { return [{ type: PaneRef }, { type: SessionService }]; } });
17771
17835
 
17772
- class ItemResolver {
17836
+ class CubeItemResolver {
17773
17837
  constructor(_service) {
17774
17838
  this._service = _service;
17775
17839
  }
17776
17840
  onResolve(params, queryParams) {
17777
17841
  return this._service.item(params['cube'], queryParams, params['key']);
17778
17842
  }
17779
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolver, deps: [{ token: CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
17780
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolver }); }
17843
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolver, deps: [{ token: CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
17844
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolver }); }
17781
17845
  }
17782
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolver, decorators: [{
17846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolver, decorators: [{
17783
17847
  type: Injectable
17784
17848
  }], ctorParameters: function () { return [{ type: CubeService }]; } });
17785
- class ItemResolveService {
17786
- constructor(_service, _router) {
17849
+ class CubeItemResolveService {
17850
+ constructor(_service) {
17787
17851
  this._service = _service;
17788
- this._router = _router;
17789
17852
  }
17790
17853
  resolve(route) {
17791
17854
  return this._service.item(route.params['cube'], route.queryParams, route.params['key']);
17792
17855
  }
17793
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolveService, deps: [{ token: CubeService }, { token: i1$4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
17794
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolveService }); }
17856
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolveService, deps: [{ token: CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
17857
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolveService }); }
17795
17858
  }
17796
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ItemResolveService, decorators: [{
17859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeItemResolveService, decorators: [{
17797
17860
  type: Injectable
17798
- }], ctorParameters: function () { return [{ type: CubeService }, { type: i1$4.Router }]; } });
17861
+ }], ctorParameters: function () { return [{ type: CubeService }]; } });
17799
17862
 
17800
17863
  class UserNamePipe {
17801
17864
  transform(value) {
@@ -17873,7 +17936,7 @@ class OptionsComponent {
17873
17936
  return item ? item.name : null;
17874
17937
  };
17875
17938
  this.voating = !config.comments || config.comments.voting !== false;
17876
- merge(overlayRef.keydownEvents().pipe(filter(k => k.keyCode === 27)), overlayRef.backdropClick()).
17939
+ merge(overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), overlayRef.backdropClick()).
17877
17940
  subscribe(() => overlayRef.dispose());
17878
17941
  }
17879
17942
  ngOnInit() {
@@ -17942,7 +18005,7 @@ class OptionsComponent {
17942
18005
  this.notifications.open();
17943
18006
  }
17944
18007
  this.form.valueChanges.pipe(debounceTime(200), takeUntil$1(this._destroy)).subscribe(() => this.form.valid &&
17945
- this._session.update(this.form.getRawValue()).subscribe(undefined, () => this._sb.error()));
18008
+ this._session.update(this.form.getRawValue()).subscribe({ error: () => this._sb.error() }));
17946
18009
  }
17947
18010
  _toggle(group, active, ...controls) {
17948
18011
  controls.forEach(name => {
@@ -17956,17 +18019,14 @@ class OptionsComponent {
17956
18019
  this.form.controls['notifications'].controls['sound'].setValue(!this.options.notifications.sound);
17957
18020
  }
17958
18021
  addTag(event) {
17959
- const input = event.input;
17960
- const value = event.value;
18022
+ const { chipInput, value } = event;
17961
18023
  // Add our fruit
17962
18024
  if ((value || '').trim()) {
17963
18025
  this.options.tags.push(value.trim());
17964
18026
  this.form.patchValue({});
17965
18027
  }
17966
18028
  // Reset the input value
17967
- if (input) {
17968
- input.value = '';
17969
- }
18029
+ chipInput?.clear();
17970
18030
  }
17971
18031
  removeTag(tag) {
17972
18032
  this.options.tags.remove(tag);
@@ -18047,10 +18107,12 @@ class OptionsService {
18047
18107
  direction: this._dir.value
18048
18108
  });
18049
18109
  const oRef = this._overlay.create(config);
18050
- const injector = Injector.create([
18051
- { provide: OPTION_PANEL, useValue: { open: section } },
18052
- { provide: OverlayRef, useValue: oRef },
18053
- ], this._injector);
18110
+ const injector = Injector.create({
18111
+ providers: [
18112
+ { provide: OPTION_PANEL, useValue: { open: section } },
18113
+ { provide: OverlayRef, useValue: oRef },
18114
+ ], parent: this._injector
18115
+ });
18054
18116
  const portal = new ComponentPortal(OptionsComponent, null, injector);
18055
18117
  oRef.attach(portal);
18056
18118
  oRef.backdropClick().subscribe(() => oRef.dispose());
@@ -18101,7 +18163,7 @@ class AppHttpInterceptor {
18101
18163
  setHeaders: headers,
18102
18164
  url
18103
18165
  });
18104
- const handle = next.handle(request).pipe(catchError((e) => {
18166
+ const handle = next.handle(request).pipe(catchError$1((e) => {
18105
18167
  if (this._authenticationInProgress$)
18106
18168
  return this._authenticationInProgress$;
18107
18169
  else if (e.status === 401)
@@ -18110,12 +18172,15 @@ class AppHttpInterceptor {
18110
18172
  return this.intercept(req, next);
18111
18173
  }));
18112
18174
  else
18113
- return throwError(e);
18175
+ throw new Error(e.message);
18114
18176
  }));
18115
18177
  if (!req.headers.has('no-progress')) {
18116
18178
  this._ongoingCounter$.next(1);
18117
- return handle.pipe(tap(event => event instanceof HttpResponse
18118
- && this._ongoingCounter$.next(0), () => this._ongoingCounter$.next(0)));
18179
+ return handle.pipe(tap({
18180
+ next: event => event instanceof HttpResponse
18181
+ && this._ongoingCounter$.next(0),
18182
+ error: () => this._ongoingCounter$.next(0)
18183
+ }));
18119
18184
  }
18120
18185
  else
18121
18186
  return handle;
@@ -18128,7 +18193,7 @@ class AppHttpInterceptor {
18128
18193
  this.active$ = this._ongoingCounter$.asObservable().pipe(map(c => c > 0));
18129
18194
  if (baseUrl) {
18130
18195
  if (baseUrl.endsWith('/'))
18131
- this._baseUrl = baseUrl.substr(0, baseUrl.length - 1);
18196
+ this._baseUrl = baseUrl.substring(0, baseUrl.length - 1);
18132
18197
  else
18133
18198
  this._baseUrl = baseUrl;
18134
18199
  }
@@ -18324,17 +18389,19 @@ class ImpersonateDialog {
18324
18389
  filter(u => u.name.toLowerCase().indexOf(name) > -1 && u.id !== this._me);
18325
18390
  })) : of([])));
18326
18391
  this.logging = false;
18327
- _dialogRef.keydownEvents().pipe(takeUntil$1(this._destroy), filter(k => k.keyCode === ENTER)).
18392
+ _dialogRef.keydownEvents().pipe(takeUntil$1(this._destroy), filter(k => k.key === 'Enter')).
18328
18393
  subscribe(() => this.item && this.go());
18329
18394
  }
18330
18395
  go() {
18331
18396
  this.logging = true;
18332
- this._session.impersonate(this.item.id).subscribe(() => {
18333
- this.logging = false;
18334
- this._dialogRef.close(true);
18335
- }, () => {
18336
- this.logging = false;
18337
- this._sb.error();
18397
+ this._session.impersonate(this.item.id).subscribe({
18398
+ next: () => {
18399
+ this.logging = false;
18400
+ this._dialogRef.close(true);
18401
+ }, error: () => {
18402
+ this.logging = false;
18403
+ this._sb.error();
18404
+ }
18338
18405
  });
18339
18406
  }
18340
18407
  display(item) {
@@ -18505,7 +18572,7 @@ class QuickNotificationsComponent extends NotificationsComponentBase {
18505
18572
  });
18506
18573
  }
18507
18574
  open(item, evt) {
18508
- if (evt.srcElement.tagName !== 'MAT-ICON') {
18575
+ if (evt.target.tagName !== 'MAT-ICON') {
18509
18576
  if (!item.read)
18510
18577
  this._service.read(item.id, item.sent, true).subscribe(() => item.read = true);
18511
18578
  this._popupRef.close();
@@ -18633,7 +18700,7 @@ class SearchService {
18633
18700
  this._cr = _cr;
18634
18701
  }
18635
18702
  _createInjector() {
18636
- return Injector.create([], this._injector);
18703
+ return Injector.create({ providers: [], parent: this._injector });
18637
18704
  }
18638
18705
  search(value) {
18639
18706
  const profile = this._session.profile;
@@ -18774,7 +18841,7 @@ class QuickToolsComponent {
18774
18841
  notifs(evt) {
18775
18842
  this.profile.notifications.length &&
18776
18843
  this._session.notificationsTouch();
18777
- this._popup.open(QuickNotificationsComponent, evt.srcElement, { position: 'start' });
18844
+ this._popup.open(QuickNotificationsComponent, evt.target, { position: 'start' });
18778
18845
  }
18779
18846
  open(evt) {
18780
18847
  if (this.searching)
@@ -18893,8 +18960,8 @@ class SlotsComponent {
18893
18960
  parent = relativeTo || this.panes[this.selectedIndex];
18894
18961
  let parentpath = parent.path;
18895
18962
  while (path.startsWith('../')) {
18896
- parentpath = parentpath.substr(0, parentpath.lastIndexOf('/'));
18897
- path = path.substr(3);
18963
+ parentpath = parentpath.substring(0, parentpath.lastIndexOf('/'));
18964
+ path = path.substring(3);
18898
18965
  }
18899
18966
  path = parentpath + '/' + path;
18900
18967
  }
@@ -19454,7 +19521,7 @@ class SlotsComponent {
19454
19521
  if (isPromise(value))
19455
19522
  await value.then(r => data[key] = r);
19456
19523
  else if (isObservable(value))
19457
- await value.pipe(tap(r => data[key] = r)).toPromise();
19524
+ await firstValueFrom(value.pipe(tap(r => data[key] = r)));
19458
19525
  else
19459
19526
  data[key] = value;
19460
19527
  }
@@ -19797,7 +19864,7 @@ class SlotsComponent {
19797
19864
  else if (isPromise(ok))
19798
19865
  return ok;
19799
19866
  else
19800
- return ok.toPromise();
19867
+ return firstValueFrom(ok);
19801
19868
  }
19802
19869
  scrollTo(index) {
19803
19870
  const item = this._children.item(index);
@@ -19825,14 +19892,14 @@ class SlotsComponent {
19825
19892
  el.focus();
19826
19893
  }
19827
19894
  onPaneResize(pane, event) {
19828
- const el = event.srcElement.previousElementSibling;
19895
+ const el = event.target.previousElementSibling;
19829
19896
  const // remember mouse down info
19830
19897
  width = el.clientWidth, d = this._rtl ? -1 : 1;
19831
- event.srcElement.classList.add('resizing');
19898
+ event.target.classList.add('resizing');
19832
19899
  this.dragging = true;
19833
19900
  document.onmousemove = onMouseMove;
19834
19901
  document.onmouseup = () => {
19835
- event.srcElement.classList.remove('resizing');
19902
+ event.target.classList.remove('resizing');
19836
19903
  document.onmousemove = document.onmouseup = null;
19837
19904
  this.dragging = false;
19838
19905
  };
@@ -19844,15 +19911,15 @@ class SlotsComponent {
19844
19911
  }
19845
19912
  }
19846
19913
  onTabResize(event) {
19847
- const el = event.srcElement.nextElementSibling;
19914
+ const el = event.target.nextElementSibling;
19848
19915
  const me = this,
19849
19916
  // remember mouse down info
19850
19917
  width = el.clientWidth, d = this._rtl ? 1 : -1;
19851
- event.srcElement.classList.add('resizing');
19918
+ event.target.classList.add('resizing');
19852
19919
  this.dragging = true;
19853
19920
  document.onmousemove = onMouseMove;
19854
19921
  document.onmouseup = () => {
19855
- event.srcElement.classList.remove('resizing');
19922
+ event.target.classList.remove('resizing');
19856
19923
  document.onmousemove = document.onmouseup = null;
19857
19924
  this.dragging = false;
19858
19925
  me.enableNavigationArrows();
@@ -19924,7 +19991,7 @@ function prepareRoutes(routes, treePath) {
19924
19991
  fullPath,
19925
19992
  regEx: new RegExp('^' + fullPath.
19926
19993
  replace('/', '\\/').
19927
- replace(PANE_PARAMS_REGEX, e => `(?<${e.substr(1)}>[\\w@\\-]*)`))
19994
+ replace(PANE_PARAMS_REGEX, e => `(?<${e.substring(1)}>[\\w@\\-]*)`))
19928
19995
  });
19929
19996
  if (route.children) {
19930
19997
  let children = prepareRoutes(route.children, fullPath);
@@ -20177,10 +20244,10 @@ class HomeComponent extends HomeBase {
20177
20244
  }
20178
20245
  /** options */
20179
20246
  options(evt) {
20180
- this._popup.open(QuickOptionsComponent, evt.srcElement, { position: 'end' });
20247
+ this._popup.open(QuickOptionsComponent, evt.target, { position: 'end' });
20181
20248
  }
20182
20249
  signout(evt) {
20183
- this._popup.open(QuickSignComponent, evt.srcElement, { position: 'end' });
20250
+ this._popup.open(QuickSignComponent, evt.target, { position: 'end' });
20184
20251
  }
20185
20252
  nav(path) {
20186
20253
  this._router.navigate([path]);
@@ -20209,15 +20276,17 @@ class HomeComponent extends HomeBase {
20209
20276
  _create() {
20210
20277
  this.creating = true;
20211
20278
  this._mailbox.create(this.forms[0].name).
20212
- subscribe(r => {
20213
- this.creating = false;
20214
- this._router.navigate(['mailbox/i', r.id.encodeId()], {
20215
- policy: OpenPolicy.Clear,
20216
- state: { item: r }
20217
- });
20218
- }, (e) => {
20219
- this._handleErr(e);
20220
- this.creating = false;
20279
+ subscribe({
20280
+ next: r => {
20281
+ this.creating = false;
20282
+ this._router.navigate(['mailbox/i', r.id.encodeId()], {
20283
+ policy: OpenPolicy.Clear,
20284
+ state: { item: r }
20285
+ });
20286
+ }, error: (e) => {
20287
+ this._handleErr(e);
20288
+ this.creating = false;
20289
+ }
20221
20290
  });
20222
20291
  }
20223
20292
  _handleErr(response) {
@@ -20269,7 +20338,7 @@ class HomeComponent extends HomeBase {
20269
20338
  * @param event
20270
20339
  */
20271
20340
  handleKeyboardEvent(event) {
20272
- if (event.altKey && (event.which === 110 || event.which === 78)) {
20341
+ if (event.altKey && (event.key === 'n' || event.key === 'N')) {
20273
20342
  if (this.submenu === 'new')
20274
20343
  this.submenu = null;
20275
20344
  else {
@@ -20282,7 +20351,7 @@ class HomeComponent extends HomeBase {
20282
20351
  }
20283
20352
  event.preventDefault();
20284
20353
  }
20285
- else if (event.ctrlKey && event.which === 190) {
20354
+ else if (event.ctrlKey && event.key === '.') {
20286
20355
  if (this.submenu && !this._collapseToggle) {
20287
20356
  this.submenuMode = this.submenuMode === 'shrink' ? 'full' : 'shrink';
20288
20357
  this._collapseToggle = true;
@@ -20315,7 +20384,7 @@ class CopyDialog {
20315
20384
  constructor(_service, dialogRef) {
20316
20385
  this._service = _service;
20317
20386
  this.search = new FormControl();
20318
- dialogRef.keydownEvents().pipe(filter(k => k.keyCode === ENTER)).
20387
+ dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter')).
20319
20388
  subscribe(() => this.selectedItem && dialogRef.close(this.selectedItem));
20320
20389
  }
20321
20390
  ngOnInit() {
@@ -20352,17 +20421,21 @@ class FormSelectorSheet {
20352
20421
  this.forms = _session.profile.forms.filter(f => f.creatable);
20353
20422
  }
20354
20423
  open(form) {
20355
- this._mailbox.create(form).subscribe(i => this._route(i), e => this._error(e));
20424
+ this._mailbox.create(form).subscribe({
20425
+ next: i => this._route(i), error: e => this._error(e)
20426
+ });
20356
20427
  this._bsRef.dismiss();
20357
20428
  }
20358
20429
  copy(event) {
20359
20430
  event.preventDefault();
20360
20431
  this._bsRef.afterDismissed().subscribe(() => this._dialog.open(CopyDialog).afterClosed().subscribe(i => {
20361
20432
  i &&
20362
- this._mailbox.copy(i.documentId).subscribe(i => {
20363
- this._sb.toast('Copied', i.number || this._getForm(i.formId).title);
20364
- this._route(i);
20365
- }, e => this._error(e));
20433
+ this._mailbox.copy(i.documentId).subscribe({
20434
+ next: i => {
20435
+ this._sb.toast('Copied', i.number || this._getForm(i.formId).title);
20436
+ this._route(i);
20437
+ }, error: e => this._error(e)
20438
+ });
20366
20439
  }));
20367
20440
  this._bsRef.dismiss();
20368
20441
  }
@@ -20500,7 +20573,7 @@ class HomeMobileComponent extends HomeBase {
20500
20573
  }
20501
20574
  /** options */
20502
20575
  options(evt) {
20503
- this._popup.open(QuickOptionsComponent, evt.srcElement, { position: 'end' });
20576
+ this._popup.open(QuickOptionsComponent, evt.target, { position: 'end' });
20504
20577
  }
20505
20578
  signout() {
20506
20579
  this.menuDrawer.close();
@@ -20745,7 +20818,7 @@ const PANES_CONFIG = [{
20745
20818
  path: 'i/:template/:key',
20746
20819
  component: ExploreItemPaneComponent,
20747
20820
  policy: OpenPolicy.Tab | OpenPolicy.Expandable,
20748
- resolve: { item: ItemResolver }
20821
+ resolve: { item: CubeItemResolver }
20749
20822
  }]
20750
20823
  },
20751
20824
  {
@@ -20964,7 +21037,7 @@ class CanDeactivateCompose {
20964
21037
  constructor(_sb) {
20965
21038
  this._sb = _sb;
20966
21039
  }
20967
- canDeactivate(component, _currentRoute, _currentState, _nextState) {
21040
+ canDeactivate(component) {
20968
21041
  if (component.form.dirty)
20969
21042
  return this._sb.ask('SaveChangesAsk', 'SaveChanges', { i18n: true, color: 'primary', ok: 'Save', cancel: 'Ignore' }).pipe(switchMap(ok => {
20970
21043
  if (ok)
@@ -21224,7 +21297,10 @@ class RecipientResolveService {
21224
21297
  return of(item);
21225
21298
  }
21226
21299
  const id = route.paramMap.get('id').decodeId();
21227
- return this._mailbox.get(id).pipe(tap(null, () => this._sb.error()));
21300
+ return this._mailbox.get(id).pipe(catchError(() => {
21301
+ this._sb.error();
21302
+ throw new Error();
21303
+ }));
21228
21304
  }
21229
21305
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RecipientResolveService, deps: [{ token: MailboxService }, { token: PromptService }, { token: i1$4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
21230
21306
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RecipientResolveService }); }
@@ -21247,7 +21323,10 @@ class DocumentResolveService {
21247
21323
  return of(item);
21248
21324
  }
21249
21325
  const id = route.paramMap.get('id').decodeId();
21250
- return this._mailbox.info(id).pipe(tap(null, () => this._sb.error()));
21326
+ return this._mailbox.info(id).pipe(catchError(() => {
21327
+ this._sb.error();
21328
+ throw new Error();
21329
+ }));
21251
21330
  }
21252
21331
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentResolveService, deps: [{ token: MailboxService }, { token: PromptService }, { token: i1$4.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
21253
21332
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentResolveService }); }
@@ -21325,11 +21404,12 @@ class DocumentInfoPageComponent {
21325
21404
  });
21326
21405
  }
21327
21406
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentInfoPageComponent, deps: [{ token: i1$4.ActivatedRoute }, { token: WindowTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
21328
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: DocumentInfoPageComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, dependencies: [{ kind: "component", type: DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] }); }
21407
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: DocumentInfoPageComponent, selector: "bizdoc-document-info-page", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, dependencies: [{ kind: "component", type: DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] }); }
21329
21408
  }
21330
21409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DocumentInfoPageComponent, decorators: [{
21331
21410
  type: Component,
21332
21411
  args: [{
21412
+ selector: 'bizdoc-document-info-page',
21333
21413
  template: `<bizdoc-document [model]=model></bizdoc-document>`
21334
21414
  }]
21335
21415
  }], ctorParameters: function () { return [{ type: i1$4.ActivatedRoute }, { type: WindowTitleService }]; } });
@@ -21353,20 +21433,26 @@ const ROUTES = [
21353
21433
  {
21354
21434
  path: 'mailbox',
21355
21435
  children: [
21356
- {
21357
- path: 'i/:id/views',
21358
- resolve: { item: RecipientResolveService },
21359
- component: DocumentViewMobileComponent
21360
- },
21361
21436
  {
21362
21437
  path: 'i/:id',
21363
21438
  component: ComposeComponent,
21364
- resolve: { item: RecipientResolveService },
21365
- canDeactivate: [CanDeactivateCompose],
21439
+ resolve: {
21440
+ item: () => inject(RecipientResolveService).resolve(inject(ActivatedRouteSnapshot))
21441
+ },
21442
+ children: [
21443
+ {
21444
+ path: 'views',
21445
+ component: DocumentViewMobileComponent
21446
+ },
21447
+ ],
21448
+ canDeactivate: [() => inject(CanDeactivateCompose).
21449
+ canDeactivate(inject(ComposeComponent))],
21366
21450
  },
21367
21451
  {
21368
21452
  path: 'd/:id', component: DocumentInfoPageComponent,
21369
- resolve: { item: DocumentResolveService }
21453
+ resolve: {
21454
+ item: () => inject(DocumentResolveService).resolve(inject(ActivatedRouteSnapshot))
21455
+ }
21370
21456
  },
21371
21457
  {
21372
21458
  path: 'f/:id', component: BrowseComponent,
@@ -21705,7 +21791,7 @@ class MapComponent {
21705
21791
  });
21706
21792
  infowindow.open(map, marker);
21707
21793
  }, MARKER_DELAY);
21708
- this._ref.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE)).subscribe(() => this._ref.detach());
21794
+ this._ref.keydownEvents().pipe(filter(k => k.key === 'Escape')).subscribe(() => this._ref.detach());
21709
21795
  this._ref.backdropClick().pipe().subscribe(() => this._ref.detach());
21710
21796
  }
21711
21797
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MapComponent, deps: [{ token: i1$1.OverlayRef }, { token: LOCATION_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -21782,9 +21868,12 @@ class CubeMatrixPopupComponent extends CubeMatrixBase {
21782
21868
  this.originalAxes = base;
21783
21869
  }
21784
21870
  ngOnInit() {
21785
- this.table.loadingChange.pipe(filter$1(ok => !ok), first$1()).subscribe(() => this.preloading = false, (e) => {
21786
- if (e.status === 401)
21787
- this._ref.close();
21871
+ this.table.loadingChange.pipe(filter$1(ok => !ok), first$1()).subscribe({
21872
+ next: () => this.preloading = false,
21873
+ error: (e) => {
21874
+ if (e.status === 401)
21875
+ this._ref.close();
21876
+ }
21788
21877
  });
21789
21878
  }
21790
21879
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -22280,19 +22369,20 @@ class FileInput {
22280
22369
  '.' + AttachmentInfo.fileExt(item.fileName) + ',' + item.contentType;
22281
22370
  this._prompt({ multiple: false, accept }).then(files => {
22282
22371
  this._mailbox.checkIn(this._model.id, this._model.version, item.id, files[0]).
22283
- pipe().
22284
- subscribe(a => {
22285
- delete item.checkedOut;
22286
- Object.assign(item, a);
22287
- if (this.multiple) {
22288
- const index = this.value.indexOf(item.id);
22289
- // replace value with new id
22290
- this.value.splice(index, 1, a.id);
22291
- }
22292
- else
22293
- this.value = a.id;
22294
- this._sb.toast(this._translate.get('CheckedIn', item.fileName));
22295
- }, e => this._handleError(e));
22372
+ subscribe({
22373
+ next: a => {
22374
+ delete item.checkedOut;
22375
+ Object.assign(item, a);
22376
+ if (this.multiple) {
22377
+ const index = this.value.indexOf(item.id);
22378
+ // replace value with new id
22379
+ this.value.splice(index, 1, a.id);
22380
+ }
22381
+ else
22382
+ this.value = a.id;
22383
+ this._sb.toast(this._translate.get('CheckedIn', item.fileName));
22384
+ }, error: e => this._handleError(e)
22385
+ });
22296
22386
  });
22297
22387
  }
22298
22388
  checkOut(item) {
@@ -22303,13 +22393,15 @@ class FileInput {
22303
22393
  });
22304
22394
  }
22305
22395
  discard(item) {
22306
- const task = () => this._mailbox.removeattachment(this._model.id, item.id).subscribe(_ => {
22307
- this.items.remove(item);
22308
- this._value = this.multiple ? this.items.length ? this.items.map(i => i.id) : null : null;
22309
- this._onChange && this._onChange(this.value);
22310
- const aitem = this._model.attachments.find(a => a.id === item.id);
22311
- aitem.deleted = true;
22312
- }, e => this._handleError(e));
22396
+ const task = () => this._mailbox.removeattachment(this._model.id, item.id).subscribe({
22397
+ next: () => {
22398
+ this.items.remove(item);
22399
+ this._value = this.multiple ? this.items.length ? this.items.map(i => i.id) : null : null;
22400
+ this._onChange && this._onChange(this.value);
22401
+ const aitem = this._model.attachments.find(a => a.id === item.id);
22402
+ aitem.deleted = true;
22403
+ }, error: e => this._handleError(e)
22404
+ });
22313
22405
  if (this._model.draft)
22314
22406
  task();
22315
22407
  else
@@ -22441,10 +22533,7 @@ class FileInput {
22441
22533
  this._input.nativeElement.multiple = options.multiple;
22442
22534
  }
22443
22535
  this._input.nativeElement.click();
22444
- return new Promise((resolve, reject) => {
22445
- this._pending.pipe(first()).
22446
- subscribe(resolve, reject);
22447
- });
22536
+ return firstValueFrom(this._pending);
22448
22537
  }
22449
22538
  /**
22450
22539
  *
@@ -22452,7 +22541,7 @@ class FileInput {
22452
22541
  */
22453
22542
  _change(evt) {
22454
22543
  this._onTouched && this._onTouched();
22455
- const { files } = evt.srcElement;
22544
+ const { files } = evt.target;
22456
22545
  const arr = [];
22457
22546
  for (var i = 0; i < files.length; i++) {
22458
22547
  let file = files.item(i);
@@ -22492,7 +22581,7 @@ class FileInput {
22492
22581
  if (item.checkedOut) {
22493
22582
  // check in
22494
22583
  let observable = this._mailbox.checkIn(this._model.id, this._model.version, item.id, file).
22495
- pipe(reportProgress(item), catchError(e => {
22584
+ pipe(reportProgress(item), catchError$1(e => {
22496
22585
  this._handleError(e);
22497
22586
  return of(false);
22498
22587
  }), tap((a) => {
@@ -22509,7 +22598,7 @@ class FileInput {
22509
22598
  else if (this.canEdit(item)) {
22510
22599
  // existing item, override
22511
22600
  let observable = this._mailbox.upload(this._model.id, this._model.formId, this._model.version, file, { isPrivate: true }).
22512
- pipe(reportProgress(item), catchError(e => {
22601
+ pipe(reportProgress(item), catchError$1(e => {
22513
22602
  this._handleError(e);
22514
22603
  return of(false);
22515
22604
  }), tap((a) => {
@@ -22529,7 +22618,7 @@ class FileInput {
22529
22618
  //this.items.push(this._createItem(a));
22530
22619
  // upload new
22531
22620
  let observable = this._mailbox.upload(this._model.id, this._model.formId, this._model.version, file, { isPrivate: true }).
22532
- pipe(/*TODO reportProgress(item), */ catchError(e => {
22621
+ pipe(/*TODO reportProgress(item), */ catchError$1(e => {
22533
22622
  this._handleError(e);
22534
22623
  return of(false);
22535
22624
  }), tap((a) => {
@@ -23617,13 +23706,15 @@ class CubeDocumentsWidget {
23617
23706
  this.dataSource.sort = this.sort;
23618
23707
  }
23619
23708
  open(item) {
23620
- this._mailbox.info(item.id).subscribe(item => {
23621
- this._router.navigate(['mailbox/d', item.documentId.encodeId()], {
23622
- state: {
23623
- item
23624
- }
23625
- });
23626
- }, () => this._sb.error());
23709
+ this._mailbox.info(item.id).subscribe({
23710
+ next: item => {
23711
+ this._router.navigate(['mailbox/d', item.documentId.encodeId()], {
23712
+ state: {
23713
+ item
23714
+ }
23715
+ });
23716
+ }, error: () => this._sb.error()
23717
+ });
23627
23718
  }
23628
23719
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeDocumentsWidget, deps: [{ token: RouterImpl }, { token: MailboxService }, { token: PromptService }, { token: WidgetRef }], target: i0.ɵɵFactoryTarget.Component }); }
23629
23720
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CubeDocumentsWidget, selector: "ng-component", host: { properties: { "style.height": "this.height" } }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<table mat-table [dataSource]=\"dataSource\" class=\"mat-elevation-z0\" matSort @list>\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Number' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element)\">#{{element.number}}</a></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef> {{'Subject' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"text\"> {{element.subject}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"state\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{'Status' | translate}} </th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.state | state }} </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\r\n <tr mat-row @item *matRowDef=\"let row; columns: columns;\"></tr>\r\n</table>\r\n", styles: ["table{width:100%}td.text{text-overflow:ellipsis;max-width:100px;white-space:nowrap;overflow:hidden}:host{overflow:hidden;display:block}:host:hover{overflow-y:auto!important}\n"], dependencies: [{ kind: "component", type: i4$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i5$3.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5$3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: StatePipe, name: "state" }], animations: [
@@ -23734,12 +23825,14 @@ class RecentsWidget {
23734
23825
  _navigate(item, commands, extra) {
23735
23826
  item.loading = true;
23736
23827
  this._service.get(item.id).
23737
- subscribe(i => {
23738
- this._router.navigate(['mailbox/i', item.id.encodeId(), ...commands], { ...extra, state: { item: i } });
23739
- item.loading = false;
23740
- }, () => {
23741
- this._ps.error();
23742
- item.loading = false;
23828
+ subscribe({
23829
+ next: i => {
23830
+ this._router.navigate(['mailbox/i', item.id.encodeId(), ...commands], { ...extra, state: { item: i } });
23831
+ item.loading = false;
23832
+ }, error: () => {
23833
+ this._ps.error();
23834
+ item.loading = false;
23835
+ }
23743
23836
  });
23744
23837
  }
23745
23838
  open(item) {
@@ -24111,7 +24204,7 @@ let CompareGroupsWidget = CompareGroupsWidget_1 = class CompareGroupsWidget {
24111
24204
  this._destroy.complete();
24112
24205
  }
24113
24206
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CompareGroupsWidget, deps: [{ token: TranslateService }, { token: WidgetRef }, { token: i0.ElementRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
24114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CompareGroupsWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
24207
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CompareGroupsWidget, selector: "bizdoc-compare-groups", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
24115
24208
  };
24116
24209
  CompareGroupsWidget = CompareGroupsWidget_1 = __decorate([
24117
24210
  BizDoc({
@@ -24122,6 +24215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
24122
24215
  type: Component,
24123
24216
  args: [{
24124
24217
  //templateUrl: './compare-groups.widget.html',
24218
+ selector: 'bizdoc-compare-groups',
24125
24219
  template: '',
24126
24220
  providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
24127
24221
  host: {
@@ -26161,11 +26255,13 @@ class CombinationPickerBody {
26161
26255
  this._axes.forEach(a => values[a.name] && (args[a.name] = values[a.name]));
26162
26256
  this._service.combinations(this._cube.name, args, { take: this._data.limit, progress: false }).
26163
26257
  pipe(finalize(() => this._working = false)).
26164
- subscribe(r => {
26165
- this._combinations = r;
26166
- this._switchMode('results');
26167
- r.length === this._data.limit && this._snackbar.toast('TakeMore');
26168
- }, () => this._snackbar.error());
26258
+ subscribe({
26259
+ next: r => {
26260
+ this._combinations = r;
26261
+ this._switchMode('results');
26262
+ r.length === this._data.limit && this._snackbar.toast('TakeMore');
26263
+ }, error: () => this._snackbar.error()
26264
+ });
26169
26265
  }
26170
26266
  /**
26171
26267
  * item select
@@ -26201,11 +26297,10 @@ class CombinationPickerBody {
26201
26297
  ...defaults
26202
26298
  };
26203
26299
  codes.slice(0, this._axes.length).forEach((a, i) => axes[this._axes[i].name] = a);
26204
- this._accountInfo.popup(axes, evt.srcElement, {
26300
+ this._accountInfo.popup(axes, evt.target, {
26205
26301
  ...this._data.exploreSettings,
26206
26302
  cube: this._cube.name
26207
26303
  });
26208
- evt.cancelBubble = true;
26209
26304
  evt.preventDefault();
26210
26305
  evt.stopPropagation();
26211
26306
  }
@@ -26521,10 +26616,10 @@ class CombinationPool {
26521
26616
  control.valueChanges.pipe(debounceTime(250), takeUntil$1(this._destroy)).subscribe(v => {
26522
26617
  this.model[a.name] = v;
26523
26618
  this._populate().
26524
- then(() => this.modelChange.next(this.model));
26619
+ pipe(tap(() => this.modelChange.next(this.model))).subscribe();
26525
26620
  });
26526
26621
  });
26527
- this._populate();
26622
+ this._populate().subscribe();
26528
26623
  }
26529
26624
  _populate() {
26530
26625
  this.working = true;
@@ -26534,7 +26629,7 @@ class CombinationPool {
26534
26629
  if (val)
26535
26630
  values[a.name] = val;
26536
26631
  });
26537
- return this._service.constraints(this._cube.name, values, { source: this.source }).toPromise().then(r => {
26632
+ return this._service.constraints(this._cube.name, values, { source: this.source }).pipe(tap(r => {
26538
26633
  Object.keys(r).forEach(t => {
26539
26634
  this._values[t] = r[t];
26540
26635
  const keys = this._keys[t] = Object.keys(r[t]);
@@ -26549,7 +26644,7 @@ class CombinationPool {
26549
26644
  });
26550
26645
  Object.assign(this._values, r);
26551
26646
  this.working = false;
26552
- });
26647
+ }));
26553
26648
  }
26554
26649
  clear(axis) {
26555
26650
  const control = this.form.controls[axis];
@@ -27044,7 +27139,7 @@ class QuickCommentComponent {
27044
27139
  this._destroy = new Subject();
27045
27140
  }
27046
27141
  ngOnInit() {
27047
- this._textChange.pipe(debounceTime$1(TYPING_NOTIFY), takeUntil(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId));
27142
+ this._textChange.pipe(debounceTime$1(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.typing(this.model.documentId).subscribe());
27048
27143
  this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).
27049
27144
  subscribe(e => {
27050
27145
  this._accounts.get(e.userId).subscribe(u => {
@@ -27058,12 +27153,14 @@ class QuickCommentComponent {
27058
27153
  const { text, resource } = evt;
27059
27154
  this.sending = true;
27060
27155
  this._mailbox.comment(this.model.documentId, { text, resource }).
27061
- subscribe(c => {
27062
- this.model.comments.push(c);
27063
- this.sending = false;
27064
- }, () => {
27065
- this._sb.error();
27066
- this.sending = false;
27156
+ subscribe({
27157
+ next: c => {
27158
+ this.model.comments.push(c);
27159
+ this.sending = false;
27160
+ }, error: () => {
27161
+ this._sb.error();
27162
+ this.sending = false;
27163
+ }
27067
27164
  });
27068
27165
  }
27069
27166
  ngOnDestroy() {
@@ -27156,8 +27253,7 @@ class CubeBase {
27156
27253
  return null;
27157
27254
  const axes = {};
27158
27255
  this._viewRef.options.aggregate.forEach(a => axes[a] = this.originalAxes[a]);
27159
- return await this._service.nameOf(axes, this.cube.name).
27160
- toPromise();
27256
+ return await firstValueFrom(this._service.nameOf(axes, this.cube.name));
27161
27257
  }
27162
27258
  aggregate(originalAxes) {
27163
27259
  const axes = { ...originalAxes };
@@ -27522,14 +27618,17 @@ class TimelineViewComponent {
27522
27618
  }
27523
27619
  if (l.byId) {
27524
27620
  const who = this._users.get(l.userId), by = this._users.get(l.byId);
27525
- const promise = forkJoin(who, by).pipe(tap(ns => {
27621
+ const promise = forkJoin([who, by]).pipe(tap(ns => {
27526
27622
  const [who, by] = ns;
27527
27623
  task.name = this._translate.get('By', who.name, by.name);
27528
27624
  // if (l.role) {
27529
27625
  // const role = this.session.profile.roles.find(o => o.name === l.role);
27530
27626
  // if (role) task.name += `, ${role.name}`;
27531
27627
  // }
27532
- }, () => this._ps.error()));
27628
+ }), catchError(() => {
27629
+ this._ps.error();
27630
+ throw new Error();
27631
+ }));
27533
27632
  promisses.push(promise);
27534
27633
  }
27535
27634
  else if (l.userId) {
@@ -27539,7 +27638,10 @@ class TimelineViewComponent {
27539
27638
  // const role = this.session.profile.roles.find(o => o.name === l.role);
27540
27639
  // if (role) task.name += `, ${role.name}`;
27541
27640
  // }
27542
- }, () => this._ps.error()));
27641
+ }), catchError(() => {
27642
+ this._ps.error();
27643
+ throw new Error();
27644
+ }));
27543
27645
  promisses.push(promise);
27544
27646
  }
27545
27647
  });
@@ -27561,7 +27663,7 @@ class TimelineViewComponent {
27561
27663
  if (r.substituteId) {
27562
27664
  const by = this._users.get(r.substituteId);
27563
27665
  const who = this._users.get(r.userId);
27564
- const promise = forkJoin(who, by).pipe(tap(u => {
27666
+ const promise = forkJoin([who, by]).pipe(tap(u => {
27565
27667
  task.name = this._translate.get('WhoSubstituting', u[0].name, u[1].name);
27566
27668
  if (u[0].role)
27567
27669
  task.name += `, ${u[0].role}`;
@@ -27570,7 +27672,10 @@ class TimelineViewComponent {
27570
27672
  if (role)
27571
27673
  task.name += `, ${role.name}`;
27572
27674
  }
27573
- }, () => this._ps.error()));
27675
+ }), catchError(() => {
27676
+ this._ps.error();
27677
+ throw new Error();
27678
+ }));
27574
27679
  promisses.push(promise);
27575
27680
  }
27576
27681
  else {
@@ -27583,7 +27688,10 @@ class TimelineViewComponent {
27583
27688
  if (role)
27584
27689
  task.name += `, ${role.name}`;
27585
27690
  }
27586
- }, () => this._ps.error()));
27691
+ }), catchError(() => {
27692
+ this._ps.error();
27693
+ throw new Error();
27694
+ }));
27587
27695
  promisses.push(promise);
27588
27696
  }
27589
27697
  if (r.nodeId) {
@@ -27702,7 +27810,7 @@ class CubeSumComponent {
27702
27810
  this._fish(axis);
27703
27811
  }
27704
27812
  async _strict(axis) {
27705
- const keys = await this._ds.keys(this.primaryAxis.dataType).toPromise(), keyIndex = keys.indexOf(axis);
27813
+ const keys = await firstValueFrom(this._ds.keys(this.primaryAxis.dataType)), keyIndex = keys.indexOf(axis);
27706
27814
  const filters = { ...this.filters };
27707
27815
  const axes = [axis];
27708
27816
  if (keyIndex > 0)
@@ -27710,11 +27818,11 @@ class CubeSumComponent {
27710
27818
  if (keyIndex === keys.length - 1)
27711
27819
  axes.push(keys[keyIndex + 1]);
27712
27820
  filters[this.primaryAxis.name] = axis;
27713
- const results = await this._service.series(this._cube.name, this.primaryAxis.name, {
27821
+ const results = await firstValueFrom(this._service.series(this._cube.name, this.primaryAxis.name, {
27714
27822
  indices: this.indices,
27715
27823
  scope: this.scope,
27716
27824
  filters
27717
- }).toPromise().catch(this._handleErr.bind(this));
27825
+ })).catch(this._handleErr.bind(this));
27718
27826
  for (var i = 0; i < results.length; i++) {
27719
27827
  const { index, title, points } = results[i];
27720
27828
  for (var j = 0; j < points.length; j++) {
@@ -27745,18 +27853,18 @@ class CubeSumComponent {
27745
27853
  }
27746
27854
  const parallel = async (direction) => {
27747
27855
  const parentKey = this.filters[this.parentAxis];
27748
- const parentKeys = await this._ds.keys(this._parentAxis.dataType).toPromise();
27856
+ const parentKeys = await firstValueFrom(this._ds.keys(this._parentAxis.dataType));
27749
27857
  const index = parentKeys.indexOf((isArray(parentKey) ? parentKey[0] : parentKey)), scope = parentKeys[index + direction];
27750
27858
  if (!scope)
27751
27859
  return;
27752
27860
  filters[this.parentAxis] = scope;
27753
27861
  const axis = keys[keys.length + direction];
27754
27862
  filters[this.primaryAxis.name] = axis;
27755
- const results = await this._service.series(this._cube.name, this.primaryAxis.name, {
27863
+ const results = await firstValueFrom(this._service.series(this._cube.name, this.primaryAxis.name, {
27756
27864
  indices: this.indices,
27757
27865
  scope: this.scope,
27758
27866
  filters
27759
- }).toPromise().catch(this._handleErr.bind(this));
27867
+ })).catch(this._handleErr.bind(this));
27760
27868
  const level = { axis, indices: [], scope };
27761
27869
  for (var i = 0; i < results.length; i++) {
27762
27870
  const { index, title, points } = results[i];
@@ -27783,11 +27891,10 @@ class CubeSumComponent {
27783
27891
  try {
27784
27892
  const filters = { ...this.filters };
27785
27893
  delete filters[this.xAxis];
27786
- const results = this._results = await this._service.series(this._cube.name, this.xAxis, {
27894
+ const results = this._results = await firstValueFrom(this._service.series(this._cube.name, this.xAxis, {
27787
27895
  indices: this.indices, filters,
27788
27896
  scope: this.scope
27789
- }).
27790
- toPromise().catch(this._handleErr.bind(this));
27897
+ })).catch(this._handleErr.bind(this));
27791
27898
  this.current = {
27792
27899
  axis,
27793
27900
  value: 0,
@@ -27872,8 +27979,7 @@ class CubeSumComponent {
27872
27979
  async getAggregateLabel() {
27873
27980
  const axes = { ...this.filters };
27874
27981
  delete axes[this.xAxis];
27875
- return await this._service.nameOf(axes, this._cube.name).
27876
- toPromise();
27982
+ return await firstValueFrom(this._service.nameOf(axes, this._cube.name));
27877
27983
  }
27878
27984
  _calculate(level) {
27879
27985
  const indices = level.indices
@@ -27966,17 +28072,17 @@ class CubeSumComponent {
27966
28072
  async _parallel(direction, parentKey) {
27967
28073
  if (!this._parentAxis)
27968
28074
  return;
27969
- const parentKeys = await this._ds.keys(this._parentAxis.dataType).toPromise();
28075
+ const parentKeys = await firstValueFrom(this._ds.keys(this._parentAxis.dataType));
27970
28076
  const keyIndex = parentKeys.indexOf((isArray(parentKey) ? parentKey[0] : parentKey)), scope = parentKeys[keyIndex + direction];
27971
28077
  if (!scope)
27972
28078
  return;
27973
28079
  const filters = { ...this.filters };
27974
28080
  filters[this.parentAxis] = scope;
27975
28081
  delete filters[this.xAxis];
27976
- const results = this._scoperesults = await this._service.series(this._cube.name, this.xAxis, {
28082
+ const results = this._scoperesults = await firstValueFrom(this._service.series(this._cube.name, this.xAxis, {
27977
28083
  indices: this.indices, filters,
27978
28084
  scope: this.scope
27979
- }).toPromise().catch(this._handleErr.bind(this));
28085
+ })).catch(this._handleErr.bind(this));
27980
28086
  this._scope = scope;
27981
28087
  if (!results.some(s => s.points.length))
27982
28088
  return;
@@ -27984,7 +28090,7 @@ class CubeSumComponent {
27984
28090
  scope,
27985
28091
  indices: []
27986
28092
  };
27987
- const parentTitle = await this._ds.get(this._parentAxis.dataType, scope).toPromise();
28093
+ const parentTitle = await firstValueFrom(this._ds.get(this._parentAxis.dataType, scope));
27988
28094
  for (var j = 0; j < results.length; j++) {
27989
28095
  let { index, title, points, name } = results[j], q = direction > 0 ? 0 : points.length - 1, point = points[q];
27990
28096
  if (index) {
@@ -28203,16 +28309,18 @@ let CubeExploreViewComponent = class CubeExploreViewComponent extends CubeBase {
28203
28309
  item(evt) {
28204
28310
  const { keys } = evt;
28205
28311
  this.loading = true;
28206
- this._service.item(this.cube.name, this.axes, keys).subscribe(item => {
28207
- this._router.navigate(['cube', this.cube.name, 'explore', 'i', evt.template, keys[0]], {
28208
- queryParams: this.axes,
28209
- state: { item },
28210
- group: this.group,
28211
- });
28212
- this.loading = false;
28213
- }, e => {
28214
- this.loading = false;
28215
- this._sb.error(e.status === 401 ? 'Unauthorized' : null);
28312
+ this._service.item(this.cube.name, this.axes, keys).subscribe({
28313
+ next: item => {
28314
+ this._router.navigate(['cube', this.cube.name, 'explore', 'i', evt.template, keys[0]], {
28315
+ queryParams: this.axes,
28316
+ state: { item },
28317
+ group: this.group,
28318
+ });
28319
+ this.loading = false;
28320
+ }, error: e => {
28321
+ this.loading = false;
28322
+ this._sb.error(e.status === 401 ? 'Unauthorized' : null);
28323
+ }
28216
28324
  });
28217
28325
  }
28218
28326
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeExploreViewComponent, deps: [{ token: DocumentViewRef }, { token: PromptService }, { token: RouterImpl }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
@@ -28320,15 +28428,17 @@ class CubeParallelComponent {
28320
28428
  indices: this.indices,
28321
28429
  groupIndices: true,
28322
28430
  scope: this.scope
28323
- }).subscribe(r => {
28324
- this._data = r;
28325
- this._draw();
28326
- if (this.items.length)
28327
- this.width = Math.max(Math.round(this.size / this.items.length), 150) + 'px';
28328
- this._loading.next(false);
28329
- }, (e) => {
28330
- this._sb.error(errResource(e));
28331
- this._loading.next(false);
28431
+ }).subscribe({
28432
+ next: r => {
28433
+ this._data = r;
28434
+ this._draw();
28435
+ if (this.items.length)
28436
+ this.width = Math.max(Math.round(this.size / this.items.length), 150) + 'px';
28437
+ this._loading.next(false);
28438
+ }, error: (e) => {
28439
+ this._sb.error(errResource(e));
28440
+ this._loading.next(false);
28441
+ }
28332
28442
  });
28333
28443
  }
28334
28444
  _draw() {
@@ -28506,7 +28616,7 @@ let CubeUsageComponent = class CubeUsageComponent {
28506
28616
  this._instance = this._vc.createComponent(comp).instance;
28507
28617
  }
28508
28618
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeUsageComponent, deps: [{ token: ReportRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
28509
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CubeUsageComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
28619
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CubeUsageComponent, selector: "bizdoc-cube-usage", ngImport: i0, template: '', isInline: true }); }
28510
28620
  };
28511
28621
  CubeUsageComponent = __decorate([
28512
28622
  BizDoc({
@@ -28516,6 +28626,7 @@ CubeUsageComponent = __decorate([
28516
28626
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubeUsageComponent, decorators: [{
28517
28627
  type: Component,
28518
28628
  args: [{
28629
+ selector: 'bizdoc-cube-usage',
28519
28630
  template: ''
28520
28631
  }]
28521
28632
  }], ctorParameters: function () { return [{ type: ReportRef }, { type: i0.ViewContainerRef }]; } });
@@ -28662,7 +28773,7 @@ let CubePerformanceWidget = CubePerformanceWidget_1 = class CubePerformanceWidge
28662
28773
  });
28663
28774
  const cube = this._session.profile.cubes.find(c => c.name === this._widgetRef.options.cube || this._widgetRef.options.cube == null);
28664
28775
  const axis = cube.axes.find(a => a.name === this._widgetRef.options.series);
28665
- const title = await this._type.get(axis.dataType, item.series).toPromise();
28776
+ const title = await firstValueFrom(this._type.get(axis.dataType, item.series));
28666
28777
  series.push({
28667
28778
  type: 'Line',
28668
28779
  xName: 'date',
@@ -28698,7 +28809,7 @@ let CubePerformanceWidget = CubePerformanceWidget_1 = class CubePerformanceWidge
28698
28809
  this._destroy.complete();
28699
28810
  }
28700
28811
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CubePerformanceWidget, deps: [{ token: TranslateService }, { token: WidgetRef }, { token: i0.ElementRef }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
28701
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CubePerformanceWidget, selector: "ng-component", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
28812
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: CubePerformanceWidget, selector: "bizdoc-cube-performance", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, providers: [LineSeriesService, CrosshairService, ColumnSeriesService], viewQueries: [{ propertyName: "chart", first: true, predicate: ChartComponent, descendants: true }], ngImport: i0, template: '', isInline: true }); }
28702
28813
  };
28703
28814
  CubePerformanceWidget = CubePerformanceWidget_1 = __decorate([
28704
28815
  BizDoc({
@@ -28709,6 +28820,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
28709
28820
  type: Component,
28710
28821
  args: [{
28711
28822
  //templateUrl: './compare.widget.html',
28823
+ selector: 'bizdoc-cube-performance',
28712
28824
  template: '',
28713
28825
  providers: [LineSeriesService, CrosshairService, ColumnSeriesService],
28714
28826
  host: {
@@ -29443,7 +29555,7 @@ class MobileModule {
29443
29555
  SharedModule], exports: [HomeMobileComponent, BrowseComponent, CubeMobileViewComponent, ComposeComponent, ReportComponent, FormSelectorSheet, CopyDialog, SchedulerComponent, NotificationsComponent,
29444
29556
  ChatComponent] }); }
29445
29557
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: MobileModule, providers: [CanDeactivateCompose,
29446
- ItemResolveService,
29558
+ CubeItemResolveService,
29447
29559
  RecipientResolveService, DocumentResolveService
29448
29560
  ], imports: [CommonModule,
29449
29561
  HttpClientModule,
@@ -29458,7 +29570,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
29458
29570
  ChatComponent, CubeMatrixMobileComponent, DocumentViewMobileComponent
29459
29571
  ],
29460
29572
  providers: [CanDeactivateCompose,
29461
- ItemResolveService,
29573
+ CubeItemResolveService,
29462
29574
  RecipientResolveService, DocumentResolveService
29463
29575
  ],
29464
29576
  imports: [
@@ -29533,30 +29645,32 @@ class TraceElementComponent {
29533
29645
  assign(recipient) {
29534
29646
  this._dialog.open(ReassignDialog, { data: { exclude: [recipient.userId] } }).afterClosed().
29535
29647
  subscribe((m) => {
29536
- m && this._utilityRef.execute({ id: recipient.id, ...m }).subscribe(r => {
29537
- Object.assign(this.model, r);
29538
- }, () => this._sb.error());
29648
+ m && this._utilityRef.execute({ id: recipient.id, ...m }).subscribe({
29649
+ next: r => {
29650
+ Object.assign(this.model, r);
29651
+ }, error: () => this._sb.error()
29652
+ });
29539
29653
  });
29540
29654
  }
29541
29655
  async recipientInfo(recipient) {
29542
29656
  const info = [];
29543
- const who = await this._accounts.get(recipient.userId).toPromise();
29657
+ const who = await firstValueFrom(this._accounts.get(recipient.userId));
29544
29658
  if (recipient.escalated) {
29545
29659
  const escalation = this.timeline.log.find(l => l.type === 'Escalation' && l.recipientId === recipient.originId);
29546
- const to = await this._accounts.get(escalation.userId).toPromise();
29660
+ const to = await firstValueFrom(this._accounts.get(escalation.userId));
29547
29661
  info.push(this._translate.get('EscalatedBy', this._chat.format(to), this._chat.format(who)));
29548
29662
  }
29549
29663
  if (recipient.substituteId) {
29550
- const substitute = await this._accounts.get(recipient.substituteId).toPromise();
29664
+ const substitute = await firstValueFrom(this._accounts.get(recipient.substituteId));
29551
29665
  if (recipient.byId) {
29552
- const by = await this._accounts.get(recipient.byId).toPromise();
29666
+ const by = await firstValueFrom(this._accounts.get(recipient.byId));
29553
29667
  info.push(this._translate.get('SubstitutingBy', this._chat.format(who), this._chat.format(substitute), this._chat.format(by)));
29554
29668
  }
29555
29669
  else
29556
29670
  info.push(this._translate.get('Substituting', this._chat.format(who), this._chat.format(substitute)));
29557
29671
  }
29558
29672
  else if (recipient.byId) {
29559
- const by = await this._accounts.get(recipient.byId).toPromise();
29673
+ const by = await firstValueFrom(this._accounts.get(recipient.byId));
29560
29674
  info.push(this._translate.get('By', this._chat.format(who), this._chat.format(by)));
29561
29675
  }
29562
29676
  else
@@ -29581,7 +29695,7 @@ class TraceElementComponent {
29581
29695
  });
29582
29696
  }
29583
29697
  chat(e) {
29584
- const userId = e.srcElement.getAttribute('data-info');
29698
+ const userId = e.target.getAttribute('data-info');
29585
29699
  userId &&
29586
29700
  this._chat.open(userId);
29587
29701
  }
@@ -29736,7 +29850,7 @@ let ManageCubeIndexUtility = class ManageCubeIndexUtility {
29736
29850
  hasBackdrop: true,
29737
29851
  panelClass: 'home-panel'
29738
29852
  });
29739
- merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter(k => k.keyCode === ESCAPE))).pipe(takeUntil$1(this._destroy)).subscribe(() => oRef.detach());
29853
+ merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).pipe(takeUntil$1(this._destroy)).subscribe(() => oRef.detach());
29740
29854
  }
29741
29855
  _find(axes) {
29742
29856
  const n = this.names.length;
@@ -29864,10 +29978,12 @@ let PermissionsUtility = class PermissionsUtility {
29864
29978
  this.dirty = true;
29865
29979
  }
29866
29980
  save() {
29867
- this._utilityRef.execute(this._data).subscribe(() => {
29868
- this.dirty = false;
29869
- this._sb.toast('ChangesSaved');
29870
- }, () => this._sb.error());
29981
+ this._utilityRef.execute(this._data).subscribe({
29982
+ next: () => {
29983
+ this.dirty = false;
29984
+ this._sb.toast('ChangesSaved');
29985
+ }, error: () => this._sb.error()
29986
+ });
29871
29987
  }
29872
29988
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: PermissionsUtility, deps: [{ token: UtilityRef }, { token: SessionService }, { token: PromptService }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
29873
29989
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: PermissionsUtility, selector: "ng-component", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty\">{{'SaveChanges'|translate}}</button>\r\n <span class=\"divider\"></span>\r\n <bizdoc-search-input (valueChange)=\"search($event)\"></bizdoc-search-input>\r\n <button mat-button [matMenuTriggerFor]=\"formMenu\">{{form?.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #formMenu>\r\n <button mat-menu-item *ngFor=\"let f of forms\" (click)=\"formChange(f.name)\">{{f.title}}</button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<table mat-table matSort [dataSource]=\"dataSource\">\r\n <ng-container matColumnDef=\"title\" sticky>\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Permission' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let item\"> {{item.title || item.name}}</td>\r\n </ng-container>\r\n <ng-container [matColumnDef]=\"r.name\" *ngFor=\"let r of roles\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{r.title}}</th>\r\n <td mat-cell *matCellDef=\"let item\"> <mat-checkbox [checked]=\"item[r.name]\" [value]=\"r.name\" (change)=\"change(item, $event)\"></mat-checkbox> </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let item; columns: displayColumns;\"></tr>\r\n</table>\r\n", styles: ["table{width:100%}::ng-deep .mat-mdc-row{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i4$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i5$3.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i5$3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i9$2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: SearchInput, selector: "bizdoc-search-input", outputs: ["valueChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
@@ -29959,12 +30075,14 @@ class SystemDiffComponent {
29959
30075
  this._working.pipe(takeUntil$1(this._destroy), debounceTime(100)).subscribe(v => v && (this.progress = v));
29960
30076
  this._working.next(50);
29961
30077
  // populate versions
29962
- this._utilityRef.populate().subscribe(e => {
29963
- this.versions = e;
29964
- this._working.next(100);
29965
- e.length > 1 &&
29966
- this.compare(0);
29967
- }, () => this._sb.error());
30078
+ this._utilityRef.populate().subscribe({
30079
+ next: e => {
30080
+ this.versions = e;
30081
+ this._working.next(100);
30082
+ e.length > 1 &&
30083
+ this.compare(0);
30084
+ }, error: () => this._sb.error()
30085
+ });
29968
30086
  }
29969
30087
  /**
29970
30088
  *
@@ -29976,24 +30094,26 @@ class SystemDiffComponent {
29976
30094
  return;
29977
30095
  const { time: date2 } = version;
29978
30096
  this._working.next(25);
29979
- this._utilityRef.execute({ date1, date2 }).subscribe(r => {
29980
- this.html = '';
29981
- this._working.next(50);
29982
- this.activeDate = date1;
29983
- const results = this._compare(r[0], r[1]);
29984
- if (results)
29985
- results.then(d => {
29986
- this._working.next(75);
29987
- this.html = this._generate(d);
29988
- this._scrollTop();
30097
+ this._utilityRef.execute({ date1, date2 }).subscribe({
30098
+ next: r => {
30099
+ this.html = '';
30100
+ this._working.next(50);
30101
+ this.activeDate = date1;
30102
+ const results = this._compare(r[0], r[1]);
30103
+ if (results)
30104
+ results.then(d => {
30105
+ this._working.next(75);
30106
+ this.html = this._generate(d);
30107
+ this._scrollTop();
30108
+ this._working.next(100);
30109
+ this.none = false;
30110
+ });
30111
+ else {
29989
30112
  this._working.next(100);
29990
- this.none = false;
29991
- });
29992
- else {
29993
- this._working.next(100);
29994
- this.none = true;
29995
- }
29996
- }, () => this._sb.error());
30113
+ this.none = true;
30114
+ }
30115
+ }, error: () => this._sb.error()
30116
+ });
29997
30117
  }
29998
30118
  _scrollTop() {
29999
30119
  setTimeout(() => this.contents.nativeElement.parentElement.scroll({ top: 0, behavior: 'smooth' }));
@@ -30052,7 +30172,7 @@ class SystemDiffComponent {
30052
30172
  else if (!b.find(b => b == e)) {
30053
30173
  const length = diff.push(e);
30054
30174
  if (scope.nodes.indexOf('positions') > -1) {
30055
- const promise = this._accounts.get(e).toPromise().then(v => diff[length - 1] = v.name);
30175
+ const promise = firstValueFrom(this._accounts.get(e)).then(v => diff[length - 1] = v.name);
30056
30176
  promises.push(promise);
30057
30177
  }
30058
30178
  diff[STATE + (length - 1).toString()] = ChangeState.Added;
@@ -30077,7 +30197,7 @@ class SystemDiffComponent {
30077
30197
  else if (!a.find(a => a == e)) {
30078
30198
  const length = diff.push(e);
30079
30199
  if (scope.nodes.indexOf('positions') > -1) {
30080
- const promise = this._accounts.get(e).toPromise().then(v => diff[length - 1] = v.name);
30200
+ const promise = firstValueFrom(this._accounts.get(e)).then(v => diff[length - 1] = v.name);
30081
30201
  promises.push(promise);
30082
30202
  }
30083
30203
  diff[STATE + (length - 1).toString()] = ChangeState.Removed;
@@ -30126,7 +30246,7 @@ class SystemDiffComponent {
30126
30246
  }
30127
30247
  if (scope.nodes.indexOf('positions') > -1) {
30128
30248
  diff[ORIGINAL_VALUE + k] = aVal;
30129
- const promise = this._ds.get(scope.type, k).toPromise().then(v => {
30249
+ const promise = firstValueFrom(this._ds.get(scope.type, k)).then(v => {
30130
30250
  const name = isString(v) ? v : v[Object.keys(v)[0]];
30131
30251
  diff[name] = obj;
30132
30252
  if (bVal === undefined)
@@ -30144,12 +30264,12 @@ class SystemDiffComponent {
30144
30264
  else {
30145
30265
  diff[k] = aVal;
30146
30266
  if (k === 'userId') {
30147
- const promise = this._accounts.get(aVal).toPromise().then(v => diff[k] = v.name);
30267
+ const promise = firstValueFrom(this._accounts.get(aVal)).then(v => diff[k] = v.name);
30148
30268
  promises.push(promise);
30149
30269
  }
30150
30270
  if (bVal !== undefined) {
30151
30271
  if (k === 'userId') {
30152
- const promise = this._accounts.get(bVal).toPromise().then(v => diff[ORIGINAL_VALUE + k] = v.name);
30272
+ const promise = firstValueFrom(this._accounts.get(bVal)).then(v => diff[ORIGINAL_VALUE + k] = v.name);
30153
30273
  promises.push(promise);
30154
30274
  }
30155
30275
  else
@@ -30168,14 +30288,14 @@ class SystemDiffComponent {
30168
30288
  if (scope.nodes.indexOf('positions') > -1) {
30169
30289
  const obj = [];
30170
30290
  diff[ORIGINAL_VALUE + k] = bVal;
30171
- const promise = this._ds.get(scope.type, k).toPromise().then(v => {
30291
+ const promise = firstValueFrom(this._ds.get(scope.type, k)).then(v => {
30172
30292
  const name = isString(v) ? v : v[Object.keys(v)[0]];
30173
30293
  diff[name] = obj;
30174
30294
  diff[STATE + name] = ChangeState.Removed;
30175
30295
  });
30176
30296
  promises.push(promise);
30177
30297
  bVal && bVal.forEach((e, i) => {
30178
- const promise = this._accounts.get(e).toPromise().then(v => obj[i] = v.name);
30298
+ const promise = firstValueFrom(this._accounts.get(e)).then(v => obj[i] = v.name);
30179
30299
  promises.push(promise);
30180
30300
  });
30181
30301
  }
@@ -30191,7 +30311,7 @@ class SystemDiffComponent {
30191
30311
  else {
30192
30312
  diff[k] = bVal;
30193
30313
  if (k === 'userId') {
30194
- const promise = this._accounts.get(bVal).toPromise().then(v => diff[k] = v.name);
30314
+ const promise = firstValueFrom(this._accounts.get(bVal)).then(v => diff[k] = v.name);
30195
30315
  promises.push(promise);
30196
30316
  }
30197
30317
  }
@@ -30262,7 +30382,7 @@ class SystemDiffComponent {
30262
30382
  else {
30263
30383
  const length = prestine.push(e);
30264
30384
  if (scope.nodes.indexOf('positions') > -1) {
30265
- const promise = this._accounts.get(e).toPromise().then(v => prestine[length - 1] = v.name);
30385
+ const promise = firstValueFrom(this._accounts.get(e)).then(v => prestine[length - 1] = v.name);
30266
30386
  promises.push(promise);
30267
30387
  }
30268
30388
  }
@@ -30282,7 +30402,7 @@ class SystemDiffComponent {
30282
30402
  return;
30283
30403
  promises.push(promise);
30284
30404
  if (scope.nodes.indexOf('positions') > -1) {
30285
- const promise = this._ds.get(scope.type, k).toPromise().then(v => prestine[isString(v) ? v : v[Object.keys(v)[0]]] = obj);
30405
+ const promise = firstValueFrom(this._ds.get(scope.type, k)).then(v => prestine[isString(v) ? v : v[Object.keys(v)[0]]] = obj);
30286
30406
  promises.push(promise);
30287
30407
  }
30288
30408
  else
@@ -30291,7 +30411,7 @@ class SystemDiffComponent {
30291
30411
  else {
30292
30412
  prestine[k] = aVal;
30293
30413
  if (k === 'userId') {
30294
- const promise = this._accounts.get(aVal).toPromise().then(v => prestine[k] = v.name);
30414
+ const promise = firstValueFrom(this._accounts.get(aVal)).then(v => prestine[k] = v.name);
30295
30415
  promises.push(promise);
30296
30416
  }
30297
30417
  }
@@ -30413,7 +30533,7 @@ class SystemDiffComponent {
30413
30533
  * @param evt
30414
30534
  */
30415
30535
  collapse(evt) {
30416
- let el = evt.srcElement;
30536
+ let el = evt.target;
30417
30537
  while (el && !el.classList.contains('scope'))
30418
30538
  el = el.parentElement;
30419
30539
  el && el.classList.toggle('collapse') && el.classList.remove('focus');
@@ -30431,7 +30551,7 @@ class SystemDiffComponent {
30431
30551
  */
30432
30552
  focusIn(evt) {
30433
30553
  this.focusOut();
30434
- let el = evt.srcElement;
30554
+ let el = evt.target;
30435
30555
  while (el && !el.classList.contains('scope'))
30436
30556
  el = el.parentElement;
30437
30557
  el && !el.classList.contains('collapse') && el.classList.add('focus');
@@ -30666,33 +30786,35 @@ class DocumentTraceComponent {
30666
30786
  _open(id) {
30667
30787
  this.diagram?.destroy();
30668
30788
  this.loading = 'buffer';
30669
- this._utilityRef.populate(id).subscribe(e => {
30670
- this._highLightedIds = [];
30671
- this.model = e;
30672
- this._timeline();
30673
- this.mode = 'diagram';
30674
- this.loading = null;
30675
- this._cd.detectChanges();
30676
- this.diagram = new Diagram({
30677
- width: '100%', height: '100%',
30678
- snapSettings: this.snapSettings,
30679
- layout: this.layout,
30680
- getConnectorDefaults: this.connDefaults,
30681
- selectedItems: this.selectedItems,
30682
- tool: this.diagramTool,
30683
- constraints: this.diagramConstraints,
30684
- getNodeDefaults: this.nodeDefaults,
30685
- scrollSettings: this.scrollSettings,
30686
- nodes: e.diagram.nodes,
30687
- connectors: e.diagram.connectors,
30688
- selectionChange: this.selectionChange.bind(this)
30689
- }, this.diagramElement.nativeElement);
30690
- this._version();
30691
- this._indicators();
30692
- this.diagram.fitToPage();
30693
- }, () => {
30694
- this.loading = null;
30695
- this._sb.error();
30789
+ this._utilityRef.populate(id).subscribe({
30790
+ next: e => {
30791
+ this._highLightedIds = [];
30792
+ this.model = e;
30793
+ this._timeline();
30794
+ this.mode = 'diagram';
30795
+ this.loading = null;
30796
+ this._cd.detectChanges();
30797
+ this.diagram = new Diagram({
30798
+ width: '100%', height: '100%',
30799
+ snapSettings: this.snapSettings,
30800
+ layout: this.layout,
30801
+ getConnectorDefaults: this.connDefaults,
30802
+ selectedItems: this.selectedItems,
30803
+ tool: this.diagramTool,
30804
+ constraints: this.diagramConstraints,
30805
+ getNodeDefaults: this.nodeDefaults,
30806
+ scrollSettings: this.scrollSettings,
30807
+ nodes: e.diagram.nodes,
30808
+ connectors: e.diagram.connectors,
30809
+ selectionChange: this.selectionChange.bind(this)
30810
+ }, this.diagramElement.nativeElement);
30811
+ this._version();
30812
+ this._indicators();
30813
+ this.diagram.fitToPage();
30814
+ }, error: () => {
30815
+ this.loading = null;
30816
+ this._sb.error();
30817
+ }
30696
30818
  });
30697
30819
  }
30698
30820
  open(item) {
@@ -31134,10 +31256,12 @@ let PatternsComponent = class PatternsComponent {
31134
31256
  });
31135
31257
  }
31136
31258
  save() {
31137
- this._ref.execute(this.dataSource.data).subscribe(() => {
31138
- this.dirty = false;
31139
- this._sb.toast('ChangesSaved');
31140
- }, () => this._sb.error());
31259
+ this._ref.execute(this.dataSource.data).subscribe({
31260
+ next: () => {
31261
+ this.dirty = false;
31262
+ this._sb.toast('ChangesSaved');
31263
+ }, error: () => this._sb.error()
31264
+ });
31141
31265
  }
31142
31266
  ngOnDestroy() {
31143
31267
  this._destroy.next();
@@ -31209,9 +31333,11 @@ class PositionsComponent {
31209
31333
  }));
31210
31334
  }
31211
31335
  _prepare() {
31212
- return forkJoin(this._service.datatypes().
31213
- pipe(tap$1(t => this.datatypes =
31214
- t.filter(t => t.assignable))), this._datasources.map('users').pipe(tap$1(u => this.profiles = u)));
31336
+ return forkJoin([this._service.datatypes().
31337
+ pipe(tap$1(t => this.datatypes =
31338
+ t.filter(t => t.assignable))),
31339
+ this._datasources.map('users').pipe(tap$1(u => this.profiles = u))
31340
+ ]);
31215
31341
  }
31216
31342
  search(value) {
31217
31343
  this.dataSource.filter = value;
@@ -31220,48 +31346,50 @@ class PositionsComponent {
31220
31346
  const type = this.type = this.datatypes.find(t => t.name === name);
31221
31347
  const roles = this.roles = this._session.profile.roles.filter(r => r.dataType === name);
31222
31348
  this.loading = 'query';
31223
- this._datasources.all(type.name).subscribe(t => {
31224
- this.source = t;
31225
- const model = this._everything[type.name];
31226
- let positions = model.positions;
31227
- if (!positions)
31228
- positions = model.positions = {};
31229
- if (!model.groups)
31230
- model.groups = [];
31231
- if (!model.patterns)
31232
- model.patterns = [];
31233
- roles.forEach(r => {
31234
- if (!positions[r.name])
31235
- positions[r.name] = {};
31236
- });
31237
- this.positions = positions;
31238
- const rows = [];
31239
- model.patterns && model.patterns.forEach(p => {
31240
- const row = { type: 'pattern', key: p.name };
31241
- row[type.columns ? type.columns[0].name : 'value'] = p.title;
31242
- rows.push(row);
31243
- });
31244
- model.groups && model.groups.forEach(g => {
31245
- const row = { type: 'group', key: g.name };
31246
- row[type.columns ? type.columns[0].name : 'value'] = g.title;
31247
- rows.push(row);
31248
- });
31249
- t.forEach(t => {
31250
- const row = { type: 'key', ...t };
31251
- type.columns && type.columns.forEach(c => {
31252
- row[c.name] = t.value[c.name];
31349
+ this._datasources.all(type.name).subscribe({
31350
+ next: t => {
31351
+ this.source = t;
31352
+ const model = this._everything[type.name];
31353
+ let positions = model.positions;
31354
+ if (!positions)
31355
+ positions = model.positions = {};
31356
+ if (!model.groups)
31357
+ model.groups = [];
31358
+ if (!model.patterns)
31359
+ model.patterns = [];
31360
+ roles.forEach(r => {
31361
+ if (!positions[r.name])
31362
+ positions[r.name] = {};
31253
31363
  });
31254
- rows.push(row);
31255
- });
31256
- this.dataSource = new MatTableDataSource(rows);
31257
- this.dataSource.sort = this.sort;
31258
- this._columns();
31259
- !roles.length &&
31260
- this._dialog.open(this.noRoleTpl).afterClosed().subscribe(ok => ok && this.newRole());
31261
- this.loading = null;
31262
- }, () => {
31263
- this.loading = null;
31264
- this._ps.error();
31364
+ this.positions = positions;
31365
+ const rows = [];
31366
+ model.patterns && model.patterns.forEach(p => {
31367
+ const row = { type: 'pattern', key: p.name };
31368
+ row[type.columns ? type.columns[0].name : 'value'] = p.title;
31369
+ rows.push(row);
31370
+ });
31371
+ model.groups && model.groups.forEach(g => {
31372
+ const row = { type: 'group', key: g.name };
31373
+ row[type.columns ? type.columns[0].name : 'value'] = g.title;
31374
+ rows.push(row);
31375
+ });
31376
+ t.forEach(t => {
31377
+ const row = { type: 'key', ...t };
31378
+ type.columns && type.columns.forEach(c => {
31379
+ row[c.name] = t.value[c.name];
31380
+ });
31381
+ rows.push(row);
31382
+ });
31383
+ this.dataSource = new MatTableDataSource(rows);
31384
+ this.dataSource.sort = this.sort;
31385
+ this._columns();
31386
+ !roles.length &&
31387
+ this._dialog.open(this.noRoleTpl).afterClosed().subscribe(ok => ok && this.newRole());
31388
+ this.loading = null;
31389
+ }, error: () => {
31390
+ this.loading = null;
31391
+ this._ps.error();
31392
+ }
31265
31393
  });
31266
31394
  }
31267
31395
  _columns() {
@@ -31275,7 +31403,7 @@ class PositionsComponent {
31275
31403
  edit(key, evt) {
31276
31404
  if (evt.target.tagName === 'MAT-ICON')
31277
31405
  return;
31278
- let cell = evt.srcElement;
31406
+ let cell = evt.target;
31279
31407
  while (cell.tagName !== 'TD')
31280
31408
  cell = cell.parentElement;
31281
31409
  const role = cell.getAttribute('data-role');
@@ -31285,14 +31413,14 @@ class PositionsComponent {
31285
31413
  let positions = this.positions[role][key];
31286
31414
  if (!positions)
31287
31415
  positions = this.positions[role][key] = [];
31288
- this._popup.open(PositionsPopup, evt.srcElement, {
31416
+ this._popup.open(PositionsPopup, evt.target, {
31289
31417
  data: { title: crole.title, positions }
31290
31418
  }).opened().subscribe(e => e.valueChange.pipe(takeUntil$1(this._destroy)).subscribe(() => this.dirty = true));
31291
31419
  }
31292
31420
  _openDialog(tmpl, form, values) {
31293
31421
  form.reset(values);
31294
31422
  const dialogRef = this._dialog.open(tmpl);
31295
- dialogRef.keydownEvents().pipe(filter(k => k.keyCode === ENTER), takeUntil$1(dialogRef.afterClosed())).
31423
+ dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter'), takeUntil$1(dialogRef.afterClosed())).
31296
31424
  subscribe(() => form.valid && dialogRef.close(form.value));
31297
31425
  return dialogRef.afterClosed().pipe(switchMap(v => v ? of(v) : EMPTY));
31298
31426
  }
@@ -31378,7 +31506,7 @@ class PositionsComponent {
31378
31506
  * @param event
31379
31507
  */
31380
31508
  handleKeyboardEvent(event) {
31381
- if (this.dirty && event.ctrlKey && (event.which === 83 || event.which === 115)) {
31509
+ if (this.dirty && event.ctrlKey && (event.key === 's' || event.key === 'S')) {
31382
31510
  this.save();
31383
31511
  event.preventDefault();
31384
31512
  }
@@ -31386,7 +31514,7 @@ class PositionsComponent {
31386
31514
  save() {
31387
31515
  this.saving = true;
31388
31516
  this.loading = 'indeterminate';
31389
- return this._utilityRef.execute(this._everything).toPromise().then(() => {
31517
+ return firstValueFrom(this._utilityRef.execute(this._everything)).then(() => {
31390
31518
  this._ps.toast('ChangesSaved');
31391
31519
  this.dirty = false;
31392
31520
  this.loading = null;
@@ -31472,7 +31600,7 @@ class PositionsComponent {
31472
31600
  addcolumns(g.name, row);
31473
31601
  rows.push(row);
31474
31602
  });
31475
- let datasource = await this._datasources.all(type.name).toPromise();
31603
+ let datasource = await firstValueFrom(this._datasources.all(type.name));
31476
31604
  datasource.forEach(d => {
31477
31605
  const row = {
31478
31606
  index: rows.length + 1,
@@ -31515,7 +31643,7 @@ class PositionsComponent {
31515
31643
  book.save(`${this._translate.get('Positions')}.xlsx`);
31516
31644
  }
31517
31645
  // async upload(evt: InputEvent) {
31518
- // const { files } = evt.srcElement as HTMLInputElement;
31646
+ // const { files } = evt.target as HTMLInputElement;
31519
31647
  // if (files && files.length) {
31520
31648
  // const file = files.item(0);
31521
31649
  // var reader = new FileReader();
@@ -32210,7 +32338,7 @@ class IconPickerComponent {
32210
32338
  });
32211
32339
  const portal = new TemplatePortal(this.panel, this._vc);
32212
32340
  this._overlayRef.attach(portal);
32213
- merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter$1(k => k.keyCode === ESCAPE))).subscribe(() => this._overlayRef.detach());
32341
+ merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape'))).subscribe(() => this._overlayRef.detach());
32214
32342
  }
32215
32343
  _trackBy(index, el) {
32216
32344
  return el.name;
@@ -33768,12 +33896,10 @@ class ControlPropertiesComponent {
33768
33896
  * @param event
33769
33897
  */
33770
33898
  handleKeyboardEvent(event) {
33771
- if (event.ctrlKey) {
33772
- if (event.which === 83 || event.which === 115) {
33773
- this.form.dirty && this.save();
33774
- event.preventDefault();
33775
- event.stopPropagation();
33776
- }
33899
+ if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
33900
+ this.form.dirty && this.save();
33901
+ event.preventDefault();
33902
+ event.stopPropagation();
33777
33903
  }
33778
33904
  }
33779
33905
  ngOnInit() {
@@ -33829,12 +33955,10 @@ class SectionPropertiesComponent {
33829
33955
  * @param event
33830
33956
  */
33831
33957
  handleKeyboardEvent(event) {
33832
- if (event.ctrlKey) {
33833
- if (event.which === 83 || event.which === 115) {
33834
- this.form.dirty && this.save();
33835
- event.preventDefault();
33836
- event.stopPropagation();
33837
- }
33958
+ if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
33959
+ this.form.dirty && this.save();
33960
+ event.preventDefault();
33961
+ event.stopPropagation();
33838
33962
  }
33839
33963
  }
33840
33964
  ngOnInit() {
@@ -33867,12 +33991,10 @@ class BoxSettingsComponent {
33867
33991
  * @param event
33868
33992
  */
33869
33993
  handleKeyboardEvent(event) {
33870
- if (event.ctrlKey) {
33871
- if (event.which === 83 || event.which === 115) {
33872
- this.form.dirty && this.save();
33873
- event.preventDefault();
33874
- event.stopPropagation();
33875
- }
33994
+ if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
33995
+ this.form.dirty && this.save();
33996
+ event.preventDefault();
33997
+ event.stopPropagation();
33876
33998
  }
33877
33999
  }
33878
34000
  save() { this._paneRef.close(this.form.value); }
@@ -35359,7 +35481,7 @@ class DesktopModule {
35359
35481
  CubeMatrixPaneComponent,
35360
35482
  SchedulerPaneComponent,
35361
35483
  ContactsPaneComponent, ConversationPaneComponent] }); }
35362
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DesktopModule, providers: [ComposeDismiss, SearchService, DocumentResolver, RecipientResolver, ItemResolver,
35484
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: DesktopModule, providers: [ComposeDismiss, SearchService, DocumentResolver, RecipientResolver, CubeItemResolver,
35363
35485
  PanesRouter, AdminDismiss], imports: [CommonModule,
35364
35486
  HttpClientModule,
35365
35487
  ReactiveFormsModule,
@@ -35389,7 +35511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
35389
35511
  SchedulerPaneComponent,
35390
35512
  ContactsPaneComponent, ConversationPaneComponent,
35391
35513
  CubeListingComponent, DocumentListingComponent, PathListingComponent, GuideListingComponent],
35392
- providers: [ComposeDismiss, SearchService, DocumentResolver, RecipientResolver, ItemResolver,
35514
+ providers: [ComposeDismiss, SearchService, DocumentResolver, RecipientResolver, CubeItemResolver,
35393
35515
  PanesRouter, AdminDismiss],
35394
35516
  imports: [
35395
35517
  CommonModule,
@@ -35496,5 +35618,5 @@ function withRoute(routes) {
35496
35618
  * Generated bundle index. Do not edit.
35497
35619
  */
35498
35620
 
35499
- 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, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, 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, ItemResolveService, JoinPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NgxComponentOutlet, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, 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, StateDirective, StatePipe, SubstitutionComponent, SwapAnimation, TagsComponent, 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, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
35621
+ 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, 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, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NgxComponentOutlet, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, 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, StateDirective, StatePipe, SubstitutionComponent, SwapAnimation, TagsComponent, 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, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
35500
35622
  //# sourceMappingURL=bizdoc-core.mjs.map