@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.
- package/esm2022/lib/admin/architecture/designer.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/icon-picker.component.mjs +2 -3
- package/esm2022/lib/admin/core/color-picker.input.mjs +2 -3
- package/esm2022/lib/admin/diff/configuration-diff.component.mjs +42 -38
- package/esm2022/lib/admin/document-trace/document-trace.component.mjs +30 -28
- package/esm2022/lib/admin/document-trace/trace-element.component.mjs +13 -11
- package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -7
- package/esm2022/lib/admin/form/designer/section.component.mjs +5 -7
- package/esm2022/lib/admin/form/designer/settings.component.mjs +5 -7
- package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -2
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +4 -4
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -4
- package/esm2022/lib/admin/patterns/patterns.component.mjs +7 -5
- package/esm2022/lib/admin/permissions/permissions.component.mjs +7 -5
- package/esm2022/lib/admin/positions/positions.component.mjs +57 -54
- package/esm2022/lib/browse/browse-items.component.mjs +57 -43
- package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
- package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +25 -24
- package/esm2022/lib/chat/chat-info.mjs +2 -2
- package/esm2022/lib/chat/contacts.component.mjs +7 -5
- package/esm2022/lib/chat/conversation.component.mjs +27 -22
- package/esm2022/lib/compose/action/action-picker.component.mjs +9 -7
- package/esm2022/lib/compose/action/action.base.mjs +4 -3
- package/esm2022/lib/compose/action/moveto-action.component.mjs +1 -1
- package/esm2022/lib/compose/can-deactivate-changes.service.mjs +2 -2
- package/esm2022/lib/compose/comments/comment.component.mjs +9 -8
- package/esm2022/lib/compose/comments/comments.component.mjs +15 -13
- package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +10 -8
- package/esm2022/lib/compose/compose-resolve.service.mjs +10 -5
- package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2022/lib/compose/copy/copy.dialog.mjs +2 -3
- package/esm2022/lib/compose/document.mobile.component.mjs +3 -2
- package/esm2022/lib/compose/document.pane.component.mjs +3 -2
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +10 -6
- package/esm2022/lib/compose/tag/tags.component.mjs +3 -5
- package/esm2022/lib/compose/trace/trace.component.mjs +4 -3
- package/esm2022/lib/core/avatar/avatar.component.mjs +2 -2
- package/esm2022/lib/core/component-factory-resolver.mjs +6 -4
- package/esm2022/lib/core/guide/guide.component.mjs +17 -18
- package/esm2022/lib/core/http.interceptor.mjs +9 -6
- package/esm2022/lib/core/identity/identity.component.mjs +2 -2
- package/esm2022/lib/core/info/location-info.component.mjs +2 -3
- package/esm2022/lib/core/inputs/combination-picker-body.mjs +9 -8
- package/esm2022/lib/core/inputs/combination-picker.mjs +1 -1
- package/esm2022/lib/core/inputs/combination-pool.mjs +6 -6
- package/esm2022/lib/core/inputs/file.input.mjs +28 -28
- package/esm2022/lib/core/mailbox.service.mjs +69 -63
- package/esm2022/lib/core/slots/router.service.mjs +4 -2
- package/esm2022/lib/core/slots/slots.component.mjs +13 -13
- package/esm2022/lib/core/tagging/edit-input.component.mjs +9 -12
- package/esm2022/lib/core/tagging/tagging.directive.mjs +5 -6
- package/esm2022/lib/core/tagging/tagging.pipe.mjs +2 -2
- package/esm2022/lib/core/translate.service.mjs +3 -3
- package/esm2022/lib/cube/accum/accum.component.mjs +10 -8
- package/esm2022/lib/cube/chart/chart.component.mjs +10 -8
- package/esm2022/lib/cube/cube.service.mjs +81 -73
- package/esm2022/lib/cube/explore/explore-items.component.mjs +38 -34
- package/esm2022/lib/cube/explore/item-resolver.service.mjs +13 -15
- package/esm2022/lib/cube/grid/grid.component.mjs +24 -23
- package/esm2022/lib/cube/grid/spreadsheet.component.mjs +25 -20
- package/esm2022/lib/cube/matrix/matrix.base.mjs +6 -6
- package/esm2022/lib/cube/matrix/popup.component.mjs +7 -4
- package/esm2022/lib/cube/matrix/table.component.mjs +24 -20
- package/esm2022/lib/cube/parallel/parallel.component.mjs +12 -10
- package/esm2022/lib/cube/pivot/pivot.component.mjs +1 -1
- package/esm2022/lib/cube/sum/sum.component.mjs +15 -16
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +5 -4
- package/esm2022/lib/dashboard/cube/documents.widget.mjs +10 -8
- package/esm2022/lib/dashboard/recents/recents.widget.mjs +9 -7
- package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -2
- package/esm2022/lib/desktop.module.mjs +4 -4
- package/esm2022/lib/home/home.desktop.component.mjs +16 -14
- package/esm2022/lib/home/home.mobile.component.mjs +2 -2
- package/esm2022/lib/home/notifications/notifications.component.mjs +2 -2
- package/esm2022/lib/home/tools.component.mjs +2 -2
- package/esm2022/lib/impersonate/impersonate.component.mjs +10 -9
- package/esm2022/lib/mobile.module.mjs +4 -4
- package/esm2022/lib/notifications/notifications-table.component.mjs +2 -2
- package/esm2022/lib/notifications/notifications.component-base.mjs +2 -2
- package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +2 -2
- package/esm2022/lib/notifications/types/liked.notification.mjs +3 -2
- package/esm2022/lib/notifications/types/notification-base.mjs +2 -2
- package/esm2022/lib/options/options.component.mjs +5 -8
- package/esm2022/lib/options/options.service.mjs +7 -5
- package/esm2022/lib/reports/cube/usage.component.mjs +3 -2
- package/esm2022/lib/routes.desktop.mjs +3 -3
- package/esm2022/lib/routes.mobile.mjs +17 -9
- package/esm2022/lib/scheduler/schedule.component.mjs +18 -17
- package/esm2022/lib/search/search.service.mjs +2 -2
- package/esm2022/lib/views/cube/cube-base.mjs +3 -3
- package/esm2022/lib/views/cube/explore.component.mjs +13 -11
- package/esm2022/lib/views/timeline/timeline.component.exp.mjs +20 -8
- package/esm2022/public-api.mjs +2 -2
- package/fesm2022/bizdoc-core.mjs +906 -784
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/indices/manage-cube-index.component.d.ts +1 -1
- package/lib/admin/positions/positions.component.d.ts +1 -3
- package/lib/browse/browse-items.component.d.ts +1 -1
- package/lib/compose/can-deactivate-changes.service.d.ts +3 -3
- package/lib/compose/compose-resolve.service.d.ts +3 -3
- package/lib/compose/document.mobile.component.d.ts +1 -1
- package/lib/compose/document.pane.component.d.ts +1 -1
- package/lib/core/component-factory-resolver.d.ts +3 -1
- package/lib/core/mailbox.service.d.ts +2 -2
- package/lib/core/tagging/tagging.directive.d.ts +1 -1
- package/lib/cube/explore/item-resolver.service.d.ts +8 -9
- package/lib/cube/pivot/pivot.component.d.ts +1 -2
- package/lib/dashboard/cube/compare.widget.d.ts +1 -1
- package/lib/dashboard/score/compare-groups.widget.d.ts +1 -1
- package/lib/notifications/types/liked.notification.d.ts +1 -1
- package/lib/reports/cube/usage.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -1
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -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.
|
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)
|
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 (
|
4953
|
-
|
4954
|
-
|
4955
|
-
|
4956
|
-
|
4957
|
-
|
4958
|
-
|
4959
|
-
|
4960
|
-
|
4961
|
-
|
4962
|
-
|
4963
|
-
|
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(
|
5395
|
-
|
5396
|
-
|
5397
|
-
|
5398
|
-
|
5399
|
-
|
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
|
-
|
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(
|
5442
|
-
|
5443
|
-
|
5444
|
-
|
5445
|
-
|
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
|
-
|
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' } })
|
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' } })
|
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(
|
5677
|
-
|
5678
|
-
|
5679
|
-
|
5680
|
-
|
5681
|
-
|
5682
|
-
|
5683
|
-
|
5684
|
-
|
5685
|
-
|
5686
|
-
|
5687
|
-
|
5688
|
-
|
5689
|
-
|
5690
|
-
|
5691
|
-
|
5692
|
-
|
5693
|
-
|
5694
|
-
|
5695
|
-
|
5696
|
-
|
5697
|
-
|
5698
|
-
|
5699
|
-
|
5700
|
-
|
5701
|
-
|
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
|
-
|
6044
|
-
|
6045
|
-
|
6046
|
-
|
6047
|
-
|
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(
|
6716
|
-
|
6717
|
-
|
6718
|
-
|
6719
|
-
|
6720
|
-
|
6721
|
-
|
6722
|
-
|
6723
|
-
|
6724
|
-
|
6725
|
-
|
6726
|
-
|
6727
|
-
|
6728
|
-
|
6729
|
-
|
6730
|
-
|
6731
|
-
|
6732
|
-
|
6733
|
-
|
6734
|
-
|
6735
|
-
|
6736
|
-
|
6737
|
-
|
6738
|
-
|
6739
|
-
|
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 (
|
6755
|
-
|
6756
|
-
|
6757
|
-
|
6758
|
-
|
6759
|
-
|
6760
|
-
|
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
|
-
}
|
6768
|
-
|
6769
|
-
|
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(
|
6783
|
-
|
6784
|
-
|
6785
|
-
|
6786
|
-
|
6787
|
-
|
6788
|
-
|
6789
|
-
|
6790
|
-
|
6791
|
-
|
6792
|
-
|
6793
|
-
|
6794
|
-
|
6795
|
-
|
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
|
-
}
|
6798
|
-
|
6799
|
-
|
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(
|
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.
|
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)
|
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)
|
8029
|
-
const by = await this._accounts.get(origin.byId)
|
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)
|
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)
|
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)
|
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))
|
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.
|
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(
|
8152
|
-
|
8153
|
-
|
8154
|
-
|
8155
|
-
|
8156
|
-
|
8157
|
-
|
8158
|
-
|
8159
|
-
|
8160
|
-
|
8161
|
-
|
8162
|
-
|
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,
|
8358
|
-
this._retrieve(item).subscribe(
|
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(
|
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(
|
8370
|
-
|
8371
|
-
|
8372
|
-
|
8373
|
-
|
8374
|
-
|
8375
|
-
|
8376
|
-
|
8377
|
-
|
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
|
-
|
8412
|
-
|
8413
|
-
|
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
|
-
|
8444
|
-
|
8445
|
-
|
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(
|
8472
|
-
|
8473
|
-
|
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
|
-
|
8480
|
-
|
8481
|
-
|
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
|
-
|
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(
|
8492
|
-
|
8493
|
-
|
8494
|
-
|
8495
|
-
|
8496
|
-
|
8497
|
-
|
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(
|
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 {
|
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
|
-
|
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('').
|
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.
|
9468
|
-
|
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.
|
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.
|
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(
|
9757
|
-
|
9758
|
-
|
9759
|
-
|
9760
|
-
|
9761
|
-
|
9762
|
-
|
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(
|
10025
|
-
|
10026
|
-
|
10027
|
-
|
10028
|
-
|
10029
|
-
|
10030
|
-
|
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(
|
10305
|
-
|
10306
|
-
|
10307
|
-
|
10308
|
-
|
10309
|
-
|
10310
|
-
|
10311
|
-
|
10312
|
-
|
10313
|
-
|
10314
|
-
|
10315
|
-
|
10316
|
-
|
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
|
-
|
10319
|
-
this.
|
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
|
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(
|
11021
|
+
promises.push(promise);
|
10983
11022
|
// acquire rows source
|
10984
|
-
|
11023
|
+
promise = firstValueFrom(this._ds.all(yAxis.dataType)).
|
10985
11024
|
then(r => this._yrows = r);
|
10986
|
-
promises.push(
|
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(
|
11025
|
-
|
11026
|
-
this.
|
11027
|
-
|
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(
|
11037
|
-
|
11038
|
-
|
11039
|
-
|
11040
|
-
|
11041
|
-
|
11042
|
-
|
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
|
-
|
11822
|
+
!TEXT_CHAR.test(evt.key) &&
|
11780
11823
|
this._close();
|
11781
|
-
|
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.
|
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.
|
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.
|
11943
|
-
return;
|
11944
|
-
if (evt.which === ENTER && !evt.shiftKey) {
|
11985
|
+
if (evt.key === 'Enter' && !evt.shiftKey) {
|
11945
11986
|
this._submit();
|
11946
|
-
|
11947
|
-
|
11987
|
+
evt.preventDefault();
|
11988
|
+
evt.stopPropagation();
|
11948
11989
|
}
|
11949
|
-
else if (evt.
|
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
|
-
|
11953
|
-
|
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.
|
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.
|
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.
|
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.
|
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
|
-
|
12337
|
-
|
12338
|
-
|
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.
|
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.
|
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(
|
12552
|
-
|
12553
|
-
|
12554
|
-
|
12555
|
-
|
12556
|
-
|
12557
|
-
|
12558
|
-
|
12559
|
-
|
12560
|
-
|
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(
|
12748
|
-
|
12749
|
-
|
12750
|
-
this._service.
|
12751
|
-
|
12752
|
-
|
12753
|
-
|
12754
|
-
|
12755
|
-
|
12756
|
-
|
12757
|
-
|
12758
|
-
|
12759
|
-
|
12760
|
-
|
12761
|
-
|
12762
|
-
|
12763
|
-
|
12764
|
-
|
12765
|
-
|
12766
|
-
|
12767
|
-
|
12768
|
-
|
12769
|
-
|
12770
|
-
|
12771
|
-
|
12772
|
-
|
12773
|
-
|
12774
|
-
|
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.
|
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)
|
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)
|
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.
|
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(
|
15606
|
-
|
15607
|
-
|
15608
|
-
|
15609
|
-
|
15610
|
-
|
15611
|
-
|
15612
|
-
|
15613
|
-
|
15614
|
-
|
15615
|
-
|
15616
|
-
|
15617
|
-
|
15618
|
-
|
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'])
|
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().
|
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().
|
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())
|
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().
|
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().
|
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)),
|
15919
|
-
this.
|
15920
|
-
|
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(
|
15987
|
-
|
15988
|
-
|
15989
|
-
|
15990
|
-
|
15991
|
-
|
15992
|
-
|
15993
|
-
|
15994
|
-
|
15995
|
-
|
15996
|
-
|
15997
|
-
|
15998
|
-
|
15999
|
-
|
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.
|
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.
|
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: "
|
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.
|
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
|
-
|
17133
|
-
|
17134
|
-
|
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(
|
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(
|
17225
|
-
|
17226
|
-
|
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(
|
17234
|
-
|
17235
|
-
|
17236
|
-
|
17237
|
-
this.
|
17238
|
-
|
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(
|
17272
|
-
|
17273
|
-
|
17274
|
-
|
17275
|
-
|
17276
|
-
|
17277
|
-
|
17278
|
-
|
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.
|
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: "
|
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
|
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:
|
17780
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type:
|
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:
|
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
|
17786
|
-
constructor(_service
|
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:
|
17794
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type:
|
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:
|
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 }
|
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.
|
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(
|
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
|
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
|
-
|
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
|
-
|
18052
|
-
|
18053
|
-
|
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
|
-
|
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(
|
18118
|
-
|
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.
|
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.
|
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
|
-
|
18334
|
-
|
18335
|
-
|
18336
|
-
|
18337
|
-
|
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.
|
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.
|
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.
|
18897
|
-
path = path.
|
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))
|
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
|
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.
|
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.
|
19898
|
+
event.target.classList.add('resizing');
|
19832
19899
|
this.dragging = true;
|
19833
19900
|
document.onmousemove = onMouseMove;
|
19834
19901
|
document.onmouseup = () => {
|
19835
|
-
event.
|
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.
|
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.
|
19918
|
+
event.target.classList.add('resizing');
|
19852
19919
|
this.dragging = true;
|
19853
19920
|
document.onmousemove = onMouseMove;
|
19854
19921
|
document.onmouseup = () => {
|
19855
|
-
event.
|
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.
|
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.
|
20247
|
+
this._popup.open(QuickOptionsComponent, evt.target, { position: 'end' });
|
20181
20248
|
}
|
20182
20249
|
signout(evt) {
|
20183
|
-
this._popup.open(QuickSignComponent, evt.
|
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(
|
20213
|
-
|
20214
|
-
|
20215
|
-
|
20216
|
-
|
20217
|
-
|
20218
|
-
|
20219
|
-
|
20220
|
-
|
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.
|
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.
|
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.
|
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(
|
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(
|
20363
|
-
|
20364
|
-
|
20365
|
-
|
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.
|
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:
|
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
|
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(
|
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(
|
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: "
|
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: {
|
21365
|
-
|
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: {
|
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.
|
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(
|
21786
|
-
|
21787
|
-
|
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
|
-
|
22284
|
-
|
22285
|
-
|
22286
|
-
|
22287
|
-
|
22288
|
-
|
22289
|
-
|
22290
|
-
|
22291
|
-
|
22292
|
-
|
22293
|
-
|
22294
|
-
|
22295
|
-
|
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
|
-
|
22308
|
-
|
22309
|
-
|
22310
|
-
|
22311
|
-
|
22312
|
-
|
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
|
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.
|
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(
|
23621
|
-
|
23622
|
-
|
23623
|
-
|
23624
|
-
|
23625
|
-
|
23626
|
-
|
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(
|
23738
|
-
|
23739
|
-
|
23740
|
-
|
23741
|
-
|
23742
|
-
|
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: "
|
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(
|
26165
|
-
|
26166
|
-
|
26167
|
-
|
26168
|
-
|
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.
|
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
|
-
|
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 }).
|
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(
|
27062
|
-
|
27063
|
-
|
27064
|
-
|
27065
|
-
|
27066
|
-
|
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
|
-
}, () =>
|
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
|
-
}, () =>
|
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
|
-
}, () =>
|
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
|
-
}, () =>
|
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)
|
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
|
-
})
|
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)
|
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
|
-
})
|
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)
|
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
|
-
})
|
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)
|
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(
|
28207
|
-
|
28208
|
-
|
28209
|
-
|
28210
|
-
|
28211
|
-
|
28212
|
-
|
28213
|
-
|
28214
|
-
|
28215
|
-
|
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(
|
28324
|
-
|
28325
|
-
|
28326
|
-
|
28327
|
-
|
28328
|
-
|
28329
|
-
|
28330
|
-
|
28331
|
-
|
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: "
|
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)
|
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: "
|
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
|
-
|
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
|
-
|
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(
|
29537
|
-
|
29538
|
-
|
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)
|
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)
|
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)
|
29664
|
+
const substitute = await firstValueFrom(this._accounts.get(recipient.substituteId));
|
29551
29665
|
if (recipient.byId) {
|
29552
|
-
const by = await this._accounts.get(recipient.byId)
|
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)
|
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.
|
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.
|
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
|
-
|
29869
|
-
|
29870
|
-
|
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(
|
29963
|
-
|
29964
|
-
|
29965
|
-
|
29966
|
-
|
29967
|
-
|
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(
|
29980
|
-
|
29981
|
-
|
29982
|
-
|
29983
|
-
|
29984
|
-
|
29985
|
-
results
|
29986
|
-
|
29987
|
-
|
29988
|
-
|
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 =
|
29991
|
-
}
|
29992
|
-
|
29993
|
-
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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)
|
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.
|
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.
|
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(
|
30670
|
-
|
30671
|
-
|
30672
|
-
|
30673
|
-
|
30674
|
-
|
30675
|
-
|
30676
|
-
|
30677
|
-
|
30678
|
-
|
30679
|
-
|
30680
|
-
|
30681
|
-
|
30682
|
-
|
30683
|
-
|
30684
|
-
|
30685
|
-
|
30686
|
-
|
30687
|
-
|
30688
|
-
|
30689
|
-
|
30690
|
-
|
30691
|
-
|
30692
|
-
|
30693
|
-
|
30694
|
-
|
30695
|
-
|
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
|
-
|
31139
|
-
|
31140
|
-
|
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
|
-
|
31214
|
-
|
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(
|
31224
|
-
|
31225
|
-
|
31226
|
-
|
31227
|
-
|
31228
|
-
|
31229
|
-
|
31230
|
-
model.groups
|
31231
|
-
|
31232
|
-
model.patterns
|
31233
|
-
|
31234
|
-
|
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
|
-
|
31255
|
-
|
31256
|
-
|
31257
|
-
|
31258
|
-
|
31259
|
-
|
31260
|
-
|
31261
|
-
|
31262
|
-
|
31263
|
-
|
31264
|
-
|
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.
|
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.
|
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.
|
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.
|
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)
|
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)
|
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.
|
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.
|
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
|
-
|
33773
|
-
|
33774
|
-
|
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
|
-
|
33834
|
-
|
33835
|
-
|
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
|
-
|
33872
|
-
|
33873
|
-
|
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,
|
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,
|
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,
|
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
|