@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.
@@ -1023,7 +1023,7 @@ class SessionService {
1023
1023
  _config && _config.maps && this._loadMaps();
1024
1024
  }
1025
1025
  get profile() { return this._profile; }
1026
- get gender() { return this._profile.byGender || this._profile.gender; }
1026
+ get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
1027
1027
  get accentPalette() {
1028
1028
  const palette = MATERIAL_PALETTES[this.theme.accent];
1029
1029
  return this._constructpalette(palette);
@@ -1517,7 +1517,7 @@ class MailboxService {
1517
1517
  return this._getGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params }))).pipe(this._notify());
1518
1518
  }
1519
1519
  send(id, version, form, model, action, actionArgs, read, folderId, received) {
1520
- 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());
1520
+ return this._getGeoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: Object.assign(Object.assign({}, params), actionArgs) }))).pipe(tap(() => read === false && this._updateunreadcounter(received, folderId, -1)), this._notify());
1521
1521
  }
1522
1522
  events(starting, ending, contains) {
1523
1523
  return this._http.get(`/api/events`, {
@@ -2073,7 +2073,7 @@ const STRINGS = {
2073
2073
  YouSubstituteActionTakenTo: 'Document {0} to {1} by you instead of {2} {3}',
2074
2074
  Substituting: '{0} substituting {1}',
2075
2075
  SubstitutingForYou: '{0} substituting you',
2076
- YouSubstitute: 'You substituting {0}',
2076
+ YouSubstituting: 'You substituting {0}',
2077
2077
  SubstitutingBy: '{0} by {2} substituting {1}',
2078
2078
  SubstitutingByYou: '{0} by you substituting {1}',
2079
2079
  SubstitutingYou: 'Substituting for you',
@@ -2629,9 +2629,9 @@ const STRINGS = {
2629
2629
  SubstitutingForFemale: 'במקום {0}',
2630
2630
  Substituting: '{0} מחליף את {1}',
2631
2631
  SubstitutingForYou: '{0} מחליף אותך',
2632
- YouSubstitute: 'את/ה מחליף את {0}',
2633
- YouSubstituteMale: 'אתה מחליף את {0}',
2634
- YouSubstituteFemale: 'את מחליפה את {0}',
2632
+ YouSubstituting: 'את/ה מחליף את {0}',
2633
+ YouSubstitutingMale: 'אתה מחליף את {0}',
2634
+ YouSubstitutingFemale: 'את מחליפה את {0}',
2635
2635
  SubstitutingBy: '{0} מחליף את {1} דרך {2}',
2636
2636
  SubstitutingByYou: '{0} מחליף/פה את {1} דרכך}',
2637
2637
  SubstitutingByYouMale: '{0} מחליף את {1} דרכך}',
@@ -7444,10 +7444,8 @@ class ExpandedItemComponent {
7444
7444
  (e.userId !== this._session.userId) && this._accounts.get(e.userId).subscribe(u => this._sb.toast('MailVersionUpdate', this.model.number, u.name));
7445
7445
  }
7446
7446
  });
7447
- this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => {
7448
- if (e.id === this.model.id)
7449
- this._refresh();
7450
- });
7447
+ this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => (e.id === this.model.id) &&
7448
+ this._refresh());
7451
7449
  this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(c => {
7452
7450
  this.typing = true;
7453
7451
  clearTimeout(this._typingTask);
@@ -7853,7 +7851,7 @@ class BrowseItemsComponent {
7853
7851
  this.refresh();
7854
7852
  }
7855
7853
  _assign(model1, model2) {
7856
- Object.assign(model1, model2, {
7854
+ Object.assign(model1, { actions: null }, model2, {
7857
7855
  model: Object.deepAssign(model1.model, model1.model)
7858
7856
  });
7859
7857
  }
@@ -8011,11 +8009,11 @@ class BrowseItemsComponent {
8011
8009
  return;
8012
8010
  const actions = m[0].actions.slice();
8013
8011
  for (let i = 1; i < m.length; i++) {
8014
- const item = m[i];
8012
+ let item = m[i];
8015
8013
  if (!item.actions)
8016
8014
  return;
8017
8015
  for (let j = 0; j < actions.length; j++) {
8018
- if (item.actions.indexOf(actions[j]) === -1)
8016
+ if (item.actions.indexOf(actions[j]) < 0)
8019
8017
  actions.splice(j, 1);
8020
8018
  }
8021
8019
  }
@@ -8918,7 +8916,7 @@ class ComposeFormComponent {
8918
8916
  this.validChange.emit(this.valid);
8919
8917
  this.dirty = false;
8920
8918
  this.dirtyChange.emit(this.dirty);
8921
- this.actions = this.model.actions ? this._session.profile.actions.filter(a => this.model.actions.indexOf(a.name) > -1).
8919
+ this.actions = this.model.actions.length ? this._session.profile.actions.filter(a => this.model.actions.indexOf(a.name) > -1).
8922
8920
  sort(this._sortActions) : [];
8923
8921
  }
8924
8922
  _sortActions(a, b) {
@@ -9104,7 +9102,7 @@ class ComposeFormComponent {
9104
9102
  }
9105
9103
  }
9106
9104
  _assign(model) {
9107
- Object.assign(this.model, model, {
9105
+ Object.assign(this.model, { actions: null }, model, {
9108
9106
  model: Object.deepAssign(this.model.model, model.model) // preserve object ref
9109
9107
  });
9110
9108
  this.modelChange.emit(this.model);
@@ -9299,12 +9297,12 @@ class ComposePaneComponent {
9299
9297
  }
9300
9298
  }
9301
9299
  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 });
9302
- 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 } });
9300
+ 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 } });
9303
9301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ComposePaneComponent, decorators: [{
9304
9302
  type: Component,
9305
9303
  args: [{ selector: 'bizdoc-compose.pane', host: {
9306
9304
  class: 'pane'
9307
- }, 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"] }]
9305
+ }, 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"] }]
9308
9306
  }], ctorParameters: function () {
9309
9307
  return [{ type: SessionService }, { type: MailboxService }, { type: PaneRef }, { type: PanesRouter }, { type: undefined, decorators: [{
9310
9308
  type: Inject,
@@ -14035,15 +14033,18 @@ class FlowViewComponent extends TraceBase {
14035
14033
  for (r = 0; r < recipients.length; r++) {
14036
14034
  let recipient = recipients[r];
14037
14035
  const { annotation, tooltip } = yield this._note(node, recipient);
14036
+ const content = this._tooltip(tooltip);
14038
14037
  const nod = {
14039
14038
  id: r === 0 ? node.id : node.id + r.toString(),
14040
14039
  shape: this._configuration[node.type].shape,
14041
14040
  zIndex: zIndex++,
14042
14041
  tooltip: {
14043
- content: this._tooltip(tooltip),
14042
+ content,
14044
14043
  position: 'TopCenter'
14045
14044
  },
14046
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default : NodeConstraints.Default & ~NodeConstraints.Tooltip,
14045
+ constraints: content ?
14046
+ NodeConstraints.Default | NodeConstraints.Tooltip :
14047
+ NodeConstraints.Default,
14047
14048
  addInfo: {
14048
14049
  tooltip,
14049
14050
  recipient,
@@ -14123,15 +14124,18 @@ class FlowViewComponent extends TraceBase {
14123
14124
  else {
14124
14125
  const { state, annotation, tooltip } = yield this._shape(node);
14125
14126
  const { shape } = configuration;
14127
+ const content = this._tooltip(tooltip);
14126
14128
  nodes.push({
14127
14129
  id: node.id,
14128
14130
  shape,
14129
14131
  zIndex: zIndex++,
14130
14132
  tooltip: {
14131
- content: this._tooltip(tooltip),
14133
+ content,
14132
14134
  position: 'TopCenter'
14133
14135
  },
14134
- constraints: Object.keys(tooltip).length ? NodeConstraints.Default | NodeConstraints.Tooltip : NodeConstraints.Default,
14136
+ constraints: content ?
14137
+ NodeConstraints.Default | NodeConstraints.Tooltip :
14138
+ NodeConstraints.Default,
14135
14139
  addInfo: {
14136
14140
  tooltip,
14137
14141
  node
@@ -14620,9 +14624,9 @@ class TraceViewComponent extends TraceBase {
14620
14624
  step.fyi = recipient.fyi;
14621
14625
  if (recipient.substituteId) {
14622
14626
  if (recipient.byId) {
14623
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14627
+ if (recipient.byId === this._session.userId) {
14624
14628
  let who = yield profileOf(recipient.userId);
14625
- if (recipient.substituteId === this._session.userId && !this._session.isImpersonating)
14629
+ if (recipient.substituteId === this._session.userId)
14626
14630
  step.name = this._translate.get('ByYou', nameOf(who));
14627
14631
  else {
14628
14632
  let substituting = yield profileOf(recipient.substituteId);
@@ -14632,9 +14636,7 @@ class TraceViewComponent extends TraceBase {
14632
14636
  step.action = yield actionBy(action, You, recipient.id);
14633
14637
  }
14634
14638
  else {
14635
- let by = yield profileOf(recipient.byId);
14636
- let who = yield profileOf(recipient.userId);
14637
- let substituting = yield profileOf(recipient.substituteId);
14639
+ let by = yield profileOf(recipient.byId), who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14638
14640
  step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14639
14641
  if (by.role)
14640
14642
  step.role = by.role;
@@ -14642,31 +14644,29 @@ class TraceViewComponent extends TraceBase {
14642
14644
  step.action = yield actionBy(action, by.gender, recipient.id);
14643
14645
  }
14644
14646
  }
14647
+ else if (recipient.userId === this._session.userId) {
14648
+ let substituting = yield profileOf(recipient.substituteId);
14649
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14650
+ if (action)
14651
+ step.action = yield actionBy(action, this._session.gender, recipient.id);
14652
+ }
14653
+ else if (recipient.substituteId === this._session.userId) {
14654
+ let who = yield profileOf(recipient.userId);
14655
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14656
+ if (action)
14657
+ step.action = yield actionBy(action, who.gender, recipient.id);
14658
+ }
14645
14659
  else {
14646
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14647
- let substituting = yield profileOf(recipient.substituteId);
14648
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(substituting));
14649
- if (action)
14650
- step.action = yield actionBy(action, this._session.gender, recipient.id);
14651
- }
14652
- else if (recipient.substituteId === this._session.userId && !this._session.isImpersonating) {
14653
- let who = yield profileOf(recipient.userId);
14654
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14655
- if (action)
14656
- step.action = yield actionBy(action, who.gender, recipient.id);
14657
- }
14658
- else {
14659
- let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14660
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14661
- if (who.role)
14662
- step.role = who.role;
14663
- if (action)
14664
- step.action = yield actionBy(action, who.gender, recipient.id);
14665
- }
14660
+ let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14661
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14662
+ if (who.role)
14663
+ step.role = who.role;
14664
+ if (action)
14665
+ step.action = yield actionBy(action, who.gender, recipient.id);
14666
14666
  }
14667
14667
  }
14668
14668
  else if (recipient.byId) {
14669
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14669
+ if (recipient.userId === this._session.userId) {
14670
14670
  let by = yield profileOf(recipient.byId);
14671
14671
  step.name = this._translate.get('YouBy', nameOf(by));
14672
14672
  if (action)
@@ -14674,7 +14674,7 @@ class TraceViewComponent extends TraceBase {
14674
14674
  }
14675
14675
  else {
14676
14676
  let who = yield profileOf(recipient.userId);
14677
- if (recipient.byId === this._session.userId && !this._session.isImpersonating) {
14677
+ if (recipient.byId === this._session.userId) {
14678
14678
  step.name = this._translate.get('ByYou', nameOf(who));
14679
14679
  if (action)
14680
14680
  step.action = yield actionBy(action, You, recipient.id);
@@ -14690,7 +14690,7 @@ class TraceViewComponent extends TraceBase {
14690
14690
  }
14691
14691
  }
14692
14692
  else {
14693
- if (recipient.userId === this._session.userId && !this._session.isImpersonating) {
14693
+ if (recipient.userId === this._session.userId) {
14694
14694
  step.name = this._translate.get('You');
14695
14695
  if (action)
14696
14696
  step.action = yield actionBy(action, You, recipient.id);
@@ -14705,36 +14705,28 @@ class TraceViewComponent extends TraceBase {
14705
14705
  }
14706
14706
  }
14707
14707
  }
14708
- else {
14709
- if (l.userId === this._session.profile.userId) {
14710
- if (this._session.isImpersonating) {
14711
- if (l.userId === this._session.profile.byId)
14712
- step.name = this._translate.get('ByYou', this._session.profile.name);
14713
- else
14714
- step.name = this._session.profile.name;
14715
- }
14716
- else
14717
- step.name = this._translate.get('You');
14718
- }
14708
+ else if (l.byId) {
14709
+ let who = yield profileOf(l.userId);
14710
+ if (l.byId === this._session.profile.byId)
14711
+ step.name = this._translate.get('ByYou', nameOf(who));
14719
14712
  else {
14720
- let who = yield profileOf(l.userId);
14721
- if (who.role)
14722
- step.role = who.role;
14723
- if (l.byId) {
14724
- if (l.byId === this._session.profile.byId)
14725
- step.name = this._translate.get('ByYou', nameOf(who));
14726
- else {
14727
- let by = yield profileOf(l.byId);
14728
- step.name = this._translate.get('By', nameOf(who), nameOf(by));
14729
- }
14730
- }
14731
- else
14732
- step.name = nameOf(who);
14713
+ let by = yield profileOf(l.byId);
14714
+ step.name = this._translate.get('By', nameOf(who), nameOf(by));
14715
+ if (by.role)
14716
+ step.role = by.role;
14733
14717
  }
14734
14718
  }
14719
+ else if (l.userId === this._session.userId)
14720
+ step.name = this._translate.get('You');
14721
+ else {
14722
+ let who = yield profileOf(l.userId);
14723
+ step.name = nameOf(who);
14724
+ if (who.role)
14725
+ step.role = who.role;
14726
+ }
14735
14727
  }
14736
14728
  for (let recipient of recipients) {
14737
- if (!recipient.pending && !recipient.estimate && !recipient.fyi)
14729
+ if (!recipient.pending && !recipient.estimate)
14738
14730
  continue;
14739
14731
  let step = {
14740
14732
  time: recipient.received,
@@ -14756,39 +14748,22 @@ class TraceViewComponent extends TraceBase {
14756
14748
  step.durationMin = min,
14757
14749
  step.durationMax = max;
14758
14750
  }
14759
- step.fyi = recipient.fyi;
14760
14751
  }
14761
14752
  }
14762
14753
  if (recipient.substituteId) {
14763
- let who = yield profileOf(recipient.userId);
14764
- if (recipient.byId) {
14765
- if (recipient.byId === this._session.userId) {
14766
- if (recipient.substituteId === this._session.userId)
14767
- step.name = this._translate.get('ByYou', nameOf(who));
14768
- else {
14769
- let substituting = yield profileOf(recipient.substituteId);
14770
- step.name = this._translate.personalize('SubstitutingByYou', who.gender, nameOf(who), nameOf(substituting));
14771
- }
14772
- }
14773
- else {
14774
- let substituting = yield profileOf(recipient.substituteId);
14775
- let by = yield profileOf(recipient.byId);
14776
- step.name = this._translate.get('SubstitutingBy', nameOf(who), nameOf(substituting), nameOf(by));
14777
- if (by.role)
14778
- step.role = by.role;
14779
- }
14754
+ if (recipient.substituteId === this._session.userId) {
14755
+ let who = yield profileOf(recipient.userId);
14756
+ step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14757
+ }
14758
+ else if (recipient.userId === this._session.userId) {
14759
+ let substituting = yield profileOf(recipient.substituteId);
14760
+ step.name = this._translate.personalize('YouSubstituting', this._session.gender, nameOf(substituting));
14780
14761
  }
14781
14762
  else {
14782
- if (recipient.substituteId === this._session.userId)
14783
- step.name = this._translate.personalize('SubstitutingForYou', who.gender, nameOf(who));
14784
- else if (recipient.userId === this._session.userId)
14785
- step.name = this._translate.personalize('YouSubstitute', this._session.profile.byGender, nameOf(who));
14786
- else {
14787
- let substituting = yield profileOf(recipient.substituteId);
14788
- step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14789
- if (who.role)
14790
- step.role = who.role;
14791
- }
14763
+ let who = yield profileOf(recipient.userId), substituting = yield profileOf(recipient.substituteId);
14764
+ step.name = this._translate.personalize('Substituting', who.gender, nameOf(who), nameOf(substituting));
14765
+ if (who.role)
14766
+ step.role = who.role;
14792
14767
  }
14793
14768
  }
14794
14769
  else if (recipient.byId) {
@@ -14863,7 +14838,7 @@ class TraceViewComponent extends TraceBase {
14863
14838
  this._chat.open(userId);
14864
14839
  }
14865
14840
  /**
14866
- * model version compare, form component in 'compare' view mode
14841
+ * model version compare
14867
14842
  * @param log
14868
14843
  */
14869
14844
  compare(log) {
@@ -27116,7 +27091,10 @@ let MoveToActionComponent = class MoveToActionComponent {
27116
27091
  const me = this._session.userId;
27117
27092
  this.users$ = this.userIds.valueChanges.
27118
27093
  pipe(debounceTime$1(200), takeUntil(this._destroy), switchMap(v => this._accounts.findAll(v, { take: 20 }).
27119
- pipe(map(r => r.filter(u => u.id !== me)))));
27094
+ pipe(map(r => {
27095
+ const userIds = this.form.controls['userIds'].value || [];
27096
+ return r.filter(u => u.id !== me && userIds.indexOf(u.id) < 0);
27097
+ }))));
27120
27098
  }
27121
27099
  /**
27122
27100
  *