@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.
@@ -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 || this._profile.gender; }
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: Object.assign(params, actionArgs) }))).pipe(tap(() => read === false && this._updateunreadcounter(received, folderId, -1)), this._notify());
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
- YouSubstitute: 'You substituting {0}',
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
- YouSubstitute: 'את/ה מחליף את {0}',
2628
- YouSubstituteMale: 'אתה מחליף את {0}',
2629
- YouSubstituteFemale: 'את מחליפה את {0}',
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
- if (e.id === this.model.id)
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
- const item = m[i];
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]) === -1)
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=\"model.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=\"model.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 } });
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=\"model.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=\"model.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"] }]
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: this._tooltip(tooltip),
13976
+ content,
13978
13977
  position: 'TopCenter'
13979
13978
  },
13980
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default : NodeConstraints.Default & ~NodeConstraints.Tooltip,
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: this._tooltip(tooltip),
14067
+ content,
14066
14068
  position: 'TopCenter'
14067
14069
  },
14068
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default | NodeConstraints.Tooltip : NodeConstraints.Default,
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 && !this._session.isImpersonating) {
14548
+ if (recipient.byId === this._session.userId) {
14545
14549
  let who = await profileOf(recipient.userId);
14546
- if (recipient.substituteId === this._session.userId && !this._session.isImpersonating)
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
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14568
- let substituting = await profileOf(recipient.substituteId);
14569
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(substituting));
14570
- if (action)
14571
- step.action = await actionBy(action, this._session.gender, recipient.id);
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 && !this._session.isImpersonating) {
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 && !this._session.isImpersonating) {
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 && !this._session.isImpersonating) {
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
- if (l.userId === this._session.profile.userId) {
14631
- if (this._session.isImpersonating) {
14632
- if (l.userId === this._session.profile.byId)
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 who = await profileOf(l.userId);
14642
- if (who.role)
14643
- step.role = who.role;
14644
- if (l.byId) {
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 && !recipient.fyi)
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
- let who = await profileOf(recipient.userId);
14685
- if (recipient.byId) {
14686
- if (recipient.byId === this._session.userId) {
14687
- if (recipient.substituteId === this._session.userId)
14688
- step.name = this._translate.get('ByYou', nameOf(who));
14689
- else {
14690
- let substituting = await profileOf(recipient.substituteId);
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
- if (recipient.substituteId === this._session.userId)
14704
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14705
- else if (recipient.userId === this._session.userId)
14706
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(who));
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, form component in 'compare' view mode
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 => r.filter(u => u.id !== me)))));
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
  *