@bizdoc/core 2.3.40 → 2.3.41

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.
@@ -24,5 +24,5 @@ export declare class TimespanControlDesigner implements ControlDesigner, OnInit
24
24
  mode: ViewMode;
25
25
  readonly form: FormGroup<{}>;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<TimespanControlDesigner, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<TimespanControlDesigner, "ng-component", never, {}, {}, never, never, false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimespanControlDesigner, "bizdoc-timespan-control-designer", never, {}, {}, never, never, false, never>;
28
28
  }
@@ -4,5 +4,5 @@ import * as i0 from "@angular/core";
4
4
  export declare class NotificationsPaneComponent {
5
5
  constructor(pane: PaneRef, translate: TranslateService);
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<NotificationsPaneComponent, never>;
7
- static ɵcmp: i0.ɵɵComponentDeclaration<NotificationsPaneComponent, "ng-component", never, {}, {}, never, never, false, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<NotificationsPaneComponent, "bizdoc-notification-pane", never, {}, {}, never, never, false, never>;
8
8
  }
@@ -0,0 +1,86 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { IPointEventArgs, ITooltipRenderEventArgs, Chart, IAxisLabelRenderEventArgs, LegendSettingsModel, TooltipSettingsModel, titleSettingsModel, MarginModel } from '@syncfusion/ej2-charts';
3
+ import { TooltipSettingsModel as TModel, ITooltipRenderEventArgs as ITRenderEventArgs, AxisModel, TickModel, LabelModel, LineModel, FontModel } from '@syncfusion/ej2-angular-lineargauge';
4
+ import { MarkerSettingsModel } from '@syncfusion/ej2-angular-charts';
5
+ import { ReportRef } from '../report-ref';
6
+ import { ReportComponent } from '../../core/base';
7
+ import { AccountService } from '../../core/account.service';
8
+ import { SessionService } from '../../core/session.service';
9
+ import { RouterImpl } from '../../core/router';
10
+ import { AxesMap } from '../../core/models';
11
+ import { TranslateService } from '../../core/translate.service';
12
+ import * as i0 from "@angular/core";
13
+ export declare class PerformanceWindComponent implements ReportComponent<DataModel>, OnDestroy {
14
+ private _router;
15
+ private _accounts;
16
+ private _session;
17
+ private _translate;
18
+ private _reportRef;
19
+ chart: Chart;
20
+ durationAvg: number;
21
+ durationMin: number;
22
+ durationMax: number;
23
+ deviationMax: number;
24
+ deviationMin: number;
25
+ standardAvg: number;
26
+ records: RecordModel[];
27
+ standards: ItemModel[];
28
+ subTitle: string;
29
+ title: string;
30
+ accentColor: string;
31
+ primeryColor: string;
32
+ readonly margin: MarginModel;
33
+ readonly legendSettings: LegendSettingsModel;
34
+ readonly tooltip: TooltipSettingsModel;
35
+ theme: 'Material3' | 'Material3Dark';
36
+ readonly titleStyle: titleSettingsModel;
37
+ readonly primaryXAxis: AxisModel;
38
+ readonly primaryYAxis: AxisModel;
39
+ readonly linearTooltip: TModel;
40
+ readonly linearTitleStyle: FontModel;
41
+ readonly line: LineModel;
42
+ readonly majorTicks: TickModel;
43
+ readonly minorTicks: TickModel;
44
+ readonly labelStyle: LabelModel;
45
+ readonly standardMarker: MarkerSettingsModel;
46
+ readonly marker: MarkerSettingsModel;
47
+ readonly inverse: boolean;
48
+ private actions;
49
+ private readonly _destroy;
50
+ palettes: string[];
51
+ constructor(_router: RouterImpl, _accounts: AccountService, _session: SessionService, _translate: TranslateService, _reportRef: ReportRef<PerformanceSettingsModel>);
52
+ onBind(data: DataModel[]): void;
53
+ linearTooltipRender(evt: ITRenderEventArgs): void;
54
+ highlight(index: number): void;
55
+ onExport(): void;
56
+ tooltipRender(evt: ITooltipRenderEventArgs): void;
57
+ labelRender(evt: IAxisLabelRenderEventArgs): void;
58
+ explore(evt: IPointEventArgs): void;
59
+ ngOnDestroy(): void;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceWindComponent, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceWindComponent, "ng-component", never, {}, {}, never, never, false, never>;
62
+ }
63
+ interface DataModel {
64
+ userId: string;
65
+ items: ItemModel[];
66
+ }
67
+ interface ItemModel {
68
+ documentId: number;
69
+ date: number;
70
+ standardTime?: number;
71
+ duration: number;
72
+ isFYI: boolean;
73
+ actionId: string;
74
+ }
75
+ interface RecordModel {
76
+ name?: string;
77
+ durationAvg: number;
78
+ standardAvg?: number;
79
+ deviation?: number;
80
+ items: ItemModel[];
81
+ }
82
+ interface PerformanceSettingsModel {
83
+ cube?: string;
84
+ filters?: AxesMap;
85
+ }
86
+ export {};
@@ -6,7 +6,7 @@ import * as i2 from "./core/guide/help-tip.component";
6
6
  import * as i3 from "./compose/box/box.component";
