@bizdoc/core 1.10.0-next.6 → 1.10.0-next.7
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/assets/bizdoc-schema.json +6 -0
- package/esm2020/lib/browse/browse-items.component.mjs +3 -3
- package/esm2020/lib/core/controls/combination-picker-body.mjs +5 -2
- package/esm2020/lib/core/functions.mjs +4 -1
- package/esm2020/lib/core/mailbox.service.mjs +20 -23
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/cube/cube-info.service.mjs +5 -5
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +1 -1
- package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
- package/esm2020/lib/cube/matrix/matrix.component.mjs +8 -8
- package/esm2020/lib/cube/matrix/table.component.mjs +194 -138
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +1 -1
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -1
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +1 -1
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +10 -6
- package/esm2020/lib/modules/chart.module.mjs +4 -4
- package/esm2020/lib/shared.module.mjs +4 -4
- package/esm2020/lib/views/cube/matrix.component.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/bizdoc-core.mjs +239 -180
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +246 -181
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/core/controls/combination-picker-body.d.ts +4 -6
- package/lib/core/functions.d.ts +1 -0
- package/lib/core/mailbox.service.d.ts +4 -8
- package/lib/core/models.d.ts +1 -1
- package/lib/cube/cube-info.service.d.ts +3 -6
- package/lib/cube/matrix/matrix.base.d.ts +2 -6
- package/lib/cube/matrix/matrix.component.d.ts +3 -3
- package/lib/cube/matrix/table.component.d.ts +18 -28
- package/lib/shared.module.d.ts +1 -1
- package/lib/views/cube/matrix.component.d.ts +3 -11
- package/package.json +2 -2
- package/public-api.d.ts +1 -1
package/fesm2020/bizdoc-core.mjs
CHANGED
@@ -116,7 +116,7 @@ import * as i24 from '@angular/flex-layout/extended';
|
|
116
116
|
import * as i4$1 from '@ctrl/ngx-emoji-mart';
|
117
117
|
import { PickerModule } from '@ctrl/ngx-emoji-mart';
|
118
118
|
import * as i8$2 from '@syncfusion/ej2-angular-charts';
|
119
|
-
import { AccumulationChart, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationLegend, Export, PieSeries, ChartModule, AccumulationChartAllModule, SparklineAllModule, 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, ExportService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, AccumulationChartComponent, Chart as Chart$1, DateTime as DateTime$1, BarSeries as BarSeries$1, AreaSeries as AreaSeries$1, BubbleSeries as BubbleSeries$1, ColumnSeries as ColumnSeries$1, LineSeries as LineSeries$1, PolarSeries as PolarSeries$1, RadarSeries as RadarSeries$1, SplineSeries as SplineSeries$1, SplineAreaSeries as SplineAreaSeries$1, ScatterSeries as ScatterSeries$1, StackingLineSeries as StackingLineSeries$1, StackingAreaSeries as StackingAreaSeries$1, StackingColumnSeries as StackingColumnSeries$1, StackingBarSeries as StackingBarSeries$1, StepAreaSeries as StepAreaSeries$1, StepLineSeries as StepLineSeries$1, ChartComponent } from '@syncfusion/ej2-angular-charts';
|
119
|
+
import { AccumulationChart, FunnelSeries, AccumulationDataLabel, AccumulationTooltip, AccumulationLegend, Export, PieSeries, ChartModule, AccumulationChartAllModule, SparklineAllModule, 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, ExportService, AccumulationAnnotationService, AccumulationDataLabelService, AccumulationLegendService, AccumulationSelectionService, AccumulationTooltipService, AccumulationChartComponent, Chart as Chart$1, DateTime as DateTime$1, BarSeries as BarSeries$1, AreaSeries as AreaSeries$1, BubbleSeries as BubbleSeries$1, ColumnSeries as ColumnSeries$1, LineSeries as LineSeries$1, PolarSeries as PolarSeries$1, RadarSeries as RadarSeries$1, SplineSeries as SplineSeries$1, SplineAreaSeries as SplineAreaSeries$1, ScatterSeries as ScatterSeries$1, StackingLineSeries as StackingLineSeries$1, StackingAreaSeries as StackingAreaSeries$1, StackingColumnSeries as StackingColumnSeries$1, StackingBarSeries as StackingBarSeries$1, StepAreaSeries as StepAreaSeries$1, StepLineSeries as StepLineSeries$1, ChartComponent } from '@syncfusion/ej2-angular-charts';
|
120
120
|
import * as XLSX from 'xlsx';
|
121
121
|
import { Chart, Category, DateTime, Tooltip, Export as Export$1, BarSeries, AreaSeries, StackingStepAreaSeries, BubbleSeries, ColumnSeries, LineSeries, Legend, PolarSeries, RadarSeries, SplineSeries, SplineAreaSeries, ScatterSeries, StackingLineSeries, StackingAreaSeries, StackingColumnSeries, StackingBarSeries, StepAreaSeries, StepLineSeries } from '@syncfusion/ej2-charts';
|
122
122
|
import * as i6$5 from '@syncfusion/ej2-angular-grids';
|
@@ -636,6 +636,9 @@ const IS_MOBILE = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini
|
|
636
636
|
function isMobile() {
|
637
637
|
return IS_MOBILE /*|| document.cookie.indexOf('aria=1') > -1*/;
|
638
638
|
}
|
639
|
+
function isFunction(val) {
|
640
|
+
return typeof val === 'function';
|
641
|
+
}
|
639
642
|
function isBoolean(val) {
|
640
643
|
return typeof val === 'boolean';
|
641
644
|
}
|
@@ -2856,15 +2859,6 @@ class MailboxService {
|
|
2856
2859
|
// _session.profile.inbox.push(m.model);
|
2857
2860
|
});
|
2858
2861
|
}
|
2859
|
-
/**
|
2860
|
-
*
|
2861
|
-
* @param date
|
2862
|
-
*/
|
2863
|
-
_isAboveWatermark(date) {
|
2864
|
-
return !this._session.isImpersonating &&
|
2865
|
-
this._session.profile.options.inboxView &&
|
2866
|
-
this._session.profile.options.inboxView < date;
|
2867
|
-
}
|
2868
2862
|
download(documentId, fileId) {
|
2869
2863
|
return this._http.get(AttachmentInfo.formatUrl(documentId, fileId), {
|
2870
2864
|
responseType: 'arraybuffer'
|
@@ -2873,8 +2867,8 @@ class MailboxService {
|
|
2873
2867
|
removeattachment(id, fileId) {
|
2874
2868
|
return this._http.delete(`/api/mailbox/attachment/${id}`, { params: { fileId: fileId.toString() } });
|
2875
2869
|
}
|
2876
|
-
read(id, read) {
|
2877
|
-
return this._http.put(`/api/mailbox/read/${id}`, undefined, { params: { read } });
|
2870
|
+
read(id, read, folderId, received) {
|
2871
|
+
return this._http.put(`/api/mailbox/read/${id}`, undefined, { params: { read } }).pipe(tap(() => folderId && this._updateunreadcounter(received, folderId, read ? 1 : -1)));
|
2878
2872
|
}
|
2879
2873
|
comments(id, before) {
|
2880
2874
|
return this._http.get(`/api/comments/${id}`, { params: { before: new Date(before).toJSON() } });
|
@@ -3014,14 +3008,20 @@ class MailboxService {
|
|
3014
3008
|
})), this._notify());
|
3015
3009
|
}
|
3016
3010
|
get(id, read) {
|
3017
|
-
return this._http.get(`/api/mail/${id}`).pipe(tap(m =>
|
3018
|
-
|
3019
|
-
|
3020
|
-
|
3021
|
-
|
3022
|
-
|
3023
|
-
|
3024
|
-
|
3011
|
+
return this._http.get(`/api/mail/${id}`).pipe(tap(m => read === false && m.read === true &&
|
3012
|
+
this._updateunreadcounter(m.received, m.folderId, -1)));
|
3013
|
+
}
|
3014
|
+
_updateunreadcounter(date, folderId, val) {
|
3015
|
+
if (
|
3016
|
+
// date is above watermark
|
3017
|
+
!this._session.isImpersonating &&
|
3018
|
+
this._session.profile.options.inboxView &&
|
3019
|
+
this._session.profile.options.inboxView < date)
|
3020
|
+
this._session.profile.inboxCount -= val;
|
3021
|
+
// decrease
|
3022
|
+
const folder = this._session.profile.folders.
|
3023
|
+
find(f => f.name === folderId);
|
3024
|
+
folder.count -= val;
|
3025
3025
|
}
|
3026
3026
|
save(id, version, form, model) {
|
3027
3027
|
return this._withGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}`, model, { params })), this._notify());
|
@@ -3032,11 +3032,11 @@ class MailboxService {
|
|
3032
3032
|
removecomment(id) {
|
3033
3033
|
return this._http.delete(`/api/comments/${id}`).pipe(tap(() => { }));
|
3034
3034
|
}
|
3035
|
-
submit(id, version, form, model) {
|
3035
|
+
submit(id, version, form, model, read, folderId, received) {
|
3036
3036
|
return this._withGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params }))).pipe(this._notify());
|
3037
3037
|
}
|
3038
|
-
send(id, version, form, model, action, actionArgs) {
|
3039
|
-
return this._withGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: Object.assign(params, actionArgs) }))).pipe(this._notify());
|
3038
|
+
send(id, version, form, model, action, actionArgs, read, folderId, received) {
|
3039
|
+
return this._withGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: Object.assign(params, actionArgs) }))).pipe(tap(() => read === false && this._updateunreadcounter(received, folderId, -1)), this._notify());
|
3040
3040
|
}
|
3041
3041
|
events(starting, ending, contains) {
|
3042
3042
|
return this._http.get(`/api/events`, {
|
@@ -7025,7 +7025,7 @@ class BrowseItemsComponent {
|
|
7025
7025
|
dragStarted(event) {
|
7026
7026
|
}
|
7027
7027
|
toggleRead(item) {
|
7028
|
-
this._mailbox.read(item.id, !item.read).
|
7028
|
+
this._mailbox.read(item.id, !item.read, item.folderId, item.received).
|
7029
7029
|
subscribe(() => item.read = !item.read);
|
7030
7030
|
}
|
7031
7031
|
select(id) {
|
@@ -7270,7 +7270,7 @@ class BrowseItemsComponent {
|
|
7270
7270
|
}
|
7271
7271
|
sendAll(action, args) {
|
7272
7272
|
const params = queryParams(args);
|
7273
|
-
this._forEach(i => this._mailbox.send(i.id, i.version, i.formId, null, action, params).
|
7273
|
+
this._forEach(i => this._mailbox.send(i.id, i.version, i.formId, null, action, params, i.read, i.folderId, i.received).
|
7274
7274
|
pipe(tap(() => {
|
7275
7275
|
if (i.folderId !== this.folderId)
|
7276
7276
|
this.dataSource.data.remove(i);
|
@@ -14068,32 +14068,30 @@ class CubeMatrixComponent {
|
|
14068
14068
|
this.onExplore = new EventEmitter();
|
14069
14069
|
this.loadingChange = new EventEmitter();
|
14070
14070
|
}
|
14071
|
-
get indices() {
|
14072
|
-
return this._indices;
|
14073
|
-
}
|
14074
|
-
set indices(value) {
|
14075
|
-
if (value)
|
14076
|
-
this._indices = isArray(value) ? value : [value];
|
14077
|
-
}
|
14078
14071
|
set sum(val) {
|
14079
|
-
|
14080
|
-
|
14081
|
-
|
14082
|
-
|
14083
|
-
|
14084
|
-
|
14085
|
-
|
14086
|
-
|
14087
|
-
|
14088
|
-
|
14089
|
-
|
14090
|
-
|
14091
|
-
|
14092
|
-
|
14093
|
-
|
14094
|
-
|
14095
|
-
|
14096
|
-
|
14072
|
+
if (val)
|
14073
|
+
this._sum = (isArray(val) ? val : [val]).
|
14074
|
+
map(sum => {
|
14075
|
+
let value;
|
14076
|
+
if (sum.value)
|
14077
|
+
value = sum.value.toString();
|
14078
|
+
else if (sum.calculate)
|
14079
|
+
switch (sum.calculate) {
|
14080
|
+
case 'month':
|
14081
|
+
value = 'M' + ('0' + new Date().getMonth().toString()).slice(-2);
|
14082
|
+
break;
|
14083
|
+
case 'year':
|
14084
|
+
value = new Date().getFullYear().toString();
|
14085
|
+
break;
|
14086
|
+
case 'quarter':
|
14087
|
+
value = Math.ceil(new Date().getMonth() / 3).toString();
|
14088
|
+
break;
|
14089
|
+
}
|
14090
|
+
return {
|
14091
|
+
value,
|
14092
|
+
...sum
|
14093
|
+
};
|
14094
|
+
});
|
14097
14095
|
}
|
14098
14096
|
get interactive() {
|
14099
14097
|
return this._interactive;
|
@@ -14103,70 +14101,69 @@ class CubeMatrixComponent {
|
|
14103
14101
|
}
|
14104
14102
|
ngOnChanges(changes) {
|
14105
14103
|
if (changes['_cube']) {
|
14106
|
-
this.cube = this.
|
14107
|
-
this._session.profile.cubes[0];
|
14104
|
+
this.cube = this._session.profile.cubes.find(c => c.name === this._cube);
|
14108
14105
|
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
14109
14106
|
}
|
14110
|
-
if (this.
|
14111
|
-
this.
|
14112
|
-
|
14113
|
-
this.indexes = this.cube.indices;
|
14114
|
-
this._indices = this.indexes.map(i => i.name);
|
14107
|
+
if (!this.cube) {
|
14108
|
+
this.cube = this._session.profile.cubes[0];
|
14109
|
+
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
14115
14110
|
}
|
14111
|
+
if (changes['_indices'])
|
14112
|
+
this.indices = this.cube.indices.filter(i => isArray(this._indices) ? this._indices.indexOf(i.name) > -1 : this._indices === i.name);
|
14116
14113
|
if (changes['_xAxis'] || changes['_series']) {
|
14117
|
-
this.xAxis = this.cube.axes.find(a => a.name === this._xAxis)
|
14118
|
-
this.series = this.cube.axes.find(a => a.name === this._series)
|
14114
|
+
this.xAxis = this.cube.axes.find(a => a.name === this._xAxis);
|
14115
|
+
this.series = this.cube.axes.find(a => a.name === this._series);
|
14119
14116
|
this._prepare = forkJoin(this._ds.all(this.series.dataType).pipe(tap(r => this.rows = r)), this._ds.all(this.xAxis.dataType).pipe(tap(c => this.columns = c))).toPromise().then(() => this._sum &&
|
14120
14117
|
this._addsum());
|
14121
14118
|
}
|
14122
14119
|
if (changes['filters'])
|
14123
14120
|
this.refresh();
|
14124
14121
|
}
|
14125
|
-
/** */
|
14126
14122
|
_addsum() {
|
14127
|
-
|
14128
|
-
|
14129
|
-
|
14130
|
-
|
14131
|
-
|
14132
|
-
|
14133
|
-
|
14134
|
-
|
14135
|
-
|
14136
|
-
|
14123
|
+
this._sum.forEach((s, i) => {
|
14124
|
+
let { value, axis } = s;
|
14125
|
+
const element = {
|
14126
|
+
key: '_sum_' + i,
|
14127
|
+
value: s.title
|
14128
|
+
};
|
14129
|
+
let j = 0;
|
14130
|
+
if (axis === 'xAxis') {
|
14131
|
+
while (j < this.columns.length) {
|
14132
|
+
if (this.columns[j].key === value) {
|
14133
|
+
this.columns.splice(j + 1, 0, element);
|
14134
|
+
break;
|
14135
|
+
}
|
14136
|
+
j++;
|
14137
14137
|
}
|
14138
|
-
|
14138
|
+
if (j === this.columns.length)
|
14139
|
+
this.columns.push(element);
|
14139
14140
|
}
|
14140
|
-
|
14141
|
-
|
14142
|
-
|
14143
|
-
|
14144
|
-
|
14145
|
-
|
14146
|
-
|
14147
|
-
while (i < this.rows.length - 1) {
|
14148
|
-
if (this.rows[i].key === series.toString()) {
|
14149
|
-
this.rows.splice(i + 1, 0, row);
|
14150
|
-
break;
|
14141
|
+
else {
|
14142
|
+
while (j < this.rows.length) {
|
14143
|
+
if (this.rows[j].key === value) {
|
14144
|
+
this.rows.splice(j + 1, 0, element);
|
14145
|
+
break;
|
14146
|
+
}
|
14147
|
+
j++;
|
14151
14148
|
}
|
14152
|
-
|
14149
|
+
if (j === this.rows.length)
|
14150
|
+
this.rows.push(element);
|
14153
14151
|
}
|
14154
|
-
|
14155
|
-
this.rows.push(row);
|
14156
|
-
}
|
14152
|
+
});
|
14157
14153
|
}
|
14158
14154
|
refresh() {
|
14159
14155
|
const progressTask = setTimeout(() => this.loadingChange.next(this.loading = true), LOADING_DELAY);
|
14160
|
-
this._prepare.then(() => this._service.series(this.cube.name, this.
|
14161
|
-
series: this.
|
14156
|
+
this._prepare.then(() => this._service.series(this.cube.name, this._xAxis, {
|
14157
|
+
series: this._series,
|
14162
14158
|
indices: this._indices,
|
14163
14159
|
filters: this.filters,
|
14164
14160
|
scope: this.scope
|
14165
|
-
}).pipe(modelize(), first$1()
|
14166
|
-
this._totals(d);
|
14161
|
+
}).pipe(modelize(), first$1()).subscribe(d => {
|
14167
14162
|
this._sum &&
|
14168
14163
|
this._calculatesum(d);
|
14169
|
-
|
14164
|
+
this._totals(d);
|
14165
|
+
this.data = d;
|
14166
|
+
}, (e) => {
|
14170
14167
|
this._sb.error(e.status === 401 ? 'Unauthorized' : null);
|
14171
14168
|
}, () => {
|
14172
14169
|
clearTimeout(progressTask);
|
@@ -14174,8 +14171,9 @@ class CubeMatrixComponent {
|
|
14174
14171
|
}));
|
14175
14172
|
}
|
14176
14173
|
_totals(data) {
|
14174
|
+
this.totals = {};
|
14177
14175
|
let grand = 0;
|
14178
|
-
this.
|
14176
|
+
this.indices && this.indices.forEach(i => {
|
14179
14177
|
const index = data[i.name];
|
14180
14178
|
if (!index)
|
14181
14179
|
data[i.name] = {};
|
@@ -14198,8 +14196,7 @@ class CubeMatrixComponent {
|
|
14198
14196
|
data[r.key]['_total'] = sum;
|
14199
14197
|
grand -= sum;
|
14200
14198
|
});
|
14201
|
-
this.
|
14202
|
-
this.columns.forEach(c => {
|
14199
|
+
this._indices && this.columns.forEach(c => {
|
14203
14200
|
let sum = 0, key;
|
14204
14201
|
for (key in data) {
|
14205
14202
|
const val = data[key][c.key];
|
@@ -14211,74 +14208,136 @@ class CubeMatrixComponent {
|
|
14211
14208
|
this.totals['_total'] = grand;
|
14212
14209
|
}
|
14213
14210
|
_calculatesum(data) {
|
14214
|
-
|
14215
|
-
|
14216
|
-
|
14217
|
-
|
14218
|
-
|
14219
|
-
|
14220
|
-
|
14221
|
-
|
14222
|
-
|
14223
|
-
|
14224
|
-
|
14225
|
-
|
14226
|
-
|
14227
|
-
|
14228
|
-
|
14229
|
-
|
14230
|
-
|
14231
|
-
|
14232
|
-
|
14233
|
-
|
14234
|
-
|
14235
|
-
|
14236
|
-
|
14237
|
-
|
14238
|
-
let sum = 0, i = 0;
|
14239
|
-
while (i < this.rows.length) {
|
14240
|
-
let key = this.rows[i].key, row = data[key];
|
14241
|
-
if (row) {
|
14242
|
-
let val = row[c.key];
|
14243
|
-
if (val !== undefined)
|
14244
|
-
sum += val;
|
14245
|
-
if (key === series)
|
14246
|
-
break;
|
14211
|
+
this._sum.forEach((s, i) => {
|
14212
|
+
const { axis, value, calculate } = s, name = '_sum_' + i;
|
14213
|
+
if (axis === 'xAxis') {
|
14214
|
+
let total = 0;
|
14215
|
+
this.rows.forEach(r => {
|
14216
|
+
const row = data[r.key];
|
14217
|
+
if (!row)
|
14218
|
+
return;
|
14219
|
+
let sum = 0, j = 0;
|
14220
|
+
while (j < this.columns.length) {
|
14221
|
+
let key = this.columns[j].key;
|
14222
|
+
if (isFunction(calculate)) {
|
14223
|
+
let val = calculate(key, this.data);
|
14224
|
+
if (val !== undefined)
|
14225
|
+
sum += val;
|
14226
|
+
}
|
14227
|
+
else {
|
14228
|
+
let val = row[key];
|
14229
|
+
if (val !== undefined)
|
14230
|
+
sum += val;
|
14231
|
+
if (key === value)
|
14232
|
+
break;
|
14233
|
+
}
|
14234
|
+
j++;
|
14247
14235
|
}
|
14248
|
-
|
14249
|
-
|
14250
|
-
|
14251
|
-
|
14252
|
-
|
14253
|
-
|
14254
|
-
|
14236
|
+
row[name] = sum;
|
14237
|
+
total += sum;
|
14238
|
+
});
|
14239
|
+
this.indices && this.indices.forEach(i => {
|
14240
|
+
const row = data[i.name];
|
14241
|
+
if (!row)
|
14242
|
+
return;
|
14243
|
+
let sum = 0, j = 0;
|
14244
|
+
while (j < this.columns.length) {
|
14245
|
+
let key = this.columns[j].key;
|
14246
|
+
if (isFunction(calculate)) {
|
14247
|
+
let val = calculate(key, this.data);
|
14248
|
+
if (val !== undefined)
|
14249
|
+
sum += val;
|
14250
|
+
}
|
14251
|
+
else {
|
14252
|
+
let val = row[key];
|
14253
|
+
if (val !== undefined)
|
14254
|
+
sum += val;
|
14255
|
+
if (key === value)
|
14256
|
+
break;
|
14257
|
+
}
|
14258
|
+
j++;
|
14259
|
+
}
|
14260
|
+
row[name] = sum;
|
14261
|
+
});
|
14262
|
+
this.totals[name] = total;
|
14263
|
+
}
|
14264
|
+
else {
|
14265
|
+
let total = 0;
|
14266
|
+
this.columns.forEach(c => {
|
14267
|
+
let sum = 0, j = 0;
|
14268
|
+
while (j < this.rows.length) {
|
14269
|
+
let key = this.rows[j].key;
|
14270
|
+
if (isFunction(calculate)) {
|
14271
|
+
let val = calculate(key, this.data);
|
14272
|
+
if (val !== undefined)
|
14273
|
+
sum += val;
|
14274
|
+
}
|
14275
|
+
else {
|
14276
|
+
let row = data[key];
|
14277
|
+
if (row) {
|
14278
|
+
let val = row[c.key];
|
14279
|
+
if (val !== undefined)
|
14280
|
+
sum += val;
|
14281
|
+
if (key === value)
|
14282
|
+
break;
|
14283
|
+
}
|
14284
|
+
}
|
14285
|
+
j++;
|
14286
|
+
}
|
14287
|
+
data[name][c.key] = sum;
|
14288
|
+
total += sum;
|
14289
|
+
});
|
14290
|
+
data[name]['_total'] = total;
|
14291
|
+
}
|
14292
|
+
});
|
14255
14293
|
}
|
14256
|
-
explore(x,
|
14294
|
+
explore(x, series) {
|
14257
14295
|
if (!this.interactive)
|
14258
14296
|
return;
|
14259
|
-
|
14260
|
-
|
14261
|
-
|
14262
|
-
|
14263
|
-
|
14264
|
-
|
14265
|
-
|
14266
|
-
|
14297
|
+
const axes = { ...this.filters };
|
14298
|
+
if (this._sum) {
|
14299
|
+
let i = 0;
|
14300
|
+
while (i < this._sum.length) {
|
14301
|
+
let { value, calculate } = this._sum[i], name = '_sum_' + i;
|
14302
|
+
if (x === name) {
|
14303
|
+
x = [];
|
14304
|
+
for (let i = 0; i < this.columns.length; i++) {
|
14305
|
+
let key = this.columns[i].key;
|
14306
|
+
if (isFunction(calculate)) {
|
14307
|
+
let val = calculate(key, this.data);
|
14308
|
+
if (val !== undefined)
|
14309
|
+
x.push(key);
|
14310
|
+
}
|
14311
|
+
else {
|
14312
|
+
x.push(key);
|
14313
|
+
if (key === value)
|
14314
|
+
break;
|
14315
|
+
}
|
14316
|
+
}
|
14317
|
+
break;
|
14267
14318
|
}
|
14268
|
-
|
14269
|
-
|
14270
|
-
|
14271
|
-
|
14272
|
-
|
14273
|
-
|
14274
|
-
|
14275
|
-
|
14319
|
+
else if (series === name) {
|
14320
|
+
series = [];
|
14321
|
+
for (let i = 0; i < this.rows.length; i++) {
|
14322
|
+
let key = this.rows[i].key;
|
14323
|
+
if (isFunction(calculate)) {
|
14324
|
+
let val = calculate(key, this.data);
|
14325
|
+
if (val !== undefined)
|
14326
|
+
series.push(key);
|
14327
|
+
}
|
14328
|
+
else {
|
14329
|
+
series.push(key);
|
14330
|
+
if (key === value)
|
14331
|
+
break;
|
14332
|
+
}
|
14333
|
+
}
|
14334
|
+
break;
|
14276
14335
|
}
|
14336
|
+
i++;
|
14277
14337
|
}
|
14278
14338
|
}
|
14279
|
-
const axes = { ...this.filters };
|
14280
14339
|
axes[this.xAxis.name] = x;
|
14281
|
-
axes[this.series.name] =
|
14340
|
+
axes[this.series.name] = series;
|
14282
14341
|
this.onExplore.emit(axes);
|
14283
14342
|
}
|
14284
14343
|
move(x, y) {
|
@@ -14312,10 +14371,10 @@ class CubeMatrixComponent {
|
|
14312
14371
|
}
|
14313
14372
|
}
|
14314
14373
|
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
14315
|
-
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"],
|
14374
|
+
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], scope: "scope", sum: "sum", filters: "filters", loading: "loading", interactive: "interactive" }, outputs: { onExplore: "explore", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\" (mouseenter)=\"move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- indices -->\r\n <tr class=\"mat-row cube-index\" *ngFor=\"let index of indices; let y = index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"move(0, y)\">{{index.title}}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, y)\">\r\n <span *ngIf=\"data[index.name] && data[index.name][column.key]; else zero\">{{ data[index.name][column.key] | number : PRECISION }}</span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"move(0, y)\" [ngSwitch]=\"!CURRENCY\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ data[index.name]['_total'] | number : PRECISION }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ data[index.name]['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"move(-2, y + indices.length)\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, y + indices.length)\">\r\n <ng-container *ngIf=\"data[row.key] && data[row.key][column.key] !== undefined; else zero\">\r\n <span [class.clickable]=\"interactive\" (click)=\"explore(column.key, row.key)\">\r\n {{data[row.key][column.key] | number : PRECISION }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"move(-1, y + indices.length)\" [ngSwitch]=\"!CURRENCY\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ data[row.key]['_total'] | number : PRECISION }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ data[row.key]['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- available -->\r\n <tr>\r\n <th></th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key] < 0\">\r\n {{totals[column.key] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </td>\r\n <th class=\"mat-cell figure\">{{totals['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>\r\n 0\r\n</ng-template>\r\n", styles: [".clickable{cursor:pointer}.cube-table{width:100%;display:inline-table;border-collapse:collapse}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td{padding-right:4px}\n"], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "number": i10$1.DecimalPipe, "currency": i10$1.CurrencyPipe }, animations: [matrixAnimation] });
|
14316
14375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
14317
14376
|
type: Component,
|
14318
|
-
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\" (mouseenter)=\"move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- indices -->\r\n <tr class=\"mat-row cube-index\" *ngFor=\"let index of
|
14377
|
+
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\" (mouseenter)=\"move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- indices -->\r\n <tr class=\"mat-row cube-index\" *ngFor=\"let index of indices; let y = index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"move(0, y)\">{{index.title}}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, y)\">\r\n <span *ngIf=\"data[index.name] && data[index.name][column.key]; else zero\">{{ data[index.name][column.key] | number : PRECISION }}</span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"move(0, y)\" [ngSwitch]=\"!CURRENCY\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ data[index.name]['_total'] | number : PRECISION }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ data[index.name]['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"move(-2, y + indices.length)\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, y + indices.length)\">\r\n <ng-container *ngIf=\"data[row.key] && data[row.key][column.key] !== undefined; else zero\">\r\n <span [class.clickable]=\"interactive\" (click)=\"explore(column.key, row.key)\">\r\n {{data[row.key][column.key] | number : PRECISION }}\r\n </span>\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"move(-1, y + indices.length)\" [ngSwitch]=\"!CURRENCY\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n {{ data[row.key]['_total'] | number : PRECISION }}\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{ data[row.key]['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- available -->\r\n <tr>\r\n <th></th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\" (mouseenter)=\"move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key] < 0\">\r\n {{totals[column.key] | currency : CURRENCY: 'symbol' : PRECISION }}\r\n </td>\r\n <th class=\"mat-cell figure\">{{totals['_total'] | currency : CURRENCY: 'symbol' : PRECISION }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>\r\n 0\r\n</ng-template>\r\n", styles: [".clickable{cursor:pointer}.cube-table{width:100%;display:inline-table;border-collapse:collapse}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td{padding-right:4px}\n"] }]
|
14319
14378
|
}], ctorParameters: function () { return [{ type: PromptService }, { type: CubeService }, { type: SessionService }, { type: DatasourceService }]; }, propDecorators: { tableElement: [{
|
14320
14379
|
type: ViewChild,
|
14321
14380
|
args: ['table']
|
@@ -14328,8 +14387,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
14328
14387
|
}], _series: [{
|
14329
14388
|
type: Input,
|
14330
14389
|
args: ['series']
|
14331
|
-
}],
|
14332
|
-
type: Input
|
14390
|
+
}], _indices: [{
|
14391
|
+
type: Input,
|
14392
|
+
args: ['indices']
|
14333
14393
|
}], scope: [{
|
14334
14394
|
type: Input
|
14335
14395
|
}], sum: [{
|
@@ -14345,11 +14405,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
14345
14405
|
args: ['explore']
|
14346
14406
|
}], loadingChange: [{
|
14347
14407
|
type: Output
|
14348
|
-
}] } });
|
14349
|
-
class CubeInfoCellArgs {
|
14350
|
-
get value() { return this._value; }
|
14351
|
-
get summary() { return this._summary; }
|
14352
|
-
}
|
14408
|
+
}] } });
|
14353
14409
|
|
14354
14410
|
class CubeMatrixBase {
|
14355
14411
|
constructor(_service, _ds, _session) {
|
@@ -19134,7 +19190,7 @@ class SyncfusionChartModule {
|
|
19134
19190
|
}
|
19135
19191
|
SyncfusionChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SyncfusionChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
19136
19192
|
SyncfusionChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SyncfusionChartModule, imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule], exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule] });
|
19137
|
-
SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SyncfusionChartModule, providers: [LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
|
19193
|
+
SyncfusionChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SyncfusionChartModule, providers: [AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
|
19138
19194
|
SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
|
19139
19195
|
StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
|
19140
19196
|
BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
|
@@ -19149,7 +19205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
19149
19205
|
args: [{
|
19150
19206
|
imports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
|
19151
19207
|
exports: [ChartModule, AccumulationChartAllModule, SparklineAllModule],
|
19152
|
-
providers: [LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
|
19208
|
+
providers: [AccumulationDistributionIndicatorService, FunnelSeriesService, StackingStepAreaSeriesService, PieSeriesService, PyramidSeriesService, LineSeriesService, ScatterSeriesService, ColumnSeriesService, SplineSeriesService,
|
19153
19209
|
SplineAreaSeriesService, StripLineService, AreaSeriesService, ScrollBarService, StepLineSeriesService,
|
19154
19210
|
StepAreaSeriesService, StackingColumnSeriesService, StackingLineSeriesService, StackingAreaSeriesService,
|
19155
19211
|
BarSeriesService, StackingBarSeriesService, RangeColumnSeriesService, BubbleSeriesService, TooltipService,
|
@@ -19566,7 +19622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
19566
19622
|
}] } });
|
19567
19623
|
|
19568
19624
|
/** cube matrix component*/
|
19569
|
-
class
|
19625
|
+
class CubeMatrixPopupComponent extends CubeMatrixBase {
|
19570
19626
|
/** filters */
|
19571
19627
|
/** cube-info ctor */
|
19572
19628
|
constructor(_ref, data, service, ds, session, _sb) {
|
@@ -19576,9 +19632,9 @@ class CubeMatrixPageComponent extends CubeMatrixBase {
|
|
19576
19632
|
this.preloading = true;
|
19577
19633
|
if (!data.options)
|
19578
19634
|
throw 'no data options';
|
19579
|
-
const { axes: base, options: { indices, xAxis,
|
19635
|
+
const { axes: base, options: { indices, xAxis, series, filters, cube, sum } } = data;
|
19580
19636
|
this.cube = cube;
|
19581
|
-
this.series =
|
19637
|
+
this.series = series;
|
19582
19638
|
this.xAxis = xAxis;
|
19583
19639
|
this.sum = sum;
|
19584
19640
|
this.indices = indices;
|
@@ -19594,9 +19650,9 @@ class CubeMatrixPageComponent extends CubeMatrixBase {
|
|
19594
19650
|
});
|
19595
19651
|
}
|
19596
19652
|
}
|
19597
|
-
|
19598
|
-
|
19599
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type:
|
19653
|
+
CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }, { token: PromptService }], target: i0.ɵɵFactoryTarget.Component });
|
19654
|
+
CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: CubeMatrixPopupComponent, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum [interactive]=\"false\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}\n"], components: [{ type: i11$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": TranslatePipe, "async": i10$1.AsyncPipe, "typeValue": TypeValuePipe } });
|
19655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
|
19600
19656
|
type: Component,
|
19601
19657
|
args: [{ template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <div class=\"row\" *ngIf=\"!preloading\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n </div>\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum [interactive]=\"false\"\r\n [filters]=\"axes\" [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}\n"] }]
|
19602
19658
|
}], ctorParameters: function () { return [{ type: PopupRef, decorators: [{
|
@@ -19734,7 +19790,7 @@ class CubeInfo {
|
|
19734
19790
|
this._cf = _cf;
|
19735
19791
|
}
|
19736
19792
|
navigate(axes, options) {
|
19737
|
-
const { cube, view,
|
19793
|
+
const { cube, view, series, xAxis, filters, aggregate, indices, sum } = options || {};
|
19738
19794
|
const ccube = cube ? this._session.profile.cubes.find(c => c.name === cube) : this._session.profile.cubes[0];
|
19739
19795
|
if (isArray(axes))
|
19740
19796
|
axes = this._mapAxes(ccube, axes);
|
@@ -19743,7 +19799,7 @@ class CubeInfo {
|
|
19743
19799
|
queryParams: axes
|
19744
19800
|
});
|
19745
19801
|
else {
|
19746
|
-
this._router.navigate(['cube', ccube.name, 'i', xAxis,
|
19802
|
+
this._router.navigate(['cube', ccube.name, 'i', xAxis, series], {
|
19747
19803
|
queryParams: axes,
|
19748
19804
|
state: { indices, aggregate, filters, sum }
|
19749
19805
|
});
|
@@ -19769,7 +19825,7 @@ class CubeInfo {
|
|
19769
19825
|
else {
|
19770
19826
|
if (!options)
|
19771
19827
|
throw 'no options';
|
19772
|
-
this._open(
|
19828
|
+
this._open(CubeMatrixPopupComponent, element, {
|
19773
19829
|
axes,
|
19774
19830
|
options
|
19775
19831
|
});
|
@@ -20175,6 +20231,8 @@ let CubeAnalysisWidget = class CubeAnalysisWidget {
|
|
20175
20231
|
case 'Doughnut':
|
20176
20232
|
case 'HalfDoughnut':
|
20177
20233
|
case 'Pie':
|
20234
|
+
case 'Funnel':
|
20235
|
+
case 'Pyramid':
|
20178
20236
|
comp = CubeAccumAnalysisWidget;
|
20179
20237
|
break;
|
20180
20238
|
default:
|
@@ -20259,13 +20317,17 @@ let CubeWidgetFilterComponent = class CubeWidgetFilterComponent {
|
|
20259
20317
|
this._session = _session;
|
20260
20318
|
this._fb = _fb;
|
20261
20319
|
this.exclude = [];
|
20262
|
-
const { xAxis, exclude, cube: name } = this._widgetRef.options;
|
20320
|
+
const { xAxis, series, exclude, cube: name } = this._widgetRef.options;
|
20263
20321
|
this.cube = name;
|
20264
|
-
if (xAxis)
|
20265
|
-
|
20266
|
-
|
20322
|
+
if (isArray(xAxis))
|
20323
|
+
this.exclude = [...xAxis];
|
20324
|
+
else
|
20325
|
+
this.exclude.push(xAxis);
|
20326
|
+
if (series) {
|
20327
|
+
if (isArray(series))
|
20328
|
+
this.exclude = this.exclude.concat(series);
|
20267
20329
|
else
|
20268
|
-
this.exclude.push(
|
20330
|
+
this.exclude.push(series);
|
20269
20331
|
}
|
20270
20332
|
if (exclude) {
|
20271
20333
|
if (isArray(exclude))
|
@@ -22706,7 +22768,10 @@ class CombinationPickerBody {
|
|
22706
22768
|
...defaults
|
22707
22769
|
};
|
22708
22770
|
codes.slice(0, this._axes.length).forEach((a, i) => axes[this._axes[i].name] = a);
|
22709
|
-
this._accountInfo.popup(axes, evt.srcElement, {
|
22771
|
+
this._accountInfo.popup(axes, evt.srcElement, {
|
22772
|
+
...this._data.exploreSettings,
|
22773
|
+
cube: this._cube.name
|
22774
|
+
});
|
22710
22775
|
evt.cancelBubble = true;
|
22711
22776
|
evt.preventDefault();
|
22712
22777
|
evt.stopPropagation();
|
@@ -25099,7 +25164,7 @@ SharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
25099
25164
|
DashboardComponent, WidgetItemComponent, CubeWidgetFilterComponent, CubeAccumAnalysisWidget, CubeAnalysisWidget, CubeChartAnalysisWidget, ActionsWidget, RecentsWidget,
|
25100
25165
|
AskDialog, AboutDialog, ActionDialog,
|
25101
25166
|
ImpersonateDialog,
|
25102
|
-
ConversationComponent,
|
25167
|
+
ConversationComponent, CubeMatrixPopupComponent,
|
25103
25168
|
VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
|
25104
25169
|
PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsComponent, CubeDocumentsWidget,
|
25105
25170
|
PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
|
@@ -25236,7 +25301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
25236
25301
|
DashboardComponent, WidgetItemComponent, CubeWidgetFilterComponent, CubeAccumAnalysisWidget, CubeAnalysisWidget, CubeChartAnalysisWidget, ActionsWidget, RecentsWidget,
|
25237
25302
|
AskDialog, AboutDialog, ActionDialog,
|
25238
25303
|
ImpersonateDialog,
|
25239
|
-
ConversationComponent,
|
25304
|
+
ConversationComponent, CubeMatrixPopupComponent,
|
25240
25305
|
VersionCompareComponent, ExploreDocumentComponent, TasksComponent,
|
25241
25306
|
PendingResultsWidget, CompareDepartmentsWidget, CubeDocumentsComponent, CubeDocumentsWidget,
|
25242
25307
|
PersonalScoreWidget, PersonalActivityWidget, PeersPerformanceWidget, UsagePivotComponent, UsageChartComponent, UsageReportArgs,
|