@bizdoc/core 3.6.8 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bizdoc-schema.json +2 -1
- package/fesm2022/bizdoc-core.mjs +426 -430
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/index.d.ts +191 -198
- package/package.json +1 -1
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { InjectionToken, Inject, Injectable, Pipe, Directive, Component, Injector, ElementRef, HostListener, TemplateRef, ViewContainerRef, ViewChild, Input, HostBinding, Output,
|
3
|
-
import { Subject, firstValueFrom, of, forkJoin, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1,
|
4
|
-
import { map, tap, catchError, shareReplay, filter, startWith, takeUntil, debounceTime, switchMap, first, take, finalize, delay } from 'rxjs/operators';
|
2
|
+
import { InjectionToken, Inject, Injectable, Pipe, Directive, Component, Injector, ElementRef, HostListener, TemplateRef, ViewContainerRef, ViewChild, Input, Optional, HostBinding, Output, Self, EventEmitter, NgModule, ViewChildren, inject, Host, SkipSelf, ContentChild, ContentChildren, provideAppInitializer } from '@angular/core';
|
3
|
+
import { Subject, firstValueFrom, of, forkJoin, filter, map as map$1, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1, Observable, 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, catchError, shareReplay, filter as filter$1, startWith, takeUntil, debounceTime, switchMap, 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';
|
@@ -3326,6 +3326,156 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
3326
3326
|
args: [{ providedIn: "root" }]
|
3327
3327
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: HubService }] });
|
3328
3328
|
|
3329
|
+
const QUERY_CHAR = ':', PATH_CHAR = ';', ARG_CHAR = '&', PANE_CHAR = '~';
|
3330
|
+
const PANES_DATA = new InjectionToken('panes');
|
3331
|
+
class NavigationBase {
|
3332
|
+
preventDefault() {
|
3333
|
+
this._preventDefault = true;
|
3334
|
+
}
|
3335
|
+
}
|
3336
|
+
class CollapseNavigation extends NavigationBase {
|
3337
|
+
}
|
3338
|
+
class BackNavigation extends NavigationBase {
|
3339
|
+
}
|
3340
|
+
class NavigationPaneBase extends NavigationBase {
|
3341
|
+
constructor(_pane) {
|
3342
|
+
super();
|
3343
|
+
this._pane = _pane;
|
3344
|
+
}
|
3345
|
+
get pane() {
|
3346
|
+
return this._pane;
|
3347
|
+
}
|
3348
|
+
}
|
3349
|
+
class NavigationStart extends NavigationPaneBase {
|
3350
|
+
}
|
3351
|
+
/** pane fucus change */
|
3352
|
+
class NavigationFocus extends NavigationPaneBase {
|
3353
|
+
}
|
3354
|
+
class NavigationEnd extends NavigationPaneBase {
|
3355
|
+
}
|
3356
|
+
class NavigationMode extends NavigationPaneBase {
|
3357
|
+
constructor(mode, pane) {
|
3358
|
+
super(pane);
|
3359
|
+
this.mode = mode;
|
3360
|
+
}
|
3361
|
+
}
|
3362
|
+
class NavigationExpand extends NavigationPaneBase {
|
3363
|
+
constructor(expended, pane) {
|
3364
|
+
super(pane);
|
3365
|
+
this.expended = expended;
|
3366
|
+
}
|
3367
|
+
}
|
3368
|
+
class NavigationResize extends NavigationPaneBase {
|
3369
|
+
constructor(dimentions, pane) {
|
3370
|
+
super(pane);
|
3371
|
+
this.dimentions = dimentions;
|
3372
|
+
}
|
3373
|
+
}
|
3374
|
+
class NavigationClose extends NavigationPaneBase {
|
3375
|
+
}
|
3376
|
+
class ParamNavigation extends NavigationPaneBase {
|
3377
|
+
constructor(params, pane) {
|
3378
|
+
super(pane);
|
3379
|
+
this.params = params;
|
3380
|
+
}
|
3381
|
+
}
|
3382
|
+
class QueryParamNavigation extends NavigationPaneBase {
|
3383
|
+
constructor(queryParams, pane) {
|
3384
|
+
super(pane);
|
3385
|
+
this.queryParams = queryParams;
|
3386
|
+
}
|
3387
|
+
}
|
3388
|
+
/** */
|
3389
|
+
class PaneRef {
|
3390
|
+
get expandable() { return this._expandable; }
|
3391
|
+
get injector() { return this._injector; }
|
3392
|
+
get expanded() { return this._expanded; }
|
3393
|
+
get fullPath() { return (this._path || '') + (this._queryString ? (QUERY_CHAR + this._queryString) : ''); }
|
3394
|
+
get instance() { return this._instance; }
|
3395
|
+
get data() { return this._data$.value; }
|
3396
|
+
get params() { return this._params$.value; }
|
3397
|
+
get queryString() { return this._queryString; }
|
3398
|
+
get queryParams() { return this._queryParams$.value; }
|
3399
|
+
paramsChange() { return this._params$.asObservable(); }
|
3400
|
+
queryParamsChange() { return this._queryParams$.asObservable(); }
|
3401
|
+
dataChange() { return this._data$.asObservable(); }
|
3402
|
+
resized() { return this._events$.pipe(filter(e => e instanceof NavigationResize)); }
|
3403
|
+
closeing() { return this._events$.pipe(filter(e => e instanceof NavigationClose)); }
|
3404
|
+
closed() { return this._events$.pipe(filter(e => e instanceof NavigationClose), map$1(() => this._value)); }
|
3405
|
+
expandedChange() { return this._events$.pipe(filter(e => e instanceof NavigationExpand), map$1(() => this.expanded)); }
|
3406
|
+
get path() { return this._path; }
|
3407
|
+
;
|
3408
|
+
get mode() { return this._mode; }
|
3409
|
+
;
|
3410
|
+
get parent() { return this._options.parent; }
|
3411
|
+
;
|
3412
|
+
get stretchable() { return this._stretchable === true; }
|
3413
|
+
;
|
3414
|
+
set stretchable(val) { this._stretchable = val; }
|
3415
|
+
get dialog() { return this._options.dialog; }
|
3416
|
+
;
|
3417
|
+
get dismissable() { return this._options.dismissable; }
|
3418
|
+
;
|
3419
|
+
get route() { return this._options.route; }
|
3420
|
+
;
|
3421
|
+
constructor(component, injector, id, _options) {
|
3422
|
+
this.id = id;
|
3423
|
+
this._options = _options;
|
3424
|
+
this._command$ = new Subject();
|
3425
|
+
/** */
|
3426
|
+
this._data$ = new BehaviorSubject({});
|
3427
|
+
this._params$ = new BehaviorSubject({});
|
3428
|
+
this._queryParams$ = new BehaviorSubject({});
|
3429
|
+
this._events$ = new Subject();
|
3430
|
+
const { stretchable, mode, data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, expanded, expandable } = _options;
|
3431
|
+
this._path = path;
|
3432
|
+
this._mode = mode;
|
3433
|
+
this._stretchable = stretchable;
|
3434
|
+
this._expanded = expanded;
|
3435
|
+
this._queryString = queryString;
|
3436
|
+
this._expandable = expandable !== false;
|
3437
|
+
this._injector = Injector.create({
|
3438
|
+
providers: [
|
3439
|
+
{ provide: PaneRef, useValue: this }
|
3440
|
+
], parent: injector
|
3441
|
+
});
|
3442
|
+
this._portal = new ComponentPortal(component, null, this._injector);
|
3443
|
+
this.title = title;
|
3444
|
+
this.group = group;
|
3445
|
+
this.guide = guide;
|
3446
|
+
this.help = help;
|
3447
|
+
this.icon = icon;
|
3448
|
+
this.animation = animation;
|
3449
|
+
data && this._data$.next(data);
|
3450
|
+
params && this._params$.next(params);
|
3451
|
+
queryParams && this._queryParams$.next(queryParams);
|
3452
|
+
}
|
3453
|
+
decendentOf(pane) {
|
3454
|
+
return this.parent === pane; //||
|
3455
|
+
// (this.path && pane.path && this.path.startsWith(pane.path));
|
3456
|
+
}
|
3457
|
+
recycle() {
|
3458
|
+
this._command$.next('recycle');
|
3459
|
+
}
|
3460
|
+
focus() {
|
3461
|
+
this._command$.next('focus');
|
3462
|
+
}
|
3463
|
+
close(value) {
|
3464
|
+
this._value = value;
|
3465
|
+
this._command$.next('close');
|
3466
|
+
}
|
3467
|
+
expand() {
|
3468
|
+
this._command$.next('expand');
|
3469
|
+
}
|
3470
|
+
_destroy() {
|
3471
|
+
this._command$.complete();
|
3472
|
+
this._data$.complete();
|
3473
|
+
this._params$.complete();
|
3474
|
+
this._queryParams$.complete();
|
3475
|
+
this._events$.complete();
|
3476
|
+
}
|
3477
|
+
}
|
3478
|
+
|
3329
3479
|
class PopupRef {
|
3330
3480
|
constructor(_data) {
|
3331
3481
|
this._data = _data;
|
@@ -3511,7 +3661,7 @@ class Popup {
|
|
3511
3661
|
const portal = new ComponentPortal(PopupComponent, null, popupInjector);
|
3512
3662
|
oRef.attach(portal);
|
3513
3663
|
pRef._closed.subscribe(() => oRef.detach());
|
3514
|
-
oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')).
|
3664
|
+
oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape')).
|
3515
3665
|
subscribe(e => {
|
3516
3666
|
e.stopPropagation();
|
3517
3667
|
pRef._closed.next(null);
|
@@ -3633,7 +3783,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
3633
3783
|
const OPTION_PANEL = new InjectionToken('options');
|
3634
3784
|
/** options component*/
|
3635
3785
|
class OptionsComponent {
|
3636
|
-
constructor(_ps, _guide, _hub, _dialog, _fb, _accounts, _sb, _session, _popup, config) {
|
3786
|
+
constructor(_ps, _guide, _hub, _dialog, _fb, _accounts, _sb, paneRef, _session, _popup, config) {
|
3637
3787
|
this._ps = _ps;
|
3638
3788
|
this._guide = _guide;
|
3639
3789
|
this._hub = _hub;
|
@@ -3712,6 +3862,11 @@ class OptionsComponent {
|
|
3712
3862
|
if (!this._session.isImpersonating) {
|
3713
3863
|
this.guidesCount = this.guides.filter(w => w.mode === 'Eager').length || null;
|
3714
3864
|
}
|
3865
|
+
if (paneRef) {
|
3866
|
+
const section = paneRef.queryParams['section'];
|
3867
|
+
if (section)
|
3868
|
+
this.sectionIndex = 2;
|
3869
|
+
}
|
3715
3870
|
this.languages = this._session.languages;
|
3716
3871
|
this.currentLanguage = this._session.language;
|
3717
3872
|
this.available = this._session.availabilityState;
|
@@ -3794,12 +3949,12 @@ class OptionsComponent {
|
|
3794
3949
|
});
|
3795
3950
|
outOfOffice.controls.from.valueChanges.pipe(takeUntil(this._destroy)).
|
3796
3951
|
subscribe(from => this._toggle(outOfOffice, from !== null, 'to'));
|
3797
|
-
this.gusers$ = this.grantUserIds.valueChanges.pipe(takeUntil(this._destroy), filter(v => isString(v)), debounceTime(100), switchMap(v => this._accounts.findAll(v)), map(r => {
|
3952
|
+
this.gusers$ = this.grantUserIds.valueChanges.pipe(takeUntil(this._destroy), filter$1(v => isString(v)), debounceTime(100), switchMap(v => this._accounts.findAll(v)), map(r => {
|
3798
3953
|
const exclude = grantAccess.value.users?.slice() || [];
|
3799
3954
|
exclude.push(this._session.profile.userId);
|
3800
3955
|
return r.filter(u => exclude.indexOf(u.id) < 0);
|
3801
3956
|
}));
|
3802
|
-
this.susers$ = this.oooId.valueChanges.pipe(takeUntil(this._destroy), tap(v => !v && outOfOffice.controls.substitueId.setValue(null)), filter(v => isString(v) && v.length > 0), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this._session.profile.userId)));
|
3957
|
+
this.susers$ = this.oooId.valueChanges.pipe(takeUntil(this._destroy), tap(v => !v && outOfOffice.controls.substitueId.setValue(null)), filter$1(v => isString(v) && v.length > 0), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this._session.profile.userId)));
|
3803
3958
|
if (this.options.outOfOffice.substitueId)
|
3804
3959
|
this._accounts.get(this.options.outOfOffice.substitueId).subscribe(u => this.oooId.setValue(u, { emitEvent: false }));
|
3805
3960
|
// auto save
|
@@ -3888,13 +4043,15 @@ class OptionsComponent {
|
|
3888
4043
|
this._destroy.next();
|
3889
4044
|
this._destroy.complete();
|
3890
4045
|
}
|
3891
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", 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 }); }
|
4046
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OptionsComponent, deps: [{ token: PromptService }, { token: GuideService }, { token: HubService }, { token: i2$2.MatDialog }, { token: i1$2.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: PaneRef, optional: true }, { token: SessionService }, { token: Popup }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
3892
4047
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", 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] }); }
|
3893
4048
|
}
|
3894
4049
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OptionsComponent, decorators: [{
|
3895
4050
|
type: Component,
|
3896
4051
|
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"] }]
|
3897
|
-
}], ctorParameters: () => [{ type: PromptService }, { type: GuideService }, { type: HubService }, { type: i2$2.MatDialog }, { type: i1$2.FormBuilder }, { type: AccountService }, { type: PromptService }, { type:
|
4052
|
+
}], ctorParameters: () => [{ type: PromptService }, { type: GuideService }, { type: HubService }, { type: i2$2.MatDialog }, { type: i1$2.FormBuilder }, { type: AccountService }, { type: PromptService }, { type: PaneRef, decorators: [{
|
4053
|
+
type: Optional
|
4054
|
+
}] }, { type: SessionService }, { type: Popup }, { type: undefined, decorators: [{
|
3898
4055
|
type: Inject,
|
3899
4056
|
args: [BIZDOC_CONFIG]
|
3900
4057
|
}] }], propDecorators: { keyboard: [{
|
@@ -4089,7 +4246,7 @@ class ColorPicker {
|
|
4089
4246
|
hasBackdrop: true,
|
4090
4247
|
backdropClass: 'cdk-overlay-transparent-backdrop'
|
4091
4248
|
});
|
4092
|
-
merge(ref.backdropClick(), ref.keydownEvents().pipe(filter(k => k.key === 'Escape'))).subscribe(() => this.close());
|
4249
|
+
merge(ref.backdropClick(), ref.keydownEvents().pipe(filter$1(k => k.key === 'Escape'))).subscribe(() => this.close());
|
4093
4250
|
return ref;
|
4094
4251
|
}
|
4095
4252
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ColorPicker, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i2$3.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i7$2.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
@@ -5924,7 +6081,7 @@ class TypeAutocomplete {
|
|
5924
6081
|
if (!this._configuration)
|
5925
6082
|
throw `${this._type} is not a known type.`;
|
5926
6083
|
this._column = this._configuration.columns ? this._configuration.columns.find(c => !c.flags || c.flags.indexOf('Key') < 0) : undefined;
|
5927
|
-
this._items$ = this._control.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => isString(v) && v.length > this._minimumChars), switchMap(v => this._service.all(this._type, v)));
|
6084
|
+
this._items$ = this._control.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter$1(v => isString(v) && v.length > this._minimumChars), switchMap(v => this._service.all(this._type, v)));
|
5928
6085
|
this._control.statusChanges.pipe(takeUntil(this._destroy)).subscribe(() => {
|
5929
6086
|
this.errorState = this._control.errors != null;
|
5930
6087
|
});
|
@@ -6876,7 +7033,7 @@ class DesignerCubeFilterComponent {
|
|
6876
7033
|
}
|
6877
7034
|
const ctrl = this._fb.control(null);
|
6878
7035
|
this.form.addControl(a.name, ctrl, { emitEvent: false });
|
6879
|
-
ctrl.valueChanges.pipe(filter(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
|
7036
|
+
ctrl.valueChanges.pipe(filter$1(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
|
6880
7037
|
if (this._decendents[a.name])
|
6881
7038
|
for (let axis of this._decendents[a.name]) {
|
6882
7039
|
let deps = {};
|
@@ -7822,156 +7979,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
7822
7979
|
}]
|
7823
7980
|
}] });
|
7824
7981
|
|
7825
|
-
const QUERY_CHAR = ':', PATH_CHAR = ';', ARG_CHAR = '&', PANE_CHAR = '~';
|
7826
|
-
const PANES_DATA = new InjectionToken('panes');
|
7827
|
-
class NavigationBase {
|
7828
|
-
preventDefault() {
|
7829
|
-
this._preventDefault = true;
|
7830
|
-
}
|
7831
|
-
}
|
7832
|
-
class CollapseNavigation extends NavigationBase {
|
7833
|
-
}
|
7834
|
-
class BackNavigation extends NavigationBase {
|
7835
|
-
}
|
7836
|
-
class NavigationPaneBase extends NavigationBase {
|
7837
|
-
constructor(_pane) {
|
7838
|
-
super();
|
7839
|
-
this._pane = _pane;
|
7840
|
-
}
|
7841
|
-
get pane() {
|
7842
|
-
return this._pane;
|
7843
|
-
}
|
7844
|
-
}
|
7845
|
-
class NavigationStart extends NavigationPaneBase {
|
7846
|
-
}
|
7847
|
-
/** pane fucus change */
|
7848
|
-
class NavigationFocus extends NavigationPaneBase {
|
7849
|
-
}
|
7850
|
-
class NavigationEnd extends NavigationPaneBase {
|
7851
|
-
}
|
7852
|
-
class NavigationMode extends NavigationPaneBase {
|
7853
|
-
constructor(mode, pane) {
|
7854
|
-
super(pane);
|
7855
|
-
this.mode = mode;
|
7856
|
-
}
|
7857
|
-
}
|
7858
|
-
class NavigationExpand extends NavigationPaneBase {
|
7859
|
-
constructor(expended, pane) {
|
7860
|
-
super(pane);
|
7861
|
-
this.expended = expended;
|
7862
|
-
}
|
7863
|
-
}
|
7864
|
-
class NavigationResize extends NavigationPaneBase {
|
7865
|
-
constructor(dimentions, pane) {
|
7866
|
-
super(pane);
|
7867
|
-
this.dimentions = dimentions;
|
7868
|
-
}
|
7869
|
-
}
|
7870
|
-
class NavigationClose extends NavigationPaneBase {
|
7871
|
-
}
|
7872
|
-
class ParamNavigation extends NavigationPaneBase {
|
7873
|
-
constructor(params, pane) {
|
7874
|
-
super(pane);
|
7875
|
-
this.params = params;
|
7876
|
-
}
|
7877
|
-
}
|
7878
|
-
class QueryParamNavigation extends NavigationPaneBase {
|
7879
|
-
constructor(queryParams, pane) {
|
7880
|
-
super(pane);
|
7881
|
-
this.queryParams = queryParams;
|
7882
|
-
}
|
7883
|
-
}
|
7884
|
-
/** */
|
7885
|
-
class PaneRef {
|
7886
|
-
get expandable() { return this._expandable; }
|
7887
|
-
get injector() { return this._injector; }
|
7888
|
-
get expanded() { return this._expanded; }
|
7889
|
-
get fullPath() { return (this._path || '') + (this._queryString ? (QUERY_CHAR + this._queryString) : ''); }
|
7890
|
-
get instance() { return this._instance; }
|
7891
|
-
get data() { return this._data$.value; }
|
7892
|
-
get params() { return this._params$.value; }
|
7893
|
-
get queryString() { return this._queryString; }
|
7894
|
-
get queryParams() { return this._queryParams$.value; }
|
7895
|
-
paramsChange() { return this._params$.asObservable(); }
|
7896
|
-
queryParamsChange() { return this._queryParams$.asObservable(); }
|
7897
|
-
dataChange() { return this._data$.asObservable(); }
|
7898
|
-
resized() { return this._events$.pipe(filter$1(e => e instanceof NavigationResize)); }
|
7899
|
-
closeing() { return this._events$.pipe(filter$1(e => e instanceof NavigationClose)); }
|
7900
|
-
closed() { return this._events$.pipe(filter$1(e => e instanceof NavigationClose), map$1(() => this._value)); }
|
7901
|
-
expandedChange() { return this._events$.pipe(filter$1(e => e instanceof NavigationExpand), map$1(() => this.expanded)); }
|
7902
|
-
get path() { return this._path; }
|
7903
|
-
;
|
7904
|
-
get mode() { return this._mode; }
|
7905
|
-
;
|
7906
|
-
get parent() { return this._options.parent; }
|
7907
|
-
;
|
7908
|
-
get stretchable() { return this._stretchable === true; }
|
7909
|
-
;
|
7910
|
-
set stretchable(val) { this._stretchable = val; }
|
7911
|
-
get dialog() { return this._options.dialog; }
|
7912
|
-
;
|
7913
|
-
get dismissable() { return this._options.dismissable; }
|
7914
|
-
;
|
7915
|
-
get route() { return this._options.route; }
|
7916
|
-
;
|
7917
|
-
constructor(component, injector, id, _options) {
|
7918
|
-
this.id = id;
|
7919
|
-
this._options = _options;
|
7920
|
-
this._command$ = new Subject();
|
7921
|
-
/** */
|
7922
|
-
this._data$ = new BehaviorSubject({});
|
7923
|
-
this._params$ = new BehaviorSubject({});
|
7924
|
-
this._queryParams$ = new BehaviorSubject({});
|
7925
|
-
this._events$ = new Subject();
|
7926
|
-
const { stretchable, mode, data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, expanded, expandable } = _options;
|
7927
|
-
this._path = path;
|
7928
|
-
this._mode = mode;
|
7929
|
-
this._stretchable = stretchable;
|
7930
|
-
this._expanded = expanded;
|
7931
|
-
this._queryString = queryString;
|
7932
|
-
this._expandable = expandable !== false;
|
7933
|
-
this._injector = Injector.create({
|
7934
|
-
providers: [
|
7935
|
-
{ provide: PaneRef, useValue: this }
|
7936
|
-
], parent: injector
|
7937
|
-
});
|
7938
|
-
this._portal = new ComponentPortal(component, null, this._injector);
|
7939
|
-
this.title = title;
|
7940
|
-
this.group = group;
|
7941
|
-
this.guide = guide;
|
7942
|
-
this.help = help;
|
7943
|
-
this.icon = icon;
|
7944
|
-
this.animation = animation;
|
7945
|
-
data && this._data$.next(data);
|
7946
|
-
params && this._params$.next(params);
|
7947
|
-
queryParams && this._queryParams$.next(queryParams);
|
7948
|
-
}
|
7949
|
-
decendentOf(pane) {
|
7950
|
-
return this.parent === pane; //||
|
7951
|
-
// (this.path && pane.path && this.path.startsWith(pane.path));
|
7952
|
-
}
|
7953
|
-
recycle() {
|
7954
|
-
this._command$.next('recycle');
|
7955
|
-
}
|
7956
|
-
focus() {
|
7957
|
-
this._command$.next('focus');
|
7958
|
-
}
|
7959
|
-
close(value) {
|
7960
|
-
this._value = value;
|
7961
|
-
this._command$.next('close');
|
7962
|
-
}
|
7963
|
-
expand() {
|
7964
|
-
this._command$.next('expand');
|
7965
|
-
}
|
7966
|
-
_destroy() {
|
7967
|
-
this._command$.complete();
|
7968
|
-
this._data$.complete();
|
7969
|
-
this._params$.complete();
|
7970
|
-
this._queryParams$.complete();
|
7971
|
-
this._events$.complete();
|
7972
|
-
}
|
7973
|
-
}
|
7974
|
-
|
7975
7982
|
/** filter component*/
|
7976
7983
|
class CubeFilterComponent {
|
7977
7984
|
ngOnInit() {
|
@@ -7997,7 +8004,7 @@ class CubeFilterComponent {
|
|
7997
8004
|
}
|
7998
8005
|
}
|
7999
8006
|
const ctrl = controls[a.name] = this._fb.control(this.axes[a.name]);
|
8000
|
-
ctrl.valueChanges.pipe(filter(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
|
8007
|
+
ctrl.valueChanges.pipe(filter$1(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
|
8001
8008
|
if (v === null || v === undefined || (isArray(v) && !v.length))
|
8002
8009
|
delete this.axes[a.name];
|
8003
8010
|
else
|
@@ -8132,7 +8139,7 @@ class BrowseFilterComponent {
|
|
8132
8139
|
this.filters = { axes, cube };
|
8133
8140
|
}
|
8134
8141
|
this.senders$ = this.sendername.valueChanges.
|
8135
|
-
pipe(takeUntil(this._destroy), debounceTime(250), filter((v) => isString(v)), switchMap((v) => this._mailbox.listSenders(v)));
|
8142
|
+
pipe(takeUntil(this._destroy), debounceTime(250), filter$1((v) => isString(v)), switchMap((v) => this._mailbox.listSenders(v)));
|
8136
8143
|
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(FILTER_DEBOUNCE)).
|
8137
8144
|
subscribe(v => this.valuesChange.emit(cleanup(v)));
|
8138
8145
|
this.form.patchValue(this.values, { emitEvent: false });
|
@@ -8220,7 +8227,7 @@ class PanesRouter {
|
|
8220
8227
|
}
|
8221
8228
|
navigate(commands, options) {
|
8222
8229
|
return new Promise((resolve, reject) => {
|
8223
|
-
this._events$.pipe(filter(e => e instanceof NavigationStart), first()).subscribe({
|
8230
|
+
this._events$.pipe(filter$1(e => e instanceof NavigationStart), first()).subscribe({
|
8224
8231
|
next: e => resolve(e.pane),
|
8225
8232
|
error: reject
|
8226
8233
|
});
|
@@ -8366,7 +8373,7 @@ class ChatInfo {
|
|
8366
8373
|
*/
|
8367
8374
|
format(person) {
|
8368
8375
|
if (this._config !== false)
|
8369
|
-
return `<a data-
|
8376
|
+
return `<a data-userid="${person.id}">${person.name}</a>`;
|
8370
8377
|
return person.name;
|
8371
8378
|
}
|
8372
8379
|
/**
|
@@ -8466,7 +8473,7 @@ class IdentityName {
|
|
8466
8473
|
* @param e
|
8467
8474
|
*/
|
8468
8475
|
chat(e) {
|
8469
|
-
const userId = e.target.getAttribute('data-
|
8476
|
+
const userId = e.target.getAttribute('data-userid');
|
8470
8477
|
userId &&
|
8471
8478
|
this._chat.open(userId, { mode: this.chating });
|
8472
8479
|
}
|
@@ -8547,13 +8554,13 @@ class AttachmentPreview {
|
|
8547
8554
|
}
|
8548
8555
|
close() {
|
8549
8556
|
// Listen for animation 'start' events
|
8550
|
-
this.animationStateChanged.pipe(filter(event => event.phaseName === 'start'), take(1)).subscribe(() => {
|
8557
|
+
this.animationStateChanged.pipe(filter$1(event => event.phaseName === 'start'), take(1)).subscribe(() => {
|
8551
8558
|
this._beforeClose.next();
|
8552
8559
|
this._beforeClose.complete();
|
8553
8560
|
this._overlayRef.detachBackdrop();
|
8554
8561
|
});
|
8555
8562
|
// Listen for animation 'done' events
|
8556
|
-
this.animationStateChanged.pipe(filter(event => event.phaseName === 'done' && event.toState === 'leave'), take(1)).subscribe(() => {
|
8563
|
+
this.animationStateChanged.pipe(filter$1(event => event.phaseName === 'done' && event.toState === 'leave'), take(1)).subscribe(() => {
|
8557
8564
|
this._overlayRef.dispose();
|
8558
8565
|
this._afterClosed.next();
|
8559
8566
|
this._afterClosed.complete();
|
@@ -8984,7 +8991,7 @@ class ExpandedItemComponent {
|
|
8984
8991
|
});
|
8985
8992
|
this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => (e.id === this.model.id) &&
|
8986
8993
|
this._refresh());
|
8987
|
-
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(() => {
|
8994
|
+
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(() => {
|
8988
8995
|
this.typing = true;
|
8989
8996
|
clearTimeout(this._typingTask);
|
8990
8997
|
this._typingTask = setTimeout(() => this.typing = false, TYPING_HINT_TIME);
|
@@ -9153,7 +9160,7 @@ class ExpandedItemComponent {
|
|
9153
9160
|
* @param e
|
9154
9161
|
*/
|
9155
9162
|
chat(e) {
|
9156
|
-
const userId = e.target.getAttribute('data-
|
9163
|
+
const userId = e.target.getAttribute('data-userid');
|
9157
9164
|
userId &&
|
9158
9165
|
this._chat.open(userId);
|
9159
9166
|
}
|
@@ -9248,7 +9255,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
9248
9255
|
type: Output
|
9249
9256
|
}] } });
|
9250
9257
|
|
9251
|
-
const TAKE = 200, SIZE = 20, HEADER_COLUMN_NAMES = ['number', 'subject', 'value', 'owner', 'sender', 'received', 'receivedAgo', 'replied', 'state', 'issued', 'issuedAgo'];
|
9258
|
+
const TAKE = 200, SIZE = 20, HEADER_COLUMN_NAMES = ['number', 'subject', 'value', 'owner', 'sender', 'received', 'receivedAgo', 'replied', 'repliedAgo', 'state', 'issued', 'issuedAgo'];
|
9252
9259
|
/** browse items component*/
|
9253
9260
|
class BrowseItemsComponent {
|
9254
9261
|
/** browse ctor */
|
@@ -9266,10 +9273,10 @@ class BrowseItemsComponent {
|
|
9266
9273
|
this.onopen = new EventEmitter();
|
9267
9274
|
this.onInsights = new EventEmitter();
|
9268
9275
|
this.CALENDAR_SPEC = {
|
9269
|
-
|
9270
|
-
|
9271
|
-
sameDay: this._translate.get('
|
9272
|
-
sameElse: 'MMM D,
|
9276
|
+
lastWeek: 'dddd HH:mm',
|
9277
|
+
lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
|
9278
|
+
sameDay: this._translate.get('TodayAt', 'HH:mm'),
|
9279
|
+
sameElse: 'MMM D, YYYY'
|
9273
9280
|
};
|
9274
9281
|
this.sharedActions = [];
|
9275
9282
|
this.dragDisabled = true;
|
@@ -9674,7 +9681,7 @@ class BrowseItemsComponent {
|
|
9674
9681
|
this._destroy.complete();
|
9675
9682
|
}
|
9676
9683
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: BrowseItemsComponent, deps: [{ token: MailboxService }, { token: AccountService }, { token: CubeService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: i0.ChangeDetectorRef }, { token: RouterImpl }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
9677
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: BrowseItemsComponent, isStandalone: false, selector: "bizdoc-browse-items", inputs: { folderId: "folderId", filterType: "filterType", filters: "filters" }, outputs: { onopen: "open", onInsights: "insights" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amDateFormat: 'lll'\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar : null : CALENDAR_SPEC }} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amDateFormat: 'lll'\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar : null : CALENDAR_SPEC}}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\" (sent)=\"onActionTaken($event)\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$8.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2$8.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i12.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { 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: 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: "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: "component", type: CheckboxComponent, selector: "bizdoc-checkbox", inputs: ["checked", "color", "icon"] }, { kind: "directive", type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: ["model"], outputs: ["sent"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.DecimalPipe, name: "number" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
|
9684
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: BrowseItemsComponent, isStandalone: false, selector: "bizdoc-browse-items", inputs: { folderId: "folderId", filterType: "filterType", filters: "filters" }, outputs: { onopen: "open", onInsights: "insights" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amDateFormat: 'lll'\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"repliedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.replied | amDateFormat: 'lll'\"> {{item.replied | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar : null : CALENDAR_SPEC }} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amDateFormat: 'lll'\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar : null : CALENDAR_SPEC}}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\" (sent)=\"onActionTaken($event)\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$8.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2$8.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i12.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { 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: 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: "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: "component", type: CheckboxComponent, selector: "bizdoc-checkbox", inputs: ["checked", "color", "icon"] }, { kind: "directive", type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: ["model"], outputs: ["sent"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.DecimalPipe, name: "number" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
|
9678
9685
|
listAnimation,
|
9679
9686
|
itemAnimation,
|
9680
9687
|
expandListItemAnimation,
|
@@ -9688,7 +9695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
9688
9695
|
itemAnimation,
|
9689
9696
|
expandListItemAnimation,
|
9690
9697
|
listItemUpdatedAnimation
|
9691
|
-
], template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amDateFormat: 'lll'\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar : null : CALENDAR_SPEC }} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amDateFormat: 'lll'\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar : null : CALENDAR_SPEC}}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\" (sent)=\"onActionTaken($event)\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"] }]
|
9698
|
+
], template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amDateFormat: 'lll'\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar : null : CALENDAR_SPEC}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"repliedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.replied | amDateFormat: 'lll'\"> {{item.replied | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar : null : CALENDAR_SPEC }} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amDateFormat: 'lll'\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar : null : CALENDAR_SPEC}}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\" (sent)=\"onActionTaken($event)\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"] }]
|
9692
9699
|
}], ctorParameters: () => [{ type: MailboxService }, { type: AccountService }, { type: CubeService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }, { type: RouterImpl }, { type: HubService }, { type: undefined, decorators: [{
|
9693
9700
|
type: Inject,
|
9694
9701
|
args: [BIZDOC_CONFIG]
|
@@ -10578,7 +10585,7 @@ class BrowsePaneComponent {
|
|
10578
10585
|
this._pane.title = this._translate.get('Tags');
|
10579
10586
|
this.filters = p;
|
10580
10587
|
});
|
10581
|
-
this._router.events.pipe(takeUntil(this._destroy), filter(e => (e instanceof ParamNavigation || e instanceof NavigationStart || e instanceof NavigationFocus)
|
10588
|
+
this._router.events.pipe(takeUntil(this._destroy), filter$1(e => (e instanceof ParamNavigation || e instanceof NavigationStart || e instanceof NavigationFocus)
|
10582
10589
|
&& e.pane._portal.component === ComposePaneComponent)).
|
10583
10590
|
subscribe(e => this.items.select(e.pane.data['item'].id));
|
10584
10591
|
this.contains.valueChanges.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(v => this.filters = { ...this.filters, contains: v });
|
@@ -12847,7 +12854,7 @@ class AvatarComponent {
|
|
12847
12854
|
}
|
12848
12855
|
!this.dense && this._changeMode(this.person.mode);
|
12849
12856
|
}
|
12850
|
-
this._hub.profileChange$.pipe(takeUntil$1(this._destroy), filter
|
12857
|
+
this._hub.profileChange$.pipe(takeUntil$1(this._destroy), filter(u => u.userId === this.person.id)).subscribe(u => this._changeMode(u.mode));
|
12851
12858
|
}
|
12852
12859
|
_changeMode(mode) {
|
12853
12860
|
if (!this._showMode)
|
@@ -13382,7 +13389,7 @@ class TaggingPipe {
|
|
13382
13389
|
if (EMOJI_REGEX.test(text))
|
13383
13390
|
text = text.replace(EMOJI_REGEX, (emoji) => `<i class="material-icons">${EMOJI_MAP[emoji]}</i>`);
|
13384
13391
|
if (DOCUMENT_REGEX.test(text)) {
|
13385
|
-
text = text.replace(DOCUMENT_REGEX, (e, number) => `<a data-id="${resource[number].
|
13392
|
+
text = text.replace(DOCUMENT_REGEX, (e, number) => `<a data-id="${resource[number].toString()}">${e}</a>`);
|
13386
13393
|
}
|
13387
13394
|
if (USER_REGEX.test(text)) {
|
13388
13395
|
text = text.replace(USER_REGEX, (_, name) => {
|
@@ -13405,11 +13412,11 @@ class TaggingPipe {
|
|
13405
13412
|
if (src.tagName === 'A') {
|
13406
13413
|
const id = src.getAttribute('data-id');
|
13407
13414
|
if (id) {
|
13408
|
-
this._router.navigate(['mailbox/d', id], {});
|
13415
|
+
this._router.navigate(['mailbox/d', parseInt(id).encodeId()], {});
|
13409
13416
|
evt.preventDefault();
|
13410
13417
|
}
|
13411
13418
|
else {
|
13412
|
-
const userId = src.getAttribute('data-
|
13419
|
+
const userId = src.getAttribute('data-userid');
|
13413
13420
|
userId && this._chat.open(userId);
|
13414
13421
|
}
|
13415
13422
|
}
|
@@ -13455,7 +13462,7 @@ class CommentLikesComponent {
|
|
13455
13462
|
this._mailbox = _mailbox;
|
13456
13463
|
this._messaging = _messaging;
|
13457
13464
|
this._destroy = new Subject();
|
13458
|
-
this._messaging.vote$.pipe(takeUntil(this._destroy), filter(e => e.id === this._data.documentId)).subscribe(e => {
|
13465
|
+
this._messaging.vote$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this._data.documentId)).subscribe(e => {
|
13459
13466
|
});
|
13460
13467
|
}
|
13461
13468
|
ngOnInit() {
|
@@ -13538,7 +13545,7 @@ class CommentComponent {
|
|
13538
13545
|
* @param e
|
13539
13546
|
*/
|
13540
13547
|
chat(e) {
|
13541
|
-
const userId = e.target.getAttribute('data-
|
13548
|
+
const userId = e.target.getAttribute('data-userid');
|
13542
13549
|
userId &&
|
13543
13550
|
this._chat.open(userId);
|
13544
13551
|
}
|
@@ -13596,7 +13603,7 @@ class CommentComponent {
|
|
13596
13603
|
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
13597
13604
|
});
|
13598
13605
|
oRef.attach(new TemplatePortal(this.previewTemplate, this._vc));
|
13599
|
-
merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
13606
|
+
merge(oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
13600
13607
|
}
|
13601
13608
|
votes() {
|
13602
13609
|
this._open(CommentLikesComponent, {
|
@@ -13654,7 +13661,7 @@ class CommentsComponent {
|
|
13654
13661
|
this._preserveDraft = _config.comments && _config.comments.preserveDraft;
|
13655
13662
|
}
|
13656
13663
|
ngOnInit() {
|
13657
|
-
this._messaging.comment$.pipe(takeUntil(this._destroy), filter(e => (e.id === this.model.documentId))).subscribe(e => {
|
13664
|
+
this._messaging.comment$.pipe(takeUntil(this._destroy), filter$1(e => (e.id === this.model.documentId))).subscribe(e => {
|
13658
13665
|
if (!this.model.comments.find(c => c.id === e.model.id)) {
|
13659
13666
|
this.model.comments.push(e.model);
|
13660
13667
|
if (this._inFocus)
|
@@ -13662,7 +13669,7 @@ class CommentsComponent {
|
|
13662
13669
|
this.change.emit();
|
13663
13670
|
}
|
13664
13671
|
});
|
13665
|
-
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
13672
|
+
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).
|
13666
13673
|
subscribe(e => {
|
13667
13674
|
this._accounts.get(e.userId).subscribe(u => {
|
13668
13675
|
this.typing = u.name;
|
@@ -13670,15 +13677,15 @@ class CommentsComponent {
|
|
13670
13677
|
this._typingTask = setTimeout(() => this.typing = null, TYPING_MESSAGE_TIME);
|
13671
13678
|
});
|
13672
13679
|
});
|
13673
|
-
this._messaging.vote$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
13680
|
+
this._messaging.vote$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(e => {
|
13674
13681
|
const comment = this.model.comments.find(c => c.id === e.commentId);
|
13675
13682
|
comment && (comment.votes = e.votes);
|
13676
13683
|
});
|
13677
|
-
this._messaging.commentUpdate$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
13684
|
+
this._messaging.commentUpdate$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(e => {
|
13678
13685
|
const comment = this.model.comments.find(c => c.id === e.model.id);
|
13679
13686
|
Object.assign(comment, e.model);
|
13680
13687
|
});
|
13681
|
-
this._messaging.commentDelete$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
13688
|
+
this._messaging.commentDelete$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).subscribe(e => {
|
13682
13689
|
const comment = this.model.comments.find(c => c.id === e.id);
|
13683
13690
|
comment.deleted = e.deleted;
|
13684
13691
|
this.change.emit();
|
@@ -13696,7 +13703,7 @@ class CommentsComponent {
|
|
13696
13703
|
* @param e
|
13697
13704
|
*/
|
13698
13705
|
chat(e) {
|
13699
|
-
const userId = e.target.getAttribute('data-
|
13706
|
+
const userId = e.target.getAttribute('data-userid');
|
13700
13707
|
userId &&
|
13701
13708
|
this._chat.open(userId);
|
13702
13709
|
}
|
@@ -14179,7 +14186,7 @@ class ReportRef {
|
|
14179
14186
|
/** listen to progress events reported by backend code */
|
14180
14187
|
progress() {
|
14181
14188
|
return this._hub.reportProgress$.
|
14182
|
-
pipe(filter(e => e.name === this._configuration.name), map(e => e.progress));
|
14189
|
+
pipe(filter$1(e => e.name === this._configuration.name), map(e => e.progress));
|
14183
14190
|
}
|
14184
14191
|
/**
|
14185
14192
|
*
|
@@ -14264,7 +14271,7 @@ class ReportViewerComponent {
|
|
14264
14271
|
this._instance = this.table;
|
14265
14272
|
// listen to progress
|
14266
14273
|
this._hub.reportProgress$.
|
14267
|
-
pipe(filter(e => e.name === this.report.name), takeUntil(this._destroy), debounceTime(50)).
|
14274
|
+
pipe(filter$1(e => e.name === this.report.name), takeUntil(this._destroy), debounceTime(50)).
|
14268
14275
|
subscribe(i => {
|
14269
14276
|
if (this.progress > 0)
|
14270
14277
|
this.progress = i.progress;
|
@@ -15294,7 +15301,7 @@ class UtilityRef {
|
|
15294
15301
|
}
|
15295
15302
|
get jobId() { return this._jobId; }
|
15296
15303
|
progress() {
|
15297
|
-
return this._hub.jobProgress$.pipe(filter(e => e.jobId === this.jobId), map(e => e.event));
|
15304
|
+
return this._hub.jobProgress$.pipe(filter$1(e => e.jobId === this.jobId), map(e => e.event));
|
15298
15305
|
}
|
15299
15306
|
execute(args) {
|
15300
15307
|
return this._http.post(`/api/utility/${encodeURIComponent(this._utility.name)}`, args, { observe: 'response' }).
|
@@ -16562,7 +16569,7 @@ class TraceViewComponent extends TraceBase {
|
|
16562
16569
|
this._data && this._filter();
|
16563
16570
|
}
|
16564
16571
|
chat(e) {
|
16565
|
-
const userId = e.target.getAttribute('data-
|
16572
|
+
const userId = e.target.getAttribute('data-userid');
|
16566
16573
|
userId &&
|
16567
16574
|
this._chat.open(userId);
|
16568
16575
|
}
|
@@ -17154,7 +17161,7 @@ class CubeMatrixBase {
|
|
17154
17161
|
this._listen().subscribe(() => this.values[name] = value);
|
17155
17162
|
}
|
17156
17163
|
_listen() {
|
17157
|
-
return this.table.loadingChange.pipe(filter(ok => !ok), first());
|
17164
|
+
return this.table.loadingChange.pipe(filter$1(ok => !ok), first());
|
17158
17165
|
}
|
17159
17166
|
onFilter(axes) {
|
17160
17167
|
this.axes = axes;
|
@@ -17742,14 +17749,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17742
17749
|
args: [CubeMatrixComponent, { static: true }]
|
17743
17750
|
}] } });
|
17744
17751
|
|
17745
|
-
|
17752
|
+
class NotificationRef {
|
17753
|
+
constructor(_message) {
|
17754
|
+
this._message = _message;
|
17755
|
+
}
|
17756
|
+
get message() {
|
17757
|
+
return this._message;
|
17758
|
+
}
|
17759
|
+
}
|
17760
|
+
|
17746
17761
|
class NotificationBase {
|
17747
|
-
constructor(
|
17748
|
-
this.
|
17749
|
-
this.
|
17750
|
-
this.
|
17751
|
-
this.
|
17752
|
-
this.
|
17762
|
+
constructor() {
|
17763
|
+
this._router = inject(RouterImpl);
|
17764
|
+
this._session = inject(SessionService);
|
17765
|
+
this._translate = inject(TranslateService);
|
17766
|
+
this._chat = inject(ChatInfo);
|
17767
|
+
this.notification = inject(NotificationRef);
|
17753
17768
|
}
|
17754
17769
|
_formatUserElement(person) {
|
17755
17770
|
if (person.id === this._session.userId)
|
@@ -17757,57 +17772,64 @@ class NotificationBase {
|
|
17757
17772
|
return this._chat.format(person);
|
17758
17773
|
}
|
17759
17774
|
open(e) {
|
17760
|
-
const
|
17775
|
+
const el = e.target;
|
17776
|
+
if (el.tagName !== 'A')
|
17777
|
+
return;
|
17778
|
+
const userId = el.getAttribute('data-userid');
|
17761
17779
|
if (userId)
|
17762
17780
|
this._chat.open(userId);
|
17763
|
-
else
|
17764
|
-
|
17765
|
-
|
17766
|
-
|
17767
|
-
|
17768
|
-
|
17769
|
-
|
17770
|
-
|
17781
|
+
else {
|
17782
|
+
const { documentId, recipientId } = this.notification.message;
|
17783
|
+
if (recipientId)
|
17784
|
+
this._router.navigate(['mailbox/i', recipientId.encodeId()], {
|
17785
|
+
policy: OpenPolicy.Clear
|
17786
|
+
});
|
17787
|
+
else if (documentId)
|
17788
|
+
this._router.navigate(['mailbox/d', documentId.encodeId()], {
|
17789
|
+
policy: OpenPolicy.Tab | OpenPolicy.Expandable
|
17790
|
+
});
|
17791
|
+
}
|
17771
17792
|
}
|
17772
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NotificationBase, deps:
|
17793
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NotificationBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
17773
17794
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.0", type: NotificationBase, isStandalone: true, host: { listeners: { "click": "open($event)" } }, ngImport: i0 }); }
|
17774
17795
|
}
|
17775
17796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NotificationBase, decorators: [{
|
17776
17797
|
type: Directive
|
17777
|
-
}],
|
17798
|
+
}], propDecorators: { open: [{
|
17778
17799
|
type: HostListener,
|
17779
17800
|
args: ['click', ['$event']]
|
17780
17801
|
}] } });
|
17781
17802
|
|
17782
17803
|
/** */
|
17783
17804
|
class CommentedNotification extends NotificationBase {
|
17805
|
+
constructor() {
|
17806
|
+
super(...arguments);
|
17807
|
+
this._accounts = inject(AccountService);
|
17808
|
+
}
|
17784
17809
|
ngOnInit() {
|
17785
|
-
|
17786
|
-
|
17787
|
-
|
17810
|
+
const { userIds, number, text } = this.notification.message;
|
17811
|
+
this.count = userIds.length;
|
17812
|
+
if (userIds.length === 1)
|
17813
|
+
this._accounts.get(userIds[0]).subscribe(u => {
|
17814
|
+
this.message = this._translate.get(`CommentedOne${u.gender || ''}Notify`, this._formatUserElement(u), text, number);
|
17788
17815
|
});
|
17789
17816
|
else
|
17790
|
-
this._accounts.getAll(
|
17817
|
+
this._accounts.getAll(userIds).subscribe(us => {
|
17791
17818
|
if (us.length < 3)
|
17792
|
-
this.message = this._translate.get('CommentedManyNotify', this._translate.join(us.map(u => this._formatUserElement(u))),
|
17819
|
+
this.message = this._translate.get('CommentedManyNotify', this._translate.join(us.map(u => this._formatUserElement(u))), number);
|
17793
17820
|
else {
|
17794
17821
|
const comma = this._translate.comma;
|
17795
17822
|
this.names = us.map(u => u.name).join(comma);
|
17796
|
-
this.message = this._translate.get('CommentedManyMoreNotify', us.slice(0, 2).map(u => this._formatUserElement(u)).join(comma), us.length - 2,
|
17823
|
+
this.message = this._translate.get('CommentedManyMoreNotify', us.slice(0, 2).map(u => this._formatUserElement(u)).join(comma), us.length - 2, number);
|
17797
17824
|
}
|
17798
17825
|
});
|
17799
17826
|
}
|
17800
|
-
|
17801
|
-
super(notification, router, session, translate, chat);
|
17802
|
-
this.notification = notification;
|
17803
|
-
this._accounts = _accounts;
|
17804
|
-
}
|
17805
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CommentedNotification, deps: [{ token: NOTIFICATION_DATA }, { token: AccountService }, { token: TranslateService }, { token: RouterImpl }, { token: SessionService }, { token: ChatInfo }], target: i0.ɵɵFactoryTarget.Component }); }
|
17827
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CommentedNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17806
17828
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: CommentedNotification, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `@if (message) {
|
17807
|
-
@if (
|
17829
|
+
@if (count < 3) {
|
17808
17830
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17809
17831
|
}
|
17810
|
-
@
|
17832
|
+
@else {
|
17811
17833
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17812
17834
|
}
|
17813
17835
|
}`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -17817,117 +17839,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17817
17839
|
args: [{
|
17818
17840
|
standalone: false,
|
17819
17841
|
template: `@if (message) {
|
17820
|
-
@if (
|
17842
|
+
@if (count < 3) {
|
17821
17843
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17822
17844
|
}
|
17823
|
-
@
|
17845
|
+
@else {
|
17824
17846
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17825
17847
|
}
|
17826
17848
|
}`
|
17827
17849
|
}]
|
17828
|
-
}]
|
17829
|
-
type: Inject,
|
17830
|
-
args: [NOTIFICATION_DATA]
|
17831
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
17850
|
+
}] });
|
17832
17851
|
|
17833
|
-
class CubeAnomalyNotification {
|
17852
|
+
class CubeAnomalyNotification extends NotificationBase {
|
17853
|
+
constructor() {
|
17854
|
+
super(...arguments);
|
17855
|
+
this._ds = inject(DatasourceService);
|
17856
|
+
this.axes = '';
|
17857
|
+
}
|
17834
17858
|
ngOnInit() {
|
17835
|
-
|
17859
|
+
const { cube, axes } = this.notification.message;
|
17860
|
+
this.cube = this._session.profile.cubes.find(c => c.name === cube);
|
17836
17861
|
const observables = [];
|
17837
17862
|
this.cube.axes.forEach((a, i) => {
|
17838
|
-
if (a.selectionMode !== 'None' &&
|
17839
|
-
observables.push(this._ds.get(a.dataType,
|
17863
|
+
if (a.selectionMode !== 'None' && axes && axes[i]) {
|
17864
|
+
observables.push(this._ds.get(a.dataType, axes[i]));
|
17840
17865
|
}
|
17841
17866
|
});
|
17842
|
-
forkJoin(observables).subscribe(a => this.axes = this._translate.join(a.map((e, i) => e ||
|
17867
|
+
forkJoin(observables).subscribe(a => this.axes = this._translate.join(a.map((e, i) => e || axes[i])));
|
17843
17868
|
}
|
17844
|
-
open(
|
17845
|
-
const
|
17869
|
+
open(evt) {
|
17870
|
+
const { cube, axes } = this.notification.message;
|
17871
|
+
const id = evt.target.getAttribute('data-id');
|
17846
17872
|
if (id) {
|
17847
17873
|
this._router.navigate(['mailbox/i', parseInt(id).encodeId()]);
|
17848
17874
|
}
|
17849
17875
|
else {
|
17850
17876
|
const params = {};
|
17851
|
-
|
17852
|
-
|
17853
|
-
this._router.navigate(['cube', this.notification.cube, 'v', this.cube.views[0].name], { queryParams: params });
|
17877
|
+
axes?.forEach((a, i) => a && (params[this.cube.axes[i].name] = a));
|
17878
|
+
this._router.navigate(['cube', cube, 'v', this.cube.views[0].name], { queryParams: params });
|
17854
17879
|
}
|
17855
17880
|
}
|
17856
|
-
|
17857
|
-
|
17858
|
-
this._ds = _ds;
|
17859
|
-
this._session = _session;
|
17860
|
-
this._router = _router;
|
17861
|
-
this._translate = _translate;
|
17862
|
-
this.axes = '';
|
17863
|
-
}
|
17864
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CubeAnomalyNotification, deps: [{ token: NOTIFICATION_DATA }, { token: DatasourceService }, { token: SessionService }, { token: RouterImpl }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
17865
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: CubeAnomalyNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span [innerHTML]=" 'CubeAnomalyNotify' | translate : (cube.title | lowercase) : (notification.value | currency : cube.currencyCode : 'symbol') : axes | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
17881
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CubeAnomalyNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17882
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: CubeAnomalyNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, usesInheritance: true, ngImport: i0, template: `<span [innerHTML]="'CubeAnomalyNotify' | translate : (cube.title | lowercase) : (notification.message.value | currency : cube.currencyCode : 'symbol') : axes | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
17866
17883
|
}
|
17867
17884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CubeAnomalyNotification, decorators: [{
|
17868
17885
|
type: Component,
|
17869
17886
|
args: [{
|
17870
17887
|
standalone: false,
|
17871
|
-
template: `<span [innerHTML]="
|
17888
|
+
template: `<span [innerHTML]="'CubeAnomalyNotify' | translate : (cube.title | lowercase) : (notification.message.value | currency : cube.currencyCode : 'symbol') : axes | sanitizeHtml"></span>`
|
17872
17889
|
}]
|
17873
|
-
}],
|
17874
|
-
type: Inject,
|
17875
|
-
args: [NOTIFICATION_DATA]
|
17876
|
-
}] }, { type: DatasourceService }, { type: SessionService }, { type: RouterImpl }, { type: TranslateService }], propDecorators: { open: [{
|
17890
|
+
}], propDecorators: { open: [{
|
17877
17891
|
type: HostListener,
|
17878
17892
|
args: ['click', ['$event']]
|
17879
17893
|
}] } });
|
17880
17894
|
|
17881
17895
|
class EscalatedNotification extends NotificationBase {
|
17882
|
-
|
17883
|
-
|
17896
|
+
constructor() {
|
17897
|
+
super(...arguments);
|
17898
|
+
this._accounts = inject(AccountService);
|
17884
17899
|
}
|
17885
|
-
|
17886
|
-
|
17887
|
-
this.notification = notification;
|
17888
|
-
this._accounts = _accounts;
|
17900
|
+
ngOnInit() {
|
17901
|
+
this._accounts.get(this.notification.message.substituteId).subscribe(u => this.name = this._formatUserElement(u));
|
17889
17902
|
}
|
17890
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EscalatedNotification, deps:
|
17891
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: EscalatedNotification, isStandalone: false, selector: "bizdoc-notify-escalated", usesInheritance: true, ngImport: i0, template: `@if (name) {<span [innerHTML]="'EscalatedNotify' | translate : notification.number : name | sanitizeHtml"></span>}`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
17903
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EscalatedNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17904
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: EscalatedNotification, isStandalone: false, selector: "bizdoc-notify-escalated", usesInheritance: true, ngImport: i0, template: `@if (name) {<span [innerHTML]="'EscalatedNotify' | translate : notification.message.number : name | sanitizeHtml"></span>}`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
17892
17905
|
}
|
17893
17906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EscalatedNotification, decorators: [{
|
17894
17907
|
type: Component,
|
17895
17908
|
args: [{
|
17896
17909
|
standalone: false,
|
17897
17910
|
selector: 'bizdoc-notify-escalated',
|
17898
|
-
template: `@if (name) {<span [innerHTML]="'EscalatedNotify' | translate : notification.number : name | sanitizeHtml"></span>}`
|
17911
|
+
template: `@if (name) {<span [innerHTML]="'EscalatedNotify' | translate : notification.message.number : name | sanitizeHtml"></span>}`
|
17899
17912
|
}]
|
17900
|
-
}]
|
17901
|
-
type: Inject,
|
17902
|
-
args: [NOTIFICATION_DATA]
|
17903
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: SessionService }, { type: ChatInfo }] });
|
17913
|
+
}] });
|
17904
17914
|
|
17905
17915
|
class LikedNotification extends NotificationBase {
|
17916
|
+
constructor() {
|
17917
|
+
super(...arguments);
|
17918
|
+
this._accounts = inject(AccountService);
|
17919
|
+
}
|
17906
17920
|
ngOnInit() {
|
17907
|
-
|
17908
|
-
|
17921
|
+
const { userIds, voted, number } = this.notification.message;
|
17922
|
+
if (userIds.length === 1)
|
17923
|
+
this._accounts.get(userIds[0]).subscribe(u => this.message = this._translate.personalize(voted === 1 ? 'LikedOneNotify' : 'DislikedOneNotify', u.gender, this._formatUserElement(u), number));
|
17909
17924
|
else
|
17910
|
-
this._accounts.getAll(
|
17925
|
+
this._accounts.getAll(userIds).subscribe(us => {
|
17911
17926
|
if (us.length < 3)
|
17912
|
-
this.message = this._translate.get(
|
17927
|
+
this.message = this._translate.get(voted === 1 ? 'LikedManyNotify' : voted === -1 ? 'DislikedManyNotify' : 'MixedLikeManyNotify', this._translate.join(us.map(u => this._formatUserElement(u))), number);
|
17913
17928
|
else {
|
17914
17929
|
const comma = this._translate.comma;
|
17915
17930
|
this.names = us.map(u => u.name).join(comma);
|
17916
|
-
this.message = this._translate.get(
|
17931
|
+
this.message = this._translate.get(voted === 1 ? 'LikedManyMoreNotify' : voted === -1 ? 'DislikedManyMoreNotify' : 'MixedLikeManyMoreNotify', us.slice(0, 2).map(u => this._formatUserElement(u)).join(comma), us.length - 2, number);
|
17917
17932
|
}
|
17918
17933
|
});
|
17919
17934
|
}
|
17920
|
-
|
17921
|
-
super(notification, router, session, translate, chat);
|
17922
|
-
this.notification = notification;
|
17923
|
-
this._accounts = _accounts;
|
17924
|
-
}
|
17925
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LikedNotification, deps: [{ token: NOTIFICATION_DATA }, { token: AccountService }, { token: TranslateService }, { token: RouterImpl }, { token: SessionService }, { token: ChatInfo }], target: i0.ɵɵFactoryTarget.Component }); }
|
17935
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LikedNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17926
17936
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: LikedNotification, isStandalone: false, selector: "bizdoc-liked-notification", usesInheritance: true, ngImport: i0, template: `@if (message) {
|
17927
17937
|
@if (notification.userIds.length < 3) {
|
17928
17938
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17929
17939
|
}
|
17930
|
-
@
|
17940
|
+
@else {
|
17931
17941
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17932
17942
|
}
|
17933
17943
|
}`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -17941,131 +17951,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17941
17951
|
@if (notification.userIds.length < 3) {
|
17942
17952
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17943
17953
|
}
|
17944
|
-
@
|
17954
|
+
@else {
|
17945
17955
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17946
17956
|
}
|
17947
17957
|
}`
|
17948
17958
|
}]
|
17949
|
-
}]
|
17950
|
-
type: Inject,
|
17951
|
-
args: [NOTIFICATION_DATA]
|
17952
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
17959
|
+
}] });
|
17953
17960
|
|
17954
17961
|
class StateChangedNotification extends NotificationBase {
|
17955
17962
|
ngOnInit() {
|
17956
|
-
this.form = this._session.profile.forms.find(f => f.name === this.notification.formId);
|
17957
|
-
}
|
17958
|
-
constructor(notification, session, router, translate, chat) {
|
17959
|
-
super(notification, router, session, translate, chat);
|
17960
|
-
this.notification = notification;
|
17963
|
+
this.form = this._session.profile.forms.find(f => f.name === this.notification.message.formId);
|
17961
17964
|
}
|
17962
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StateChangedNotification, deps:
|
17963
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: StateChangedNotification, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<span [innerHTML]="'StateChangedNotify' | translate : form.title : notification.number : (notification.state | state : 'past' | lowercase) | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: StatePipe, name: "state" }] }); }
|
17965
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StateChangedNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17966
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: StateChangedNotification, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<span [innerHTML]="'StateChangedNotify' | translate : form.title : notification.message.number : (notification.message.state | state : 'past' | lowercase) | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: StatePipe, name: "state" }] }); }
|
17964
17967
|
}
|
17965
17968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StateChangedNotification, decorators: [{
|
17966
17969
|
type: Component,
|
17967
17970
|
args: [{
|
17968
17971
|
standalone: false,
|
17969
|
-
template: `<span [innerHTML]="'StateChangedNotify' | translate : form.title : notification.number : (notification.state | state : 'past' | lowercase) | sanitizeHtml"></span>`
|
17972
|
+
template: `<span [innerHTML]="'StateChangedNotify' | translate : form.title : notification.message.number : (notification.message.state | state : 'past' | lowercase) | sanitizeHtml"></span>`
|
17970
17973
|
}]
|
17971
|
-
}]
|
17972
|
-
type: Inject,
|
17973
|
-
args: [NOTIFICATION_DATA]
|
17974
|
-
}] }, { type: SessionService }, { type: RouterImpl }, { type: TranslateService }, { type: ChatInfo }] });
|
17974
|
+
}] });
|
17975
17975
|
|
17976
17976
|
class TextNotification {
|
17977
17977
|
constructor(notification) {
|
17978
17978
|
this.notification = notification;
|
17979
17979
|
}
|
17980
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TextNotification, deps: [{ token:
|
17981
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: TextNotification, isStandalone: false, selector: "bizdoc-notify-text", ngImport: i0, template: `<span [innerHTML]="notification.text"></span>`, isInline: true }); }
|
17980
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TextNotification, deps: [{ token: NotificationRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
17981
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: TextNotification, isStandalone: false, selector: "bizdoc-notify-text", ngImport: i0, template: `<span [innerHTML]="notification.message.text"></span>`, isInline: true }); }
|
17982
17982
|
}
|
17983
17983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TextNotification, decorators: [{
|
17984
17984
|
type: Component,
|
17985
17985
|
args: [{
|
17986
17986
|
standalone: false,
|
17987
17987
|
selector: 'bizdoc-notify-text',
|
17988
|
-
template: `<span [innerHTML]="notification.text"></span>`
|
17988
|
+
template: `<span [innerHTML]="notification.message.text"></span>`
|
17989
17989
|
}]
|
17990
|
-
}], ctorParameters: () => [{ type:
|
17990
|
+
}], ctorParameters: () => [{ type: NotificationRef, decorators: [{
|
17991
17991
|
type: Inject,
|
17992
|
-
args: [
|
17992
|
+
args: [NotificationRef]
|
17993
17993
|
}] }] });
|
17994
17994
|
|
17995
17995
|
class UpcomingEventNotification {
|
17996
|
-
|
17997
|
-
this.
|
17996
|
+
constructor() {
|
17997
|
+
this.notification = inject((NotificationRef));
|
17998
|
+
this._router = inject(RouterImpl);
|
17998
17999
|
}
|
17999
|
-
|
18000
|
-
this.
|
18000
|
+
ngOnInit() {
|
18001
|
+
this.duration = dayjs(this.notification.message.starting);
|
18001
18002
|
}
|
18002
|
-
|
18003
|
-
this.
|
18004
|
-
this._router = _router;
|
18003
|
+
open(_) {
|
18004
|
+
this._router.navigate(['schedule'], { queryParams: { date: this.duration.valueOf().encodeId() } });
|
18005
18005
|
}
|
18006
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: UpcomingEventNotification, deps: [
|
18007
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: UpcomingEventNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span [bizdocTooltip]="notification.starting | amCalendar" [innerHTML]="'UpcomingEventNotify' | translate : notification.number : duration.fromNow() | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
18006
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: UpcomingEventNotification, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
18007
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: UpcomingEventNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span [bizdocTooltip]="notification.message.starting | amCalendar" [innerHTML]="'UpcomingEventNotify' | translate : notification.message.number : duration.fromNow() | sanitizeHtml"></span>`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
18008
18008
|
}
|
18009
18009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: UpcomingEventNotification, decorators: [{
|
18010
18010
|
type: Component,
|
18011
18011
|
args: [{
|
18012
18012
|
standalone: false,
|
18013
|
-
template: `<span [bizdocTooltip]="notification.starting | amCalendar" [innerHTML]="'UpcomingEventNotify' | translate : notification.number : duration.fromNow() | sanitizeHtml"></span>`
|
18013
|
+
template: `<span [bizdocTooltip]="notification.message.starting | amCalendar" [innerHTML]="'UpcomingEventNotify' | translate : notification.message.number : duration.fromNow() | sanitizeHtml"></span>`
|
18014
18014
|
}]
|
18015
|
-
}],
|
18016
|
-
type: Inject,
|
18017
|
-
args: [NOTIFICATION_DATA]
|
18018
|
-
}] }, { type: RouterImpl }], propDecorators: { open: [{
|
18015
|
+
}], propDecorators: { open: [{
|
18019
18016
|
type: HostListener,
|
18020
18017
|
args: ['click', ['$event']]
|
18021
18018
|
}] } });
|
18022
18019
|
|
18023
18020
|
class NudgeNotification extends NotificationBase {
|
18024
18021
|
ngOnInit() {
|
18025
|
-
this.expire = dayjs(this.notification.expire);
|
18022
|
+
this.expire = dayjs(this.notification.message.expire);
|
18026
18023
|
}
|
18027
|
-
|
18028
|
-
|
18029
|
-
this.notification = notification;
|
18030
|
-
}
|
18031
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NudgeNotification, deps: [{ token: RouterImpl }, { token: TranslateService }, { token: SessionService }, { token: ChatInfo }, { token: NOTIFICATION_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
18032
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: NudgeNotification, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<span [innerHTML]='"NudgeNotify" | translate : notification.number : expire.toNow() | sanitizeHtml'></span>`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
18024
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NudgeNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
18025
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: NudgeNotification, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `<span [innerHTML]='"NudgeNotify" | translate : notification.message.number : expire.toNow() | sanitizeHtml'></span>`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
18033
18026
|
}
|
18034
18027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NudgeNotification, decorators: [{
|
18035
18028
|
type: Component,
|
18036
18029
|
args: [{
|
18037
18030
|
standalone: false,
|
18038
|
-
template: `<span [innerHTML]='"NudgeNotify" | translate : notification.number : expire.toNow() | sanitizeHtml'></span>`
|
18031
|
+
template: `<span [innerHTML]='"NudgeNotify" | translate : notification.message.number : expire.toNow() | sanitizeHtml'></span>`
|
18039
18032
|
}]
|
18040
|
-
}]
|
18041
|
-
type: Inject,
|
18042
|
-
args: [NOTIFICATION_DATA]
|
18043
|
-
}] }] });
|
18033
|
+
}] });
|
18044
18034
|
|
18045
18035
|
class LongRunningTaskNotification {
|
18046
18036
|
ngOnInit() {
|
18047
|
-
this.report = this._session.profile.reports.find(r => r.name === this.notification.name);
|
18037
|
+
this.report = this._session.profile.reports.find(r => r.name === this.notification.message.name);
|
18048
18038
|
}
|
18049
|
-
open(
|
18050
|
-
this._router.navigate(['reports', this.notification.name]);
|
18039
|
+
open(_) {
|
18040
|
+
this._router.navigate(['reports', this.notification.message.name]);
|
18051
18041
|
}
|
18052
18042
|
constructor(notification, _session, _router) {
|
18053
18043
|
this.notification = notification;
|
18054
18044
|
this._session = _session;
|
18055
18045
|
this._router = _router;
|
18056
18046
|
}
|
18057
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LongRunningTaskNotification, deps: [{ token:
|
18058
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: LongRunningTaskNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span></span>`, isInline: true }); }
|
18047
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LongRunningTaskNotification, deps: [{ token: NotificationRef }, { token: SessionService }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
|
18048
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: LongRunningTaskNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span [innerHTML]="report.title"></span>`, isInline: true }); }
|
18059
18049
|
}
|
18060
18050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LongRunningTaskNotification, decorators: [{
|
18061
18051
|
type: Component,
|
18062
18052
|
args: [{
|
18063
18053
|
standalone: false,
|
18064
|
-
template: `<span></span>`
|
18054
|
+
template: `<span [innerHTML]="report.title"></span>`
|
18065
18055
|
}]
|
18066
|
-
}], ctorParameters: () => [{ type:
|
18056
|
+
}], ctorParameters: () => [{ type: NotificationRef, decorators: [{
|
18067
18057
|
type: Inject,
|
18068
|
-
args: [
|
18058
|
+
args: [NotificationRef]
|
18069
18059
|
}] }, { type: SessionService }, { type: RouterImpl }], propDecorators: { open: [{
|
18070
18060
|
type: HostListener,
|
18071
18061
|
args: ['click', ['$event']]
|
@@ -18073,21 +18063,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18073
18063
|
|
18074
18064
|
/** */
|
18075
18065
|
class TaggedNotification extends NotificationBase {
|
18066
|
+
constructor() {
|
18067
|
+
super(...arguments);
|
18068
|
+
this._accounts = inject(AccountService);
|
18069
|
+
}
|
18076
18070
|
ngOnInit() {
|
18077
|
-
const
|
18078
|
-
|
18079
|
-
|
18071
|
+
const { formId, who, number } = this.notification.message;
|
18072
|
+
const form = this._session.profile.forms.find(f => f.name == formId);
|
18073
|
+
if (who === this._session.userId)
|
18074
|
+
this.message = this._translate.get('TaggedYourselfNotify', form.title, `<a>${number}</a>`);
|
18080
18075
|
else
|
18081
|
-
this._accounts.get(
|
18082
|
-
this.message = this._translate.get(`Tagged${u.gender || ''}Notify`, this._formatUserElement(u), form.title, `<a>${
|
18076
|
+
this._accounts.get(who).subscribe(u => {
|
18077
|
+
this.message = this._translate.get(`Tagged${u.gender || ''}Notify`, this._formatUserElement(u), form.title, `<a>${number}</a>`);
|
18083
18078
|
});
|
18084
18079
|
}
|
18085
|
-
|
18086
|
-
super(notification, router, session, translate, chat);
|
18087
|
-
this.notification = notification;
|
18088
|
-
this._accounts = _accounts;
|
18089
|
-
}
|
18090
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TaggedNotification, deps: [{ token: NOTIFICATION_DATA }, { token: AccountService }, { token: TranslateService }, { token: RouterImpl }, { token: SessionService }, { token: ChatInfo }], target: i0.ɵɵFactoryTarget.Component }); }
|
18080
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TaggedNotification, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
18091
18081
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: TaggedNotification, isStandalone: false, selector: "bizdoc-notify-tagged", usesInheritance: true, ngImport: i0, template: `@if (message) {
|
18092
18082
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
18093
18083
|
}`, isInline: true, dependencies: [{ kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -18101,10 +18091,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18101
18091
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
18102
18092
|
}`
|
18103
18093
|
}]
|
18104
|
-
}]
|
18105
|
-
type: Inject,
|
18106
|
-
args: [NOTIFICATION_DATA]
|
18107
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
18094
|
+
}] });
|
18108
18095
|
|
18109
18096
|
class DocumentFactory {
|
18110
18097
|
constructor(_session, _mailbox, _cf, _messaging, _ps, _overlay, _dir, _router) {
|
@@ -18183,7 +18170,7 @@ class DocumentFactory {
|
|
18183
18170
|
this._messaging.callback$.pipe(takeUntil$1(formRef._destroy$)).
|
18184
18171
|
subscribe(e => compRef.instance.onMessage && compRef.instance.onMessage(e.message));
|
18185
18172
|
// escape
|
18186
|
-
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter
|
18173
|
+
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).
|
18187
18174
|
subscribe(() => {
|
18188
18175
|
observe.complete();
|
18189
18176
|
overlayRef.detach();
|
@@ -18255,25 +18242,27 @@ class InviteNotification {
|
|
18255
18242
|
this._router = _router;
|
18256
18243
|
this._factory = _factory;
|
18257
18244
|
this.notification = notification;
|
18258
|
-
const
|
18259
|
-
|
18260
|
-
|
18261
|
-
|
18245
|
+
const { formId, message, due, recipientId } = notification.message;
|
18246
|
+
const form = session.profile.forms.find(f => f.name === formId);
|
18247
|
+
this.message = message ||
|
18248
|
+
(due ?
|
18249
|
+
translate.get(recipientId ?
|
18262
18250
|
'CompleteNotificationTill' :
|
18263
|
-
'FillNotificationTill', form.title, dayjs(
|
18264
|
-
translate.get(
|
18251
|
+
'FillNotificationTill', form.title, dayjs(due).fromNow()) :
|
18252
|
+
translate.get(recipientId ?
|
18265
18253
|
'CompleteFillNotification' :
|
18266
18254
|
'FillNotification', form.title));
|
18267
18255
|
}
|
18268
18256
|
open(_) {
|
18269
|
-
|
18270
|
-
|
18257
|
+
const { formId, recipientId } = this.notification.message;
|
18258
|
+
if (recipientId)
|
18259
|
+
this._router.navigate(['mailbox/i', recipientId.encodeId()]);
|
18271
18260
|
else
|
18272
|
-
this._factory.create(
|
18261
|
+
this._factory.create(formId).subscribe(m => {
|
18273
18262
|
this._router.navigate(['mailbox/i', m.id.encodeId()]);
|
18274
18263
|
});
|
18275
18264
|
}
|
18276
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: InviteNotification, deps: [{ token: RouterImpl }, { token: DocumentFactory }, { token: SessionService }, { token: TranslateService }, { token:
|
18265
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: InviteNotification, deps: [{ token: RouterImpl }, { token: DocumentFactory }, { token: SessionService }, { token: TranslateService }, { token: NotificationRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
18277
18266
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: InviteNotification, isStandalone: false, selector: "ng-component", host: { listeners: { "click": "open($event)" } }, ngImport: i0, template: `<span [innerHTML]="message"></span>`, isInline: true }); }
|
18278
18267
|
}
|
18279
18268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: InviteNotification, decorators: [{
|
@@ -18282,45 +18271,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18282
18271
|
standalone: false,
|
18283
18272
|
template: `<span [innerHTML]="message"></span>`
|
18284
18273
|
}]
|
18285
|
-
}], ctorParameters: () => [{ type: RouterImpl }, { type: DocumentFactory }, { type: SessionService }, { type: TranslateService }, { type:
|
18274
|
+
}], ctorParameters: () => [{ type: RouterImpl }, { type: DocumentFactory }, { type: SessionService }, { type: TranslateService }, { type: NotificationRef, decorators: [{
|
18286
18275
|
type: Inject,
|
18287
|
-
args: [
|
18276
|
+
args: [NotificationRef]
|
18288
18277
|
}] }], propDecorators: { open: [{
|
18289
18278
|
type: HostListener,
|
18290
18279
|
args: ['click', ['$event']]
|
18291
18280
|
}] } });
|
18292
18281
|
|
18293
|
-
class
|
18294
|
-
|
18295
|
-
|
18296
|
-
constructor(notification, vc) {
|
18297
|
-
this.notification = notification;
|
18282
|
+
class ContentMessageNotification extends NotificationBase {
|
18283
|
+
constructor(vc) {
|
18284
|
+
super();
|
18298
18285
|
this._factory = inject(BizDocComponentFactoryResolver);
|
18299
|
-
|
18300
|
-
|
18301
|
-
|
18302
|
-
|
18303
|
-
|
18304
|
-
|
18305
|
-
|
18306
|
-
|
18307
|
-
|
18308
|
-
|
18286
|
+
// map
|
18287
|
+
if (!ContentMessageNotification._tamplateMap) {
|
18288
|
+
ContentMessageNotification._tamplateMap = {};
|
18289
|
+
this._session.profile.notifications.forEach(n => {
|
18290
|
+
ContentMessageNotification._tamplateMap[n.contentType] = n.template;
|
18291
|
+
});
|
18292
|
+
}
|
18293
|
+
const { content, contentType } = this.notification.message;
|
18294
|
+
const template = ContentMessageNotification._tamplateMap[contentType];
|
18295
|
+
const comp = this._factory.component(template);
|
18296
|
+
const compRef = vc.createComponent(comp);
|
18297
|
+
compRef.instance.onBind(content);
|
18309
18298
|
}
|
18310
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type:
|
18311
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type:
|
18299
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ContentMessageNotification, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
18300
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type: ContentMessageNotification, isStandalone: false, selector: "bizdoc-notify-content", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
18312
18301
|
}
|
18313
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type:
|
18302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ContentMessageNotification, decorators: [{
|
18314
18303
|
type: Component,
|
18315
18304
|
args: [{
|
18316
18305
|
standalone: false,
|
18317
18306
|
selector: 'bizdoc-notify-content',
|
18318
18307
|
template: ''
|
18319
18308
|
}]
|
18320
|
-
}], ctorParameters: () => [{ type:
|
18321
|
-
type: Inject,
|
18322
|
-
args: [NOTIFICATION_DATA]
|
18323
|
-
}] }, { type: i0.ViewContainerRef }] });
|
18309
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
18324
18310
|
|
18325
18311
|
class NotificationsService {
|
18326
18312
|
constructor(_http, messaging, _session) {
|
@@ -18371,19 +18357,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18371
18357
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: HubService }, { type: SessionService }] });
|
18372
18358
|
|
18373
18359
|
class NotificationsComponentBase {
|
18360
|
+
constructor() {
|
18361
|
+
this._injector = inject(Injector);
|
18362
|
+
this._service = inject(NotificationsService);
|
18363
|
+
this._session = inject(SessionService);
|
18364
|
+
}
|
18365
|
+
/**
|
18366
|
+
*
|
18367
|
+
* @param messages
|
18368
|
+
*/
|
18374
18369
|
prepare(messages) {
|
18375
18370
|
messages.forEach(m => {
|
18376
18371
|
m.comp = this._getComponent(m.type);
|
18377
18372
|
m.injector = this._getInjector(m);
|
18378
18373
|
});
|
18379
18374
|
}
|
18380
|
-
constructor() {
|
18381
|
-
this._uidType = {};
|
18382
|
-
this._injector = inject(Injector);
|
18383
|
-
this._service = inject(NotificationsService);
|
18384
|
-
this._session = inject(SessionService);
|
18385
|
-
this._session.profile.notifications.forEach(n => this._uidType[n.contentType] = n.template);
|
18386
|
-
}
|
18387
18375
|
_getComponent(type) {
|
18388
18376
|
switch (type) {
|
18389
18377
|
case 'Commented':
|
@@ -18401,7 +18389,7 @@ class NotificationsComponentBase {
|
|
18401
18389
|
case 'TextMessage':
|
18402
18390
|
return TextNotification;
|
18403
18391
|
case 'ContentMessage':
|
18404
|
-
return
|
18392
|
+
return ContentMessageNotification;
|
18405
18393
|
case 'Invite':
|
18406
18394
|
return InviteNotification;
|
18407
18395
|
case 'UpcomingEvent':
|
@@ -18417,8 +18405,8 @@ class NotificationsComponentBase {
|
|
18417
18405
|
_getInjector(item) {
|
18418
18406
|
return Injector.create({
|
18419
18407
|
providers: [{
|
18420
|
-
provide:
|
18421
|
-
useValue: item
|
18408
|
+
provide: NotificationRef,
|
18409
|
+
useValue: new NotificationRef(item)
|
18422
18410
|
}],
|
18423
18411
|
parent: this._injector
|
18424
18412
|
});
|
@@ -18474,6 +18462,10 @@ class NotificationsTableComponent extends NotificationsComponentBase {
|
|
18474
18462
|
mute(item, mute) {
|
18475
18463
|
this._service.mute(item.id, mute);
|
18476
18464
|
}
|
18465
|
+
/**
|
18466
|
+
*
|
18467
|
+
* @param item
|
18468
|
+
*/
|
18477
18469
|
delete(item) {
|
18478
18470
|
this._service.delete(item.id).subscribe(i => {
|
18479
18471
|
item.deleted = true;
|
@@ -18493,6 +18485,10 @@ class NotificationsTableComponent extends NotificationsComponentBase {
|
|
18493
18485
|
this.selection.clear() :
|
18494
18486
|
this.selection.select(...this.dataSource.data);
|
18495
18487
|
}
|
18488
|
+
/**
|
18489
|
+
*
|
18490
|
+
* @param evt
|
18491
|
+
*/
|
18496
18492
|
openFilter(evt) {
|
18497
18493
|
const popupRef = this._popup.open(NotificationsFilterComponent, evt.target);
|
18498
18494
|
popupRef.opened().
|
@@ -18695,7 +18691,7 @@ class ContactsComponent {
|
|
18695
18691
|
ngOnInit() {
|
18696
18692
|
const me = this._session.userId;
|
18697
18693
|
this._prepare();
|
18698
|
-
this.users$ = this.searchControl.valueChanges.pipe(debounceTime(200), filter(v => isString(v)), takeUntil(this._destroy), switchMap(v => this._service.findAll(v)), map(us => us.filter(u => u.id !== me)));
|
18694
|
+
this.users$ = this.searchControl.valueChanges.pipe(debounceTime(200), filter$1(v => isString(v)), takeUntil(this._destroy), switchMap(v => this._service.findAll(v)), map(us => us.filter(u => u.id !== me)));
|
18699
18695
|
}
|
18700
18696
|
optionSelected(ev) {
|
18701
18697
|
const { value: id } = ev.option;
|
@@ -18886,7 +18882,7 @@ class ConversationComponent {
|
|
18886
18882
|
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
18887
18883
|
});
|
18888
18884
|
oRef.attach(new TemplatePortal(this.previewTemplate, this._vc, { item }));
|
18889
|
-
merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
18885
|
+
merge(oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
18890
18886
|
}
|
18891
18887
|
ngOnDestroy() {
|
18892
18888
|
if (this._typingTask)
|
@@ -19403,18 +19399,18 @@ class OutOfOfficeToast {
|
|
19403
19399
|
this._accounts.get(data.substituteId).subscribe(u => this.substitute = u);
|
19404
19400
|
}
|
19405
19401
|
options() {
|
19406
|
-
this._router.navigate(['options', '
|
19402
|
+
this._router.navigate(['options'], { queryParams: { section: 'ooo' } });
|
19407
19403
|
this.dismiss();
|
19408
19404
|
}
|
19409
19405
|
dismiss() {
|
19410
19406
|
this._ref.dismiss();
|
19411
19407
|
}
|
19412
19408
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OutOfOfficeToast, deps: [{ token: RouterImpl }, { token: AccountService }, { token: MAT_SNACK_BAR_DATA }, { token: i3.MatSnackBarRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
19413
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: OutOfOfficeToast, isStandalone: false, selector: "bizdoc-outofoffice", ngImport: i0, template: "@if (substitute) {\r\n <span
|
19409
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: OutOfOfficeToast, isStandalone: false, selector: "bizdoc-outofoffice", ngImport: i0, template: "<div matSnackBarLabel>\r\n @if (substitute) {\r\n <span [innerHTML]=\"'OutOfOfficeOn'|translate:substitute.name|sanitizeHtml\"></span>\r\n }\r\n</div>\r\n<div matSnackBarActions>\r\n <button mat-stroked-button matSnackBarAction (click)=\"options()\" color=\"warn\">{{'ChangeOptions'|translate}}</button>\r\n <button matSnackBarAction mat-icon-button (click)=\"dismiss()\" [bizdocTooltip]=\"'Dismiss'|translate\"><mat-icon>close</mat-icon></button>\r\n</div>\r\n", styles: [":host{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.MatSnackBarLabel, selector: "[matSnackBarLabel]" }, { kind: "directive", type: i3.MatSnackBarActions, selector: "[matSnackBarActions]" }, { kind: "directive", type: i3.MatSnackBarAction, selector: "[matSnackBarAction]" }, { 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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
19414
19410
|
}
|
19415
19411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OutOfOfficeToast, decorators: [{
|
19416
19412
|
type: Component,
|
19417
|
-
args: [{ standalone: false, selector: 'bizdoc-outofoffice', template: "@if (substitute) {\r\n <span
|
19413
|
+
args: [{ standalone: false, selector: 'bizdoc-outofoffice', template: "<div matSnackBarLabel>\r\n @if (substitute) {\r\n <span [innerHTML]=\"'OutOfOfficeOn'|translate:substitute.name|sanitizeHtml\"></span>\r\n }\r\n</div>\r\n<div matSnackBarActions>\r\n <button mat-stroked-button matSnackBarAction (click)=\"options()\" color=\"warn\">{{'ChangeOptions'|translate}}</button>\r\n <button matSnackBarAction mat-icon-button (click)=\"dismiss()\" [bizdocTooltip]=\"'Dismiss'|translate\"><mat-icon>close</mat-icon></button>\r\n</div>\r\n", styles: [":host{display:flex}\n"] }]
|
19418
19414
|
}], ctorParameters: () => [{ type: RouterImpl }, { type: AccountService }, { type: undefined, decorators: [{
|
19419
19415
|
type: Inject,
|
19420
19416
|
args: [MAT_SNACK_BAR_DATA]
|
@@ -19652,11 +19648,11 @@ class QuickNotificationsComponent extends NotificationsComponentBase {
|
|
19652
19648
|
this._service.mute(item.id, mute);
|
19653
19649
|
}
|
19654
19650
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: QuickNotificationsComponent, deps: [{ token: PopupRef }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
|
19655
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-
|
19651
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n.id; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 matListItemTitle><ng-container *ngComponentOutlet=\"n.comp; injector: n.injector\" ></ng-container></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amDateFormat: 'lll'\">{{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-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", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2$5.MatList, selector: "mat-list", exportAs: ["matList"] }, { 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: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
19656
19652
|
}
|
19657
19653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: QuickNotificationsComponent, decorators: [{
|
19658
19654
|
type: Component,
|
19659
|
-
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-
|
19655
|
+
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n.id; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 matListItemTitle><ng-container *ngComponentOutlet=\"n.comp; injector: n.injector\" ></ng-container></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amDateFormat: 'lll'\">{{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-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"] }]
|
19660
19656
|
}], ctorParameters: () => [{ type: PopupRef }, { type: RouterImpl }] });
|
19661
19657
|
|
19662
19658
|
let DocumentListingComponent = class DocumentListingComponent {
|
@@ -21316,7 +21312,7 @@ class HomeComponent extends HomeBase {
|
|
21316
21312
|
this._collapseToggle = false;
|
21317
21313
|
this.displayWith = (_) => null;
|
21318
21314
|
this.profile = this._session.profile;
|
21319
|
-
_router.events.pipe(filter(e => e instanceof NavigationStart), filter((e) => e.pane.path !== undefined && e.pane.mode === 'pane')).
|
21315
|
+
_router.events.pipe(filter$1(e => e instanceof NavigationStart), filter$1((e) => e.pane.path !== undefined && e.pane.mode === 'pane')).
|
21320
21316
|
subscribe((e) => this._path = e.pane.path.split('/')[0]);
|
21321
21317
|
}
|
21322
21318
|
get submenuMode() {
|
@@ -21358,7 +21354,7 @@ class HomeComponent extends HomeBase {
|
|
21358
21354
|
return this.main?.panes[0]?.guide;
|
21359
21355
|
}
|
21360
21356
|
ngOnInit() {
|
21361
|
-
this.results = this.search.valueChanges.pipe(filter(v => isString(v)), map(v => this._service.search(v)));
|
21357
|
+
this.results = this.search.valueChanges.pipe(filter$1(v => isString(v)), map(v => this._service.search(v)));
|
21362
21358
|
super.ngOnInit();
|
21363
21359
|
}
|
21364
21360
|
/** options */
|
@@ -21546,7 +21542,7 @@ class CopyDialog {
|
|
21546
21542
|
constructor(_service, dialogRef) {
|
21547
21543
|
this._service = _service;
|
21548
21544
|
this.search = new FormControl();
|
21549
|
-
dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter')).
|
21545
|
+
dialogRef.keydownEvents().pipe(filter$1(k => k.key === 'Enter')).
|
21550
21546
|
subscribe(() => this.selectedItem && dialogRef.close(this.selectedItem));
|
21551
21547
|
}
|
21552
21548
|
ngOnInit() {
|
@@ -21858,7 +21854,7 @@ class ImpersonateDialog {
|
|
21858
21854
|
this._destroy = new Subject();
|
21859
21855
|
this.username = new FormControl(null, Validators.required);
|
21860
21856
|
this.recents$ = this._session.listImpersonate();
|
21861
|
-
this.users$ = this.username.valueChanges.pipe(debounceTime(250), takeUntil(this._destroy), filter(v => isString(v) && v.length > 0), switchMap(v => this._session.listImpersonate(v)));
|
21857
|
+
this.users$ = this.username.valueChanges.pipe(debounceTime(250), takeUntil(this._destroy), filter$1(v => isString(v) && v.length > 0), switchMap(v => this._session.listImpersonate(v)));
|
21862
21858
|
this.logging = false;
|
21863
21859
|
}
|
21864
21860
|
reset() {
|
@@ -22430,7 +22426,7 @@ class CubeMobileViewComponent extends ViewBase {
|
|
22430
22426
|
});
|
22431
22427
|
this._route.queryParams.pipe(takeUntil(this._destroy)).subscribe(p => this.originalAxes = p);
|
22432
22428
|
this.drawer.openedChange.
|
22433
|
-
pipe(filter(() => !this._navigating), takeUntil(this._destroy)).subscribe(() => this.viewPane.resize());
|
22429
|
+
pipe(filter$1(() => !this._navigating), takeUntil(this._destroy)).subscribe(() => this.viewPane.resize());
|
22434
22430
|
this._session.loaded.pipe(takeUntil(this._destroy)).
|
22435
22431
|
subscribe(() => this.viewPane.refresh());
|
22436
22432
|
const queryKeys = Object.keys(this._route.snapshot.queryParams);
|
@@ -23112,7 +23108,7 @@ class MapComponent {
|
|
23112
23108
|
});
|
23113
23109
|
infowindow.open(map, marker);
|
23114
23110
|
}, MARKER_DELAY);
|
23115
|
-
this._ref.keydownEvents().pipe(filter(k => k.key === 'Escape')).subscribe(() => this._ref.detach());
|
23111
|
+
this._ref.keydownEvents().pipe(filter$1(k => k.key === 'Escape')).subscribe(() => this._ref.detach());
|
23116
23112
|
this._ref.backdropClick().pipe().subscribe(() => this._ref.detach());
|
23117
23113
|
}
|
23118
23114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: MapComponent, deps: [{ token: i2$3.OverlayRef }, { token: LOCATION_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
@@ -23189,7 +23185,7 @@ class CubeMatrixPopupComponent extends CubeMatrixBase {
|
|
23189
23185
|
this.originalAxes = base;
|
23190
23186
|
}
|
23191
23187
|
ngOnInit() {
|
23192
|
-
this.table.loadingChange.pipe(filter(ok => !ok), first()).subscribe({
|
23188
|
+
this.table.loadingChange.pipe(filter$1(ok => !ok), first()).subscribe({
|
23193
23189
|
next: () => this.preloading = false,
|
23194
23190
|
error: (e) => {
|
23195
23191
|
if (e.status === 401)
|
@@ -24604,7 +24600,7 @@ let ActionsWidget = class ActionsWidget {
|
|
24604
24600
|
}
|
24605
24601
|
_draw() {
|
24606
24602
|
this.chart?.destroy();
|
24607
|
-
this._loaded.pipe(takeUntil(this._destroy), delay(
|
24603
|
+
this._loaded.pipe(takeUntil(this._destroy), delay(500), filter$1(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24608
24604
|
background: 'transparent',
|
24609
24605
|
legendSettings: this.legendSettings, enableAnimation: true,
|
24610
24606
|
tooltip: this.tooltip,
|
@@ -27925,7 +27921,7 @@ class CombinationPicker {
|
|
27925
27921
|
minWidth: `${el.nativeElement.getBoundingClientRect().width}px`,
|
27926
27922
|
panelClass: 'home-panel'
|
27927
27923
|
});
|
27928
|
-
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter(e => e.key === 'Escape'), tap(e => e.stopPropagation()))).
|
27924
|
+
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter$1(e => e.key === 'Escape'), tap(e => e.stopPropagation()))).
|
27929
27925
|
subscribe(() => this.close());
|
27930
27926
|
return overlayRef;
|
27931
27927
|
}
|
@@ -28552,7 +28548,7 @@ class QuickCommentComponent {
|
|
28552
28548
|
}
|
28553
28549
|
ngOnInit() {
|
28554
28550
|
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
28555
|
-
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
28551
|
+
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).
|
28556
28552
|
subscribe(e => {
|
28557
28553
|
this._accounts.get(e.userId).subscribe(u => {
|
28558
28554
|
this.typing = u.name;
|
@@ -31357,7 +31353,7 @@ class SharedModule {
|
|
31357
31353
|
PrivilegeHiddenDirective,
|
31358
31354
|
TaggingItemDirective, TaggingDirective, DocumentTaggingComponent, UserTaggingComponent,
|
31359
31355
|
PrivilegeDisabledDirective, CubeDocumentsGridComponent,
|
31360
|
-
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification,
|
31356
|
+
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification, ContentMessageNotification, TextNotification, CubeAnomalyNotification, EscalatedNotification, LikedNotification, StateChangedNotification, UpcomingEventNotification,
|
31361
31357
|
NoneComponent, ScheduleViewComponent,
|
31362
31358
|
OptionsComponent, TraceViewComponent,
|
31363
31359
|
ProgressDirective,
|
@@ -31550,7 +31546,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
31550
31546
|
PrivilegeHiddenDirective,
|
31551
31547
|
TaggingItemDirective, TaggingDirective, DocumentTaggingComponent, UserTaggingComponent,
|
31552
31548
|
PrivilegeDisabledDirective, CubeDocumentsGridComponent,
|
31553
|
-
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification,
|
31549
|
+
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification, ContentMessageNotification, TextNotification, CubeAnomalyNotification, EscalatedNotification, LikedNotification, StateChangedNotification, UpcomingEventNotification,
|
31554
31550
|
NoneComponent, ScheduleViewComponent,
|
31555
31551
|
OptionsComponent, TraceViewComponent,
|
31556
31552
|
ProgressDirective,
|
@@ -31836,7 +31832,7 @@ class TraceElementComponent {
|
|
31836
31832
|
});
|
31837
31833
|
}
|
31838
31834
|
chat(e) {
|
31839
|
-
const userId = e.target.getAttribute('data-
|
31835
|
+
const userId = e.target.getAttribute('data-userid');
|
31840
31836
|
userId &&
|
31841
31837
|
this._chat.open(userId);
|
31842
31838
|
}
|
@@ -31859,7 +31855,7 @@ class PositionsPopup {
|
|
31859
31855
|
this._destroy = new Subject();
|
31860
31856
|
}
|
31861
31857
|
ngOnInit() {
|
31862
|
-
this.users$ = this.control.valueChanges.pipe(debounceTime(200), takeUntil(this._destroy), filter(v => isString(v)), switchMap(v => this._service.findAll(v, { take: 20 })));
|
31858
|
+
this.users$ = this.control.valueChanges.pipe(debounceTime(200), takeUntil(this._destroy), filter$1(v => isString(v)), switchMap(v => this._service.findAll(v, { take: 20 })));
|
31863
31859
|
// this._pRef.backdropClick().subscribe(() => {
|
31864
31860
|
// this._pRef.close(this.dirty ? this.positions : null);
|
31865
31861
|
// });
|
@@ -31961,7 +31957,7 @@ let ManageCubeIndexUtility = class ManageCubeIndexUtility {
|
|
31961
31957
|
hasBackdrop: true,
|
31962
31958
|
panelClass: 'home-panel'
|
31963
31959
|
});
|
31964
|
-
merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).pipe(takeUntil(this._destroy)).subscribe(() => oRef.detach());
|
31960
|
+
merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape'))).pipe(takeUntil(this._destroy)).subscribe(() => oRef.detach());
|
31965
31961
|
}
|
31966
31962
|
_find(axes) {
|
31967
31963
|
const n = this.names.length;
|
@@ -33577,7 +33573,7 @@ let PositionsComponent = class PositionsComponent {
|
|
33577
33573
|
_openDialog(tmpl, form, values) {
|
33578
33574
|
form.reset(values);
|
33579
33575
|
const dialogRef = this._dialog.open(tmpl);
|
33580
|
-
dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter'), takeUntil(dialogRef.afterClosed())).
|
33576
|
+
dialogRef.keydownEvents().pipe(filter$1(k => k.key === 'Enter'), takeUntil(dialogRef.afterClosed())).
|
33581
33577
|
subscribe(() => form.valid && dialogRef.close(form.value));
|
33582
33578
|
return dialogRef.afterClosed().pipe(switchMap(v => v ? of(v) : EMPTY));
|
33583
33579
|
}
|
@@ -33934,7 +33930,7 @@ class ProfileSettingsDialog {
|
|
33934
33930
|
this.substitute.disable();
|
33935
33931
|
}
|
33936
33932
|
});
|
33937
|
-
this.ousers$ = this.substitute.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter
|
33933
|
+
this.ousers$ = this.substitute.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter(v => isString(v)), switchMap$1(v => this._accounts.findAll(v)), map$1(r => r.filter(u => u.id !== this.model.userId)));
|
33938
33934
|
from.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed())).
|
33939
33935
|
subscribe(v => {
|
33940
33936
|
if (v)
|
@@ -33956,7 +33952,7 @@ class ProfileSettingsDialog {
|
|
33956
33952
|
this.grants.clearValidators();
|
33957
33953
|
}
|
33958
33954
|
});
|
33959
|
-
this.gusers$ = this.grants.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter
|
33955
|
+
this.gusers$ = this.grants.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter(v => isString(v)), switchMap$1(v => this._accounts.findAll(v)), map$1(r => r.filter(u => u.id !== this.model.userId)));
|
33960
33956
|
}
|
33961
33957
|
setId(event) {
|
33962
33958
|
const { id } = event.option.value;
|
@@ -34078,7 +34074,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
34078
34074
|
userId && this._open(userId);
|
34079
34075
|
});
|
34080
34076
|
this._pane.resized().pipe(takeUntil(this._destroy)).subscribe(() => this.chart?.chartResize());
|
34081
|
-
this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)));
|
34077
|
+
this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter$1(v => isString(v)), switchMap(v => this._accounts.findAll(v)));
|
34082
34078
|
}
|
34083
34079
|
guide(evt) {
|
34084
34080
|
const steps = [];
|
@@ -34407,7 +34403,7 @@ class IconPickerComponent {
|
|
34407
34403
|
else
|
34408
34404
|
this._list(IconPickerComponent.icons);
|
34409
34405
|
this.filter.valueChanges.
|
34410
|
-
pipe(takeUntil$1(this._destroy), filter
|
34406
|
+
pipe(takeUntil$1(this._destroy), filter(v => isString(v)), debounceTime$1(200)).
|
34411
34407
|
subscribe(v => this._list(IconPickerComponent.icons.filter(i => i.tags.findIndex(t => t.indexOf(v) > -1) > -1)));
|
34412
34408
|
}
|
34413
34409
|
_list(e) {
|
@@ -34440,7 +34436,7 @@ class IconPickerComponent {
|
|
34440
34436
|
});
|
34441
34437
|
const portal = new TemplatePortal(this.panel, this._vc);
|
34442
34438
|
this._overlayRef.attach(portal);
|
34443
|
-
merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter
|
34439
|
+
merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).subscribe(() => this._overlayRef.detach());
|
34444
34440
|
}
|
34445
34441
|
_trackBy(index, el) {
|
34446
34442
|
return el.name;
|
@@ -38011,5 +38007,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
38011
38007
|
* Generated bundle index. Do not edit.
|
38012
38008
|
*/
|
38013
38009
|
|
38014
|
-
export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentFactory, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, Tab, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, VirtualTabs, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, playAudio, programName, registerComponents };
|
38010
|
+
export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentFactory, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationRef, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, Tab, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, VirtualTabs, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, playAudio, programName, registerComponents };
|
38015
38011
|
//# sourceMappingURL=bizdoc-core.mjs.map
|