7
7
  import * as i4 from "./compose/box/row.component";
8
8
  import * as i5 from "./compose/box/control.component";
9
- import * as i6 from "./reports/cube/role-performance.component";
9
+ import * as i6 from "./reports/cube/performance-wind.component";
10
10
  import * as i7 from "./reports/cube/performance-hilo.component";
11
11
  import * as i8 from "./reports/cube/usage.component";
12
12
  import * as i9 from "./reports/cube/documents.component";
@@ -181,7 +181,7 @@ import * as i177 from "./reports/cube/usage-args.component";
181
181
  import * as i178 from "./core/tagging/emoji.component";
182
182
  import * as i179 from "./core/popup/tooltip.directive";
183
183
  import * as i180 from "./app.component";
184
- import * as i181 from "./cube/spreadsheet/spreadsheet.container";
184
+ import * as i181 from "./cube/spreadsheet/spreadsheet.container.exp";
185
185
  import * as i182 from "./modules/dayjs.module";
186
186
  import * as i183 from "@angular/common";
187
187
  import * as i184 from "@angular/common/http";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bizdoc/core",
3
- "version": "2.3.40",
3
+ "version": "2.3.41",
4
4
  "author": "Moding Ltd.",
5
5
  "homepage": "https://github.com/moding-il/bizdoc.core",
6
6
  "license": "https://github.com/moding-il/bizdoc.core/blob/master/License.md",
package/public-api.d.ts CHANGED
@@ -161,7 +161,7 @@ export { AuthenticationImpl } from './lib/core/authentication';
161
161
  export { CubeAccumulationChartComponent } from './lib/cube/accum/accum.component';
162
162
  export { CubeChartComponent } from './lib/cube/chart/chart.component';
163
163
  export { CubeGridComponent } from './lib/cube/grid/grid.component';
164
- export { SpContainer } from './lib/cube/spreadsheet/spreadsheet.container';
164
+ export { SpContainer } from './lib/cube/spreadsheet/spreadsheet.container.exp';
165
165
  export { CubeSpreadsheetComponent } from './lib/cube/spreadsheet/spreadsheet.component';
166
166
  export { CubePivotComponent } from './lib/cube/pivot/pivot.component';
167
167
  export { StateDirective } from './lib/compose/state.component';
