@bizdoc/core 3.6.3 → 3.6.4
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/fesm2022/bizdoc-core.mjs +100 -94
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/index.d.ts +37 -26
- package/package.json +1 -1
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { InjectionToken, Inject, Injectable, Pipe, Directive, Component, Injector, ElementRef, HostListener, TemplateRef, ViewContainerRef, ViewChild, Input, HostBinding, Output, Optional, Self, EventEmitter, NgModule, ViewChildren, inject, Host, SkipSelf, ContentChild, ContentChildren, provideAppInitializer } from '@angular/core';
|
3
3
|
import { Subject, Observable, firstValueFrom, forkJoin, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1, map as map$1, of, filter as filter$1, from, interval, switchMap as switchMap$1, isObservable, catchError as catchError$1, startWith as startWith$1, EMPTY, debounceTime as debounceTime$1 } from 'rxjs';
|
4
|
-
import { map, tap, shareReplay, filter, startWith, takeUntil, debounceTime, switchMap, catchError, first, take, finalize } from 'rxjs/operators';
|
4
|
+
import { map, tap, shareReplay, filter, startWith, takeUntil, debounceTime, switchMap, catchError, first, take, finalize, delay } from 'rxjs/operators';
|
5
5
|
import * as i4 from '@angular/material/chips';
|
6
6
|
import { MatChipInput, MatChipsModule, MatChipListbox } from '@angular/material/chips';
|
7
7
|
import { ENTER, COMMA, SEMICOLON } from '@angular/cdk/keycodes';
|
@@ -1833,10 +1833,10 @@ const STRINGS = {
|
|
1833
1833
|
Commented: '{0} commented',
|
1834
1834
|
DeleteFile: 'Delete Attachment',
|
1835
1835
|
DeleteFileAsk: 'Are you sure you want to delete this attachment?',
|
1836
|
-
DeleteCommentAsk: 'Are you sure you want to delete this comment?',
|
1836
|
+
//DeleteCommentAsk: 'Are you sure you want to delete this comment?',
|
1837
1837
|
GrantAccess: 'Grant Access',
|
1838
|
-
GrantTip: '
|
1839
|
-
OutOfOfficeTip: 'Redirect mail
|
1838
|
+
GrantTip: 'View and take actions on your behalf.',
|
1839
|
+
OutOfOfficeTip: 'Redirect mail on your absence.',
|
1840
1840
|
Timeline: 'Timeline',
|
1841
1841
|
Theme: 'Theme',
|
1842
1842
|
Back: 'Back',
|
@@ -1997,7 +1997,7 @@ const STRINGS = {
|
|
1997
1997
|
To: 'To',
|
1998
1998
|
Duration: 'Duration',
|
1999
1999
|
Deviation: 'Deviation',
|
2000
|
-
DurationTime: '
|
2000
|
+
DurationTime: 'In {0}',
|
2001
2001
|
Standard: 'Standard',
|
2002
2002
|
StandardValue: 'Standard: {0}',
|
2003
2003
|
Average: 'Average',
|
@@ -2382,9 +2382,9 @@ const STRINGS = {
|
|
2382
2382
|
DeleteFileMale: 'מחק צרופה',
|
2383
2383
|
DeleteFileFemale: 'מחקי צרופה',
|
2384
2384
|
DeleteFileAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הצרופה?',
|
2385
|
-
DeleteCommentAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הערה?',
|
2386
|
-
DeleteCommentAskMale: 'האם אתה בטוח שברצונך למחוק את הערה?',
|
2387
|
-
DeleteCommentAskFemale: 'האם את בטוחה שברצונך למחוק את הערה?',
|
2385
|
+
//DeleteCommentAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הערה?',
|
2386
|
+
//DeleteCommentAskMale: 'האם אתה בטוח שברצונך למחוק את הערה?',
|
2387
|
+
//DeleteCommentAskFemale: 'האם את בטוחה שברצונך למחוק את הערה?',
|
2388
2388
|
DeleteFileAskMale: 'האם אתה בטוח שברצונך למחוק את הצרופה?',
|
2389
2389
|
DeleteFileAskFemale: 'האם את בטוחה שברצונך למחוק את הצרופה?',
|
2390
2390
|
GrantAccess: 'הרשאות',
|
@@ -3886,11 +3886,11 @@ class OptionsComponent {
|
|
3886
3886
|
this._destroy.complete();
|
3887
3887
|
}
|
3888
3888
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OptionsComponent, deps: [{ token: PromptService }, { token: GuideService }, { token: HubService }, { token: i2$2.MatDialog }, { token: i1$2.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: SessionService }, { token: Popup }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
3889
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "keyboard", first: true, predicate: ["keyboardTmpl"], descendants: true }, { propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i2$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
|
3889
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "keyboard", first: true, predicate: ["keyboardTmpl"], descendants: true }, { propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i2$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
|
3890
3890
|
}
|
3891
3891
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OptionsComponent, decorators: [{
|
3892
3892
|
type: Component,
|
3893
|
-
args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"] }]
|
3893
|
+
args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"] }]
|
3894
3894
|
}], ctorParameters: () => [{ type: PromptService }, { type: GuideService }, { type: HubService }, { type: i2$2.MatDialog }, { type: i1$2.FormBuilder }, { type: AccountService }, { type: PromptService }, { type: SessionService }, { type: Popup }, { type: undefined, decorators: [{
|
3895
3895
|
type: Inject,
|
3896
3896
|
args: [BIZDOC_CONFIG]
|
@@ -7008,7 +7008,7 @@ class MailboxService {
|
|
7008
7008
|
`?access_token=${token}`;
|
7009
7009
|
return url;
|
7010
7010
|
}
|
7011
|
-
|
7011
|
+
downloadAttachment(documentId, fileId) {
|
7012
7012
|
//new Observable<any>(observe => {
|
7013
7013
|
// observe.next({});
|
7014
7014
|
// return {
|
@@ -7023,13 +7023,13 @@ class MailboxService {
|
|
7023
7023
|
removeAttachment(recipientId, fileId) {
|
7024
7024
|
return this._http.delete(`/api/attachments/${recipientId}/${fileId}`);
|
7025
7025
|
}
|
7026
|
-
|
7026
|
+
markAsRead(id, read, folderId, received) {
|
7027
7027
|
return this._http.put(`/api/mailbox/read/${id}`, undefined, { params: { read } }).pipe(tap(() => folderId && received && this._updateunreadcounter(received, folderId, read ? 1 : -1)));
|
7028
7028
|
}
|
7029
|
-
|
7029
|
+
listComments(id, before) {
|
7030
7030
|
return this._http.get(`/api/comments/${id}`, { params: { before: new Date(before).toJSON() } });
|
7031
7031
|
}
|
7032
|
-
|
7032
|
+
updateRecipientTags(id, tags) {
|
7033
7033
|
return this._http.put(`/api/mailbox/tag/${id}`, { tags }).pipe(tap(() => {
|
7034
7034
|
this._change$.next({ id, tags });
|
7035
7035
|
}));
|
@@ -7040,7 +7040,7 @@ class MailboxService {
|
|
7040
7040
|
* @param stateId
|
7041
7041
|
* @param userId substitute
|
7042
7042
|
*/
|
7043
|
-
|
7043
|
+
setDocumentState(documentId, stateId, userId) {
|
7044
7044
|
return this._http.put(`/api/mailbox/changestate/${documentId}`, { stateId, userId });
|
7045
7045
|
}
|
7046
7046
|
move(id, folderId) {
|
@@ -7051,10 +7051,10 @@ class MailboxService {
|
|
7051
7051
|
});
|
7052
7052
|
}));
|
7053
7053
|
}
|
7054
|
-
|
7054
|
+
checkOutAttachment(recipientId, version, attachmentId) {
|
7055
7055
|
return this._http.put(`/api/attachments/${recipientId}/${attachmentId}/checkout`, null, { params: { version } });
|
7056
7056
|
}
|
7057
|
-
|
7057
|
+
checkInAttachment(recipientId, version, attachmentId, file) {
|
7058
7058
|
const fd = new FormData();
|
7059
7059
|
fd.append(file.name, file);
|
7060
7060
|
const req = new HttpRequest('PUT', `/api/attachments/${recipientId}/${attachmentId}/checkin?version=${version}`, fd, {
|
@@ -7149,23 +7149,23 @@ class MailboxService {
|
|
7149
7149
|
* retrieve senders
|
7150
7150
|
* @param name
|
7151
7151
|
*/
|
7152
|
-
|
7152
|
+
listSenders(name) {
|
7153
7153
|
return this._http.get('/api/mailbox/senders/', {
|
7154
7154
|
params: {
|
7155
7155
|
name
|
7156
7156
|
}
|
7157
7157
|
});
|
7158
7158
|
}
|
7159
|
-
|
7159
|
+
toggleFlag(id, flag) {
|
7160
7160
|
return this._http.put(`/api/mailbox/flag/${id}?flag=${flag}`, null).pipe(tap(() => this._change$.next({ id, flag })));
|
7161
7161
|
}
|
7162
|
-
|
7162
|
+
markCommentsViewed(id) {
|
7163
7163
|
return this._http.put(`/api/comments/viewed/${id}`, {}, { headers: { 'no-progress': 'true' } }).pipe(tap((e) => this._change$.next({ id, viewed: e.time })));
|
7164
7164
|
}
|
7165
|
-
|
7165
|
+
reportTyping(id) {
|
7166
7166
|
return this._http.put(`/api/comments/typing/${id}`, {}, { headers: { 'no-progress': 'true' } });
|
7167
7167
|
}
|
7168
|
-
|
7168
|
+
reportEditing(id) {
|
7169
7169
|
return this._http.put(`/api/mailbox/editing/${id}`, {}, { headers: { 'no-progress': 'true' } });
|
7170
7170
|
}
|
7171
7171
|
copy(id) {
|
@@ -7179,22 +7179,22 @@ class MailboxService {
|
|
7179
7179
|
comment(id, options) {
|
7180
7180
|
return this._http.post(`/api/comments/${id}`, options);
|
7181
7181
|
}
|
7182
|
-
|
7182
|
+
updateComment(id, commentId, options) {
|
7183
7183
|
return this._http.put(`/api/comments/edit/${id}/${commentId}`, options);
|
7184
7184
|
}
|
7185
|
-
|
7185
|
+
getDocumentInfo(documentId) {
|
7186
7186
|
return this._http.get(`/api/mailbox/info/${documentId}`);
|
7187
7187
|
}
|
7188
|
-
|
7188
|
+
listTimeline(documentId) {
|
7189
7189
|
return this._http.get(`/api/mailbox/timeline/${documentId}`);
|
7190
7190
|
}
|
7191
|
-
|
7191
|
+
voteComment(id, commentId, value) {
|
7192
7192
|
return this._http.post(`/api/comments/vote/${id}/${commentId}`, {}, { params: { value: value.toString() } });
|
7193
7193
|
}
|
7194
|
-
|
7194
|
+
listCommentVotes(id, commentId) {
|
7195
7195
|
return this._http.get(`/api/comments/votes/${id}/${commentId}`);
|
7196
7196
|
}
|
7197
|
-
|
7197
|
+
listCommentEdits(id, commentId) {
|
7198
7198
|
return this._http.get(`/api/comments/edits/${id}/${commentId}`);
|
7199
7199
|
}
|
7200
7200
|
findAll(filter, options) {
|
@@ -7208,6 +7208,12 @@ class MailboxService {
|
|
7208
7208
|
this._change$.next(m);
|
7209
7209
|
}));
|
7210
7210
|
}
|
7211
|
+
/**
|
7212
|
+
*
|
7213
|
+
* @param form
|
7214
|
+
* @param model
|
7215
|
+
* @returns
|
7216
|
+
*/
|
7211
7217
|
create(form, model) {
|
7212
7218
|
// return this._wrap(form, p =>
|
7213
7219
|
// this._http.post<RecipientModel<T>>('/api/mail', model, {
|
@@ -7223,6 +7229,12 @@ class MailboxService {
|
|
7223
7229
|
}
|
7224
7230
|
})), this._sync());
|
7225
7231
|
}
|
7232
|
+
/**
|
7233
|
+
*
|
7234
|
+
* @param id
|
7235
|
+
* @param read
|
7236
|
+
* @returns
|
7237
|
+
*/
|
7226
7238
|
get(id, read) {
|
7227
7239
|
return this._http.get(`/api/mail/${id}`).pipe(tap((m) => read === false && m.read === true &&
|
7228
7240
|
this._updateunreadcounter(m.received, m.folderId, -1)));
|
@@ -7275,25 +7287,26 @@ class MailboxService {
|
|
7275
7287
|
delete(id) {
|
7276
7288
|
return this._http.delete(`/api/mail/${id}`).pipe(tap(() => this._delete$.next(id)));
|
7277
7289
|
}
|
7278
|
-
|
7279
|
-
return this._http.delete(`/api/comments/${id}`);
|
7280
|
-
}
|
7281
|
-
post(form, model) {
|
7282
|
-
|
7283
|
-
|
7284
|
-
|
7285
|
-
|
7286
|
-
|
7287
|
-
|
7288
|
-
|
7289
|
-
}
|
7290
|
+
toggleRemoveComment(id, value) {
|
7291
|
+
return this._http.delete(`/api/comments/${id}?value=${value}`);
|
7292
|
+
}
|
7293
|
+
//post<T = any>(form: string, model?: T): Observable<RecipientModel<T>> {
|
7294
|
+
// return this._wrap(form, p =>
|
7295
|
+
// this._http.post<RecipientModel<T>>('/api/mail', model, {
|
7296
|
+
// params: {
|
7297
|
+
// go: true,
|
7298
|
+
// form,
|
7299
|
+
// ...p
|
7300
|
+
// }
|
7301
|
+
// }));
|
7302
|
+
//}
|
7290
7303
|
submit(id, version, form, model) {
|
7291
7304
|
return this._geoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params })), this._sync());
|
7292
7305
|
}
|
7293
7306
|
send(id, version, form, model, action, actionArgs, read, folderId, received) {
|
7294
7307
|
return this._geoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: { ...params, ...actionArgs } })), tap(() => read === false && received && folderId && this._updateunreadcounter(received, folderId, -1)), this._sync());
|
7295
7308
|
}
|
7296
|
-
|
7309
|
+
listEvents(starting, ending, contains) {
|
7297
7310
|
return this._http.get(`/api/events`, {
|
7298
7311
|
params: cleanup({
|
7299
7312
|
starting: starting.toJSON(),
|
@@ -7302,7 +7315,7 @@ class MailboxService {
|
|
7302
7315
|
})
|
7303
7316
|
});
|
7304
7317
|
}
|
7305
|
-
|
7318
|
+
updateEvent(id, options) {
|
7306
7319
|
return this._http.put(`/api/events/${id}`, cleanup(options));
|
7307
7320
|
}
|
7308
7321
|
/**
|
@@ -8111,7 +8124,7 @@ class BrowseFilterComponent {
|
|
8111
8124
|
this.filters = { axes, cube };
|
8112
8125
|
}
|
8113
8126
|
this.senders$ = this.sendername.valueChanges.
|
8114
|
-
pipe(takeUntil(this._destroy), debounceTime(250), filter((v) => isString(v)), switchMap((v) => this._mailbox.
|
8127
|
+
pipe(takeUntil(this._destroy), debounceTime(250), filter((v) => isString(v)), switchMap((v) => this._mailbox.listSenders(v)));
|
8115
8128
|
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(FILTER_DEBOUNCE)).
|
8116
8129
|
subscribe(v => this.valuesChange.emit(cleanup(v)));
|
8117
8130
|
this.form.patchValue(this.values, { emitEvent: false });
|
@@ -8786,7 +8799,7 @@ class AttachmentsComponent {
|
|
8786
8799
|
return this.model.attachments.filter(a => a.fileName === item.fileName && a != item);
|
8787
8800
|
}
|
8788
8801
|
async download(item) {
|
8789
|
-
//this._mailbox.
|
8802
|
+
//this._mailbox.downloadAttachment(this.model.documentId, item.id).subscribe(data => {
|
8790
8803
|
//const blob = new Blob([data], { type: item.contentType });
|
8791
8804
|
//if (typeof window.navigator.msSaveBlob !== 'undefined') { // IE
|
8792
8805
|
// window.navigator.msSaveBlob(blob, item.fileName);
|
@@ -9320,7 +9333,7 @@ class BrowseItemsComponent {
|
|
9320
9333
|
dragStarted(event) {
|
9321
9334
|
}
|
9322
9335
|
toggleRead(item) {
|
9323
|
-
this._mailbox.
|
9336
|
+
this._mailbox.markAsRead(item.id, !item.read, item.folderId, item.received).
|
9324
9337
|
subscribe(() => item.read = !item.read);
|
9325
9338
|
}
|
9326
9339
|
select(id) {
|
@@ -9335,7 +9348,7 @@ class BrowseItemsComponent {
|
|
9335
9348
|
this._retrieve(mail).subscribe(item => {
|
9336
9349
|
if (item.tags && item.tags.indexOf(tag) > -1)
|
9337
9350
|
return;
|
9338
|
-
this._mailbox.
|
9351
|
+
this._mailbox.updateRecipientTags(mail.id, item.tags).subscribe(() => {
|
9339
9352
|
if (!item.tags)
|
9340
9353
|
item.tags = [tag];
|
9341
9354
|
else
|
@@ -9406,7 +9419,7 @@ class BrowseItemsComponent {
|
|
9406
9419
|
flag(item, evt) {
|
9407
9420
|
const extra = item;
|
9408
9421
|
extra.working = true;
|
9409
|
-
this._mailbox.
|
9422
|
+
this._mailbox.toggleFlag(item.id, !item.flag).subscribe({
|
9410
9423
|
next: () => {
|
9411
9424
|
item.flag = !item.flag;
|
9412
9425
|
extra.working = false;
|
@@ -9729,7 +9742,7 @@ class TagsComponent {
|
|
9729
9742
|
setTimeout(() => this.inputElement.nativeElement.focus());
|
9730
9743
|
}
|
9731
9744
|
_save() {
|
9732
|
-
this._mailbox.
|
9745
|
+
this._mailbox.updateRecipientTags(this._data.id, this._data.tags.map(t => t.name)).subscribe();
|
9733
9746
|
}
|
9734
9747
|
add(event) {
|
9735
9748
|
if (!this.auto.isOpen) {
|
@@ -10058,7 +10071,7 @@ class ComposeFormComponent {
|
|
10058
10071
|
const extra = this.model, { flag } = this.model;
|
10059
10072
|
extra.working = true;
|
10060
10073
|
this.working = true;
|
10061
|
-
this._mailbox.
|
10074
|
+
this._mailbox.toggleFlag(this.model.id, !flag).subscribe({
|
10062
10075
|
next: () => {
|
10063
10076
|
this.model.flag = !flag;
|
10064
10077
|
extra.working = false;
|
@@ -13294,7 +13307,7 @@ class EditCommentComponent {
|
|
13294
13307
|
}
|
13295
13308
|
ok(evt) {
|
13296
13309
|
this.sending = true;
|
13297
|
-
this._mailbox.
|
13310
|
+
this._mailbox.updateComment(this.data.documentId, this.data.id, evt).subscribe(c => this._popupRef.close(c), () => {
|
13298
13311
|
this.sending = false;
|
13299
13312
|
this._sb.error();
|
13300
13313
|
});
|
@@ -13386,7 +13399,7 @@ class CommentEditsComponent {
|
|
13386
13399
|
this.resource = _data.resource;
|
13387
13400
|
}
|
13388
13401
|
ngOnInit() {
|
13389
|
-
this.versions = this._mailbox.
|
13402
|
+
this.versions = this._mailbox.listCommentEdits(this._data.documentId, this._data.id);
|
13390
13403
|
}
|
13391
13404
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentEditsComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
|
13392
13405
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentEditsComponent, isStandalone: false, selector: "bizdoc-comment-edits", ngImport: i0, template: "<span class=\"mat-h2\">{{'History' | translate}}</span>\r\n\r\n@for (v of versions | async; track v) {\r\n <div class=\"comment\">\r\n <p [innerHTML]=\"v.text|taggingHtml:resource\"></p>\r\n @if (v.byId || byId) {\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n }\r\n <small>{{v.time | amCalendar}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
|
@@ -13409,18 +13422,18 @@ class CommentLikesComponent {
|
|
13409
13422
|
});
|
13410
13423
|
}
|
13411
13424
|
ngOnInit() {
|
13412
|
-
this.votes = this._mailbox.
|
13425
|
+
this.votes = this._mailbox.listCommentVotes(this._data.documentId, this._data.id);
|
13413
13426
|
}
|
13414
13427
|
ngOnDestroy() {
|
13415
13428
|
this._destroy.next();
|
13416
13429
|
this._destroy.complete();
|
13417
13430
|
}
|
13418
13431
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentLikesComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
13419
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentLikesComponent, isStandalone: false, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n
|
13432
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentLikesComponent, isStandalone: false, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <div class=\"row\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n <span class=\"divider\"></span>\r\n <mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon>\r\n </div>\r\n <br />\r\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
13420
13433
|
}
|
13421
13434
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentLikesComponent, decorators: [{
|
13422
13435
|
type: Component,
|
13423
|
-
args: [{ standalone: false, selector: 'bizdoc-comment-votes', template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n
|
13436
|
+
args: [{ standalone: false, selector: 'bizdoc-comment-votes', template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <div class=\"row\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n <span class=\"divider\"></span>\r\n <mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon>\r\n </div>\r\n <br />\r\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"] }]
|
13424
13437
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
13425
13438
|
type: Inject,
|
13426
13439
|
args: [POPUP_DATA]
|
@@ -13494,7 +13507,7 @@ class CommentComponent {
|
|
13494
13507
|
}
|
13495
13508
|
vote(value, event) {
|
13496
13509
|
value = this.item.voted !== value ? value : 0;
|
13497
|
-
this._mailbox.
|
13510
|
+
this._mailbox.voteComment(this.model.documentId, this.item.id, value).subscribe(() => {
|
13498
13511
|
if (this.item.votes === undefined)
|
13499
13512
|
this.item.votes = value;
|
13500
13513
|
else if (value === 0)
|
@@ -13523,17 +13536,12 @@ class CommentComponent {
|
|
13523
13536
|
_open(component, data) {
|
13524
13537
|
return this._popup.open(component, this.bodyElement, { position: 'start', data });
|
13525
13538
|
}
|
13526
|
-
delete() {
|
13527
|
-
this.
|
13528
|
-
|
13529
|
-
|
13530
|
-
|
13531
|
-
|
13532
|
-
next: () => {
|
13533
|
-
this.item.deleted = true;
|
13534
|
-
this.deleted.emit();
|
13535
|
-
}, error: () => this._ps.error()
|
13536
|
-
});
|
13539
|
+
delete(value) {
|
13540
|
+
this._mailbox.toggleRemoveComment(this.item.id, value).subscribe({
|
13541
|
+
next: () => {
|
13542
|
+
this.item.deleted = value;
|
13543
|
+
this.deleted.emit(value);
|
13544
|
+
}, error: this._ps.error.bind(this)
|
13537
13545
|
});
|
13538
13546
|
}
|
13539
13547
|
edits() {
|
@@ -13560,13 +13568,13 @@ class CommentComponent {
|
|
13560
13568
|
});
|
13561
13569
|
}
|
13562
13570
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: AccountService }, { token: Popup }, { token: i2$3.Overlay }, { token: MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
13563
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentComponent, isStandalone: false, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <
|
13571
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentComponent, isStandalone: false, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n @if (!item.deleted) {\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete(true)\">{{'Delete'|translate}}</button>\r\n }\r\n @else {\r\n <button mat-menu-item (click)=\"delete(false)\">{{'Undo'|translate}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <mat-icon matRipple (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\">thumb_up_alt</mat-icon>\r\n <mat-icon matRipple (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\">thumb_down_alt</mat-icon>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2$3.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i12.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
|
13564
13572
|
}
|
13565
13573
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentComponent, decorators: [{
|
13566
13574
|
type: Component,
|
13567
13575
|
args: [{ standalone: false, selector: 'bizdoc-comment', host: {
|
13568
13576
|
class: 'comment'
|
13569
|
-
}, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <
|
13577
|
+
}, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n @if (!item.deleted) {\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete(true)\">{{'Delete'|translate}}</button>\r\n }\r\n @else {\r\n <button mat-menu-item (click)=\"delete(false)\">{{'Undo'|translate}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <mat-icon matRipple (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\">thumb_up_alt</mat-icon>\r\n <mat-icon matRipple (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\">thumb_down_alt</mat-icon>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n" }]
|
13570
13578
|
}], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: AccountService }, { type: Popup }, { type: i2$3.Overlay }, { type: MailboxService }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
13571
13579
|
type: Inject,
|
13572
13580
|
args: [BIZDOC_CONFIG]
|
@@ -13635,10 +13643,10 @@ class CommentsComponent {
|
|
13635
13643
|
});
|
13636
13644
|
this._messaging.commentDelete$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
13637
13645
|
const comment = this.model.comments.find(c => c.id === e.id);
|
13638
|
-
comment.deleted =
|
13646
|
+
comment.deleted = e.deleted;
|
13639
13647
|
this.change.emit();
|
13640
13648
|
});
|
13641
|
-
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.
|
13649
|
+
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
13642
13650
|
}
|
13643
13651
|
_formatUserElement(person) {
|
13644
13652
|
if (this._config.chat !== false)
|
@@ -13679,8 +13687,6 @@ class CommentsComponent {
|
|
13679
13687
|
}
|
13680
13688
|
return n;
|
13681
13689
|
}
|
13682
|
-
deleted(item) {
|
13683
|
-
}
|
13684
13690
|
reply(item) {
|
13685
13691
|
this._replyTo = item;
|
13686
13692
|
this._accounts.get(item.byId || item.userId).
|
@@ -13708,7 +13714,7 @@ class CommentsComponent {
|
|
13708
13714
|
onScroll(evt) {
|
13709
13715
|
if (evt.target.scrollTop === 0 && this.model.comments.length && !this._top) {
|
13710
13716
|
const time = this.model.comments.sort((c0, c1) => c0.time > c1.time ? 1 : -1)[0].time;
|
13711
|
-
this._mailbox.
|
13717
|
+
this._mailbox.listComments(this.model.documentId, time).subscribe(cs => {
|
13712
13718
|
if (cs.length === 0)
|
13713
13719
|
this._top = true;
|
13714
13720
|
else {
|
@@ -13736,7 +13742,7 @@ class CommentsComponent {
|
|
13736
13742
|
_viewed() {
|
13737
13743
|
const { viewed, comments, documentId } = this.model;
|
13738
13744
|
comments.length && (!viewed || comments.findIndex(c => c.time > viewed) > -1) &&
|
13739
|
-
this._mailbox.
|
13745
|
+
this._mailbox.markCommentsViewed(documentId).subscribe(e => {
|
13740
13746
|
this.model.viewed = e.time;
|
13741
13747
|
this.change.emit();
|
13742
13748
|
});
|
@@ -13772,13 +13778,13 @@ class CommentsComponent {
|
|
13772
13778
|
window.localStorage.setItem(id, this.input.text);
|
13773
13779
|
}
|
13774
13780
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentsComponent, deps: [{ token: AccountService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: MailboxService }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
13775
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentsComponent, isStandalone: false, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"
|
13781
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentsComponent, isStandalone: false, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}\n"], dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
13776
13782
|
}
|
13777
13783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentsComponent, decorators: [{
|
13778
13784
|
type: Component,
|
13779
13785
|
args: [{ standalone: false, selector: 'bizdoc-comments', host: {
|
13780
13786
|
class: 'comments'
|
13781
|
-
}, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"
|
13787
|
+
}, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}\n"] }]
|
13782
13788
|
}], ctorParameters: () => [{ type: AccountService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: MailboxService }, { type: HubService }, { type: undefined, decorators: [{
|
13783
13789
|
type: Inject,
|
13784
13790
|
args: [BIZDOC_CONFIG]
|
@@ -16713,7 +16719,7 @@ class DocumentResolver {
|
|
16713
16719
|
this._mailbox = _mailbox;
|
16714
16720
|
}
|
16715
16721
|
onResolve(params) {
|
16716
|
-
return this._mailbox.
|
16722
|
+
return this._mailbox.getDocumentInfo((params['id'].decodeId()));
|
16717
16723
|
}
|
16718
16724
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentResolver, deps: [{ token: MailboxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
16719
16725
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentResolver }); }
|
@@ -16917,7 +16923,7 @@ class ScheduleViewComponent {
|
|
16917
16923
|
}
|
16918
16924
|
this.starting = dates[0],
|
16919
16925
|
this.ending = dates[dates.length - 1];
|
16920
|
-
this._mailbox.
|
16926
|
+
this._mailbox.listEvents(this.starting, this.ending).subscribe({
|
16921
16927
|
next: r => {
|
16922
16928
|
const data = r.map(e => {
|
16923
16929
|
return {
|
@@ -16935,7 +16941,7 @@ class ScheduleViewComponent {
|
|
16935
16941
|
});
|
16936
16942
|
}
|
16937
16943
|
drag(_) {
|
16938
|
-
this._mailbox.
|
16944
|
+
this._mailbox.updateEvent(1, { starting: undefined }).subscribe({ error: () => this._sb.error() });
|
16939
16945
|
}
|
16940
16946
|
nav(e) {
|
16941
16947
|
switch (e.action) {
|
@@ -19627,11 +19633,11 @@ class QuickNotificationsComponent extends NotificationsComponentBase {
|
|
19627
19633
|
this._service.mute(item.id, mute);
|
19628
19634
|
}
|
19629
19635
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: QuickNotificationsComponent, deps: [{ token: PopupRef }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
|
19630
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"], dependencies: [{ kind: "directive", type: i9.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
19636
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\"\r\n matListItemMeta class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"], dependencies: [{ kind: "directive", type: i9.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2$5.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
19631
19637
|
}
|
19632
19638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: QuickNotificationsComponent, decorators: [{
|
19633
19639
|
type: Component,
|
19634
|
-
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"] }]
|
19640
|
+
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\"\r\n matListItemMeta class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"] }]
|
19635
19641
|
}], ctorParameters: () => [{ type: PopupRef }, { type: RouterImpl }] });
|
19636
19642
|
|
19637
19643
|
let DocumentListingComponent = class DocumentListingComponent {
|
@@ -19806,7 +19812,7 @@ class SearchService {
|
|
19806
19812
|
});
|
19807
19813
|
});
|
19808
19814
|
// senders from server
|
19809
|
-
this._mailbox.
|
19815
|
+
this._mailbox.listSenders(value).subscribe(r => r.forEach(s => results.push({
|
19810
19816
|
portal: new ComponentPortal(PathListingComponent),
|
19811
19817
|
model: {
|
19812
19818
|
path: ['mailbox', 'f', 'ib'],
|
@@ -19818,7 +19824,7 @@ class SearchService {
|
|
19818
19824
|
})));
|
19819
19825
|
// events
|
19820
19826
|
const today = new Date();
|
19821
|
-
this._mailbox.
|
19827
|
+
this._mailbox.listEvents(today, new Date(today.valueOf() + 604800000), value).
|
19822
19828
|
subscribe(r => r.forEach(e => results.push({
|
19823
19829
|
portal: new ComponentPortal(PathListingComponent),
|
19824
19830
|
model: {
|
@@ -22545,7 +22551,7 @@ class DocumentResolveService {
|
|
22545
22551
|
return of(item);
|
22546
22552
|
}
|
22547
22553
|
const id = route.paramMap.get('id').decodeId();
|
22548
|
-
return this._mailbox.
|
22554
|
+
return this._mailbox.getDocumentInfo(id).pipe(catchError$1(e => {
|
22549
22555
|
this._sb.error();
|
22550
22556
|
throw e;
|
22551
22557
|
}));
|
@@ -23772,7 +23778,7 @@ class FileInput {
|
|
23772
23778
|
const accept = item.isImage ? 'image/*' :
|
23773
23779
|
'.' + AttachmentInfo.fileExt(item.fileName) + ',' + item.contentType;
|
23774
23780
|
this._promptFileInput({ multiple: false, accept }).then(files => {
|
23775
|
-
this._mailbox.
|
23781
|
+
this._mailbox.checkInAttachment(this._model.id, this._model.version, item.id, files[0]).
|
23776
23782
|
subscribe({
|
23777
23783
|
next: a => {
|
23778
23784
|
delete item.checkedOut;
|
@@ -23790,7 +23796,7 @@ class FileInput {
|
|
23790
23796
|
});
|
23791
23797
|
}
|
23792
23798
|
checkOut(item) {
|
23793
|
-
this._mailbox.
|
23799
|
+
this._mailbox.checkOutAttachment(this._model.id, this._model.version, item.id).
|
23794
23800
|
subscribe(async () => {
|
23795
23801
|
item.checkedOut = true;
|
23796
23802
|
await this.download(item);
|
@@ -23900,7 +23906,7 @@ class FileInput {
|
|
23900
23906
|
// is checked out
|
23901
23907
|
if (item.checkedOut) {
|
23902
23908
|
// check in
|
23903
|
-
let observable = this._mailbox.
|
23909
|
+
let observable = this._mailbox.checkInAttachment(this._model.id, this._model.version, item.id, file).
|
23904
23910
|
pipe(
|
23905
23911
|
//TODO:
|
23906
23912
|
// reportProgress(item),
|
@@ -24575,7 +24581,7 @@ let ActionsWidget = class ActionsWidget {
|
|
24575
24581
|
}
|
24576
24582
|
_draw() {
|
24577
24583
|
this.chart?.destroy();
|
24578
|
-
this._loaded.pipe(takeUntil(this._destroy), filter(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24584
|
+
this._loaded.pipe(takeUntil(this._destroy), delay(200), filter(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24579
24585
|
background: 'transparent',
|
24580
24586
|
legendSettings: this.legendSettings, enableAnimation: true,
|
24581
24587
|
tooltip: this.tooltip,
|
@@ -25064,7 +25070,7 @@ let CubeDocumentsWidget = class CubeDocumentsWidget {
|
|
25064
25070
|
this.dataSource.sort = this.sort;
|
25065
25071
|
}
|
25066
25072
|
open(item) {
|
25067
|
-
this._mailbox.
|
25073
|
+
this._mailbox.getDocumentInfo(item.id).subscribe({
|
25068
25074
|
next: item => {
|
25069
25075
|
this._router.navigate(['mailbox/d', item.documentId.encodeId()], {
|
25070
25076
|
state: {
|
@@ -26966,7 +26972,7 @@ let TasksComponent = class TasksComponent {
|
|
26966
26972
|
*/
|
26967
26973
|
drag(evt) {
|
26968
26974
|
const { id, stateId, userId } = evt.data[0];
|
26969
|
-
this._mailbox.
|
26975
|
+
this._mailbox.setDocumentState(id, stateId, userId).
|
26970
26976
|
subscribe({ error: () => this._sb.error() });
|
26971
26977
|
}
|
26972
26978
|
/**
|
@@ -28522,7 +28528,7 @@ class QuickCommentComponent {
|
|
28522
28528
|
this._destroy = new Subject();
|
28523
28529
|
}
|
28524
28530
|
ngOnInit() {
|
28525
|
-
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.
|
28531
|
+
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
28526
28532
|
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
28527
28533
|
subscribe(e => {
|
28528
28534
|
this._accounts.get(e.userId).subscribe(u => {
|
@@ -28918,7 +28924,7 @@ let TimelineViewComponent = class TimelineViewComponent {
|
|
28918
28924
|
_prepare() {
|
28919
28925
|
const observables = [], tasks = [];
|
28920
28926
|
let i = 0;
|
28921
|
-
//const observable = this._mailbox.
|
28927
|
+
//const observable = this._mailbox.listTimeline(model.documentId).pipe(tap(t => {
|
28922
28928
|
//}))
|
28923
28929
|
this.model.log.forEach(l => {
|
28924
28930
|
let task;
|
@@ -30362,14 +30368,14 @@ let BoxFormComponent = class BoxFormComponent {
|
|
30362
30368
|
group.addControl(field.name, instance.control);
|
30363
30369
|
}
|
30364
30370
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BoxFormComponent, deps: [{ token: i1$2.FormBuilder }, { token: FormRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
30365
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BoxFormComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: HelpTipComponent, selector: "bizdoc-help-tip", inputs: ["name"] }, { kind: "component", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: ["form", "mode", "model", "metadata"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }] }); }
|
30371
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BoxFormComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: HelpTipComponent, selector: "bizdoc-help-tip", inputs: ["name"] }, { kind: "component", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: ["form", "mode", "model", "metadata"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }] }); }
|
30366
30372
|
};
|
30367
30373
|
BoxFormComponent = __decorate([
|
30368
30374
|
BizDoc({ selector: 'bizdoc-box-form' })
|
30369
30375
|
], BoxFormComponent);
|
30370
30376
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BoxFormComponent, decorators: [{
|
30371
30377
|
type: Component,
|
30372
|
-
args: [{ standalone: false, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"] }]
|
30378
|
+
args: [{ standalone: false, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"] }]
|
30373
30379
|
}], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: FormRef }] });
|
30374
30380
|
|
30375
30381
|
let PerformanceWindComponent = class PerformanceWindComponent {
|