@bizdoc/core 1.12.0-next.1 → 1.12.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/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +4 -2
- package/esm2020/lib/compose/action/assign-action.component.mjs +15 -7
- package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
- package/esm2020/lib/compose/trace/trace.component.mjs +10 -8
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/slots/slots.component.mjs +3 -3
- package/esm2020/lib/core/translations.mjs +5 -1
- package/esm2020/lib/cube/declarations.mjs +1 -1
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +5 -3
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +5 -3
- package/esm2020/lib/cube/matrix/table.component.mjs +112 -106
- package/esm2020/lib/views/cube/matrix.component.mjs +6 -4
- package/fesm2015/bizdoc-core.mjs +159 -130
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +156 -130
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/compose/action/assign-action.component.d.ts +5 -2
- package/lib/core/models.d.ts +2 -1
- package/lib/core/translations.d.ts +4 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts +2 -1
- package/lib/cube/matrix/matrix.pane.component.d.ts +2 -1
- package/lib/cube/matrix/table.component.d.ts +8 -7
- package/lib/views/cube/matrix.component.d.ts +3 -2
- package/package.json +1 -1
package/fesm2015/bizdoc-core.mjs
CHANGED
@@ -2036,7 +2036,9 @@ const STRINGS = {
|
|
2036
2036
|
SubstitutingFor: 'Substituting {0}',
|
2037
2037
|
SubstitutingNote: 'Substituting {0} {1} {2}',
|
2038
2038
|
ActionTaken: '{0} {1} this document {2}',
|
2039
|
+
ActionTakenTo: '{0} {1} this document to {2} {3}',
|
2039
2040
|
YouTakenAction: 'You {0} this document {1}',
|
2041
|
+
YouTakenActionTo: 'You {0} this document {1} to {2}',
|
2040
2042
|
YouReceived: 'You received {0}',
|
2041
2043
|
ReceivedTime: 'Received {0}',
|
2042
2044
|
ReceivedBy: 'Received by {0} {1}',
|
@@ -2565,6 +2567,7 @@ const STRINGS = {
|
|
2565
2567
|
SubstitutingByYouFemale: '{0} מחליפה את {1} דרכך}',
|
2566
2568
|
SubstitutingNote: 'במקום {0} {1} {2}',
|
2567
2569
|
ActionTaken: '{0} {1} את המסמך {2} ',
|
2570
|
+
ActionTakenTo: '{0} {1} את המסמך {2} {3}',
|
2568
2571
|
YouReceived: 'קיבלת את המסמך {0}',
|
2569
2572
|
ReceivedTimeFemale: 'קיבלה את המסמך {0}',
|
2570
2573
|
ReceivedTimeMale: 'קיבל את המסמך {0}',
|
@@ -2573,6 +2576,7 @@ const STRINGS = {
|
|
2573
2576
|
ReceivedByMale: 'מחליף את {0} המסמך התקבל {1}',
|
2574
2577
|
ReceivedByFemale: 'מחליפה את {0} המסמך התקבל {1}',
|
2575
2578
|
YouTakenAction: '{0} {1}',
|
2579
|
+
YouTakenActionTo: '{0} {1} {2}',
|
2576
2580
|
ActionTakenBy: '{0} {1} את המסמך כמחליף {2}',
|
2577
2581
|
YouTakenActionBy: '{0} {1} בשמך את המסמך {2}',
|
2578
2582
|
ActionTakenByYou: '{0} את המסמך בשם {1} {2}',
|
@@ -6935,9 +6939,11 @@ class ExpandedItemComponent {
|
|
6935
6939
|
}
|
6936
6940
|
_note() {
|
6937
6941
|
return __awaiter(this, void 0, void 0, function* () {
|
6938
|
-
const { ownerId, issued, substitutingId, received, replied, log, id, note, byId, action } = this.item;
|
6942
|
+
const { ownerId, issued, substitutingId, received, replied, log, id, note, byId, action, toId } = this.item;
|
6939
6943
|
if (substitutingId) {
|
6940
6944
|
this._accounts.get(substitutingId).subscribe(u => {
|
6945
|
+
//if (toId) { }
|
6946
|
+
//else
|
6941
6947
|
if (replied) {
|
6942
6948
|
const time = this._fromNow(replied), action = this._session.profile.actions.find(a => a.name === action), adjective = action ? (action.adjective || action.title).toLowerCase() : action;
|
6943
6949
|
this.note = this._translate.personalize('YouSubstituteActionTaken', u.gender, adjective, this._formatUserElement(u), time);
|
@@ -13395,7 +13401,7 @@ class FlowViewComponent extends TraceBase {
|
|
13395
13401
|
if (r > 0) {
|
13396
13402
|
dconnectors.forEach(c => {
|
13397
13403
|
if (c.targetId === node.id)
|
13398
|
-
|
13404
|
+
connectors.push({
|
13399
13405
|
sourceID: c.sourceId,
|
13400
13406
|
targetID: nod.id,
|
13401
13407
|
addInfo: {
|
@@ -13403,7 +13409,7 @@ class FlowViewComponent extends TraceBase {
|
|
13403
13409
|
}
|
13404
13410
|
});
|
13405
13411
|
if (c.sourceId === node.id)
|
13406
|
-
|
13412
|
+
connectors.push({
|
13407
13413
|
sourceID: nod.id,
|
13408
13414
|
targetID: c.targetId,
|
13409
13415
|
addInfo: {
|
@@ -13962,6 +13968,8 @@ class TraceViewComponent extends TraceBase {
|
|
13962
13968
|
step.action = action ? this._actionName(action, by) : l.action;
|
13963
13969
|
}
|
13964
13970
|
}
|
13971
|
+
//else if (recipient.toId) {
|
13972
|
+
//}
|
13965
13973
|
else {
|
13966
13974
|
if (l.userId === this._session.userId)
|
13967
13975
|
step.name = this._translate.get('You');
|
@@ -13982,8 +13990,9 @@ class TraceViewComponent extends TraceBase {
|
|
13982
13990
|
if (who.role)
|
13983
13991
|
step.role = who.role;
|
13984
13992
|
}
|
13985
|
-
if (action)
|
13993
|
+
if (action) {
|
13986
13994
|
step.action = action ? this._actionName(action, who) : l.action;
|
13995
|
+
}
|
13987
13996
|
}
|
13988
13997
|
trace.push(step);
|
13989
13998
|
}
|
@@ -14115,7 +14124,7 @@ class TraceViewComponent extends TraceBase {
|
|
14115
14124
|
*/
|
14116
14125
|
_actionName(action, user) {
|
14117
14126
|
if (user === You) {
|
14118
|
-
const gender = this._session
|
14127
|
+
const { gender } = this._session;
|
14119
14128
|
return (gender === 'Male' ? (action.youMale || action.you) :
|
14120
14129
|
gender === 'Female' ? (action.youFemale || action.you) :
|
14121
14130
|
action.you) ||
|
@@ -14123,9 +14132,8 @@ class TraceViewComponent extends TraceBase {
|
|
14123
14132
|
action.title;
|
14124
14133
|
}
|
14125
14134
|
else {
|
14126
|
-
|
14127
|
-
|
14128
|
-
gender === 'Female' ? (action.pastFemale || action.past) :
|
14135
|
+
return (user.gender === 'Male' ? (action.pastMale || action.past) :
|
14136
|
+
user.gender === 'Female' ? (action.pastFemale || action.past) :
|
14129
14137
|
action.past)
|
14130
14138
|
|| action.title;
|
14131
14139
|
}
|
@@ -14144,10 +14152,10 @@ class TraceViewComponent extends TraceBase {
|
|
14144
14152
|
}
|
14145
14153
|
}
|
14146
14154
|
TraceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TraceViewComponent, deps: [{ token: SessionService }, { token: TranslateService }, { token: AccountService }, { token: ChatInfo }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component });
|
14147
|
-
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <
|
14155
|
+
TraceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Owner'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.model\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], components: [{ 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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i8$2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": TranslatePipe, "sanitizeHtml": SanitizeHtmlPipe, "amDurationFormat": DurationFormatPipe, "amDuration": DurationPipe, "amCalendar": CalendarPipe }, animations: [listAnimation, itemAnimation] });
|
14148
14156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TraceViewComponent, decorators: [{
|
14149
14157
|
type: Component,
|
14150
|
-
args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <
|
14158
|
+
args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showAll=false\">\r\n <mat-icon>{{ !showAll?'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showAll=true\">\r\n <mat-icon>{{showAll?'check':''}}</mat-icon>\r\n <span>{{'Log' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Owner'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\"> {{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.model\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
|
14151
14159
|
}], ctorParameters: function () { return [{ type: SessionService }, { type: TranslateService }, { type: AccountService }, { type: ChatInfo }, { type: HubService }]; }, propDecorators: { model: [{
|
14152
14160
|
type: Input
|
14153
14161
|
}], versionSelected: [{
|
@@ -14704,11 +14712,9 @@ class CubeMatrixComponent {
|
|
14704
14712
|
const element = {
|
14705
14713
|
key: SUM_PREFIX + i,
|
14706
14714
|
value: s.title,
|
14707
|
-
explorable: !isFunction(s.calculate),
|
14708
|
-
accumulate: s.accumulate,
|
14715
|
+
explorable: !isFunction(s.calculate) && s.explorable !== false,
|
14709
14716
|
precision: s.precision || this.PRECISION,
|
14710
|
-
|
14711
|
-
index: i
|
14717
|
+
sum: s
|
14712
14718
|
};
|
14713
14719
|
let j = 0;
|
14714
14720
|
if (axis === 'xAxis') {
|
@@ -14743,10 +14749,10 @@ class CubeMatrixComponent {
|
|
14743
14749
|
filters: this.filters,
|
14744
14750
|
scope: this.scope
|
14745
14751
|
}).pipe(modelize()).subscribe(d => {
|
14746
|
-
this.
|
14752
|
+
this._clone(d);
|
14747
14753
|
this._totals(d);
|
14748
14754
|
this._sum && this._calculatesum(d);
|
14749
|
-
this.
|
14755
|
+
this._stringify(d);
|
14750
14756
|
this.data = d;
|
14751
14757
|
clearTimeout(progressTask);
|
14752
14758
|
this.loadingChange.next(this.loading = false);
|
@@ -14756,51 +14762,57 @@ class CubeMatrixComponent {
|
|
14756
14762
|
this.loadingChange.next(this.loading = false);
|
14757
14763
|
}));
|
14758
14764
|
}
|
14759
|
-
|
14765
|
+
_stringify(data) {
|
14760
14766
|
const fmt = (xAxis, series) => data[xAxis][series] = formatNumber(data[xAxis][series] || 0, this.LANGUAGE, this.PRECISION);
|
14761
14767
|
this.columns.forEach(c => {
|
14762
|
-
if (c.
|
14768
|
+
if (c.sum)
|
14763
14769
|
return;
|
14764
14770
|
this.indices && this.indices.forEach(i => fmt(i.name, c.key));
|
14765
|
-
this.rows.forEach(r =>
|
14766
|
-
r.
|
14767
|
-
fmt(r.key, c.key);
|
14768
|
-
});
|
14771
|
+
this.rows.forEach(r => !r.sum &&
|
14772
|
+
fmt(r.key, c.key));
|
14769
14773
|
});
|
14770
14774
|
}
|
14775
|
+
_clone(data) {
|
14776
|
+
this._data = {};
|
14777
|
+
const copy = key => Object.assign(this._data[key] = {}, data[key]);
|
14778
|
+
this.rows.forEach(r => copy(r.key));
|
14779
|
+
this.indices.forEach(i => copy(i.name));
|
14780
|
+
}
|
14771
14781
|
_totals(data) {
|
14772
14782
|
let grand = 0;
|
14773
14783
|
this.indices && this.indices.forEach(i => {
|
14774
|
-
|
14775
|
-
if (
|
14776
|
-
row = data[i.name] = {};
|
14777
|
-
else {
|
14784
|
+
const row = data[i.name];
|
14785
|
+
if (row) {
|
14778
14786
|
let sum = 0;
|
14779
14787
|
for (let x in row)
|
14780
14788
|
sum += row[x];
|
14781
14789
|
row['_total'] = this._format(sum);
|
14782
14790
|
grand += sum;
|
14783
14791
|
}
|
14792
|
+
else
|
14793
|
+
data[i.name] = {};
|
14784
14794
|
});
|
14785
14795
|
this.rows.forEach(r => {
|
14786
|
-
|
14796
|
+
var _a;
|
14797
|
+
if (((_a = r.sum) === null || _a === void 0 ? void 0 : _a.accumulate) === false)
|
14787
14798
|
return;
|
14788
|
-
|
14789
|
-
if (
|
14790
|
-
row = data[r.key] = {
|
14791
|
-
'_total': '0'
|
14792
|
-
};
|
14793
|
-
else {
|
14799
|
+
const row = data[r.key];
|
14800
|
+
if (row) {
|
14794
14801
|
let sum = 0;
|
14795
14802
|
for (let x in row)
|
14796
14803
|
sum += row[x];
|
14797
14804
|
row['_total'] = this._format(sum, r);
|
14798
14805
|
grand += sum * -1;
|
14799
14806
|
}
|
14807
|
+
else
|
14808
|
+
data[r.key] = {
|
14809
|
+
'_total': '0'
|
14810
|
+
};
|
14800
14811
|
});
|
14801
14812
|
const totals = data['_total'] = this.totals = {};
|
14802
14813
|
this.columns.forEach(c => {
|
14803
|
-
|
14814
|
+
var _a;
|
14815
|
+
if (((_a = c.sum) === null || _a === void 0 ? void 0 : _a.accumulate) === false)
|
14804
14816
|
return;
|
14805
14817
|
let sum = 0;
|
14806
14818
|
for (let key in data) {
|
@@ -14819,89 +14831,91 @@ class CubeMatrixComponent {
|
|
14819
14831
|
if (axis === 'xAxis') {
|
14820
14832
|
let total = 0;
|
14821
14833
|
this.rows.forEach(r => {
|
14822
|
-
|
14834
|
+
var _a;
|
14835
|
+
if (((_a = r.sum) === null || _a === void 0 ? void 0 : _a.accumulate) === false)
|
14823
14836
|
return;
|
14824
|
-
const
|
14825
|
-
if (!
|
14837
|
+
const datarow = data[r.key];
|
14838
|
+
if (!datarow)
|
14826
14839
|
return;
|
14827
|
-
let sum = 0
|
14828
|
-
|
14829
|
-
let
|
14830
|
-
if (column.
|
14831
|
-
|
14832
|
-
|
14833
|
-
|
14834
|
-
|
14835
|
-
|
14836
|
-
|
14837
|
-
|
14838
|
-
|
14839
|
-
|
14840
|
-
|
14841
|
-
|
14842
|
-
|
14840
|
+
let sum = 0;
|
14841
|
+
for (let column of this.columns) {
|
14842
|
+
let key = column.key;
|
14843
|
+
if (column.sum)
|
14844
|
+
continue;
|
14845
|
+
if (isFunction(calculate)) {
|
14846
|
+
let val = calculate(r.key, this._data);
|
14847
|
+
if (val !== undefined && val !== null)
|
14848
|
+
sum += val;
|
14849
|
+
}
|
14850
|
+
else {
|
14851
|
+
let val = datarow[key];
|
14852
|
+
if (val !== undefined)
|
14853
|
+
sum += val;
|
14854
|
+
if (key === value)
|
14855
|
+
break;
|
14843
14856
|
}
|
14844
|
-
j++;
|
14845
14857
|
}
|
14846
|
-
|
14858
|
+
this._data[r.key][name] = sum;
|
14859
|
+
datarow[name] = this._format(sum, s);
|
14847
14860
|
total += sum;
|
14848
14861
|
});
|
14849
14862
|
if (accumulate !== false)
|
14850
14863
|
data['_total'][name] = this._format(total);
|
14851
14864
|
this.indices && this.indices.forEach(i => {
|
14852
|
-
const
|
14853
|
-
if (!
|
14865
|
+
const datarow = data[i.name];
|
14866
|
+
if (!datarow)
|
14854
14867
|
return;
|
14855
|
-
let sum = 0
|
14856
|
-
|
14857
|
-
let key =
|
14868
|
+
let sum = 0;
|
14869
|
+
for (let column of this.columns) {
|
14870
|
+
let key = column.key;
|
14858
14871
|
if (isFunction(calculate)) {
|
14859
14872
|
let val = calculate(i.name, this._data);
|
14860
|
-
if (val !== undefined)
|
14873
|
+
if (val !== undefined && val !== null)
|
14861
14874
|
sum += val;
|
14862
14875
|
}
|
14863
14876
|
else {
|
14864
|
-
let val =
|
14877
|
+
let val = datarow[key];
|
14865
14878
|
if (val !== undefined)
|
14866
14879
|
sum += val;
|
14867
14880
|
if (key === value)
|
14868
14881
|
break;
|
14869
14882
|
}
|
14870
|
-
j++;
|
14871
14883
|
}
|
14872
|
-
|
14884
|
+
this._data[i.name][name] = sum;
|
14885
|
+
datarow[name] = this._format(sum);
|
14873
14886
|
});
|
14874
14887
|
}
|
14875
14888
|
else {
|
14876
|
-
data[name] = {};
|
14877
|
-
|
14878
|
-
|
14879
|
-
|
14880
|
-
|
14881
|
-
|
14882
|
-
|
14883
|
-
|
14884
|
-
|
14885
|
-
|
14886
|
-
|
14887
|
-
|
14889
|
+
let datarow = data[name] = {}, total = 0;
|
14890
|
+
this.columns.forEach(column => {
|
14891
|
+
let sum = 0;
|
14892
|
+
for (let row of this.rows) {
|
14893
|
+
let key = row.key;
|
14894
|
+
if (isFunction(calculate)) {
|
14895
|
+
let val = calculate(row.key, this._data);
|
14896
|
+
if (val !== undefined && val !== null)
|
14897
|
+
sum += val;
|
14898
|
+
}
|
14899
|
+
else {
|
14900
|
+
let datarow = data[key];
|
14901
|
+
if (!datarow)
|
14902
|
+
continue;
|
14903
|
+
if (column.sum) {
|
14904
|
+
let val = this._data[row.key][column.key];
|
14905
|
+
if (val != undefined)
|
14888
14906
|
sum += val;
|
14889
14907
|
}
|
14890
14908
|
else {
|
14891
|
-
let
|
14892
|
-
if (
|
14893
|
-
|
14894
|
-
if (val !== undefined)
|
14895
|
-
sum += val;
|
14896
|
-
if (key === value)
|
14897
|
-
break;
|
14898
|
-
}
|
14909
|
+
let val = datarow[column.key];
|
14910
|
+
if (val !== undefined)
|
14911
|
+
sum += val;
|
14899
14912
|
}
|
14913
|
+
if (key === value)
|
14914
|
+
break;
|
14900
14915
|
}
|
14901
|
-
j++;
|
14902
14916
|
}
|
14903
|
-
|
14904
|
-
if (
|
14917
|
+
datarow[column.key] = this._format(sum, s);
|
14918
|
+
if (!column.sum)
|
14905
14919
|
total += sum;
|
14906
14920
|
});
|
14907
14921
|
if (accumulate !== false)
|
@@ -14922,20 +14936,19 @@ class CubeMatrixComponent {
|
|
14922
14936
|
return formatNumber(val, this.LANGUAGE, this.PRECISION);
|
14923
14937
|
}
|
14924
14938
|
explore(column, row) {
|
14925
|
-
if (!this.interactive)
|
14939
|
+
if (!this.interactive || column.explorable === false || row.explorable === false)
|
14926
14940
|
return;
|
14927
|
-
let x, series;
|
14941
|
+
let x, series, index;
|
14928
14942
|
const axes = Object.assign({}, this.filters);
|
14929
|
-
if (column.
|
14943
|
+
if (!column.sum)
|
14930
14944
|
x = column.key;
|
14931
14945
|
else {
|
14932
|
-
let { value, calculate } =
|
14946
|
+
let { value, calculate } = column.sum;
|
14933
14947
|
if (isFunction(calculate))
|
14934
14948
|
return;
|
14935
14949
|
x = [];
|
14936
|
-
for (let
|
14937
|
-
|
14938
|
-
if (column.index !== undefined)
|
14950
|
+
for (let column of this.columns) {
|
14951
|
+
if (column.sum)
|
14939
14952
|
continue;
|
14940
14953
|
let key = column.key;
|
14941
14954
|
x.push(key);
|
@@ -14943,26 +14956,30 @@ class CubeMatrixComponent {
|
|
14943
14956
|
break;
|
14944
14957
|
}
|
14945
14958
|
}
|
14946
|
-
|
14947
|
-
|
14948
|
-
|
14949
|
-
|
14950
|
-
|
14951
|
-
|
14952
|
-
|
14953
|
-
|
14954
|
-
|
14955
|
-
|
14956
|
-
|
14957
|
-
|
14958
|
-
|
14959
|
-
|
14960
|
-
|
14959
|
+
axes[this.xAxis.name] = x;
|
14960
|
+
if (row.key) {
|
14961
|
+
if (!row.sum)
|
14962
|
+
series = row.key;
|
14963
|
+
else {
|
14964
|
+
let { value, calculate } = row.sum;
|
14965
|
+
if (isFunction(calculate))
|
14966
|
+
return;
|
14967
|
+
series = [];
|
14968
|
+
for (let row of this.rows) {
|
14969
|
+
if (row.sum)
|
14970
|
+
continue;
|
14971
|
+
let key = row.key;
|
14972
|
+
series.push(key);
|
14973
|
+
if (key === value)
|
14974
|
+
break;
|
14975
|
+
}
|
14961
14976
|
}
|
14977
|
+
axes[this.series.name] = series;
|
14978
|
+
index = null;
|
14962
14979
|
}
|
14963
|
-
|
14964
|
-
|
14965
|
-
this.onExplore.emit(axes);
|
14980
|
+
else
|
14981
|
+
index = row.name;
|
14982
|
+
this.onExplore.emit({ axes, index });
|
14966
14983
|
}
|
14967
14984
|
export() {
|
14968
14985
|
const numberFormat = this._service.numberFormat, cells = [], rows = [{ index: 1, cells }];
|
@@ -15013,7 +15030,7 @@ class CubeMatrixComponent {
|
|
15013
15030
|
}, 'xlsx');
|
15014
15031
|
this._service.nameOf(this.filters, this.cube.name).subscribe(n => book.save(`${n || this._translate.get('Matrix')}.xlsx`));
|
15015
15032
|
}
|
15016
|
-
|
15033
|
+
_move(x, y) {
|
15017
15034
|
let rowIndex = 0;
|
15018
15035
|
for (let b = 0; b < this.tableElement.nativeElement.tBodies.length; b++) {
|
15019
15036
|
let tBody = this.tableElement.nativeElement.tBodies.item(b);
|
@@ -15044,10 +15061,10 @@ class CubeMatrixComponent {
|
|
15044
15061
|
}
|
15045
15062
|
}
|
15046
15063
|
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }, { token: TranslateService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
15047
|
-
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _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)=\"
|
15064
|
+
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _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-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</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\"\r\n [class.clickable]=\"interactive && column.explorable !== false\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y)\"\r\n (click)=\"explore(column, index)\">\r\n {{ data[index.name][column.key] }}\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(0, y)\">\r\n {{ data[index.name]['_total'] }}\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\"\r\n [class.clickable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (mouseenter)=\"_move(x + 1, y + indices.length)\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y + indices.length)\">\r\n <ng-container *ngIf=\"data[row.key]['_total'] !== undefined\">\r\n {{ data[row.key]['_total'] }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n", styles: [".clickable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}\n"], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], animations: [matrixAnimation] });
|
15048
15065
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
15049
15066
|
type: Component,
|
15050
|
-
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"
|
15067
|
+
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-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</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\"\r\n [class.clickable]=\"interactive && column.explorable !== false\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y)\"\r\n (click)=\"explore(column, index)\">\r\n {{ data[index.name][column.key] }}\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(0, y)\">\r\n {{ data[index.name]['_total'] }}\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\"\r\n [class.clickable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (mouseenter)=\"_move(x + 1, y + indices.length)\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y + indices.length)\">\r\n <ng-container *ngIf=\"data[row.key]['_total'] !== undefined\">\r\n {{ data[row.key]['_total'] }}\r\n </ng-container>\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n", styles: [".clickable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}\n"] }]
|
15051
15068
|
}], ctorParameters: function () { return [{ type: PromptService }, { type: CubeService }, { type: SessionService }, { type: TranslateService }, { type: DatasourceService }]; }, propDecorators: { tableElement: [{
|
15052
15069
|
type: ViewChild,
|
15053
15070
|
args: ['table']
|
@@ -15274,10 +15291,12 @@ class CubeMatrixPaneComponent extends CubeMatrixBase {
|
|
15274
15291
|
policy: OpenPolicy.Tab
|
15275
15292
|
});
|
15276
15293
|
}
|
15277
|
-
explore(
|
15294
|
+
explore(evt) {
|
15295
|
+
const { axes: queryParams, index } = evt;
|
15278
15296
|
this._router.navigate(['cube', this.cube, 'explore'], {
|
15279
15297
|
queryParams,
|
15280
|
-
policy: OpenPolicy.Tab | OpenPolicy.Dismissable
|
15298
|
+
policy: OpenPolicy.Tab | OpenPolicy.Dismissable,
|
15299
|
+
state: { index }
|
15281
15300
|
});
|
15282
15301
|
}
|
15283
15302
|
}
|
@@ -18662,7 +18681,7 @@ class SlotsComponent {
|
|
18662
18681
|
}
|
18663
18682
|
}
|
18664
18683
|
SlotsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: PromptService }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: GuideService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
18665
|
-
SlotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SlotsComponent, selector: "bizdoc-panes", host: { listeners: { "document:keydown.escape": "collapse()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["paning"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabing"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"mat-icon-rtl-mirror\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\"> </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"> </div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon> \r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:
|
18684
|
+
SlotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: SlotsComponent, selector: "bizdoc-panes", host: { listeners: { "document:keydown.escape": "collapse()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["paning"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabing"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"mat-icon-rtl-mirror\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\"> </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"> </div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon> \r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"], components: [{ 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: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: QuickToolsComponent, selector: "bizdoc-quicktools" }, { type: i9$2.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13$1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { type: NgxComponentOutlet, selector: "ngx-component-outlet", inputs: ["type", "injector", "ngxComponentOutletContent"], outputs: ["create"] }, { type: i9$2.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe }, animations: [panesAnimation,
|
18666
18685
|
panesTitleAnimation,
|
18667
18686
|
paneAnimation,
|
18668
18687
|
paramAnimation,
|
@@ -18679,7 +18698,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
18679
18698
|
queryAnimation,
|
18680
18699
|
tabsAnimation,
|
18681
18700
|
tabAnimation
|
18682
|
-
], template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"mat-icon-rtl-mirror\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\"> </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"> </div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon> \r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:
|
18701
|
+
], template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"mat-icon-rtl-mirror\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\"> </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"> </div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon> \r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"] }]
|
18683
18702
|
}], ctorParameters: function () {
|
18684
18703
|
return [{ type: undefined, decorators: [{
|
18685
18704
|
type: Inject,
|
@@ -19893,9 +19912,11 @@ class CubeMatrixMobileComponent extends CubeMatrixBase {
|
|
19893
19912
|
onFilter(axes) {
|
19894
19913
|
this._router.navigate([], { queryParams: axes });
|
19895
19914
|
}
|
19896
|
-
explore(
|
19915
|
+
explore(evt) {
|
19916
|
+
const { axes: queryParams, index } = evt;
|
19897
19917
|
this._router.navigate(['cube', this.cube, 'explore'], {
|
19898
|
-
queryParams
|
19918
|
+
queryParams,
|
19919
|
+
state: { index }
|
19899
19920
|
});
|
19900
19921
|
}
|
19901
19922
|
}
|
@@ -20202,21 +20223,27 @@ let AssignActionComponent = class AssignActionComponent {
|
|
20202
20223
|
forward: this._fb.control(false),
|
20203
20224
|
note: this._fb.control(null, Validators.maxLength(200))
|
20204
20225
|
});
|
20226
|
+
this.userId = this._fb.control(null, Validators.required);
|
20227
|
+
this._destroy = new Subject();
|
20205
20228
|
}
|
20206
20229
|
ngOnInit() {
|
20207
20230
|
const me = this._session.userId;
|
20208
|
-
this.users = this.
|
20209
|
-
pipe(filter(v => isString(v)), switchMap(v => this._accounts.findAll(v).
|
20231
|
+
this.users = this.userId.valueChanges.
|
20232
|
+
pipe(filter(v => isString(v)), takeUntil$1(this._destroy), switchMap(v => this._accounts.findAll(v).
|
20210
20233
|
pipe(map(r => r.filter(u => u.id !== me)))));
|
20211
20234
|
}
|
20212
|
-
display(v) {
|
20213
|
-
|
20235
|
+
display(v) {
|
20236
|
+
return v ? v.name : null;
|
20237
|
+
}
|
20214
20238
|
change(evt) {
|
20215
20239
|
this.form.controls['userId'].setValue(evt.option.value.id);
|
20216
20240
|
}
|
20241
|
+
ngOnDestroy() {
|
20242
|
+
this._destroy.next();
|
20243
|
+
}
|
20217
20244
|
};
|
20218
20245
|
AssignActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AssignActionComponent, deps: [{ token: i1$2.FormBuilder }, { token: SessionService }, { token: AccountService }], target: i0.ɵɵFactoryTarget.Component });
|
20219
|
-
AssignActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AssignActionComponent, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" cdkFocusInitial [placeholder]=\"'User'|translate\" required
|
20246
|
+
AssignActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: AssignActionComponent, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" cdkFocusInitial [placeholder]=\"'User'|translate\" required [formControl]=\"userId\"/> \r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users | async\" [value]=\"u\">{{u.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"form.controls.userId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=fyi> {{ 'FYI' | translate }}</mat-checkbox>\r\n <mat-checkbox formControlName=forward> {{ 'Forward' | translate }}</mat-checkbox>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls['note'].value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", components: [{ type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i6$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i11.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i1$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe } });
|
20220
20247
|
AssignActionComponent = __decorate([
|
20221
20248
|
BizDoc({
|
20222
20249
|
selector: 'bizdoc-action-assign'
|
@@ -20224,7 +20251,7 @@ AssignActionComponent = __decorate([
|
|
20224
20251
|
], AssignActionComponent);
|
20225
20252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: AssignActionComponent, decorators: [{
|
20226
20253
|
type: Component,
|
20227
|
-
args: [{ template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" cdkFocusInitial [placeholder]=\"'User'|translate\" required
|
20254
|
+
args: [{ template: "<form autocomplete=\"off\" fxLayout=\"column\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" cdkFocusInitial [placeholder]=\"'User'|translate\" required [formControl]=\"userId\"/> \r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users | async\" [value]=\"u\">{{u.name}}</mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"form.controls.userId.hasError('required')\">{{'Required'|translate:('User'|translate)}}</mat-error>\r\n </mat-form-field>\r\n <mat-checkbox formControlName=fyi> {{ 'FYI' | translate }}</mat-checkbox>\r\n <mat-checkbox formControlName=forward> {{ 'Forward' | translate }}</mat-checkbox>\r\n <mat-form-field>\r\n <textarea matInput cdkTextareaAutosize formControlName=\"note\" [placeholder]=\"'Note'|translate\" maxlength=\"200\">\r\n </textarea>\r\n <mat-hint align=\"end\">{{form.controls['note'].value?.length || 0}} / {{200}}</mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
|
20228
20255
|
}], ctorParameters: function () { return [{ type: i1$2.FormBuilder }, { type: SessionService }, { type: AccountService }]; } });
|
20229
20256
|
|
20230
20257
|
class UserNamePipe {
|
@@ -24747,10 +24774,12 @@ let CubeDocumentMatrixComponent = class CubeDocumentMatrixComponent extends Cube
|
|
24747
24774
|
a.name === filters);
|
24748
24775
|
this.filters.forEach(f => this.sources[f.name] = this._service.values(this.cube.name, f.name).pipe(map$1(mapToArray)));
|
24749
24776
|
}
|
24750
|
-
explore(
|
24777
|
+
explore(evt) {
|
24778
|
+
const { axes: queryParams, index } = evt;
|
24751
24779
|
this._router.navigate(['cube', this.cube.name, 'explore'], {
|
24752
|
-
queryParams
|
24753
|
-
group: this.group
|
24780
|
+
queryParams,
|
24781
|
+
group: this.group,
|
24782
|
+
state: { index }
|
24754
24783
|
});
|
24755
24784
|
}
|
24756
24785
|
/**
|