@@ -1,187 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component } from '@angular/core';
3
- import { Chart } from '@syncfusion/ej2-charts';
4
- import { Subject, startWith, takeUntil } from 'rxjs';
5
- /// <reference path="./node_modules/dayjs/plugin/duration.d.ts" />
6
- import dayjs from 'dayjs';
7
- import { BizDoc } from '../../core/decorators';
8
- import { FONT_FAMILY } from '../../core/colors';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "../../core/router";
11
- import * as i2 from "../../core/account.service";
12
- import * as i3 from "../../core/session.service";
13
- import * as i4 from "../../core/translate.service";
14
- import * as i5 from "../report-ref";
15
- let PerformanceWindComponent = class PerformanceWindComponent {
16
- constructor(_elementRef, _router, _accounts, _session, _translate, _reportRef) {
17
- this._elementRef = _elementRef;
18
- this._router = _router;
19
- this._accounts = _accounts;
20
- this._session = _session;
21
- this._translate = _translate;
22
- this._reportRef = _reportRef;
23
- this.legendSettings = {
24
- position: 'Left',
25
- isInversed: this._session.inverse,
26
- //toggleVisibility: false,
27
- enablePages: true,
28
- enableHighlight: true,
29
- };
30
- this.tooltip = {
31
- enable: true,
32
- textStyle: {
33
- fontFamily: FONT_FAMILY
34
- }
35
- };
36
- this.titleStyle = {
37
- fontFamily: FONT_FAMILY
38
- };
39
- this.primaryXAxis = { valueType: 'Double' };
40
- this.primaryYAxis = {};
41
- this.actions = {};
42
- this._destroy = new Subject();
43
- _session.profile.actions.forEach(a => this.actions[a.name] = a);
44
- _session.themeChange.pipe(takeUntil(this._destroy), startWith(_session.theme)).subscribe(t => {
45
- this.theme = t.dark ? 'Material3Dark' : 'Material3';
46
- this.chart && this._draw();
47
- });
48
- }
49
- onBind(data) {
50
- this.chart?.destroy();
51
- if (!data.length)
52
- return;
53
- let accumStd = 0, countStd = 0, accumDuration = 0, maxStd = 0, maxDuration = 0, standards = [], map = {};
54
- data.forEach(e => {
55
- let accumStd1 = 0, countStd1 = 0, accumDuration1 = 0;
56
- e.items.forEach(e => {
57
- if (e.standardTime) {
58
- if (e.standardTime > maxStd)
59
- maxStd = e.standardTime;
60
- countStd++;
61
- countStd1++;
62
- accumStd += e.standardTime;
63
- accumStd1 += e.standardTime;
64
- standards.push(e);
65
- }
66
- if (e.duration > maxDuration)
67
- maxDuration = e.duration;
68
- accumDuration += e.duration;
69
- accumDuration1 += e.duration;
70
- });
71
- map[e.userId] = {
72
- items: e.items,
73
- stdAvg: countStd1 ? accumStd1 / countStd1 : 0,
74
- durationAvg: accumDuration1 / data.length,
75
- };
76
- });
77
- this.stdAvg = countStd ? accumStd / countStd : 0,
78
- this.durationAvg = accumDuration / data.length;
79
- this._accounts.getAll(data.map(e => e.userId)).
80
- subscribe(users => {
81
- this.series = [{
82
- name: this._translate.get('Standard'),
83
- xName: 'date',
84
- yName: 'standardTime',
85
- type: 'Polar',
86
- drawType: 'Line',
87
- marker: {
88
- visible: true,
89
- shape: 'Triangle',
90
- width: 5,
91
- height: 5
92
- },
93
- //animation: { enable: true },
94
- dataSource: standards.
95
- sort((e1, e2) => e1.standardTime < e2.standardTime ? -1 : 1),
96
- },
97
- ...users.map(u => ({
98
- dataSource: map[u.id].items,
99
- name: u.name,
100
- type: 'Polar',
101
- drawType: 'Line',
102
- marker: {
103
- visible: true,
104
- width: 5, height: 5,
105
- shape: 'Pentagon',
106
- },
107
- xName: 'date',
108
- yName: 'duration',
109
- }))];
110
- this._draw();
111
- });
112
- }
113
- onExport() {
114
- this.chart?.export('XLSX', this._reportRef.name);
115
- }
116
- _draw() {
117
- this.chart?.destroy();
118
- const colors = this._session.accentPalette;
119
- let palettes = [this._session.getPrimery(),
120
- ...colors
121
- ];
122
- while (this.series.length > palettes.length)
123
- palettes.push(...colors);
124
- this.chart = new Chart({
125
- theme: this.theme,
126
- selectionMode: 'Series',
127
- title: this._translate.get('AverageValue', dayjs.duration(this.durationAvg, 'seconds').format('DD:HH:mm')),
128
- titleStyle: this.titleStyle,
129
- subTitle: this.stdAvg ?
130
- this._translate.get('StandardValue', dayjs.duration(this.stdAvg, 'seconds').format('DD:HH:mm')) : null,
131
- subTitleStyle: this.titleStyle,
132
- series: this.series,
133
- tooltip: this.tooltip,
134
- enableAnimation: true,
135
- enableExport: true,
136
- tooltipRender: this.tooltipRender.bind(this),
137
- legendSettings: this.legendSettings,
138
- legendRender: this.legendRender.bind(this),
139
- axisLabelRender: this.labelRender.bind(this),
140
- palettes,
141
- enableRtl: this._session.inverse,
142
- height: '100%',
143
- highlightMode: 'Series',
144
- pointClick: this.explore.bind(this)
145
- }, this._elementRef.nativeElement);
146
- }
147
- legendRender(evt) {
148
- //evt.text
149
- }
150
- tooltipRender(evt) {
151
- evt.text = dayjs.duration(evt.data.pointY, 's').format('DD:HH:mm');
152
- }
153
- labelRender(evt) {
154
- switch (evt.axis.name) {
155
- case 'primaryYAxis':
156
- evt.text = dayjs.duration(evt.value, 's').humanize();
157
- break;
158
- case 'primaryXAxis':
159
- evt.text = dayjs(evt.value * 1000).format('MMM YYYY');
160
- break;
161
- }
162
- }
163
- explore(evt) {
164
- const { pointIndex, seriesIndex } = evt;
165
- if (seriesIndex === 0)
166
- return;
167
- const { documentId } = this.chart.series[seriesIndex].dataSource[pointIndex];
168
- this._router.navigate(['mailbox', 'd', documentId.encodeId()]);
169
- }
170
- ngOnDestroy() {
171
- this.chart?.destroy();
172
- this._destroy.next();
173
- }
174
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PerformanceWindComponent, deps: [{ token: i0.ElementRef }, { token: i1.RouterImpl }, { token: i2.AccountService }, { token: i3.SessionService }, { token: i4.TranslateService }, { token: i5.ReportRef }], target: i0.ɵɵFactoryTarget.Component }); }
175
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: PerformanceWindComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true, styles: [":host{flex:1}\n"] }); }
176
- };
177
- PerformanceWindComponent = __decorate([
178
- BizDoc({
179
- selector: 'bizdoc-performance-wind'
180
- })
181
- ], PerformanceWindComponent);
182
- export { PerformanceWindComponent };
183
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PerformanceWindComponent, decorators: [{
184
- type: Component,
185
- args: [{ template: '', styles: [":host{flex:1}\n"] }]
186
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.RouterImpl }, { type: i2.AccountService }, { type: i3.SessionService }, { type: i4.TranslateService }, { type: i5.ReportRef }] });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1wZXJmb3JtYW5jZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL3JlcG9ydHMvY3ViZS9yb2xlLXBlcmZvcm1hbmNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFrSCxLQUFLLEVBQXlHLE1BQU0sd0JBQXdCLENBQUM7QUFDdFEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELGtFQUFrRTtBQUNsRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVN6QyxJQUFNLHdCQUF3QixHQUE5QixNQUFNLHdCQUF3QjtJQTBCbkMsWUFDVSxXQUF1QyxFQUN2QyxPQUFtQixFQUNuQixTQUF5QixFQUN6QixRQUF3QixFQUN4QixVQUE0QixFQUM1QixVQUErQztRQUwvQyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUFxQztRQTNCaEQsbUJBQWMsR0FBRztZQUN4QixRQUFRLEVBQUUsTUFBTTtZQUNoQixVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2pDLDBCQUEwQjtZQUMxQixXQUFXLEVBQUUsSUFBSTtZQUNqQixlQUFlLEVBQUUsSUFBSTtTQUNDLENBQUM7UUFDaEIs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RSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUxlZ2VuZFJlbmRlckV2ZW50QXJncywgSVBvaW50RXZlbnRBcmdzLCBBeGlzTW9kZWwsIENoYXJ0VGhlbWUsIElQb2ludFJlbmRlckV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MsIENoYXJ0LCBJQXhpc0xhYmVsUmVuZGVyRXZlbnRBcmdzLCBMZWdlbmRTZXR0aW5nc01vZGVsLCBTZXJpZXNNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIHRpdGxlU2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1jaGFydHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9ub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL2R1cmF0aW9uLmQudHNcIiAvPlxyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBSZXBvcnRSZWYgfSBmcm9tICcuLi9yZXBvcnQtcmVmJztcclxuaW1wb3J0IHsgUmVwb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vY29yZS9yb3V0ZXInO1xyXG5pbXBvcnQgeyBBY3Rpb24sIEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogJycsXHJcbiAgc3R5bGVzOiBgOmhvc3Qge2ZsZXg6IDF9YFxyXG59KVxyXG5AQml6RG9jKHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1wZXJmb3JtYW5jZS13aW5kJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVyZm9ybWFuY2VXaW5kQ29tcG9uZW50IGltcGxlbWVudHMgUmVwb3J0Q29tcG9uZW50PE1vZGVsPiwgT25EZXN0cm95IHtcclxuICBkdXJhdGlvbkF2ZzogbnVtYmVyO1xyXG4gIHN0ZEF2ZzogbnVtYmVyO1xyXG4gIHNlcmllczogU2VyaWVzTW9kZWxbXTtcclxuICBjaGFydDogQ2hhcnQ7XHJcbiAgcmVhZG9ubHkgbGVnZW5kU2V0dGluZ3MgPSB7XHJcbiAgICBwb3NpdGlvbjogJ0xlZnQnLFxyXG4gICAgaXNJbnZlcnNlZDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgLy90b2dnbGVWaXNpYmlsaXR5OiBmYWxzZSxcclxuICAgIGVuYWJsZVBhZ2VzOiB0cnVlLFxyXG4gICAgZW5hYmxlSGlnaGxpZ2h0OiB0cnVlLFxyXG4gIH0gYXMgTGVnZW5kU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSB0b29sdGlwID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfSBhcyBUb29sdGlwU2V0dGluZ3NNb2RlbDtcclxuICB0aGVtZTogQ2hhcnRUaGVtZTtcclxuICByZWFkb25seSB0aXRsZVN0eWxlID0ge1xyXG4gICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICB9IGFzIHRpdGxlU2V0dGluZ3NNb2RlbDtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXMgPSB7IHZhbHVlVHlwZTogJ0RvdWJsZScgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzID0ge30gYXMgQXhpc01vZGVsO1xyXG4gIHByaXZhdGUgYWN0aW9uczogeyBbbmFtZTogc3RyaW5nXTogQWN0aW9uIH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZXBvcnRSZWY6IFJlcG9ydFJlZjxQZXJmb3JtYW5jZVNldHRpbmdzTW9kZWw+XHJcbiAgKSB7XHJcbiAgICBfc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZm9yRWFjaChhID0+XHJcbiAgICAgIHRoaXMuYWN0aW9uc1thLm5hbWVdID0gYVxyXG4gICAgKTtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBzdGFydFdpdGgoX3Nlc3Npb24udGhlbWUpKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWwzRGFyaycgOiAnTWF0ZXJpYWwzJztcclxuICAgICAgdGhpcy5jaGFydCAmJiB0aGlzLl9kcmF3KCk7XHJcbiAgICB9KVxyXG4gIH1cclxuICBvbkJpbmQoZGF0YTogTW9kZWxbXSkge1xyXG4gICAgdGhpcy5jaGFydD8uZGVzdHJveSgpO1xyXG4gICAgaWYgKCFkYXRhLmxlbmd0aCkgcmV0dXJuO1xyXG4gICAgbGV0IGFjY3VtU3RkID0gMCwgY291bnRTdGQgPSAwLCBhY2N1bUR1cmF0aW9uID0gMCwgbWF4U3RkID0gMCwgbWF4RHVyYXRpb24gPSAwLFxyXG4gICAgICBzdGFuZGFyZHMgPSBbXSBhcyBJdGVtTW9kZWxbXSwgbWFwOiB7XHJcbiAgICAgICAgW3VzZXJJZDogc3RyaW5nXToge1xyXG4gICAgICAgICAgaXRlbXM6IEl0ZW1Nb2RlbFtdO1xyXG4gICAgICAgICAgZHVyYXRpb25Bdmc6IG51bWJlcjtcclxuICAgICAgICAgIHN0ZEF2ZzogbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgfSA9IHt9O1xyXG4gICAgZGF0YS5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICBsZXQgYWNjdW1TdGQxID0gMCwgY291bnRTdGQxID0gMCwgYWNjdW1EdXJhdGlvbjEgPSAwO1xyXG4gICAgICBlLml0ZW1zLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgaWYgKGUuc3RhbmRhcmRUaW1lKSB7XHJcbiAgICAgICAgICBpZiAoZS5zdGFuZGFyZFRpbWUgPiBtYXhTdGQpXHJcbiAgICAgICAgICAgIG1heFN0ZCA9IGUuc3RhbmRhcmRUaW1lO1xyXG4gICAgICAgICAgY291bnRTdGQrKztcclxuICAgICAgICAgIGNvdW50U3RkMSsrO1xyXG4gICAgICAgICAgYWNjdW1TdGQgKz0gZS5zdGFuZGFyZFRpbWU7XHJcbiAgICAgICAgICBhY2N1bVN0ZDEgKz0gZS5zdGFuZGFyZFRpbWU7XHJcbiAgICAgICAgICBzdGFuZGFyZHMucHVzaChlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGUuZHVyYXRpb24gPiBtYXhEdXJhdGlvbilcclxuICAgICAgICAgIG1heER1cmF0aW9uID0gZS5kdXJhdGlvbjtcclxuICAgICAgICBhY2N1bUR1cmF0aW9uICs9IGUuZHVyYXRpb247XHJcbiAgICAgICAgYWNjdW1EdXJhdGlvbjEgKz0gZS5kdXJhdGlvbjtcclxuICAgICAgfSk7XHJcbiAgICAgIG1hcFtlLnVzZXJJZF0gPSB7XHJcbiAgICAgICAgaXRlbXM6IGUuaXRlbXMsXHJcbiAgICAgICAgc3RkQXZnOiBjb3VudFN0ZDEgPyBhY2N1bVN0ZDEgLyBjb3VudFN0ZDEgOiAwLFxyXG4gICAgICAgIGR1cmF0aW9uQXZnOiBhY2N1bUR1cmF0aW9uMSAvIGRhdGEubGVuZ3RoLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN0ZEF2ZyA9IGNvdW50U3RkID8gYWNjdW1TdGQgLyBjb3VudFN0ZCA6IDAsXHJcbiAgICAgIHRoaXMuZHVyYXRpb25BdmcgPSBhY2N1bUR1cmF0aW9uIC8gZGF0YS5sZW5ndGg7XHJcbiAgICB0aGlzLl9hY2NvdW50cy5nZXRBbGwoZGF0YS5tYXAoZSA9PiBlLnVzZXJJZCkpLlxyXG4gICAgICBzdWJzY3JpYmUodXNlcnMgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VyaWVzID0gW3tcclxuICAgICAgICAgIG5hbWU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N0YW5kYXJkJyksXHJcbiAgICAgICAgICB4TmFtZTogJ2RhdGUnLFxyXG4gICAgICAgICAgeU5hbWU6ICdzdGFuZGFyZFRpbWUnLFxyXG4gICAgICAgICAgdHlwZTogJ1BvbGFyJyxcclxuICAgICAgICAgIGRyYXdUeXBlOiAnTGluZScsXHJcbiAgICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgc2hhcGU6ICdUcmlhbmdsZScsXHJcbiAgICAgICAgICAgIHdpZHRoOiA1LFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAvL2FuaW1hdGlvbjogeyBlbmFibGU6IHRydWUgfSxcclxuICAgICAgICAgIGRhdGFTb3VyY2U6IHN0YW5kYXJkcy5cclxuICAgICAgICAgICAgc29ydCgoZTEsIGUyKSA9PiBlMS5zdGFuZGFyZFRpbWUgPCBlMi5zdGFuZGFyZFRpbWUgPyAtMSA6IDEpLFxyXG4gICAgICAgIH0gYXMgU2VyaWVzTW9kZWwsXHJcbiAgICAgICAgLi4udXNlcnMubWFwKHUgPT5cclxuICAgICAgICAoe1xyXG4gICAgICAgICAgZGF0YVNvdXJjZTogbWFwW3UuaWRdLml0ZW1zLFxyXG4gICAgICAgICAgbmFtZTogdS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogJ1BvbGFyJyxcclxuICAgICAgICAgIGRyYXdUeXBlOiAnTGluZScsXHJcbiAgICAgICAgICBtYXJrZXI6IHtcclxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgd2lkdGg6IDUsIGhlaWdodDogNSxcclxuICAgICAgICAgICAgc2hhcGU6ICdQZW50YWdvbicsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgeE5hbWU6ICdkYXRlJyxcclxuICAgICAgICAgIHlOYW1lOiAnZHVyYXRpb24nLFxyXG4gICAgICAgIH0gYXMgU2VyaWVzTW9kZWwpKV07XHJcbiAgICAgICAgdGhpcy5fZHJhdygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgb25FeHBvcnQoKSB7XHJcbiAgICB0aGlzLmNoYXJ0Py5leHBvcnQoJ1hMU1gnLCB0aGlzLl9yZXBvcnRSZWYubmFtZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RyYXcoKSB7XHJcbiAgICB0aGlzLmNoYXJ0Py5kZXN0cm95KCk7XHJcbiAgICBjb25zdCBjb2xvcnMgPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICBsZXQgcGFsZXR0ZXMgPSBbdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCksXHJcbiAgICAuLi5jb2xvcnNcclxuICAgIF07XHJcbiAgICB3aGlsZSAodGhpcy5zZXJpZXMubGVuZ3RoID4gcGFsZXR0ZXMubGVuZ3RoKVxyXG4gICAgICBwYWxldHRlcy5wdXNoKC4uLmNvbG9ycyk7XHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHtcclxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXHJcbiAgICAgIHNlbGVjdGlvbk1vZGU6ICdTZXJpZXMnLFxyXG4gICAgICB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnQXZlcmFnZVZhbHVlJywgZGF5anMuZHVyYXRpb24odGhpcy5kdXJhdGlvbkF2ZywgJ3NlY29uZHMnKS5mb3JtYXQoJ0REOkhIOm1tJykpLFxyXG4gICAgICB0aXRsZVN0eWxlOiB0aGlzLnRpdGxlU3R5bGUsXHJcbiAgICAgIHN1YlRpdGxlOiB0aGlzLnN0ZEF2ZyA/XHJcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnU3RhbmRhcmRWYWx1ZScsIGRheWpzLmR1cmF0aW9uKHRoaXMuc3RkQXZnLCAnc2Vjb25kcycpLmZvcm1hdCgnREQ6SEg6bW0nKSkgOiBudWxsLFxyXG4gICAgICBzdWJUaXRsZVN0eWxlOiB0aGlzLnRpdGxlU3R5bGUsXHJcbiAgICAgIHNlcmllczogdGhpcy5zZXJpZXMsXHJcbiAgICAgIHRvb2x0aXA6IHRoaXMudG9vbHRpcCxcclxuICAgICAgZW5hYmxlQW5pbWF0aW9uOiB0cnVlLFxyXG4gICAgICBlbmFibGVFeHBvcnQ6IHRydWUsXHJcbiAgICAgIHRvb2x0aXBSZW5kZXI6IHRoaXMudG9vbHRpcFJlbmRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBsZWdlbmRTZXR0aW5nczogdGhpcy5sZWdlbmRTZXR0aW5ncyxcclxuICAgICAgbGVnZW5kUmVuZGVyOiB0aGlzLmxlZ2VuZFJlbmRlci5iaW5kKHRoaXMpLFxyXG4gICAgICBheGlzTGFiZWxSZW5kZXI6IHRoaXMubGFiZWxSZW5kZXIuYmluZCh0aGlzKSxcclxuICAgICAgcGFsZXR0ZXMsXHJcbiAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgaGlnaGxpZ2h0TW9kZTogJ1NlcmllcycsXHJcbiAgICAgIHBvaW50Q2xpY2s6IHRoaXMuZXhwbG9yZS5iaW5kKHRoaXMpXHJcbiAgICB9LFxyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuICBsZWdlbmRSZW5kZXIoZXZ0OiBJTGVnZW5kUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICAvL2V2dC50ZXh0XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZXZ0OiBJVG9vbHRpcFJlbmRlckV2ZW50QXJncykge1xyXG4gICAgZXZ0LnRleHQgPSBkYXlqcy5kdXJhdGlvbihldnQuZGF0YS5wb2ludFkgYXMgYW55LCAncycpLmZvcm1hdCgnREQ6SEg6bW0nKTtcclxuICB9XHJcbiAgbGFiZWxSZW5kZXIoZXZ0OiBJQXhpc0xhYmVsUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICBzd2l0Y2ggKGV2dC5heGlzLm5hbWUpIHtcclxuICAgICAgY2FzZSAncHJpbWFyeVlBeGlzJzpcclxuICAgICAgICBldnQudGV4dCA9IGRheWpzLmR1cmF0aW9uKGV2dC52YWx1ZSwgJ3MnKS5odW1hbml6ZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdwcmltYXJ5WEF4aXMnOlxyXG4gICAgICAgIGV2dC50ZXh0ID0gZGF5anMoZXZ0LnZhbHVlICogMTAwMCkuZm9ybWF0KCdNTU0gWVlZWScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBsb3JlKGV2dDogSVBvaW50RXZlbnRBcmdzKSB7XHJcbiAgICBjb25zdCB7IHBvaW50SW5kZXgsIHNlcmllc0luZGV4IH0gPSBldnQ7XHJcbiAgICBpZiAoc2VyaWVzSW5kZXggPT09IDApIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB7IGRvY3VtZW50SWQgfSA9IHRoaXMuY2hhcnQuc2VyaWVzW3Nlcmllc0luZGV4XS5kYXRhU291cmNlW3BvaW50SW5kZXhdIGFzIEl0ZW1Nb2RlbDtcclxuXHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94JywgJ2QnLCBkb2N1bWVudElkLmVuY29kZUlkKCldKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYXJ0Py5kZXN0cm95KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBNb2RlbCB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgaXRlbXM6IEl0ZW1Nb2RlbFtdO1xyXG59XHJcbmludGVyZmFjZSBJdGVtTW9kZWwge1xyXG4gIGRvY3VtZW50SWQ6IG51bWJlcjtcclxuICBkYXRlOiBudW1iZXI7XHJcbiAgc3RhbmRhcmRUaW1lPzogbnVtYmVyO1xyXG4gIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgaXNGWUk6IGJvb2xlYW47XHJcbiAgYWN0aW9uSWQ6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUGVyZm9ybWFuY2VTZXR0aW5nc01vZGVsIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG59XHJcbiJdfQ==
@@ -1,58 +0,0 @@
1
- import { ElementRef, OnDestroy } from '@angular/core';
2
- import { ILegendRenderEventArgs, IPointEventArgs, AxisModel, ChartTheme, ITooltipRenderEventArgs, Chart, IAxisLabelRenderEventArgs, LegendSettingsModel, SeriesModel, TooltipSettingsModel, titleSettingsModel } from '@syncfusion/ej2-charts';
3
- import { ReportRef } from '../report-ref';
4
- import { ReportComponent } from '../../core/base';
5
- import { AccountService } from '../../core/account.service';
6
- import { SessionService } from '../../core/session.service';
7
- import { RouterImpl } from '../../core/router';
8
- import { AxesMap } from '../../core/models';
9
- import { TranslateService } from '../../core/translate.service';
10
- import * as i0 from "@angular/core";
11
- export declare class PerformanceWindComponent implements ReportComponent<Model>, OnDestroy {
12
- private _elementRef;
13
- private _router;
14
- private _accounts;
15
- private _session;
16
- private _translate;
17
- private _reportRef;
18
- durationAvg: number;
19
- stdAvg: number;
20
- series: SeriesModel[];
21
- chart: Chart;
22
- readonly legendSettings: LegendSettingsModel;
23
- readonly tooltip: TooltipSettingsModel;
24
- theme: ChartTheme;
25
- readonly titleStyle: titleSettingsModel;
26
- readonly primaryXAxis: AxisModel;
27
- readonly primaryYAxis: AxisModel;
28
- private actions;
29
- private readonly _destroy;
30
- constructor(_elementRef: ElementRef<HTMLDivElement>, _router: RouterImpl, _accounts: AccountService, _session: SessionService, _translate: TranslateService, _reportRef: ReportRef<PerformanceSettingsModel>);
31
- onBind(data: Model[]): void;
32
- onExport(): void;
33
- private _draw;
34
- legendRender(evt: ILegendRenderEventArgs): void;
35
- tooltipRender(evt: ITooltipRenderEventArgs): void;
36
- labelRender(evt: IAxisLabelRenderEventArgs): void;
37
- explore(evt: IPointEventArgs): void;
38
- ngOnDestroy(): void;
39
- static ɵfac: i0.ɵɵFactoryDeclaration<PerformanceWindComponent, never>;
40
- static ɵcmp: i0.ɵɵComponentDeclaration<PerformanceWindComponent, "ng-component", never, {}, {}, never, never, false, never>;
41
- }
42
- interface Model {
43
- userId: string;
44
- items: ItemModel[];
45
- }
46
- interface ItemModel {
47
- documentId: number;
48
- date: number;
49
- standardTime?: number;
50
- duration: number;
51
- isFYI: boolean;
52
- actionId: string;
53
- }
54
- interface PerformanceSettingsModel {
55
- cube?: string;
56
- filters?: AxesMap;
57
- }
58
- export {};