@bizdoc/core 3.6.7 → 3.7.0
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 +1 -0
- package/fesm2022/bizdoc-core.mjs +468 -445
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/index.d.ts +227 -230
- 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, forkJoin, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1,
|
4
|
-
import { map, tap, shareReplay, filter, startWith, takeUntil, debounceTime, switchMap,
|
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';
|
@@ -1221,9 +1221,9 @@ class SessionService {
|
|
1221
1221
|
get isOutOfOffice() {
|
1222
1222
|
const options = this.profile.options.outOfOffice;
|
1223
1223
|
if (options && options.active) {
|
1224
|
-
const today =
|
1225
|
-
return (!options.from ||
|
1226
|
-
&& (!options.to ||
|
1224
|
+
const today = new Date();
|
1225
|
+
return (!options.from || new Date(options.from) <= today)
|
1226
|
+
&& (!options.to || new Date(options.to) > today);
|
1227
1227
|
}
|
1228
1228
|
else
|
1229
1229
|
return false;
|
@@ -2691,7 +2691,7 @@ class TranslateService {
|
|
2691
2691
|
cldr() {
|
2692
2692
|
if ('en' === this._session.language)
|
2693
2693
|
return Promise.resolve();
|
2694
|
-
const observables = CLDR_FILES.map(f => this._http.get('/assets/i18n/' + f.replace('{0}', this.culture)).pipe(tap(loadCldr)));
|
2694
|
+
const observables = CLDR_FILES.map(f => this._http.get('/assets/i18n/' + f.replace('{0}', this.culture)).pipe(tap(loadCldr), catchError(error => of(undefined))));
|
2695
2695
|
return firstValueFrom(forkJoin(observables));
|
2696
2696
|
}
|
2697
2697
|
get(key, ...args) {
|
@@ -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;
|
@@ -3656,6 +3806,15 @@ class OptionsComponent {
|
|
3656
3806
|
};
|
3657
3807
|
return null;
|
3658
3808
|
};
|
3809
|
+
this._laterThan = (control) => {
|
3810
|
+
const parent = control.parent;
|
3811
|
+
if (parent && parent.controls['from'].value && new Date(parent.controls['from'].value) ===
|
3812
|
+
new Date(control.value))
|
3813
|
+
return {
|
3814
|
+
later: true
|
3815
|
+
};
|
3816
|
+
return null;
|
3817
|
+
};
|
3659
3818
|
this.grantUserIds = this._fb.control([]);
|
3660
3819
|
this.oooId = this._fb.control(null);
|
3661
3820
|
this.form = this._fb.group({
|
@@ -3703,6 +3862,11 @@ class OptionsComponent {
|
|
3703
3862
|
if (!this._session.isImpersonating) {
|
3704
3863
|
this.guidesCount = this.guides.filter(w => w.mode === 'Eager').length || null;
|
3705
3864
|
}
|
3865
|
+
if (paneRef) {
|
3866
|
+
const section = paneRef.queryParams['section'];
|
3867
|
+
if (section)
|
3868
|
+
this.sectionIndex = 2;
|
3869
|
+
}
|
3706
3870
|
this.languages = this._session.languages;
|
3707
3871
|
this.currentLanguage = this._session.language;
|
3708
3872
|
this.available = this._session.availabilityState;
|
@@ -3785,12 +3949,12 @@ class OptionsComponent {
|
|
3785
3949
|
});
|
3786
3950
|
outOfOffice.controls.from.valueChanges.pipe(takeUntil(this._destroy)).
|
3787
3951
|
subscribe(from => this._toggle(outOfOffice, from !== null, 'to'));
|
3788
|
-
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 => {
|
3789
3953
|
const exclude = grantAccess.value.users?.slice() || [];
|
3790
3954
|
exclude.push(this._session.profile.userId);
|
3791
3955
|
return r.filter(u => exclude.indexOf(u.id) < 0);
|
3792
3956
|
}));
|
3793
|
-
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)));
|
3794
3958
|
if (this.options.outOfOffice.substitueId)
|
3795
3959
|
this._accounts.get(this.options.outOfOffice.substitueId).subscribe(u => this.oooId.setValue(u, { emitEvent: false }));
|
3796
3960
|
// auto save
|
@@ -3879,13 +4043,15 @@ class OptionsComponent {
|
|
3879
4043
|
this._destroy.next();
|
3880
4044
|
this._destroy.complete();
|
3881
4045
|
}
|
3882
|
-
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 }); }
|
3883
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] }); }
|
3884
4048
|
}
|
3885
4049
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OptionsComponent, decorators: [{
|
3886
4050
|
type: Component,
|
3887
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"] }]
|
3888
|
-
}], 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: [{
|
3889
4055
|
type: Inject,
|
3890
4056
|
args: [BIZDOC_CONFIG]
|
3891
4057
|
}] }], propDecorators: { keyboard: [{
|
@@ -4080,7 +4246,7 @@ class ColorPicker {
|
|
4080
4246
|
hasBackdrop: true,
|
4081
4247
|
backdropClass: 'cdk-overlay-transparent-backdrop'
|
4082
4248
|
});
|
4083
|
-
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());
|
4084
4250
|
return ref;
|
4085
4251
|
}
|
4086
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 }); }
|
@@ -5915,7 +6081,7 @@ class TypeAutocomplete {
|
|
5915
6081
|
if (!this._configuration)
|
5916
6082
|
throw `${this._type} is not a known type.`;
|
5917
6083
|
this._column = this._configuration.columns ? this._configuration.columns.find(c => !c.flags || c.flags.indexOf('Key') < 0) : undefined;
|
5918
|
-
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)));
|
5919
6085
|
this._control.statusChanges.pipe(takeUntil(this._destroy)).subscribe(() => {
|
5920
6086
|
this.errorState = this._control.errors != null;
|
5921
6087
|
});
|
@@ -6867,7 +7033,7 @@ class DesignerCubeFilterComponent {
|
|
6867
7033
|
}
|
6868
7034
|
const ctrl = this._fb.control(null);
|
6869
7035
|
this.form.addControl(a.name, ctrl, { emitEvent: false });
|
6870
|
-
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 => {
|
6871
7037
|
if (this._decendents[a.name])
|
6872
7038
|
for (let axis of this._decendents[a.name]) {
|
6873
7039
|
let deps = {};
|
@@ -7813,156 +7979,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
7813
7979
|
}]
|
7814
7980
|
}] });
|
7815
7981
|
|
7816
|
-
const QUERY_CHAR = ':', PATH_CHAR = ';', ARG_CHAR = '&', PANE_CHAR = '~';
|
7817
|
-
const PANES_DATA = new InjectionToken('panes');
|
7818
|
-
class NavigationBase {
|
7819
|
-
preventDefault() {
|
7820
|
-
this._preventDefault = true;
|
7821
|
-
}
|
7822
|
-
}
|
7823
|
-
class CollapseNavigation extends NavigationBase {
|
7824
|
-
}
|
7825
|
-
class BackNavigation extends NavigationBase {
|
7826
|
-
}
|
7827
|
-
class NavigationPaneBase extends NavigationBase {
|
7828
|
-
constructor(_pane) {
|
7829
|
-
super();
|
7830
|
-
this._pane = _pane;
|
7831
|
-
}
|
7832
|
-
get pane() {
|
7833
|
-
return this._pane;
|
7834
|
-
}
|
7835
|
-
}
|
7836
|
-
class NavigationStart extends NavigationPaneBase {
|
7837
|
-
}
|
7838
|
-
/** pane fucus change */
|
7839
|
-
class NavigationFocus extends NavigationPaneBase {
|
7840
|
-
}
|
7841
|
-
class NavigationEnd extends NavigationPaneBase {
|
7842
|
-
}
|
7843
|
-
class NavigationMode extends NavigationPaneBase {
|
7844
|
-
constructor(mode, pane) {
|
7845
|
-
super(pane);
|
7846
|
-
this.mode = mode;
|
7847
|
-
}
|
7848
|
-
}
|
7849
|
-
class NavigationExpand extends NavigationPaneBase {
|
7850
|
-
constructor(expended, pane) {
|
7851
|
-
super(pane);
|
7852
|
-
this.expended = expended;
|
7853
|
-
}
|
7854
|
-
}
|
7855
|
-
class NavigationResize extends NavigationPaneBase {
|
7856
|
-
constructor(dimentions, pane) {
|
7857
|
-
super(pane);
|
7858
|
-
this.dimentions = dimentions;
|
7859
|
-
}
|
7860
|
-
}
|
7861
|
-
class NavigationClose extends NavigationPaneBase {
|
7862
|
-
}
|
7863
|
-
class ParamNavigation extends NavigationPaneBase {
|
7864
|
-
constructor(params, pane) {
|
7865
|
-
super(pane);
|
7866
|
-
this.params = params;
|
7867
|
-
}
|
7868
|
-
}
|
7869
|
-
class QueryParamNavigation extends NavigationPaneBase {
|
7870
|
-
constructor(queryParams, pane) {
|
7871
|
-
super(pane);
|
7872
|
-
this.queryParams = queryParams;
|
7873
|
-
}
|
7874
|
-
}
|
7875
|
-
/** */
|
7876
|
-
class PaneRef {
|
7877
|
-
get expandable() { return this._expandable; }
|
7878
|
-
get injector() { return this._injector; }
|
7879
|
-
get expanded() { return this._expanded; }
|
7880
|
-
get fullPath() { return (this._path || '') + (this._queryString ? (QUERY_CHAR + this._queryString) : ''); }
|
7881
|
-
get instance() { return this._instance; }
|
7882
|
-
get data() { return this._data$.value; }
|
7883
|
-
get params() { return this._params$.value; }
|
7884
|
-
get queryString() { return this._queryString; }
|
7885
|
-
get queryParams() { return this._queryParams$.value; }
|
7886
|
-
paramsChange() { return this._params$.asObservable(); }
|
7887
|
-
queryParamsChange() { return this._queryParams$.asObservable(); }
|
7888
|
-
dataChange() { return this._data$.asObservable(); }
|
7889
|
-
resized() { return this._events$.pipe(filter$1(e => e instanceof NavigationResize)); }
|
7890
|
-
closeing() { return this._events$.pipe(filter$1(e => e instanceof NavigationClose)); }
|
7891
|
-
closed() { return this._events$.pipe(filter$1(e => e instanceof NavigationClose), map$1(() => this._value)); }
|
7892
|
-
expandedChange() { return this._events$.pipe(filter$1(e => e instanceof NavigationExpand), map$1(() => this.expanded)); }
|
7893
|
-
get path() { return this._path; }
|
7894
|
-
;
|
7895
|
-
get mode() { return this._mode; }
|
7896
|
-
;
|
7897
|
-
get parent() { return this._options.parent; }
|
7898
|
-
;
|
7899
|
-
get stretchable() { return this._stretchable === true; }
|
7900
|
-
;
|
7901
|
-
set stretchable(val) { this._stretchable = val; }
|
7902
|
-
get dialog() { return this._options.dialog; }
|
7903
|
-
;
|
7904
|
-
get dismissable() { return this._options.dismissable; }
|
7905
|
-
;
|
7906
|
-
get route() { return this._options.route; }
|
7907
|
-
;
|
7908
|
-
constructor(component, injector, id, _options) {
|
7909
|
-
this.id = id;
|
7910
|
-
this._options = _options;
|
7911
|
-
this._command$ = new Subject();
|
7912
|
-
/** */
|
7913
|
-
this._data$ = new BehaviorSubject({});
|
7914
|
-
this._params$ = new BehaviorSubject({});
|
7915
|
-
this._queryParams$ = new BehaviorSubject({});
|
7916
|
-
this._events$ = new Subject();
|
7917
|
-
const { stretchable, mode, data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, expanded, expandable } = _options;
|
7918
|
-
this._path = path;
|
7919
|
-
this._mode = mode;
|
7920
|
-
this._stretchable = stretchable;
|
7921
|
-
this._expanded = expanded;
|
7922
|
-
this._queryString = queryString;
|
7923
|
-
this._expandable = expandable !== false;
|
7924
|
-
this._injector = Injector.create({
|
7925
|
-
providers: [
|
7926
|
-
{ provide: PaneRef, useValue: this }
|
7927
|
-
], parent: injector
|
7928
|
-
});
|
7929
|
-
this._portal = new ComponentPortal(component, null, this._injector);
|
7930
|
-
this.title = title;
|
7931
|
-
this.group = group;
|
7932
|
-
this.guide = guide;
|
7933
|
-
this.help = help;
|
7934
|
-
this.icon = icon;
|
7935
|
-
this.animation = animation;
|
7936
|
-
data && this._data$.next(data);
|
7937
|
-
params && this._params$.next(params);
|
7938
|
-
queryParams && this._queryParams$.next(queryParams);
|
7939
|
-
}
|
7940
|
-
decendentOf(pane) {
|
7941
|
-
return this.parent === pane; //||
|
7942
|
-
// (this.path && pane.path && this.path.startsWith(pane.path));
|
7943
|
-
}
|
7944
|
-
recycle() {
|
7945
|
-
this._command$.next('recycle');
|
7946
|
-
}
|
7947
|
-
focus() {
|
7948
|
-
this._command$.next('focus');
|
7949
|
-
}
|
7950
|
-
close(value) {
|
7951
|
-
this._value = value;
|
7952
|
-
this._command$.next('close');
|
7953
|
-
}
|
7954
|
-
expand() {
|
7955
|
-
this._command$.next('expand');
|
7956
|
-
}
|
7957
|
-
_destroy() {
|
7958
|
-
this._command$.complete();
|
7959
|
-
this._data$.complete();
|
7960
|
-
this._params$.complete();
|
7961
|
-
this._queryParams$.complete();
|
7962
|
-
this._events$.complete();
|
7963
|
-
}
|
7964
|
-
}
|
7965
|
-
|
7966
7982
|
/** filter component*/
|
7967
7983
|
class CubeFilterComponent {
|
7968
7984
|
ngOnInit() {
|
@@ -7988,7 +8004,7 @@ class CubeFilterComponent {
|
|
7988
8004
|
}
|
7989
8005
|
}
|
7990
8006
|
const ctrl = controls[a.name] = this._fb.control(this.axes[a.name]);
|
7991
|
-
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 => {
|
7992
8008
|
if (v === null || v === undefined || (isArray(v) && !v.length))
|
7993
8009
|
delete this.axes[a.name];
|
7994
8010
|
else
|
@@ -8123,7 +8139,7 @@ class BrowseFilterComponent {
|
|
8123
8139
|
this.filters = { axes, cube };
|
8124
8140
|
}
|
8125
8141
|
this.senders$ = this.sendername.valueChanges.
|
8126
|
-
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)));
|
8127
8143
|
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(FILTER_DEBOUNCE)).
|
8128
8144
|
subscribe(v => this.valuesChange.emit(cleanup(v)));
|
8129
8145
|
this.form.patchValue(this.values, { emitEvent: false });
|
@@ -8211,7 +8227,7 @@ class PanesRouter {
|
|
8211
8227
|
}
|
8212
8228
|
navigate(commands, options) {
|
8213
8229
|
return new Promise((resolve, reject) => {
|
8214
|
-
this._events$.pipe(filter(e => e instanceof NavigationStart), first()).subscribe({
|
8230
|
+
this._events$.pipe(filter$1(e => e instanceof NavigationStart), first()).subscribe({
|
8215
8231
|
next: e => resolve(e.pane),
|
8216
8232
|
error: reject
|
8217
8233
|
});
|
@@ -8357,7 +8373,7 @@ class ChatInfo {
|
|
8357
8373
|
*/
|
8358
8374
|
format(person) {
|
8359
8375
|
if (this._config !== false)
|
8360
|
-
return `<a data-
|
8376
|
+
return `<a data-userid="${person.id}">${person.name}</a>`;
|
8361
8377
|
return person.name;
|
8362
8378
|
}
|
8363
8379
|
/**
|
@@ -8457,7 +8473,7 @@ class IdentityName {
|
|
8457
8473
|
* @param e
|
8458
8474
|
*/
|
8459
8475
|
chat(e) {
|
8460
|
-
const userId = e.target.getAttribute('data-
|
8476
|
+
const userId = e.target.getAttribute('data-userid');
|
8461
8477
|
userId &&
|
8462
8478
|
this._chat.open(userId, { mode: this.chating });
|
8463
8479
|
}
|
@@ -8538,13 +8554,13 @@ class AttachmentPreview {
|
|
8538
8554
|
}
|
8539
8555
|
close() {
|
8540
8556
|
// Listen for animation 'start' events
|
8541
|
-
this.animationStateChanged.pipe(filter(event => event.phaseName === 'start'), take(1)).subscribe(() => {
|
8557
|
+
this.animationStateChanged.pipe(filter$1(event => event.phaseName === 'start'), take(1)).subscribe(() => {
|
8542
8558
|
this._beforeClose.next();
|
8543
8559
|
this._beforeClose.complete();
|
8544
8560
|
this._overlayRef.detachBackdrop();
|
8545
8561
|
});
|
8546
8562
|
// Listen for animation 'done' events
|
8547
|
-
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(() => {
|
8548
8564
|
this._overlayRef.dispose();
|
8549
8565
|
this._afterClosed.next();
|
8550
8566
|
this._afterClosed.complete();
|
@@ -8691,6 +8707,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
8691
8707
|
type: Input
|
8692
8708
|
}] } });
|
8693
8709
|
|
8710
|
+
class DateFormatPipe {
|
8711
|
+
transform(value, ...args) {
|
8712
|
+
return dayjs(value).format(args[0]);
|
8713
|
+
}
|
8714
|
+
constructor() {
|
8715
|
+
dayjs.extend(localizedFormat);
|
8716
|
+
}
|
8717
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
8718
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, isStandalone: false, name: "amDateFormat" }); }
|
8719
|
+
}
|
8720
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, decorators: [{
|
8721
|
+
type: Pipe,
|
8722
|
+
args: [{
|
8723
|
+
standalone: false,
|
8724
|
+
name: 'amDateFormat'
|
8725
|
+
}]
|
8726
|
+
}], ctorParameters: () => [] });
|
8727
|
+
|
8694
8728
|
class CalendarPipe {
|
8695
8729
|
static { this.refs = 0; }
|
8696
8730
|
static { this.timer = null; }
|
@@ -8763,8 +8797,9 @@ function getMillisecondsUntilUpdate() {
|
|
8763
8797
|
/** mail-attachments component*/
|
8764
8798
|
class AttachmentsComponent {
|
8765
8799
|
/** mail-attachments ctor */
|
8766
|
-
constructor(_mailbox, _session, _vc, _sb, _overlay, _injector, _dir) {
|
8800
|
+
constructor(_mailbox, _translate, _session, _vc, _sb, _overlay, _injector, _dir) {
|
8767
8801
|
this._mailbox = _mailbox;
|
8802
|
+
this._translate = _translate;
|
8768
8803
|
this._session = _session;
|
8769
8804
|
this._vc = _vc;
|
8770
8805
|
this._sb = _sb;
|
@@ -8773,6 +8808,12 @@ class AttachmentsComponent {
|
|
8773
8808
|
this._dir = _dir;
|
8774
8809
|
this.viewedIndicator = true;
|
8775
8810
|
this.includeDeleted = false;
|
8811
|
+
this.CALENDAR_SPEC = {
|
8812
|
+
lastDay: this._translate.get('YesterdayAt', 'HH:mm'),
|
8813
|
+
lastWeek: 'dddd HH:mm',
|
8814
|
+
sameDay: this._translate.get('TodayAt', 'HH:mm'),
|
8815
|
+
sameElse: 'MMM D HH:mm'
|
8816
|
+
};
|
8776
8817
|
}
|
8777
8818
|
ngOnChanges() {
|
8778
8819
|
const distinct = [];
|
@@ -8856,13 +8897,13 @@ class AttachmentsComponent {
|
|
8856
8897
|
else
|
8857
8898
|
this._sb.ask('DeleteFileAsk', 'DeleteFile', { color: 'warn' }).subscribe(ok => ok && task());
|
8858
8899
|
}
|
8859
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AttachmentsComponent, deps: [{ token: MailboxService }, { token: SessionService }, { token: i0.ViewContainerRef }, { token: PromptService }, { token: i2$3.Overlay }, { token: i0.Injector }, { token: i7$2.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
8860
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: AttachmentsComponent, isStandalone: false, selector: "bizdoc-attachments", inputs: { model: "model", viewedIndicator: "viewedIndicator", includeDeleted: "includeDeleted" }, usesOnChanges: true, ngImport: i0, template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time |
|
8900
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AttachmentsComponent, deps: [{ token: MailboxService }, { token: TranslateService }, { token: SessionService }, { token: i0.ViewContainerRef }, { token: PromptService }, { token: i2$3.Overlay }, { token: i0.Injector }, { token: i7$2.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
|
8901
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.0", type: AttachmentsComponent, isStandalone: false, selector: "bizdoc-attachments", inputs: { model: "model", viewedIndicator: "viewedIndicator", includeDeleted: "includeDeleted" }, usesOnChanges: true, ngImport: i0, template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time | amDateFormat: 'lll'\"\r\n [progressIndicator]=\"a.progress\">\r\n @if (viewedIndicator && a.viewed) {\r\n <mat-icon>done_all</mat-icon>\r\n }\r\n <!--[bizdocTooltip]=\"a.viewed | amCalendar\"-->\r\n <mat-icon>attachment</mat-icon> \r\n <span [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\">{{a.fileName}}</span>\r\n </button>\r\n <mat-menu #attachment>\r\n @if (!a.failed) {\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n @if (canPreview(a)) {\r\n <button mat-menu-item (click)=\"preview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n }\r\n @if (hasVersion(a)) {\r\n <mat-divider></mat-divider>\r\n @for (v of getVersions(a); track v) {\r\n <button mat-menu-item (click)=\"previewOrDownload(v)\">{{v.time | amCalendar: null : CALENDAR_SPEC}}</button>\r\n }\r\n }\r\n @if (canDelete(a)) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n }\r\n }\r\n @if (a.failed) {\r\n <button mat-menu-item (click)=\"cancel(a)\">{{\"Cancel\" | translate}}</button>\r\n }\r\n </mat-menu>\r\n </div>\r\n}\r\n", styles: [":host{display:flex;flex-flow:wrap;position:relative;z-index:0}.attachment-link.failed{color:red}.attachment-link .deleted{text-decoration:line-through}::ng-deep button .progress{background-color:#696969;position:absolute;height:100%}\n"], dependencies: [{ kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { 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: 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: ProgressDirective, selector: "[progressIndicator]", inputs: ["progressIndicator"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
8861
8902
|
}
|
8862
8903
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: AttachmentsComponent, decorators: [{
|
8863
8904
|
type: Component,
|
8864
|
-
args: [{ standalone: false, selector: 'bizdoc-attachments', template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time |
|
8865
|
-
}], ctorParameters: () => [{ type: MailboxService }, { type: SessionService }, { type: i0.ViewContainerRef }, { type: PromptService }, { type: i2$3.Overlay }, { type: i0.Injector }, { type: i7$2.Directionality }], propDecorators: { model: [{
|
8905
|
+
args: [{ standalone: false, selector: 'bizdoc-attachments', template: "@for (a of attachments; track a) {\r\n <div>\r\n <button mat-button class=\"attachment-link\" [matMenuTriggerFor]=\"attachment\" [bizdocTooltip]=\"a.time | amDateFormat: 'lll'\"\r\n [progressIndicator]=\"a.progress\">\r\n @if (viewedIndicator && a.viewed) {\r\n <mat-icon>done_all</mat-icon>\r\n }\r\n <!--[bizdocTooltip]=\"a.viewed | amCalendar\"-->\r\n <mat-icon>attachment</mat-icon> \r\n <span [class.deleted]=\"a.deleted\" [class.failed]=\"a.failed\">{{a.fileName}}</span>\r\n </button>\r\n <mat-menu #attachment>\r\n @if (!a.failed) {\r\n <button mat-menu-item (click)=\"download(a)\">{{\"Download\" | translate}}</button>\r\n @if (canPreview(a)) {\r\n <button mat-menu-item (click)=\"preview(a)\"><mat-icon>landscape</mat-icon> {{\"Preview\" | translate}}</button>\r\n }\r\n @if (hasVersion(a)) {\r\n <mat-divider></mat-divider>\r\n @for (v of getVersions(a); track v) {\r\n <button mat-menu-item (click)=\"previewOrDownload(v)\">{{v.time | amCalendar: null : CALENDAR_SPEC}}</button>\r\n }\r\n }\r\n @if (canDelete(a)) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"discard(a)\">{{\"Discard\" | translate}}</button>\r\n }\r\n }\r\n @if (a.failed) {\r\n <button mat-menu-item (click)=\"cancel(a)\">{{\"Cancel\" | translate}}</button>\r\n }\r\n </mat-menu>\r\n </div>\r\n}\r\n", styles: [":host{display:flex;flex-flow:wrap;position:relative;z-index:0}.attachment-link.failed{color:red}.attachment-link .deleted{text-decoration:line-through}::ng-deep button .progress{background-color:#696969;position:absolute;height:100%}\n"] }]
|
8906
|
+
}], ctorParameters: () => [{ type: MailboxService }, { type: TranslateService }, { type: SessionService }, { type: i0.ViewContainerRef }, { type: PromptService }, { type: i2$3.Overlay }, { type: i0.Injector }, { type: i7$2.Directionality }], propDecorators: { model: [{
|
8866
8907
|
type: Input
|
8867
8908
|
}], viewedIndicator: [{
|
8868
8909
|
type: Input
|
@@ -8950,7 +8991,7 @@ class ExpandedItemComponent {
|
|
8950
8991
|
});
|
8951
8992
|
this._mailbox.changed.pipe(takeUntil(this._destroy)).subscribe(e => (e.id === this.model.id) &&
|
8952
8993
|
this._refresh());
|
8953
|
-
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(() => {
|
8954
8995
|
this.typing = true;
|
8955
8996
|
clearTimeout(this._typingTask);
|
8956
8997
|
this._typingTask = setTimeout(() => this.typing = false, TYPING_HINT_TIME);
|
@@ -9119,7 +9160,7 @@ class ExpandedItemComponent {
|
|
9119
9160
|
* @param e
|
9120
9161
|
*/
|
9121
9162
|
chat(e) {
|
9122
|
-
const userId = e.target.getAttribute('data-
|
9163
|
+
const userId = e.target.getAttribute('data-userid');
|
9123
9164
|
userId &&
|
9124
9165
|
this._chat.open(userId);
|
9125
9166
|
}
|
@@ -9231,6 +9272,12 @@ class BrowseItemsComponent {
|
|
9231
9272
|
this._config = _config;
|
9232
9273
|
this.onopen = new EventEmitter();
|
9233
9274
|
this.onInsights = new EventEmitter();
|
9275
|
+
this.CALENDAR_SPEC = {
|
9276
|
+
lastDay: this._translate.get('Yesterday'),
|
9277
|
+
lastWeek: 'dddd',
|
9278
|
+
sameDay: this._translate.get('Today'),
|
9279
|
+
sameElse: 'MMM D, yy'
|
9280
|
+
};
|
9234
9281
|
this.sharedActions = [];
|
9235
9282
|
this.dragDisabled = true;
|
9236
9283
|
this.PAGE_SIZE = SIZE;
|
@@ -9634,7 +9681,7 @@ class BrowseItemsComponent {
|
|
9634
9681
|
this._destroy.complete();
|
9635
9682
|
}
|
9636
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 }); }
|
9637
|
-
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}} </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 | amCalendar\">{{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}} </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}} </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 | amCalendar\"> {{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 }}\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: 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=\"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: [
|
9638
9685
|
listAnimation,
|
9639
9686
|
itemAnimation,
|
9640
9687
|
expandListItemAnimation,
|
@@ -9648,7 +9695,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
9648
9695
|
itemAnimation,
|
9649
9696
|
expandListItemAnimation,
|
9650
9697
|
listItemUpdatedAnimation
|
9651
|
-
], 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}} </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 | amCalendar\">{{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}} </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}} </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 | amCalendar\"> {{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 }}\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=\"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"] }]
|
9652
9699
|
}], ctorParameters: () => [{ type: MailboxService }, { type: AccountService }, { type: CubeService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }, { type: RouterImpl }, { type: HubService }, { type: undefined, decorators: [{
|
9653
9700
|
type: Inject,
|
9654
9701
|
args: [BIZDOC_CONFIG]
|
@@ -10538,7 +10585,7 @@ class BrowsePaneComponent {
|
|
10538
10585
|
this._pane.title = this._translate.get('Tags');
|
10539
10586
|
this.filters = p;
|
10540
10587
|
});
|
10541
|
-
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)
|
10542
10589
|
&& e.pane._portal.component === ComposePaneComponent)).
|
10543
10590
|
subscribe(e => this.items.select(e.pane.data['item'].id));
|
10544
10591
|
this.contains.valueChanges.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(v => this.filters = { ...this.filters, contains: v });
|
@@ -12807,7 +12854,7 @@ class AvatarComponent {
|
|
12807
12854
|
}
|
12808
12855
|
!this.dense && this._changeMode(this.person.mode);
|
12809
12856
|
}
|
12810
|
-
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));
|
12811
12858
|
}
|
12812
12859
|
_changeMode(mode) {
|
12813
12860
|
if (!this._showMode)
|
@@ -13369,7 +13416,7 @@ class TaggingPipe {
|
|
13369
13416
|
evt.preventDefault();
|
13370
13417
|
}
|
13371
13418
|
else {
|
13372
|
-
const userId = src.getAttribute('data-
|
13419
|
+
const userId = src.getAttribute('data-userid');
|
13373
13420
|
userId && this._chat.open(userId);
|
13374
13421
|
}
|
13375
13422
|
}
|
@@ -13415,7 +13462,7 @@ class CommentLikesComponent {
|
|
13415
13462
|
this._mailbox = _mailbox;
|
13416
13463
|
this._messaging = _messaging;
|
13417
13464
|
this._destroy = new Subject();
|
13418
|
-
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 => {
|
13419
13466
|
});
|
13420
13467
|
}
|
13421
13468
|
ngOnInit() {
|
@@ -13498,7 +13545,7 @@ class CommentComponent {
|
|
13498
13545
|
* @param e
|
13499
13546
|
*/
|
13500
13547
|
chat(e) {
|
13501
|
-
const userId = e.target.getAttribute('data-
|
13548
|
+
const userId = e.target.getAttribute('data-userid');
|
13502
13549
|
userId &&
|
13503
13550
|
this._chat.open(userId);
|
13504
13551
|
}
|
@@ -13556,7 +13603,7 @@ class CommentComponent {
|
|
13556
13603
|
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
13557
13604
|
});
|
13558
13605
|
oRef.attach(new TemplatePortal(this.previewTemplate, this._vc));
|
13559
|
-
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());
|
13560
13607
|
}
|
13561
13608
|
votes() {
|
13562
13609
|
this._open(CommentLikesComponent, {
|
@@ -13614,7 +13661,7 @@ class CommentsComponent {
|
|
13614
13661
|
this._preserveDraft = _config.comments && _config.comments.preserveDraft;
|
13615
13662
|
}
|
13616
13663
|
ngOnInit() {
|
13617
|
-
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 => {
|
13618
13665
|
if (!this.model.comments.find(c => c.id === e.model.id)) {
|
13619
13666
|
this.model.comments.push(e.model);
|
13620
13667
|
if (this._inFocus)
|
@@ -13622,7 +13669,7 @@ class CommentsComponent {
|
|
13622
13669
|
this.change.emit();
|
13623
13670
|
}
|
13624
13671
|
});
|
13625
|
-
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)).
|
13626
13673
|
subscribe(e => {
|
13627
13674
|
this._accounts.get(e.userId).subscribe(u => {
|
13628
13675
|
this.typing = u.name;
|
@@ -13630,15 +13677,15 @@ class CommentsComponent {
|
|
13630
13677
|
this._typingTask = setTimeout(() => this.typing = null, TYPING_MESSAGE_TIME);
|
13631
13678
|
});
|
13632
13679
|
});
|
13633
|
-
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 => {
|
13634
13681
|
const comment = this.model.comments.find(c => c.id === e.commentId);
|
13635
13682
|
comment && (comment.votes = e.votes);
|
13636
13683
|
});
|
13637
|
-
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 => {
|
13638
13685
|
const comment = this.model.comments.find(c => c.id === e.model.id);
|
13639
13686
|
Object.assign(comment, e.model);
|
13640
13687
|
});
|
13641
|
-
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 => {
|
13642
13689
|
const comment = this.model.comments.find(c => c.id === e.id);
|
13643
13690
|
comment.deleted = e.deleted;
|
13644
13691
|
this.change.emit();
|
@@ -13656,7 +13703,7 @@ class CommentsComponent {
|
|
13656
13703
|
* @param e
|
13657
13704
|
*/
|
13658
13705
|
chat(e) {
|
13659
|
-
const userId = e.target.getAttribute('data-
|
13706
|
+
const userId = e.target.getAttribute('data-userid');
|
13660
13707
|
userId &&
|
13661
13708
|
this._chat.open(userId);
|
13662
13709
|
}
|
@@ -13894,24 +13941,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
13894
13941
|
type: Output
|
13895
13942
|
}] } });
|
13896
13943
|
|
13897
|
-
class DateFormatPipe {
|
13898
|
-
transform(value, ...args) {
|
13899
|
-
return dayjs(value).format(args[0]);
|
13900
|
-
}
|
13901
|
-
constructor() {
|
13902
|
-
dayjs.extend(localizedFormat);
|
13903
|
-
}
|
13904
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
13905
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, isStandalone: false, name: "amDateFormat" }); }
|
13906
|
-
}
|
13907
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: DateFormatPipe, decorators: [{
|
13908
|
-
type: Pipe,
|
13909
|
-
args: [{
|
13910
|
-
standalone: false,
|
13911
|
-
name: 'amDateFormat'
|
13912
|
-
}]
|
13913
|
-
}], ctorParameters: () => [] });
|
13914
|
-
|
13915
13944
|
const PAGE_SIZE$2 = 14;
|
13916
13945
|
/** drill-down component*/
|
13917
13946
|
class ExploreItemsComponent {
|
@@ -14157,7 +14186,7 @@ class ReportRef {
|
|
14157
14186
|
/** listen to progress events reported by backend code */
|
14158
14187
|
progress() {
|
14159
14188
|
return this._hub.reportProgress$.
|
14160
|
-
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));
|
14161
14190
|
}
|
14162
14191
|
/**
|
14163
14192
|
*
|
@@ -14242,7 +14271,7 @@ class ReportViewerComponent {
|
|
14242
14271
|
this._instance = this.table;
|
14243
14272
|
// listen to progress
|
14244
14273
|
this._hub.reportProgress$.
|
14245
|
-
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)).
|
14246
14275
|
subscribe(i => {
|
14247
14276
|
if (this.progress > 0)
|
14248
14277
|
this.progress = i.progress;
|
@@ -15272,7 +15301,7 @@ class UtilityRef {
|
|
15272
15301
|
}
|
15273
15302
|
get jobId() { return this._jobId; }
|
15274
15303
|
progress() {
|
15275
|
-
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));
|
15276
15305
|
}
|
15277
15306
|
execute(args) {
|
15278
15307
|
return this._http.post(`/api/utility/${encodeURIComponent(this._utility.name)}`, args, { observe: 'response' }).
|
@@ -16540,7 +16569,7 @@ class TraceViewComponent extends TraceBase {
|
|
16540
16569
|
this._data && this._filter();
|
16541
16570
|
}
|
16542
16571
|
chat(e) {
|
16543
|
-
const userId = e.target.getAttribute('data-
|
16572
|
+
const userId = e.target.getAttribute('data-userid');
|
16544
16573
|
userId &&
|
16545
16574
|
this._chat.open(userId);
|
16546
16575
|
}
|
@@ -17132,7 +17161,7 @@ class CubeMatrixBase {
|
|
17132
17161
|
this._listen().subscribe(() => this.values[name] = value);
|
17133
17162
|
}
|
17134
17163
|
_listen() {
|
17135
|
-
return this.table.loadingChange.pipe(filter(ok => !ok), first());
|
17164
|
+
return this.table.loadingChange.pipe(filter$1(ok => !ok), first());
|
17136
17165
|
}
|
17137
17166
|
onFilter(axes) {
|
17138
17167
|
this.axes = axes;
|
@@ -17720,14 +17749,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17720
17749
|
args: [CubeMatrixComponent, { static: true }]
|
17721
17750
|
}] } });
|
17722
17751
|
|
17723
|
-
|
17752
|
+
class NotificationRef {
|
17753
|
+
constructor(_message) {
|
17754
|
+
this._message = _message;
|
17755
|
+
}
|
17756
|
+
get message() {
|
17757
|
+
return this._message;
|
17758
|
+
}
|
17759
|
+
}
|
17760
|
+
|
17724
17761
|
class NotificationBase {
|
17725
|
-
constructor(
|
17726
|
-
this.
|
17727
|
-
this.
|
17728
|
-
this.
|
17729
|
-
this.
|
17730
|
-
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);
|
17731
17768
|
}
|
17732
17769
|
_formatUserElement(person) {
|
17733
17770
|
if (person.id === this._session.userId)
|
@@ -17735,57 +17772,64 @@ class NotificationBase {
|
|
17735
17772
|
return this._chat.format(person);
|
17736
17773
|
}
|
17737
17774
|
open(e) {
|
17738
|
-
const
|
17775
|
+
const el = e.target;
|
17776
|
+
if (el.tagName !== 'A')
|
17777
|
+
return;
|
17778
|
+
const userId = el.getAttribute('data-userid');
|
17739
17779
|
if (userId)
|
17740
17780
|
this._chat.open(userId);
|
17741
|
-
else
|
17742
|
-
|
17743
|
-
|
17744
|
-
|
17745
|
-
|
17746
|
-
|
17747
|
-
|
17748
|
-
|
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
|
+
}
|
17749
17792
|
}
|
17750
|
-
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 }); }
|
17751
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 }); }
|
17752
17795
|
}
|
17753
17796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NotificationBase, decorators: [{
|
17754
17797
|
type: Directive
|
17755
|
-
}],
|
17798
|
+
}], propDecorators: { open: [{
|
17756
17799
|
type: HostListener,
|
17757
17800
|
args: ['click', ['$event']]
|
17758
17801
|
}] } });
|
17759
17802
|
|
17760
17803
|
/** */
|
17761
17804
|
class CommentedNotification extends NotificationBase {
|
17805
|
+
constructor() {
|
17806
|
+
super(...arguments);
|
17807
|
+
this._accounts = inject(AccountService);
|
17808
|
+
}
|
17762
17809
|
ngOnInit() {
|
17763
|
-
|
17764
|
-
|
17765
|
-
|
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);
|
17766
17815
|
});
|
17767
17816
|
else
|
17768
|
-
this._accounts.getAll(
|
17817
|
+
this._accounts.getAll(userIds).subscribe(us => {
|
17769
17818
|
if (us.length < 3)
|
17770
|
-
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);
|
17771
17820
|
else {
|
17772
17821
|
const comma = this._translate.comma;
|
17773
17822
|
this.names = us.map(u => u.name).join(comma);
|
17774
|
-
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);
|
17775
17824
|
}
|
17776
17825
|
});
|
17777
17826
|
}
|
17778
|
-
|
17779
|
-
super(notification, router, session, translate, chat);
|
17780
|
-
this.notification = notification;
|
17781
|
-
this._accounts = _accounts;
|
17782
|
-
}
|
17783
|
-
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 }); }
|
17784
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) {
|
17785
|
-
@if (
|
17829
|
+
@if (count < 3) {
|
17786
17830
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17787
17831
|
}
|
17788
|
-
@
|
17832
|
+
@else {
|
17789
17833
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17790
17834
|
}
|
17791
17835
|
}`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -17795,117 +17839,105 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17795
17839
|
args: [{
|
17796
17840
|
standalone: false,
|
17797
17841
|
template: `@if (message) {
|
17798
|
-
@if (
|
17842
|
+
@if (count < 3) {
|
17799
17843
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17800
17844
|
}
|
17801
|
-
@
|
17845
|
+
@else {
|
17802
17846
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17803
17847
|
}
|
17804
17848
|
}`
|
17805
17849
|
}]
|
17806
|
-
}]
|
17807
|
-
type: Inject,
|
17808
|
-
args: [NOTIFICATION_DATA]
|
17809
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
17850
|
+
}] });
|
17810
17851
|
|
17811
|
-
class CubeAnomalyNotification {
|
17852
|
+
class CubeAnomalyNotification extends NotificationBase {
|
17853
|
+
constructor() {
|
17854
|
+
super(...arguments);
|
17855
|
+
this._ds = inject(DatasourceService);
|
17856
|
+
this.axes = '';
|
17857
|
+
}
|
17812
17858
|
ngOnInit() {
|
17813
|
-
|
17859
|
+
const { cube, axes } = this.notification.message;
|
17860
|
+
this.cube = this._session.profile.cubes.find(c => c.name === cube);
|
17814
17861
|
const observables = [];
|
17815
17862
|
this.cube.axes.forEach((a, i) => {
|
17816
|
-
if (a.selectionMode !== 'None' &&
|
17817
|
-
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]));
|
17818
17865
|
}
|
17819
17866
|
});
|
17820
|
-
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])));
|
17821
17868
|
}
|
17822
|
-
open(
|
17823
|
-
const
|
17869
|
+
open(evt) {
|
17870
|
+
const { cube, axes } = this.notification.message;
|
17871
|
+
const id = evt.target.getAttribute('data-id');
|
17824
17872
|
if (id) {
|
17825
17873
|
this._router.navigate(['mailbox/i', parseInt(id).encodeId()]);
|
17826
17874
|
}
|
17827
17875
|
else {
|
17828
17876
|
const params = {};
|
17829
|
-
|
17830
|
-
|
17831
|
-
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 });
|
17832
17879
|
}
|
17833
17880
|
}
|
17834
|
-
|
17835
|
-
|
17836
|
-
this._ds = _ds;
|
17837
|
-
this._session = _session;
|
17838
|
-
this._router = _router;
|
17839
|
-
this._translate = _translate;
|
17840
|
-
this.axes = '';
|
17841
|
-
}
|
17842
|
-
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 }); }
|
17843
|
-
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" }] }); }
|
17844
17883
|
}
|
17845
17884
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: CubeAnomalyNotification, decorators: [{
|
17846
17885
|
type: Component,
|
17847
17886
|
args: [{
|
17848
17887
|
standalone: false,
|
17849
|
-
template: `<span [innerHTML]="
|
17888
|
+
template: `<span [innerHTML]="'CubeAnomalyNotify' | translate : (cube.title | lowercase) : (notification.message.value | currency : cube.currencyCode : 'symbol') : axes | sanitizeHtml"></span>`
|
17850
17889
|
}]
|
17851
|
-
}],
|
17852
|
-
type: Inject,
|
17853
|
-
args: [NOTIFICATION_DATA]
|
17854
|
-
}] }, { type: DatasourceService }, { type: SessionService }, { type: RouterImpl }, { type: TranslateService }], propDecorators: { open: [{
|
17890
|
+
}], propDecorators: { open: [{
|
17855
17891
|
type: HostListener,
|
17856
17892
|
args: ['click', ['$event']]
|
17857
17893
|
}] } });
|
17858
17894
|
|
17859
17895
|
class EscalatedNotification extends NotificationBase {
|
17860
|
-
|
17861
|
-
|
17896
|
+
constructor() {
|
17897
|
+
super(...arguments);
|
17898
|
+
this._accounts = inject(AccountService);
|
17862
17899
|
}
|
17863
|
-
|
17864
|
-
|
17865
|
-
this.notification = notification;
|
17866
|
-
this._accounts = _accounts;
|
17900
|
+
ngOnInit() {
|
17901
|
+
this._accounts.get(this.notification.message.substituteId).subscribe(u => this.name = this._formatUserElement(u));
|
17867
17902
|
}
|
17868
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EscalatedNotification, deps:
|
17869
|
-
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" }] }); }
|
17870
17905
|
}
|
17871
17906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: EscalatedNotification, decorators: [{
|
17872
17907
|
type: Component,
|
17873
17908
|
args: [{
|
17874
17909
|
standalone: false,
|
17875
17910
|
selector: 'bizdoc-notify-escalated',
|
17876
|
-
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>}`
|
17877
17912
|
}]
|
17878
|
-
}]
|
17879
|
-
type: Inject,
|
17880
|
-
args: [NOTIFICATION_DATA]
|
17881
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: SessionService }, { type: ChatInfo }] });
|
17913
|
+
}] });
|
17882
17914
|
|
17883
17915
|
class LikedNotification extends NotificationBase {
|
17916
|
+
constructor() {
|
17917
|
+
super(...arguments);
|
17918
|
+
this._accounts = inject(AccountService);
|
17919
|
+
}
|
17884
17920
|
ngOnInit() {
|
17885
|
-
|
17886
|
-
|
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));
|
17887
17924
|
else
|
17888
|
-
this._accounts.getAll(
|
17925
|
+
this._accounts.getAll(userIds).subscribe(us => {
|
17889
17926
|
if (us.length < 3)
|
17890
|
-
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);
|
17891
17928
|
else {
|
17892
17929
|
const comma = this._translate.comma;
|
17893
17930
|
this.names = us.map(u => u.name).join(comma);
|
17894
|
-
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);
|
17895
17932
|
}
|
17896
17933
|
});
|
17897
17934
|
}
|
17898
|
-
|
17899
|
-
super(notification, router, session, translate, chat);
|
17900
|
-
this.notification = notification;
|
17901
|
-
this._accounts = _accounts;
|
17902
|
-
}
|
17903
|
-
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 }); }
|
17904
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) {
|
17905
17937
|
@if (notification.userIds.length < 3) {
|
17906
17938
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17907
17939
|
}
|
17908
|
-
@
|
17940
|
+
@else {
|
17909
17941
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17910
17942
|
}
|
17911
17943
|
}`, isInline: true, dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -17919,131 +17951,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
17919
17951
|
@if (notification.userIds.length < 3) {
|
17920
17952
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
17921
17953
|
}
|
17922
|
-
@
|
17954
|
+
@else {
|
17923
17955
|
<span [bizdocTooltip]='names' [innerHTML]='message | sanitizeHtml'></span>
|
17924
17956
|
}
|
17925
17957
|
}`
|
17926
17958
|
}]
|
17927
|
-
}]
|
17928
|
-
type: Inject,
|
17929
|
-
args: [NOTIFICATION_DATA]
|
17930
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
17959
|
+
}] });
|
17931
17960
|
|
17932
17961
|
class StateChangedNotification extends NotificationBase {
|
17933
17962
|
ngOnInit() {
|
17934
|
-
this.form = this._session.profile.forms.find(f => f.name === this.notification.formId);
|
17935
|
-
}
|
17936
|
-
constructor(notification, session, router, translate, chat) {
|
17937
|
-
super(notification, router, session, translate, chat);
|
17938
|
-
this.notification = notification;
|
17963
|
+
this.form = this._session.profile.forms.find(f => f.name === this.notification.message.formId);
|
17939
17964
|
}
|
17940
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StateChangedNotification, deps:
|
17941
|
-
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" }] }); }
|
17942
17967
|
}
|
17943
17968
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: StateChangedNotification, decorators: [{
|
17944
17969
|
type: Component,
|
17945
17970
|
args: [{
|
17946
17971
|
standalone: false,
|
17947
|
-
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>`
|
17948
17973
|
}]
|
17949
|
-
}]
|
17950
|
-
type: Inject,
|
17951
|
-
args: [NOTIFICATION_DATA]
|
17952
|
-
}] }, { type: SessionService }, { type: RouterImpl }, { type: TranslateService }, { type: ChatInfo }] });
|
17974
|
+
}] });
|
17953
17975
|
|
17954
17976
|
class TextNotification {
|
17955
17977
|
constructor(notification) {
|
17956
17978
|
this.notification = notification;
|
17957
17979
|
}
|
17958
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TextNotification, deps: [{ token:
|
17959
|
-
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 }); }
|
17960
17982
|
}
|
17961
17983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: TextNotification, decorators: [{
|
17962
17984
|
type: Component,
|
17963
17985
|
args: [{
|
17964
17986
|
standalone: false,
|
17965
17987
|
selector: 'bizdoc-notify-text',
|
17966
|
-
template: `<span [innerHTML]="notification.text"></span>`
|
17988
|
+
template: `<span [innerHTML]="notification.message.text"></span>`
|
17967
17989
|
}]
|
17968
|
-
}], ctorParameters: () => [{ type:
|
17990
|
+
}], ctorParameters: () => [{ type: NotificationRef, decorators: [{
|
17969
17991
|
type: Inject,
|
17970
|
-
args: [
|
17992
|
+
args: [NotificationRef]
|
17971
17993
|
}] }] });
|
17972
17994
|
|
17973
17995
|
class UpcomingEventNotification {
|
17974
|
-
|
17975
|
-
this.
|
17996
|
+
constructor() {
|
17997
|
+
this.notification = inject((NotificationRef));
|
17998
|
+
this._router = inject(RouterImpl);
|
17976
17999
|
}
|
17977
|
-
|
17978
|
-
this.
|
18000
|
+
ngOnInit() {
|
18001
|
+
this.duration = dayjs(this.notification.message.starting);
|
17979
18002
|
}
|
17980
|
-
|
17981
|
-
this.
|
17982
|
-
this._router = _router;
|
18003
|
+
open(_) {
|
18004
|
+
this._router.navigate(['schedule'], { queryParams: { date: this.duration.valueOf().encodeId() } });
|
17983
18005
|
}
|
17984
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: UpcomingEventNotification, deps: [
|
17985
|
-
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" }] }); }
|
17986
18008
|
}
|
17987
18009
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: UpcomingEventNotification, decorators: [{
|
17988
18010
|
type: Component,
|
17989
18011
|
args: [{
|
17990
18012
|
standalone: false,
|
17991
|
-
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>`
|
17992
18014
|
}]
|
17993
|
-
}],
|
17994
|
-
type: Inject,
|
17995
|
-
args: [NOTIFICATION_DATA]
|
17996
|
-
}] }, { type: RouterImpl }], propDecorators: { open: [{
|
18015
|
+
}], propDecorators: { open: [{
|
17997
18016
|
type: HostListener,
|
17998
18017
|
args: ['click', ['$event']]
|
17999
18018
|
}] } });
|
18000
18019
|
|
18001
18020
|
class NudgeNotification extends NotificationBase {
|
18002
18021
|
ngOnInit() {
|
18003
|
-
this.expire = dayjs(this.notification.expire);
|
18004
|
-
}
|
18005
|
-
constructor(router, translate, session, chat, notification) {
|
18006
|
-
super(notification, router, session, translate, chat);
|
18007
|
-
this.notification = notification;
|
18022
|
+
this.expire = dayjs(this.notification.message.expire);
|
18008
18023
|
}
|
18009
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NudgeNotification, deps:
|
18010
|
-
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" }] }); }
|
18011
18026
|
}
|
18012
18027
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: NudgeNotification, decorators: [{
|
18013
18028
|
type: Component,
|
18014
18029
|
args: [{
|
18015
18030
|
standalone: false,
|
18016
|
-
template: `<span [innerHTML]='"NudgeNotify" | translate : notification.number : expire.toNow() | sanitizeHtml'></span>`
|
18031
|
+
template: `<span [innerHTML]='"NudgeNotify" | translate : notification.message.number : expire.toNow() | sanitizeHtml'></span>`
|
18017
18032
|
}]
|
18018
|
-
}]
|
18019
|
-
type: Inject,
|
18020
|
-
args: [NOTIFICATION_DATA]
|
18021
|
-
}] }] });
|
18033
|
+
}] });
|
18022
18034
|
|
18023
18035
|
class LongRunningTaskNotification {
|
18024
18036
|
ngOnInit() {
|
18025
|
-
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);
|
18026
18038
|
}
|
18027
|
-
open(
|
18028
|
-
this._router.navigate(['reports', this.notification.name]);
|
18039
|
+
open(_) {
|
18040
|
+
this._router.navigate(['reports', this.notification.message.name]);
|
18029
18041
|
}
|
18030
18042
|
constructor(notification, _session, _router) {
|
18031
18043
|
this.notification = notification;
|
18032
18044
|
this._session = _session;
|
18033
18045
|
this._router = _router;
|
18034
18046
|
}
|
18035
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LongRunningTaskNotification, deps: [{ token:
|
18036
|
-
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 }); }
|
18037
18049
|
}
|
18038
18050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: LongRunningTaskNotification, decorators: [{
|
18039
18051
|
type: Component,
|
18040
18052
|
args: [{
|
18041
18053
|
standalone: false,
|
18042
|
-
template: `<span></span>`
|
18054
|
+
template: `<span [innerHTML]="report.title"></span>`
|
18043
18055
|
}]
|
18044
|
-
}], ctorParameters: () => [{ type:
|
18056
|
+
}], ctorParameters: () => [{ type: NotificationRef, decorators: [{
|
18045
18057
|
type: Inject,
|
18046
|
-
args: [
|
18058
|
+
args: [NotificationRef]
|
18047
18059
|
}] }, { type: SessionService }, { type: RouterImpl }], propDecorators: { open: [{
|
18048
18060
|
type: HostListener,
|
18049
18061
|
args: ['click', ['$event']]
|
@@ -18051,21 +18063,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18051
18063
|
|
18052
18064
|
/** */
|
18053
18065
|
class TaggedNotification extends NotificationBase {
|
18066
|
+
constructor() {
|
18067
|
+
super(...arguments);
|
18068
|
+
this._accounts = inject(AccountService);
|
18069
|
+
}
|
18054
18070
|
ngOnInit() {
|
18055
|
-
const
|
18056
|
-
|
18057
|
-
|
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>`);
|
18058
18075
|
else
|
18059
|
-
this._accounts.get(
|
18060
|
-
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>`);
|
18061
18078
|
});
|
18062
18079
|
}
|
18063
|
-
|
18064
|
-
super(notification, router, session, translate, chat);
|
18065
|
-
this.notification = notification;
|
18066
|
-
this._accounts = _accounts;
|
18067
|
-
}
|
18068
|
-
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 }); }
|
18069
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) {
|
18070
18082
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
18071
18083
|
}`, isInline: true, dependencies: [{ kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
@@ -18079,10 +18091,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18079
18091
|
<span [innerHTML]='message | sanitizeHtml'></span>
|
18080
18092
|
}`
|
18081
18093
|
}]
|
18082
|
-
}]
|
18083
|
-
type: Inject,
|
18084
|
-
args: [NOTIFICATION_DATA]
|
18085
|
-
}] }, { type: AccountService }, { type: TranslateService }, { type: RouterImpl }, { type: SessionService }, { type: ChatInfo }] });
|
18094
|
+
}] });
|
18086
18095
|
|
18087
18096
|
class DocumentFactory {
|
18088
18097
|
constructor(_session, _mailbox, _cf, _messaging, _ps, _overlay, _dir, _router) {
|
@@ -18161,7 +18170,7 @@ class DocumentFactory {
|
|
18161
18170
|
this._messaging.callback$.pipe(takeUntil$1(formRef._destroy$)).
|
18162
18171
|
subscribe(e => compRef.instance.onMessage && compRef.instance.onMessage(e.message));
|
18163
18172
|
// escape
|
18164
|
-
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter
|
18173
|
+
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).
|
18165
18174
|
subscribe(() => {
|
18166
18175
|
observe.complete();
|
18167
18176
|
overlayRef.detach();
|
@@ -18233,25 +18242,27 @@ class InviteNotification {
|
|
18233
18242
|
this._router = _router;
|
18234
18243
|
this._factory = _factory;
|
18235
18244
|
this.notification = notification;
|
18236
|
-
const
|
18237
|
-
|
18238
|
-
|
18239
|
-
|
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 ?
|
18240
18250
|
'CompleteNotificationTill' :
|
18241
|
-
'FillNotificationTill', form.title, dayjs(
|
18242
|
-
translate.get(
|
18251
|
+
'FillNotificationTill', form.title, dayjs(due).fromNow()) :
|
18252
|
+
translate.get(recipientId ?
|
18243
18253
|
'CompleteFillNotification' :
|
18244
18254
|
'FillNotification', form.title));
|
18245
18255
|
}
|
18246
18256
|
open(_) {
|
18247
|
-
|
18248
|
-
|
18257
|
+
const { formId, recipientId } = this.notification.message;
|
18258
|
+
if (recipientId)
|
18259
|
+
this._router.navigate(['mailbox/i', recipientId.encodeId()]);
|
18249
18260
|
else
|
18250
|
-
this._factory.create(
|
18261
|
+
this._factory.create(formId).subscribe(m => {
|
18251
18262
|
this._router.navigate(['mailbox/i', m.id.encodeId()]);
|
18252
18263
|
});
|
18253
18264
|
}
|
18254
|
-
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 }); }
|
18255
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 }); }
|
18256
18267
|
}
|
18257
18268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: InviteNotification, decorators: [{
|
@@ -18260,45 +18271,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18260
18271
|
standalone: false,
|
18261
18272
|
template: `<span [innerHTML]="message"></span>`
|
18262
18273
|
}]
|
18263
|
-
}], ctorParameters: () => [{ type: RouterImpl }, { type: DocumentFactory }, { type: SessionService }, { type: TranslateService }, { type:
|
18274
|
+
}], ctorParameters: () => [{ type: RouterImpl }, { type: DocumentFactory }, { type: SessionService }, { type: TranslateService }, { type: NotificationRef, decorators: [{
|
18264
18275
|
type: Inject,
|
18265
|
-
args: [
|
18276
|
+
args: [NotificationRef]
|
18266
18277
|
}] }], propDecorators: { open: [{
|
18267
18278
|
type: HostListener,
|
18268
18279
|
args: ['click', ['$event']]
|
18269
18280
|
}] } });
|
18270
18281
|
|
18271
|
-
class
|
18272
|
-
|
18273
|
-
|
18274
|
-
constructor(notification, vc) {
|
18275
|
-
this.notification = notification;
|
18282
|
+
class ContentMessageNotification extends NotificationBase {
|
18283
|
+
constructor(vc) {
|
18284
|
+
super();
|
18276
18285
|
this._factory = inject(BizDocComponentFactoryResolver);
|
18277
|
-
|
18278
|
-
|
18279
|
-
|
18286
|
+
if (!ContentMessageNotification._tamplateMap) {
|
18287
|
+
ContentMessageNotification._tamplateMap = {};
|
18288
|
+
this._session.profile.notifications.forEach(n => {
|
18289
|
+
ContentMessageNotification._tamplateMap[n.contentType] = n.template;
|
18290
|
+
});
|
18291
|
+
}
|
18292
|
+
const { content, contentType } = this.notification.message;
|
18293
|
+
const template = ContentMessageNotification._tamplateMap[contentType];
|
18294
|
+
const comp = this._factory.component(template);
|
18280
18295
|
const compRef = vc.createComponent(comp, {
|
18281
18296
|
// injector: Injector.create([{
|
18282
18297
|
// provide: NotificationRef,
|
18283
18298
|
// value: new NotificationRef()
|
18284
18299
|
// }])
|
18285
18300
|
});
|
18286
|
-
compRef.instance.onBind(
|
18301
|
+
compRef.instance.onBind(content);
|
18287
18302
|
}
|
18288
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type:
|
18289
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.0", type:
|
18303
|
+
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 }); }
|
18304
|
+
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 }); }
|
18290
18305
|
}
|
18291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type:
|
18306
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: ContentMessageNotification, decorators: [{
|
18292
18307
|
type: Component,
|
18293
18308
|
args: [{
|
18294
18309
|
standalone: false,
|
18295
18310
|
selector: 'bizdoc-notify-content',
|
18296
18311
|
template: ''
|
18297
18312
|
}]
|
18298
|
-
}], ctorParameters: () => [{ type:
|
18299
|
-
type: Inject,
|
18300
|
-
args: [NOTIFICATION_DATA]
|
18301
|
-
}] }, { type: i0.ViewContainerRef }] });
|
18313
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
18302
18314
|
|
18303
18315
|
class NotificationsService {
|
18304
18316
|
constructor(_http, messaging, _session) {
|
@@ -18349,19 +18361,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
18349
18361
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: HubService }, { type: SessionService }] });
|
18350
18362
|
|
18351
18363
|
class NotificationsComponentBase {
|
18364
|
+
constructor() {
|
18365
|
+
this._injector = inject(Injector);
|
18366
|
+
this._service = inject(NotificationsService);
|
18367
|
+
this._session = inject(SessionService);
|
18368
|
+
}
|
18369
|
+
/**
|
18370
|
+
*
|
18371
|
+
* @param messages
|
18372
|
+
*/
|
18352
18373
|
prepare(messages) {
|
18353
18374
|
messages.forEach(m => {
|
18354
18375
|
m.comp = this._getComponent(m.type);
|
18355
18376
|
m.injector = this._getInjector(m);
|
18356
18377
|
});
|
18357
18378
|
}
|
18358
|
-
constructor() {
|
18359
|
-
this._uidType = {};
|
18360
|
-
this._injector = inject(Injector);
|
18361
|
-
this._service = inject(NotificationsService);
|
18362
|
-
this._session = inject(SessionService);
|
18363
|
-
this._session.profile.notifications.forEach(n => this._uidType[n.contentType] = n.template);
|
18364
|
-
}
|
18365
18379
|
_getComponent(type) {
|
18366
18380
|
switch (type) {
|
18367
18381
|
case 'Commented':
|
@@ -18379,7 +18393,7 @@ class NotificationsComponentBase {
|
|
18379
18393
|
case 'TextMessage':
|
18380
18394
|
return TextNotification;
|
18381
18395
|
case 'ContentMessage':
|
18382
|
-
return
|
18396
|
+
return ContentMessageNotification;
|
18383
18397
|
case 'Invite':
|
18384
18398
|
return InviteNotification;
|
18385
18399
|
case 'UpcomingEvent':
|
@@ -18395,8 +18409,8 @@ class NotificationsComponentBase {
|
|
18395
18409
|
_getInjector(item) {
|
18396
18410
|
return Injector.create({
|
18397
18411
|
providers: [{
|
18398
|
-
provide:
|
18399
|
-
useValue: item
|
18412
|
+
provide: NotificationRef,
|
18413
|
+
useValue: new NotificationRef(item)
|
18400
18414
|
}],
|
18401
18415
|
parent: this._injector
|
18402
18416
|
});
|
@@ -18452,6 +18466,10 @@ class NotificationsTableComponent extends NotificationsComponentBase {
|
|
18452
18466
|
mute(item, mute) {
|
18453
18467
|
this._service.mute(item.id, mute);
|
18454
18468
|
}
|
18469
|
+
/**
|
18470
|
+
*
|
18471
|
+
* @param item
|
18472
|
+
*/
|
18455
18473
|
delete(item) {
|
18456
18474
|
this._service.delete(item.id).subscribe(i => {
|
18457
18475
|
item.deleted = true;
|
@@ -18471,6 +18489,10 @@ class NotificationsTableComponent extends NotificationsComponentBase {
|
|
18471
18489
|
this.selection.clear() :
|
18472
18490
|
this.selection.select(...this.dataSource.data);
|
18473
18491
|
}
|
18492
|
+
/**
|
18493
|
+
*
|
18494
|
+
* @param evt
|
18495
|
+
*/
|
18474
18496
|
openFilter(evt) {
|
18475
18497
|
const popupRef = this._popup.open(NotificationsFilterComponent, evt.target);
|
18476
18498
|
popupRef.opened().
|
@@ -18673,7 +18695,7 @@ class ContactsComponent {
|
|
18673
18695
|
ngOnInit() {
|
18674
18696
|
const me = this._session.userId;
|
18675
18697
|
this._prepare();
|
18676
|
-
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)));
|
18698
|
+
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)));
|
18677
18699
|
}
|
18678
18700
|
optionSelected(ev) {
|
18679
18701
|
const { value: id } = ev.option;
|
@@ -18864,7 +18886,7 @@ class ConversationComponent {
|
|
18864
18886
|
positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
|
18865
18887
|
});
|
18866
18888
|
oRef.attach(new TemplatePortal(this.previewTemplate, this._vc, { item }));
|
18867
|
-
merge(oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
18889
|
+
merge(oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape')), oRef.backdropClick()).subscribe(() => oRef.detach());
|
18868
18890
|
}
|
18869
18891
|
ngOnDestroy() {
|
18870
18892
|
if (this._typingTask)
|
@@ -19381,18 +19403,18 @@ class OutOfOfficeToast {
|
|
19381
19403
|
this._accounts.get(data.substituteId).subscribe(u => this.substitute = u);
|
19382
19404
|
}
|
19383
19405
|
options() {
|
19384
|
-
this._router.navigate(['options', '
|
19406
|
+
this._router.navigate(['options'], { queryParams: { section: 'ooo' } });
|
19385
19407
|
this.dismiss();
|
19386
19408
|
}
|
19387
19409
|
dismiss() {
|
19388
19410
|
this._ref.dismiss();
|
19389
19411
|
}
|
19390
19412
|
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 }); }
|
19391
|
-
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
|
19413
|
+
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: ["div{flex-direction:row;box-sizing:border-box;display:flex;align-items:center}div span{flex:1 1 auto}\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" }] }); }
|
19392
19414
|
}
|
19393
19415
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: OutOfOfficeToast, decorators: [{
|
19394
19416
|
type: Component,
|
19395
|
-
args: [{ standalone: false, selector: 'bizdoc-outofoffice', template: "@if (substitute) {\r\n <span
|
19417
|
+
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: ["div{flex-direction:row;box-sizing:border-box;display:flex;align-items:center}div span{flex:1 1 auto}\n"] }]
|
19396
19418
|
}], ctorParameters: () => [{ type: RouterImpl }, { type: AccountService }, { type: undefined, decorators: [{
|
19397
19419
|
type: Inject,
|
19398
19420
|
args: [MAT_SNACK_BAR_DATA]
|
@@ -19630,11 +19652,11 @@ class QuickNotificationsComponent extends NotificationsComponentBase {
|
|
19630
19652
|
this._service.mute(item.id, mute);
|
19631
19653
|
}
|
19632
19654
|
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 }); }
|
19633
|
-
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-
|
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-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" }] }); }
|
19634
19656
|
}
|
19635
19657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImport: i0, type: QuickNotificationsComponent, decorators: [{
|
19636
19658
|
type: Component,
|
19637
|
-
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-
|
19659
|
+
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"] }]
|
19638
19660
|
}], ctorParameters: () => [{ type: PopupRef }, { type: RouterImpl }] });
|
19639
19661
|
|
19640
19662
|
let DocumentListingComponent = class DocumentListingComponent {
|
@@ -21294,7 +21316,7 @@ class HomeComponent extends HomeBase {
|
|
21294
21316
|
this._collapseToggle = false;
|
21295
21317
|
this.displayWith = (_) => null;
|
21296
21318
|
this.profile = this._session.profile;
|
21297
|
-
_router.events.pipe(filter(e => e instanceof NavigationStart), filter((e) => e.pane.path !== undefined && e.pane.mode === 'pane')).
|
21319
|
+
_router.events.pipe(filter$1(e => e instanceof NavigationStart), filter$1((e) => e.pane.path !== undefined && e.pane.mode === 'pane')).
|
21298
21320
|
subscribe((e) => this._path = e.pane.path.split('/')[0]);
|
21299
21321
|
}
|
21300
21322
|
get submenuMode() {
|
@@ -21336,7 +21358,7 @@ class HomeComponent extends HomeBase {
|
|
21336
21358
|
return this.main?.panes[0]?.guide;
|
21337
21359
|
}
|
21338
21360
|
ngOnInit() {
|
21339
|
-
this.results = this.search.valueChanges.pipe(filter(v => isString(v)), map(v => this._service.search(v)));
|
21361
|
+
this.results = this.search.valueChanges.pipe(filter$1(v => isString(v)), map(v => this._service.search(v)));
|
21340
21362
|
super.ngOnInit();
|
21341
21363
|
}
|
21342
21364
|
/** options */
|
@@ -21524,7 +21546,7 @@ class CopyDialog {
|
|
21524
21546
|
constructor(_service, dialogRef) {
|
21525
21547
|
this._service = _service;
|
21526
21548
|
this.search = new FormControl();
|
21527
|
-
dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter')).
|
21549
|
+
dialogRef.keydownEvents().pipe(filter$1(k => k.key === 'Enter')).
|
21528
21550
|
subscribe(() => this.selectedItem && dialogRef.close(this.selectedItem));
|
21529
21551
|
}
|
21530
21552
|
ngOnInit() {
|
@@ -21748,7 +21770,8 @@ class BizDocApp {
|
|
21748
21770
|
this._refresh.next();
|
21749
21771
|
});
|
21750
21772
|
//window.addEventListener('offline', () => this._online = false);
|
21751
|
-
window.addEventListener('online', () =>
|
21773
|
+
// window.addEventListener('online', () =>
|
21774
|
+
// this._refresh.next());
|
21752
21775
|
}
|
21753
21776
|
ngOnInit() {
|
21754
21777
|
const meta = document.querySelector('meta[name=theme-color]');
|
@@ -21835,7 +21858,7 @@ class ImpersonateDialog {
|
|
21835
21858
|
this._destroy = new Subject();
|
21836
21859
|
this.username = new FormControl(null, Validators.required);
|
21837
21860
|
this.recents$ = this._session.listImpersonate();
|
21838
|
-
this.users$ = this.username.valueChanges.pipe(debounceTime(250), takeUntil(this._destroy), filter(v => isString(v) && v.length > 0), switchMap(v => this._session.listImpersonate(v)));
|
21861
|
+
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)));
|
21839
21862
|
this.logging = false;
|
21840
21863
|
}
|
21841
21864
|
reset() {
|
@@ -22407,7 +22430,7 @@ class CubeMobileViewComponent extends ViewBase {
|
|
22407
22430
|
});
|
22408
22431
|
this._route.queryParams.pipe(takeUntil(this._destroy)).subscribe(p => this.originalAxes = p);
|
22409
22432
|
this.drawer.openedChange.
|
22410
|
-
pipe(filter(() => !this._navigating), takeUntil(this._destroy)).subscribe(() => this.viewPane.resize());
|
22433
|
+
pipe(filter$1(() => !this._navigating), takeUntil(this._destroy)).subscribe(() => this.viewPane.resize());
|
22411
22434
|
this._session.loaded.pipe(takeUntil(this._destroy)).
|
22412
22435
|
subscribe(() => this.viewPane.refresh());
|
22413
22436
|
const queryKeys = Object.keys(this._route.snapshot.queryParams);
|
@@ -23089,7 +23112,7 @@ class MapComponent {
|
|
23089
23112
|
});
|
23090
23113
|
infowindow.open(map, marker);
|
23091
23114
|
}, MARKER_DELAY);
|
23092
|
-
this._ref.keydownEvents().pipe(filter(k => k.key === 'Escape')).subscribe(() => this._ref.detach());
|
23115
|
+
this._ref.keydownEvents().pipe(filter$1(k => k.key === 'Escape')).subscribe(() => this._ref.detach());
|
23093
23116
|
this._ref.backdropClick().pipe().subscribe(() => this._ref.detach());
|
23094
23117
|
}
|
23095
23118
|
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 }); }
|
@@ -23166,7 +23189,7 @@ class CubeMatrixPopupComponent extends CubeMatrixBase {
|
|
23166
23189
|
this.originalAxes = base;
|
23167
23190
|
}
|
23168
23191
|
ngOnInit() {
|
23169
|
-
this.table.loadingChange.pipe(filter(ok => !ok), first()).subscribe({
|
23192
|
+
this.table.loadingChange.pipe(filter$1(ok => !ok), first()).subscribe({
|
23170
23193
|
next: () => this.preloading = false,
|
23171
23194
|
error: (e) => {
|
23172
23195
|
if (e.status === 401)
|
@@ -24581,7 +24604,7 @@ let ActionsWidget = class ActionsWidget {
|
|
24581
24604
|
}
|
24582
24605
|
_draw() {
|
24583
24606
|
this.chart?.destroy();
|
24584
|
-
this._loaded.pipe(takeUntil(this._destroy), delay(200), filter(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24607
|
+
this._loaded.pipe(takeUntil(this._destroy), delay(200), filter$1(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24585
24608
|
background: 'transparent',
|
24586
24609
|
legendSettings: this.legendSettings, enableAnimation: true,
|
24587
24610
|
tooltip: this.tooltip,
|
@@ -27902,7 +27925,7 @@ class CombinationPicker {
|
|
27902
27925
|
minWidth: `${el.nativeElement.getBoundingClientRect().width}px`,
|
27903
27926
|
panelClass: 'home-panel'
|
27904
27927
|
});
|
27905
|
-
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter(e => e.key === 'Escape'), tap(e => e.stopPropagation()))).
|
27928
|
+
merge(overlayRef.backdropClick(), overlayRef.keydownEvents().pipe(filter$1(e => e.key === 'Escape'), tap(e => e.stopPropagation()))).
|
27906
27929
|
subscribe(() => this.close());
|
27907
27930
|
return overlayRef;
|
27908
27931
|
}
|
@@ -28529,7 +28552,7 @@ class QuickCommentComponent {
|
|
28529
28552
|
}
|
28530
28553
|
ngOnInit() {
|
28531
28554
|
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
28532
|
-
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
28555
|
+
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter$1(e => e.id === this.model.documentId)).
|
28533
28556
|
subscribe(e => {
|
28534
28557
|
this._accounts.get(e.userId).subscribe(u => {
|
28535
28558
|
this.typing = u.name;
|
@@ -31334,7 +31357,7 @@ class SharedModule {
|
|
31334
31357
|
PrivilegeHiddenDirective,
|
31335
31358
|
TaggingItemDirective, TaggingDirective, DocumentTaggingComponent, UserTaggingComponent,
|
31336
31359
|
PrivilegeDisabledDirective, CubeDocumentsGridComponent,
|
31337
|
-
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification,
|
31360
|
+
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification, ContentMessageNotification, TextNotification, CubeAnomalyNotification, EscalatedNotification, LikedNotification, StateChangedNotification, UpcomingEventNotification,
|
31338
31361
|
NoneComponent, ScheduleViewComponent,
|
31339
31362
|
OptionsComponent, TraceViewComponent,
|
31340
31363
|
ProgressDirective,
|
@@ -31527,7 +31550,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
31527
31550
|
PrivilegeHiddenDirective,
|
31528
31551
|
TaggingItemDirective, TaggingDirective, DocumentTaggingComponent, UserTaggingComponent,
|
31529
31552
|
PrivilegeDisabledDirective, CubeDocumentsGridComponent,
|
31530
|
-
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification,
|
31553
|
+
LongRunningTaskNotification, TaggedNotification, CommentedNotification, NudgeNotification, InviteNotification, ContentMessageNotification, TextNotification, CubeAnomalyNotification, EscalatedNotification, LikedNotification, StateChangedNotification, UpcomingEventNotification,
|
31531
31554
|
NoneComponent, ScheduleViewComponent,
|
31532
31555
|
OptionsComponent, TraceViewComponent,
|
31533
31556
|
ProgressDirective,
|
@@ -31813,7 +31836,7 @@ class TraceElementComponent {
|
|
31813
31836
|
});
|
31814
31837
|
}
|
31815
31838
|
chat(e) {
|
31816
|
-
const userId = e.target.getAttribute('data-
|
31839
|
+
const userId = e.target.getAttribute('data-userid');
|
31817
31840
|
userId &&
|
31818
31841
|
this._chat.open(userId);
|
31819
31842
|
}
|
@@ -31836,7 +31859,7 @@ class PositionsPopup {
|
|
31836
31859
|
this._destroy = new Subject();
|
31837
31860
|
}
|
31838
31861
|
ngOnInit() {
|
31839
|
-
this.users$ = this.control.valueChanges.pipe(debounceTime(200), takeUntil(this._destroy), filter(v => isString(v)), switchMap(v => this._service.findAll(v, { take: 20 })));
|
31862
|
+
this.users$ = this.control.valueChanges.pipe(debounceTime(200), takeUntil(this._destroy), filter$1(v => isString(v)), switchMap(v => this._service.findAll(v, { take: 20 })));
|
31840
31863
|
// this._pRef.backdropClick().subscribe(() => {
|
31841
31864
|
// this._pRef.close(this.dirty ? this.positions : null);
|
31842
31865
|
// });
|
@@ -31938,7 +31961,7 @@ let ManageCubeIndexUtility = class ManageCubeIndexUtility {
|
|
31938
31961
|
hasBackdrop: true,
|
31939
31962
|
panelClass: 'home-panel'
|
31940
31963
|
});
|
31941
|
-
merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).pipe(takeUntil(this._destroy)).subscribe(() => oRef.detach());
|
31964
|
+
merge(oRef.backdropClick(), oRef.keydownEvents().pipe(filter$1(k => k.key === 'Escape'))).pipe(takeUntil(this._destroy)).subscribe(() => oRef.detach());
|
31942
31965
|
}
|
31943
31966
|
_find(axes) {
|
31944
31967
|
const n = this.names.length;
|
@@ -33554,7 +33577,7 @@ let PositionsComponent = class PositionsComponent {
|
|
33554
33577
|
_openDialog(tmpl, form, values) {
|
33555
33578
|
form.reset(values);
|
33556
33579
|
const dialogRef = this._dialog.open(tmpl);
|
33557
|
-
dialogRef.keydownEvents().pipe(filter(k => k.key === 'Enter'), takeUntil(dialogRef.afterClosed())).
|
33580
|
+
dialogRef.keydownEvents().pipe(filter$1(k => k.key === 'Enter'), takeUntil(dialogRef.afterClosed())).
|
33558
33581
|
subscribe(() => form.valid && dialogRef.close(form.value));
|
33559
33582
|
return dialogRef.afterClosed().pipe(switchMap(v => v ? of(v) : EMPTY));
|
33560
33583
|
}
|
@@ -33911,7 +33934,7 @@ class ProfileSettingsDialog {
|
|
33911
33934
|
this.substitute.disable();
|
33912
33935
|
}
|
33913
33936
|
});
|
33914
|
-
this.ousers$ = this.substitute.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter
|
33937
|
+
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)));
|
33915
33938
|
from.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed())).
|
33916
33939
|
subscribe(v => {
|
33917
33940
|
if (v)
|
@@ -33933,7 +33956,7 @@ class ProfileSettingsDialog {
|
|
33933
33956
|
this.grants.clearValidators();
|
33934
33957
|
}
|
33935
33958
|
});
|
33936
|
-
this.gusers$ = this.grants.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter
|
33959
|
+
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)));
|
33937
33960
|
}
|
33938
33961
|
setId(event) {
|
33939
33962
|
const { id } = event.option.value;
|
@@ -34055,7 +34078,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
34055
34078
|
userId && this._open(userId);
|
34056
34079
|
});
|
34057
34080
|
this._pane.resized().pipe(takeUntil(this._destroy)).subscribe(() => this.chart?.chartResize());
|
34058
|
-
this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)));
|
34081
|
+
this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter$1(v => isString(v)), switchMap(v => this._accounts.findAll(v)));
|
34059
34082
|
}
|
34060
34083
|
guide(evt) {
|
34061
34084
|
const steps = [];
|
@@ -34384,7 +34407,7 @@ class IconPickerComponent {
|
|
34384
34407
|
else
|
34385
34408
|
this._list(IconPickerComponent.icons);
|
34386
34409
|
this.filter.valueChanges.
|
34387
|
-
pipe(takeUntil$1(this._destroy), filter
|
34410
|
+
pipe(takeUntil$1(this._destroy), filter(v => isString(v)), debounceTime$1(200)).
|
34388
34411
|
subscribe(v => this._list(IconPickerComponent.icons.filter(i => i.tags.findIndex(t => t.indexOf(v) > -1) > -1)));
|
34389
34412
|
}
|
34390
34413
|
_list(e) {
|
@@ -34417,7 +34440,7 @@ class IconPickerComponent {
|
|
34417
34440
|
});
|
34418
34441
|
const portal = new TemplatePortal(this.panel, this._vc);
|
34419
34442
|
this._overlayRef.attach(portal);
|
34420
|
-
merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter
|
34443
|
+
merge(this._overlayRef.backdropClick(), this._overlayRef.keydownEvents().pipe(filter(k => k.key === 'Escape'))).subscribe(() => this._overlayRef.detach());
|
34421
34444
|
}
|
34422
34445
|
_trackBy(index, el) {
|
34423
34446
|
return el.name;
|
@@ -37988,5 +38011,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.0", ngImpor
|
|
37988
38011
|
* Generated bundle index. Do not edit.
|
37989
38012
|
*/
|
37990
38013
|
|
37991
|
-
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 };
|
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, 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 };
|
37992
38015
|
//# sourceMappingURL=bizdoc-core.mjs.map
|