@bizdoc/core 1.13.31 → 1.13.34
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/esm2020/lib/browse/browse-items.component.mjs +4 -4
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -5
- package/esm2020/lib/compose/action/moveto-action.component.mjs +5 -2
- package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
- package/esm2020/lib/compose/form.component.mjs +3 -3
- package/esm2020/lib/compose/trace/flow.component.mjs +11 -5
- package/esm2020/lib/compose/trace/trace.component.mjs +54 -83
- package/esm2020/lib/core/mailbox.service.mjs +2 -2
- package/esm2020/lib/core/session.service.mjs +2 -2
- package/esm2020/lib/core/translations.mjs +5 -5
- package/fesm2015/bizdoc-core.mjs +82 -104
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +82 -104
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/compose/trace/trace.component.d.ts +1 -1
- package/lib/core/translations.d.ts +4 -4
- package/package.json +1 -1
package/fesm2020/bizdoc-core.mjs
CHANGED
@@ -1017,7 +1017,7 @@ class SessionService {
|
|
1017
1017
|
_config && _config.maps && this._loadMaps();
|
1018
1018
|
}
|
1019
1019
|
get profile() { return this._profile; }
|
1020
|
-
get gender() { return this._profile.byGender
|
1020
|
+
get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
|
1021
1021
|
get accentPalette() {
|
1022
1022
|
const palette = MATERIAL_PALETTES[this.theme.accent];
|
1023
1023
|
return this._constructpalette(palette);
|
@@ -1512,7 +1512,7 @@ class MailboxService {
|
|
1512
1512
|
return this._getGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params }))).pipe(this._notify());
|
1513
1513
|
}
|
1514
1514
|
send(id, version, form, model, action, actionArgs, read, folderId, received) {
|
1515
|
-
return this._getGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params:
|
1515
|
+
return this._getGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: { ...params, ...actionArgs } }))).pipe(tap(() => read === false && this._updateunreadcounter(received, folderId, -1)), this._notify());
|
1516
1516
|
}
|
1517
1517
|
events(starting, ending, contains) {
|
1518
1518
|
return this._http.get(`/api/events`, {
|
@@ -2068,7 +2068,7 @@ const STRINGS = {
|
|
2068
2068
|
YouSubstituteActionTakenTo: 'Document {0} to {1} by you instead of {2} {3}',
|
2069
2069
|
Substituting: '{0} substituting {1}',
|
2070
2070
|
SubstitutingForYou: '{0} substituting you',
|
2071
|
-
|
2071
|
+
YouSubstituting: 'You substituting {0}',
|
2072
2072
|
SubstitutingBy: '{0} by {2} substituting {1}',
|
2073
2073
|
SubstitutingByYou: '{0} by you substituting {1}',
|
2074
2074
|
SubstitutingYou: 'Substituting for you',
|
@@ -2624,9 +2624,9 @@ const STRINGS = {
|
|
2624
2624
|
SubstitutingForFemale: 'במקום {0}',
|
2625
2625
|
Substituting: '{0} מחליף את {1}',
|
2626
2626
|
SubstitutingForYou: '{0} מחליף אותך',
|
2627
|
-
|
2628
|
-
|
2629
|
-
|
2627
|
+
YouSubstituting: 'את/ה מחליף את {0}',
|
2628
|
+
YouSubstitutingMale: 'אתה מחליף את {0}',
|
2629
|
+
YouSubstitutingFemale: 'את מחליפה את {0}',
|
2630
2630
|
SubstitutingBy: '{0} מחליף את {1} דרך {2}',
|
2631
2631
|
SubstitutingByYou: '{0} מחליף/פה את {1} דרכך}',
|
2632
2632
|
SubstitutingByYouMale: '{0} מחליף את {1} דרכך}',
|
@@ -7414,10 +7414,8 @@ class ExpandedItemComponent {
|
|
7414
7414
|
(e.userId !== this._session.userId) && this._accounts.get(e.userId).subscribe(u => this._sb.toast('MailVersionUpdate', this.model.number, u.name));
|
7415
7415
|
}
|
7416
7416
|
});
|
7417
|
-
this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e =>
|
7418
|
-
|
7419
|
-
this._refresh();
|
7420
|
-
});
|
7417
|
+
this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => (e.id === this.model.id) &&
|
7418
|
+
this._refresh());
|
7421
7419
|
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(c => {
|
7422
7420
|
this.typing = true;
|
7423
7421
|
clearTimeout(this._typingTask);
|
@@ -7815,7 +7813,7 @@ class BrowseItemsComponent {
|
|
7815
7813
|
this.refresh();
|
7816
7814
|
}
|
7817
7815
|
_assign(model1, model2) {
|
7818
|
-
Object.assign(model1, model2, {
|
7816
|
+
Object.assign(model1, { actions: null }, model2, {
|
7819
7817
|
model: Object.deepAssign(model1.model, model1.model)
|
7820
7818
|
});
|
7821
7819
|
}
|
@@ -7973,11 +7971,11 @@ class BrowseItemsComponent {
|
|
7973
7971
|
return;
|
7974
7972
|
const actions = m[0].actions.slice();
|
7975
7973
|
for (let i = 1; i < m.length; i++) {
|
7976
|
-
|
7974
|
+
let item = m[i];
|
7977
7975
|
if (!item.actions)
|
7978
7976
|
return;
|
7979
7977
|
for (let j = 0; j < actions.length; j++) {
|
7980
|
-
if (item.actions.indexOf(actions[j])
|
7978
|
+
if (item.actions.indexOf(actions[j]) < 0)
|
7981
7979
|
actions.splice(j, 1);
|
7982
7980
|
}
|
7983
7981
|
}
|
@@ -8872,7 +8870,7 @@ class ComposeFormComponent {
|
|
8872
8870
|
this.validChange.emit(this.valid);
|
8873
8871
|
this.dirty = false;
|
8874
8872
|
this.dirtyChange.emit(this.dirty);
|
8875
|
-
this.actions = this.model.actions ? this._session.profile.actions.filter(a => this.model.actions.indexOf(a.name) > -1).
|
8873
|
+
this.actions = this.model.actions.length ? this._session.profile.actions.filter(a => this.model.actions.indexOf(a.name) > -1).
|
8876
8874
|
sort(this._sortActions) : [];
|
8877
8875
|
}
|
8878
8876
|
_sortActions(a, b) {
|
@@ -9058,7 +9056,7 @@ class ComposeFormComponent {
|
|
9058
9056
|
}
|
9059
9057
|
}
|
9060
9058
|
_assign(model) {
|
9061
|
-
Object.assign(this.model, model, {
|
9059
|
+
Object.assign(this.model, { actions: null }, model, {
|
9062
9060
|
model: Object.deepAssign(this.model.model, model.model) // preserve object ref
|
9063
9061
|
});
|
9064
9062
|
this.modelChange.emit(this.model);
|
@@ -9253,12 +9251,12 @@ class ComposePaneComponent {
|
|
9253
9251
|
}
|
9254
9252
|
}
|
9255
9253
|
ComposePaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ComposePaneComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PaneRef }, { token: PanesRouter }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
9256
|
-
ComposePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ComposePaneComponent, selector: "bizdoc-compose.pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"
|
9254
|
+
ComposePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: ComposePaneComponent, selector: "bizdoc-compose.pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"form.actions.length === 1\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"form.actions.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" *ngIf=\"enableAnalysis\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"discard()\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n <ng-container *ngIf=\"form.help\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [".nav-toolbar{position:sticky;top:0;z-index:1}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { 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: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i12$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i9.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe } });
|
9257
9255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ComposePaneComponent, decorators: [{
|
9258
9256
|
type: Component,
|
9259
9257
|
args: [{ selector: 'bizdoc-compose.pane', host: {
|
9260
9258
|
class: 'pane'
|
9261
|
-
}, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"
|
9259
|
+
}, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"form.actions.length === 1\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"form.actions.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon class=\"filled\">{{model.tags && model.tags.length ?'bookmark':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" *ngIf=\"enableAnalysis\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"discard()\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n <ng-container *ngIf=\"form.help\">\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n </ng-container>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [".nav-toolbar{position:sticky;top:0;z-index:1}\n"] }]
|
9262
9260
|
}], ctorParameters: function () { return [{ type: SessionService }, { type: MailboxService }, { type: PaneRef }, { type: PanesRouter }, { type: undefined, decorators: [{
|
9263
9261
|
type: Inject,
|
9264
9262
|
args: [BIZDOC_CONFIG]
|
@@ -13969,15 +13967,18 @@ class FlowViewComponent extends TraceBase {
|
|
13969
13967
|
for (r = 0; r < recipients.length; r++) {
|
13970
13968
|
let recipient = recipients[r];
|
13971
13969
|
const { annotation, tooltip } = await this._note(node, recipient);
|
13970
|
+
const content = this._tooltip(tooltip);
|
13972
13971
|
const nod = {
|
13973
13972
|
id: r === 0 ? node.id : node.id + r.toString(),
|
13974
13973
|
shape: this._configuration[node.type].shape,
|
13975
13974
|
zIndex: zIndex++,
|
13976
13975
|
tooltip: {
|
13977
|
-
content
|
13976
|
+
content,
|
13978
13977
|
position: 'TopCenter'
|
13979
13978
|
},
|
13980
|
-
constraints:
|
13979
|
+
constraints: content ?
|
13980
|
+
NodeConstraints.Default | NodeConstraints.Tooltip :
|
13981
|
+
NodeConstraints.Default,
|
13981
13982
|
addInfo: {
|
13982
13983
|
tooltip,
|
13983
13984
|
recipient,
|
@@ -14057,15 +14058,18 @@ class FlowViewComponent extends TraceBase {
|
|
14057
14058
|
else {
|
14058
14059
|
const { state, annotation, tooltip } = await this._shape(node);
|
14059
14060
|
const { shape } = configuration;
|
14061
|
+
const content = this._tooltip(tooltip);
|
14060
14062
|
nodes.push({
|
14061
14063
|
id: node.id,
|
14062
14064
|
shape,
|
14063
14065
|
zIndex: zIndex++,
|
14064
14066
|
tooltip: {
|
14065
|
-
content
|
14067
|
+
content,
|
14066
14068
|
position: 'TopCenter'
|
14067
14069
|
},
|
14068
|
-
constraints:
|
14070
|
+
constraints: content ?
|
14071
|
+
NodeConstraints.Default | NodeConstraints.Tooltip :
|
14072
|
+
NodeConstraints.Default,
|
14069
14073
|
addInfo: {
|
14070
14074
|
tooltip,
|
14071
14075
|
node
|
@@ -14541,9 +14545,9 @@ class TraceViewComponent extends TraceBase {
|
|
14541
14545
|
step.fyi = recipient.fyi;
|
14542
14546
|
if (recipient.substituteId) {
|
14543
14547
|
if (recipient.byId) {
|
14544
|
-
if (recipient.byId === this._session.userId
|
14548
|
+
if (recipient.byId === this._session.userId) {
|
14545
14549
|
let who = await profileOf(recipient.userId);
|
14546
|
-
if (recipient.substituteId === this._session.userId
|
14550
|
+
if (recipient.substituteId === this._session.userId)
|
14547
14551
|
step.name = this._translate.get('ByYou', nameOf(who));
|
14548
14552
|
else {
|
14549
14553
|
let substituting = await profileOf(recipient.substituteId);
|
@@ -14553,9 +14557,7 @@ class TraceViewComponent extends TraceBase {
|
|
14553
14557
|
step.action = await actionBy(action, You, recipient.id);
|
14554
14558
|
}
|
14555
14559
|
else {
|
14556
|
-
let by = await profileOf(recipient.byId);
|
14557
|
-
let who = await profileOf(recipient.userId);
|
14558
|
-
let substituting = await profileOf(recipient.substituteId);
|
14560
|
+
let by = await profileOf(recipient.byId), who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
|
14559
14561
|
step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
|
14560
14562
|
if (by.role)
|
14561
14563
|
step.role = by.role;
|
@@ -14563,31 +14565,29 @@ class TraceViewComponent extends TraceBase {
|
|
14563
14565
|
step.action = await actionBy(action, by.gender, recipient.id);
|
14564
14566
|
}
|
14565
14567
|
}
|
14568
|
+
else if (recipient.userId === this._session.userId) {
|
14569
|
+
let substituting = await profileOf(recipient.substituteId);
|
14570
|
+
step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
|
14571
|
+
if (action)
|
14572
|
+
step.action = await actionBy(action, this._session.gender, recipient.id);
|
14573
|
+
}
|
14574
|
+
else if (recipient.substituteId === this._session.userId) {
|
14575
|
+
let who = await profileOf(recipient.userId);
|
14576
|
+
step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
|
14577
|
+
if (action)
|
14578
|
+
step.action = await actionBy(action, who.gender, recipient.id);
|
14579
|
+
}
|
14566
14580
|
else {
|
14567
|
-
|
14568
|
-
|
14569
|
-
|
14570
|
-
|
14571
|
-
|
14572
|
-
|
14573
|
-
else if (recipient.substituteId === this._session.userId && !this._session.isImpersonating) {
|
14574
|
-
let who = await profileOf(recipient.userId);
|
14575
|
-
step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
|
14576
|
-
if (action)
|
14577
|
-
step.action = await actionBy(action, who.gender, recipient.id);
|
14578
|
-
}
|
14579
|
-
else {
|
14580
|
-
let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
|
14581
|
-
step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
|
14582
|
-
if (who.role)
|
14583
|
-
step.role = who.role;
|
14584
|
-
if (action)
|
14585
|
-
step.action = await actionBy(action, who.gender, recipient.id);
|
14586
|
-
}
|
14581
|
+
let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
|
14582
|
+
step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
|
14583
|
+
if (who.role)
|
14584
|
+
step.role = who.role;
|
14585
|
+
if (action)
|
14586
|
+
step.action = await actionBy(action, who.gender, recipient.id);
|
14587
14587
|
}
|
14588
14588
|
}
|
14589
14589
|
else if (recipient.byId) {
|
14590
|
-
if (recipient.userId === this._session.userId
|
14590
|
+
if (recipient.userId === this._session.userId) {
|
14591
14591
|
let by = await profileOf(recipient.byId);
|
14592
14592
|
step.name = this._translate.get('YouBy', nameOf(by));
|
14593
14593
|
if (action)
|
@@ -14595,7 +14595,7 @@ class TraceViewComponent extends TraceBase {
|
|
14595
14595
|
}
|
14596
14596
|
else {
|
14597
14597
|
let who = await profileOf(recipient.userId);
|
14598
|
-
if (recipient.byId === this._session.userId
|
14598
|
+
if (recipient.byId === this._session.userId) {
|
14599
14599
|
step.name = this._translate.get('ByYou', nameOf(who));
|
14600
14600
|
if (action)
|
14601
14601
|
step.action = await actionBy(action, You, recipient.id);
|
@@ -14611,7 +14611,7 @@ class TraceViewComponent extends TraceBase {
|
|
14611
14611
|
}
|
14612
14612
|
}
|
14613
14613
|
else {
|
14614
|
-
if (recipient.userId === this._session.userId
|
14614
|
+
if (recipient.userId === this._session.userId) {
|
14615
14615
|
step.name = this._translate.get('You');
|
14616
14616
|
if (action)
|
14617
14617
|
step.action = await actionBy(action, You, recipient.id);
|
@@ -14626,36 +14626,28 @@ class TraceViewComponent extends TraceBase {
|
|
14626
14626
|
}
|
14627
14627
|
}
|
14628
14628
|
}
|
14629
|
-
else {
|
14630
|
-
|
14631
|
-
|
14632
|
-
|
14633
|
-
step.name = this._translate.get('ByYou', this._session.profile.name);
|
14634
|
-
else
|
14635
|
-
step.name = this._session.profile.name;
|
14636
|
-
}
|
14637
|
-
else
|
14638
|
-
step.name = this._translate.get('You');
|
14639
|
-
}
|
14629
|
+
else if (l.byId) {
|
14630
|
+
let who = await profileOf(l.userId);
|
14631
|
+
if (l.byId === this._session.profile.byId)
|
14632
|
+
step.name = this._translate.get('ByYou', nameOf(who));
|
14640
14633
|
else {
|
14641
|
-
let
|
14642
|
-
|
14643
|
-
|
14644
|
-
|
14645
|
-
if (l.byId === this._session.profile.byId)
|
14646
|
-
step.name = this._translate.get('ByYou', nameOf(who));
|
14647
|
-
else {
|
14648
|
-
let by = await profileOf(l.byId);
|
14649
|
-
step.name = this._translate.get('By', nameOf(who), nameOf(by));
|
14650
|
-
}
|
14651
|
-
}
|
14652
|
-
else
|
14653
|
-
step.name = nameOf(who);
|
14634
|
+
let by = await profileOf(l.byId);
|
14635
|
+
step.name = this._translate.get('By', nameOf(who), nameOf(by));
|
14636
|
+
if (by.role)
|
14637
|
+
step.role = by.role;
|
14654
14638
|
}
|
14655
14639
|
}
|
14640
|
+
else if (l.userId === this._session.userId)
|
14641
|
+
step.name = this._translate.get('You');
|
14642
|
+
else {
|
14643
|
+
let who = await profileOf(l.userId);
|
14644
|
+
step.name = nameOf(who);
|
14645
|
+
if (who.role)
|
14646
|
+
step.role = who.role;
|
14647
|
+
}
|
14656
14648
|
}
|
14657
14649
|
for (let recipient of recipients) {
|
14658
|
-
if (!recipient.pending && !recipient.estimate
|
14650
|
+
if (!recipient.pending && !recipient.estimate)
|
14659
14651
|
continue;
|
14660
14652
|
let step = {
|
14661
14653
|
time: recipient.received,
|
@@ -14677,39 +14669,22 @@ class TraceViewComponent extends TraceBase {
|
|
14677
14669
|
step.durationMin = min,
|
14678
14670
|
step.durationMax = max;
|
14679
14671
|
}
|
14680
|
-
step.fyi = recipient.fyi;
|
14681
14672
|
}
|
14682
14673
|
}
|
14683
14674
|
if (recipient.substituteId) {
|
14684
|
-
|
14685
|
-
|
14686
|
-
|
14687
|
-
|
14688
|
-
|
14689
|
-
|
14690
|
-
|
14691
|
-
step.name = this._translate.personalize('SubstitutingByYou', who.gender, nameOf(who), nameOf(substituting));
|
14692
|
-
}
|
14693
|
-
}
|
14694
|
-
else {
|
14695
|
-
let substituting = await profileOf(recipient.substituteId);
|
14696
|
-
let by = await profileOf(recipient.byId);
|
14697
|
-
step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
|
14698
|
-
if (by.role)
|
14699
|
-
step.role = by.role;
|
14700
|
-
}
|
14675
|
+
if (recipient.substituteId === this._session.userId) {
|
14676
|
+
let who = await profileOf(recipient.userId);
|
14677
|
+
step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
|
14678
|
+
}
|
14679
|
+
else if (recipient.userId === this._session.userId) {
|
14680
|
+
let substituting = await profileOf(recipient.substituteId);
|
14681
|
+
step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
|
14701
14682
|
}
|
14702
14683
|
else {
|
14703
|
-
|
14704
|
-
|
14705
|
-
|
14706
|
-
step.
|
14707
|
-
else {
|
14708
|
-
let substituting = await profileOf(recipient.substituteId);
|
14709
|
-
step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
|
14710
|
-
if (who.role)
|
14711
|
-
step.role = who.role;
|
14712
|
-
}
|
14684
|
+
let who = await profileOf(recipient.userId), substituting = await profileOf(recipient.substituteId);
|
14685
|
+
step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
|
14686
|
+
if (who.role)
|
14687
|
+
step.role = who.role;
|
14713
14688
|
}
|
14714
14689
|
}
|
14715
14690
|
else if (recipient.byId) {
|
@@ -14783,7 +14758,7 @@ class TraceViewComponent extends TraceBase {
|
|
14783
14758
|
this._chat.open(userId);
|
14784
14759
|
}
|
14785
14760
|
/**
|
14786
|
-
* model version compare
|
14761
|
+
* model version compare
|
14787
14762
|
* @param log
|
14788
14763
|
*/
|
14789
14764
|
compare(log) {
|
@@ -26925,7 +26900,10 @@ let MoveToActionComponent = class MoveToActionComponent {
|
|
26925
26900
|
const me = this._session.userId;
|
26926
26901
|
this.users$ = this.userIds.valueChanges.
|
26927
26902
|
pipe(debounceTime$1(200), takeUntil(this._destroy), switchMap(v => this._accounts.findAll(v, { take: 20 }).
|
26928
|
-
pipe(map(r =>
|
26903
|
+
pipe(map(r => {
|
26904
|
+
const userIds = this.form.controls['userIds'].value || [];
|
26905
|
+
return r.filter(u => u.id !== me && userIds.indexOf(u.id) < 0);
|
26906
|
+
}))));
|
26929
26907
|
}
|
26930
26908
|
/**
|
26931
26909
|
*
|