@bizdoc/core 3.6.3 → 3.6.5
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/themes/default.min.css +1 -1
- package/fesm2022/bizdoc-core.mjs +205 -191
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/index.d.ts +66 -34
- package/package.json +1 -1
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
2
|
import { InjectionToken, Inject, Injectable, Pipe, Directive, Component, Injector, ElementRef, HostListener, TemplateRef, ViewContainerRef, ViewChild, Input, HostBinding, Output, Optional, Self, EventEmitter, NgModule, ViewChildren, inject, Host, SkipSelf, ContentChild, ContentChildren, provideAppInitializer } from '@angular/core';
|
3
|
-
import { Subject,
|
4
|
-
import { map, tap, shareReplay, filter, startWith, takeUntil, debounceTime,
|
3
|
+
import { Subject, from, of, firstValueFrom, forkJoin, BehaviorSubject, merge, takeUntil as takeUntil$1, shareReplay as shareReplay$1, map as map$1, Observable, filter as filter$1, 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, switchMap, shareReplay, filter, startWith, takeUntil, debounceTime, catchError, first, take, finalize, delay } from 'rxjs/operators';
|
5
5
|
import * as i4 from '@angular/material/chips';
|
6
6
|
import { MatChipInput, MatChipsModule, MatChipListbox } from '@angular/material/chips';
|
7
7
|
import { ENTER, COMMA, SEMICOLON } from '@angular/cdk/keycodes';
|
@@ -1146,12 +1146,6 @@ class SessionService {
|
|
1146
1146
|
this.profile.options.notificationsView !== undefined &&
|
1147
1147
|
this.profile.options.notificationsView < date;
|
1148
1148
|
}
|
1149
|
-
_constructpalette(color) {
|
1150
|
-
const palette = MATERIAL_PALETTES[color];
|
1151
|
-
return [palette['100'], palette['300'], palette['500'], palette['700'], palette['900'],
|
1152
|
-
palette['200'], palette['400'], palette['600'], palette['800'], palette['hex'],
|
1153
|
-
palette['a100'], palette['a400'], palette['a200'], palette['a700']];
|
1154
|
-
}
|
1155
1149
|
get primeryPalette() {
|
1156
1150
|
return this._primarypalette;
|
1157
1151
|
}
|
@@ -1205,10 +1199,10 @@ class SessionService {
|
|
1205
1199
|
return this.profile.system;
|
1206
1200
|
}
|
1207
1201
|
/** online or set in profile */
|
1208
|
-
get
|
1202
|
+
get availabilityState() {
|
1209
1203
|
return this.profile.available || 'Online';
|
1210
1204
|
}
|
1211
|
-
set
|
1205
|
+
set availabilityState(value) {
|
1212
1206
|
this.profile.available = value === 'Online' ? null : value;
|
1213
1207
|
this._http.put(`/api/account/available?mode=${this.profile.available || ''}`, {}).subscribe();
|
1214
1208
|
}
|
@@ -1224,17 +1218,17 @@ class SessionService {
|
|
1224
1218
|
if (options && options.active) {
|
1225
1219
|
const today = dayjs().startOf('day');
|
1226
1220
|
return (!options.from || dayjs(options.from).startOf('day') <= today)
|
1227
|
-
&& (!options.to || dayjs(options.to).startOf('day')
|
1221
|
+
&& (!options.to || dayjs(options.to).startOf('day') > today);
|
1228
1222
|
}
|
1229
1223
|
else
|
1230
1224
|
return false;
|
1231
1225
|
}
|
1232
1226
|
/** update profile */
|
1233
|
-
|
1227
|
+
updateProfile(profile) {
|
1234
1228
|
return this._http.put('/api/account/update', profile).pipe(tap(() => Object.assign(this._profile.options, profile)));
|
1235
1229
|
}
|
1236
1230
|
/** mark guide as visited in profile */
|
1237
|
-
|
1231
|
+
markGuideAsRead(name) {
|
1238
1232
|
return this._http.put(`/api/account/guide/${encodeURIComponent(name)}`, {}, { headers: { 'no-progress': 'true' } }).pipe(tap(() => {
|
1239
1233
|
const guide = this._profile.guides.find(g => g.name === name);
|
1240
1234
|
if (guide)
|
@@ -1244,25 +1238,14 @@ class SessionService {
|
|
1244
1238
|
}
|
1245
1239
|
/** get profile */
|
1246
1240
|
refresh() {
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
if (!this._profile) // 1st time
|
1256
|
-
this._changeTheme(this.theme).
|
1257
|
-
then(() => complete(r));
|
1258
|
-
else
|
1259
|
-
complete(r);
|
1260
|
-
this._hub.state !== HubConnectionState.Connected && this._hub.start();
|
1261
|
-
this._firebase.state !== FirebaseState.Activated &&
|
1262
|
-
this._firebase.activate();
|
1263
|
-
}, error: observe.error.bind(this)
|
1264
|
-
});
|
1265
|
-
});
|
1241
|
+
const ok = this.ok;
|
1242
|
+
return this._http.get('/api/account/refresh').pipe(tap(profile => {
|
1243
|
+
this._profile = profile;
|
1244
|
+
this._hub.state !== HubConnectionState.Connected && this._hub.start();
|
1245
|
+
this._firebase.state !== FirebaseState.Activated &&
|
1246
|
+
this._firebase.activate();
|
1247
|
+
}), switchMap(() => !ok ? // 1st time
|
1248
|
+
from(this._changeTheme(this.theme)) : of(undefined)), tap(this._loaded.next.bind(this)));
|
1266
1249
|
}
|
1267
1250
|
getProfileExtra(name) {
|
1268
1251
|
return this._http.get(`/api/account/extra/${name}`);
|
@@ -1294,18 +1277,24 @@ class SessionService {
|
|
1294
1277
|
userId
|
1295
1278
|
});
|
1296
1279
|
}
|
1297
|
-
|
1280
|
+
markInboxAsTouched() {
|
1298
1281
|
return firstValueFrom(this._http.put('/api/account/inboxview', {}, { headers: { 'no-progress': 'true' } }).pipe(tap(e => {
|
1299
1282
|
this.profile.inboxCount = 0;
|
1300
1283
|
this.profile.options.inboxView = e.time;
|
1301
1284
|
})));
|
1302
1285
|
}
|
1303
|
-
|
1286
|
+
markNotificationsAsTouched() {
|
1304
1287
|
return firstValueFrom(this._http.put('/api/account/notificationsView', {}, { headers: { 'no-progress': 'true' } }).pipe(tap(e => {
|
1305
1288
|
this.profile.messagesCount = 0;
|
1306
1289
|
this.profile.options.notificationsView = e.time;
|
1307
1290
|
})));
|
1308
1291
|
}
|
1292
|
+
_constructPalette(color) {
|
1293
|
+
const palette = MATERIAL_PALETTES[color];
|
1294
|
+
return [palette['100'], palette['300'], palette['500'], palette['700'], palette['900'],
|
1295
|
+
palette['200'], palette['400'], palette['600'], palette['800'], palette['hex'],
|
1296
|
+
palette['a100'], palette['a400'], palette['a200'], palette['a700']];
|
1297
|
+
}
|
1309
1298
|
_getBrowserLang() {
|
1310
1299
|
let lang = navigator.language;
|
1311
1300
|
if (this.languages.indexOf(lang) > -1)
|
@@ -1331,8 +1320,8 @@ class SessionService {
|
|
1331
1320
|
*/
|
1332
1321
|
_changeTheme(theme) {
|
1333
1322
|
return new Promise((resolve) => {
|
1334
|
-
this._accentpalette = this.
|
1335
|
-
this._primarypalette = this.
|
1323
|
+
this._accentpalette = this._constructPalette(this.theme.accent);
|
1324
|
+
this._primarypalette = this._constructPalette(this.theme.primary);
|
1336
1325
|
let style = document.getElementById('bizdoc-theme');
|
1337
1326
|
// remove
|
1338
1327
|
if (style)
|
@@ -1833,10 +1822,10 @@ const STRINGS = {
|
|
1833
1822
|
Commented: '{0} commented',
|
1834
1823
|
DeleteFile: 'Delete Attachment',
|
1835
1824
|
DeleteFileAsk: 'Are you sure you want to delete this attachment?',
|
1836
|
-
DeleteCommentAsk: 'Are you sure you want to delete this comment?',
|
1825
|
+
//DeleteCommentAsk: 'Are you sure you want to delete this comment?',
|
1837
1826
|
GrantAccess: 'Grant Access',
|
1838
|
-
GrantTip: '
|
1839
|
-
OutOfOfficeTip: 'Redirect mail
|
1827
|
+
GrantTip: 'View and take actions on your behalf.',
|
1828
|
+
OutOfOfficeTip: 'Redirect mail on your absence.',
|
1840
1829
|
Timeline: 'Timeline',
|
1841
1830
|
Theme: 'Theme',
|
1842
1831
|
Back: 'Back',
|
@@ -1997,7 +1986,7 @@ const STRINGS = {
|
|
1997
1986
|
To: 'To',
|
1998
1987
|
Duration: 'Duration',
|
1999
1988
|
Deviation: 'Deviation',
|
2000
|
-
DurationTime: '
|
1989
|
+
DurationTime: 'In {0}',
|
2001
1990
|
Standard: 'Standard',
|
2002
1991
|
StandardValue: 'Standard: {0}',
|
2003
1992
|
Average: 'Average',
|
@@ -2382,9 +2371,9 @@ const STRINGS = {
|
|
2382
2371
|
DeleteFileMale: 'מחק צרופה',
|
2383
2372
|
DeleteFileFemale: 'מחקי צרופה',
|
2384
2373
|
DeleteFileAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הצרופה?',
|
2385
|
-
DeleteCommentAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הערה?',
|
2386
|
-
DeleteCommentAskMale: 'האם אתה בטוח שברצונך למחוק את הערה?',
|
2387
|
-
DeleteCommentAskFemale: 'האם את בטוחה שברצונך למחוק את הערה?',
|
2374
|
+
//DeleteCommentAsk: 'האם את/ה בטוח/ה שברצונך למחוק את הערה?',
|
2375
|
+
//DeleteCommentAskMale: 'האם אתה בטוח שברצונך למחוק את הערה?',
|
2376
|
+
//DeleteCommentAskFemale: 'האם את בטוחה שברצונך למחוק את הערה?',
|
2388
2377
|
DeleteFileAskMale: 'האם אתה בטוח שברצונך למחוק את הצרופה?',
|
2389
2378
|
DeleteFileAskFemale: 'האם את בטוחה שברצונך למחוק את הצרופה?',
|
2390
2379
|
GrantAccess: 'הרשאות',
|
@@ -3286,7 +3275,7 @@ class GuideService {
|
|
3286
3275
|
oRef.attach(portal);
|
3287
3276
|
oRef.backdropClick().subscribe(() => oRef.detach());
|
3288
3277
|
const gRef = new GuideRef(guide, oRef);
|
3289
|
-
!this.seen(guide.name) && this._session.
|
3278
|
+
!this.seen(guide.name) && this._session.markGuideAsRead(guide.name).subscribe();
|
3290
3279
|
return gRef;
|
3291
3280
|
}
|
3292
3281
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: GuideService, deps: [{ token: i2$3.Overlay }, { token: i0.Injector }, { token: SessionService }, { token: TranslateService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
@@ -3711,7 +3700,7 @@ class OptionsComponent {
|
|
3711
3700
|
}
|
3712
3701
|
this.languages = this._session.languages;
|
3713
3702
|
this.currentLanguage = this._session.language;
|
3714
|
-
this.available = this._session.
|
3703
|
+
this.available = this._session.availabilityState;
|
3715
3704
|
this.theme = this._session.theme.name;
|
3716
3705
|
this.profile = this._session.profile;
|
3717
3706
|
this.voting = !config.comments || config.comments.voting !== false;
|
@@ -3735,7 +3724,7 @@ class OptionsComponent {
|
|
3735
3724
|
}
|
3736
3725
|
setAvailable(val) {
|
3737
3726
|
this.close();
|
3738
|
-
this._session.
|
3727
|
+
this._session.availabilityState = val;
|
3739
3728
|
}
|
3740
3729
|
changeTheme(name) {
|
3741
3730
|
this._session.theme = name;
|
@@ -3819,7 +3808,7 @@ class OptionsComponent {
|
|
3819
3808
|
}
|
3820
3809
|
save() {
|
3821
3810
|
this.saveing = true;
|
3822
|
-
this._session.
|
3811
|
+
this._session.updateProfile(this.form.getRawValue()).subscribe({
|
3823
3812
|
next: () => this.form.markAsPristine(),
|
3824
3813
|
error: () => this._sb.error(),
|
3825
3814
|
complete: () => this.saveing = false
|
@@ -3886,11 +3875,11 @@ class OptionsComponent {
|
|
3886
3875
|
this._destroy.complete();
|
3887
3876
|
}
|
3888
3877
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OptionsComponent, deps: [{ token: PromptService }, { token: GuideService }, { token: HubService }, { token: i2$2.MatDialog }, { token: i1$2.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: SessionService }, { token: Popup }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
3889
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "keyboard", first: true, predicate: ["keyboardTmpl"], descendants: true }, { propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i2$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
|
3878
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "keyboard", first: true, predicate: ["keyboardTmpl"], descendants: true }, { propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7$1.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i2$6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
|
3890
3879
|
}
|
3891
3880
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OptionsComponent, decorators: [{
|
3892
3881
|
type: Component,
|
3893
|
-
args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"] }]
|
3882
|
+
args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <button mat-button role=\"listitem\" (click)=\"showKeyboard($event)\">\r\n {{'Keyboard' | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n }\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (tag of form.value.tags; track tag.name) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(tag)\">\r\n {{tag.name}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!---->\r\n<ng-template #keyboardTmpl>\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\" class=\"column\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"oooDates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"oooDates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #oooDates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:var(--mat-sys-outline)}form{padding:20px 8px 0;min-width:320px}\n"] }]
|
3894
3883
|
}], ctorParameters: () => [{ type: PromptService }, { type: GuideService }, { type: HubService }, { type: i2$2.MatDialog }, { type: i1$2.FormBuilder }, { type: AccountService }, { type: PromptService }, { type: SessionService }, { type: Popup }, { type: undefined, decorators: [{
|
3895
3884
|
type: Inject,
|
3896
3885
|
args: [BIZDOC_CONFIG]
|
@@ -6066,8 +6055,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
6066
6055
|
}], ctorParameters: () => [{ type: TranslateService }, { type: DatasourceService }] });
|
6067
6056
|
|
6068
6057
|
let AutocompleteField = class AutocompleteField {
|
6058
|
+
set dense(val) {
|
6059
|
+
if (val)
|
6060
|
+
this.subscriptSizing = 'dynamic';
|
6061
|
+
}
|
6069
6062
|
constructor(_ds) {
|
6070
6063
|
this._ds = _ds;
|
6064
|
+
this.subscriptSizing = 'fixed';
|
6071
6065
|
this.control = new FormControl();
|
6072
6066
|
this._destroy = new Subject();
|
6073
6067
|
}
|
@@ -6080,14 +6074,14 @@ let AutocompleteField = class AutocompleteField {
|
|
6080
6074
|
this._destroy.complete();
|
6081
6075
|
}
|
6082
6076
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AutocompleteField, deps: [{ token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
|
6083
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AutocompleteField, isStandalone: false, selector: "ng-component", inputs: { params: "params" }, host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: TypeAutocomplete, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance>\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <bizdoc-autocomplete [placeholder]=\"placeholder |localizedString\" [formControl]=control\r\n [required]=\"required\" [type]=\"dataType\"></bizdoc-autocomplete>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value | typeValue: dataType | async}}\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: ["type", "placeholder", "text", "required", "disabled", "value", "minimumChars", "textFormControlName", "textFormControl"], outputs: ["textChange", "optionSelected"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
6077
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AutocompleteField, isStandalone: false, selector: "ng-component", inputs: { params: "params" }, host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: TypeAutocomplete, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <bizdoc-autocomplete [placeholder]=\"placeholder |localizedString\" [formControl]=control\r\n [required]=\"required\" [type]=\"dataType\"></bizdoc-autocomplete>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value | typeValue: dataType | async}}\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: ["type", "placeholder", "text", "required", "disabled", "value", "minimumChars", "textFormControlName", "textFormControl"], outputs: ["textChange", "optionSelected"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
6084
6078
|
};
|
6085
6079
|
AutocompleteField = __decorate([
|
6086
6080
|
BizDoc({ selector: 'autocomplete-control' })
|
6087
6081
|
], AutocompleteField);
|
6088
6082
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AutocompleteField, decorators: [{
|
6089
6083
|
type: Component,
|
6090
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance>\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <bizdoc-autocomplete [placeholder]=\"placeholder |localizedString\" [formControl]=control\r\n [required]=\"required\" [type]=\"dataType\"></bizdoc-autocomplete>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value | typeValue: dataType | async}}\r\n}\r\n" }]
|
6084
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <bizdoc-autocomplete [placeholder]=\"placeholder |localizedString\" [formControl]=control\r\n [required]=\"required\" [type]=\"dataType\"></bizdoc-autocomplete>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value | typeValue: dataType | async}}\r\n}\r\n" }]
|
6091
6085
|
}], ctorParameters: () => [{ type: DatasourceService }], propDecorators: { params: [{
|
6092
6086
|
type: Input
|
6093
6087
|
}], input: [{
|
@@ -6257,6 +6251,7 @@ class LayoutComponent {
|
|
6257
6251
|
f.label = f.name;
|
6258
6252
|
Object.assign(instance, f);
|
6259
6253
|
instance.mode = 'compose';
|
6254
|
+
//instance.dense = true;
|
6260
6255
|
f.defaultValue !== undefined && instance.control.setValue(f.defaultValue, { emitEvent: false });
|
6261
6256
|
this.form.addControl(f.name, instance.control);
|
6262
6257
|
return instance;
|
@@ -7008,7 +7003,7 @@ class MailboxService {
|
|
7008
7003
|
`?access_token=${token}`;
|
7009
7004
|
return url;
|
7010
7005
|
}
|
7011
|
-
|
7006
|
+
downloadAttachment(documentId, fileId) {
|
7012
7007
|
//new Observable<any>(observe => {
|
7013
7008
|
// observe.next({});
|
7014
7009
|
// return {
|
@@ -7023,13 +7018,13 @@ class MailboxService {
|
|
7023
7018
|
removeAttachment(recipientId, fileId) {
|
7024
7019
|
return this._http.delete(`/api/attachments/${recipientId}/${fileId}`);
|
7025
7020
|
}
|
7026
|
-
|
7021
|
+
markAsRead(id, read, folderId, received) {
|
7027
7022
|
return this._http.put(`/api/mailbox/read/${id}`, undefined, { params: { read } }).pipe(tap(() => folderId && received && this._updateunreadcounter(received, folderId, read ? 1 : -1)));
|
7028
7023
|
}
|
7029
|
-
|
7024
|
+
listComments(id, before) {
|
7030
7025
|
return this._http.get(`/api/comments/${id}`, { params: { before: new Date(before).toJSON() } });
|
7031
7026
|
}
|
7032
|
-
|
7027
|
+
updateRecipientTags(id, tags) {
|
7033
7028
|
return this._http.put(`/api/mailbox/tag/${id}`, { tags }).pipe(tap(() => {
|
7034
7029
|
this._change$.next({ id, tags });
|
7035
7030
|
}));
|
@@ -7040,7 +7035,7 @@ class MailboxService {
|
|
7040
7035
|
* @param stateId
|
7041
7036
|
* @param userId substitute
|
7042
7037
|
*/
|
7043
|
-
|
7038
|
+
setDocumentState(documentId, stateId, userId) {
|
7044
7039
|
return this._http.put(`/api/mailbox/changestate/${documentId}`, { stateId, userId });
|
7045
7040
|
}
|
7046
7041
|
move(id, folderId) {
|
@@ -7051,10 +7046,10 @@ class MailboxService {
|
|
7051
7046
|
});
|
7052
7047
|
}));
|
7053
7048
|
}
|
7054
|
-
|
7049
|
+
checkOutAttachment(recipientId, version, attachmentId) {
|
7055
7050
|
return this._http.put(`/api/attachments/${recipientId}/${attachmentId}/checkout`, null, { params: { version } });
|
7056
7051
|
}
|
7057
|
-
|
7052
|
+
checkInAttachment(recipientId, version, attachmentId, file) {
|
7058
7053
|
const fd = new FormData();
|
7059
7054
|
fd.append(file.name, file);
|
7060
7055
|
const req = new HttpRequest('PUT', `/api/attachments/${recipientId}/${attachmentId}/checkin?version=${version}`, fd, {
|
@@ -7149,23 +7144,23 @@ class MailboxService {
|
|
7149
7144
|
* retrieve senders
|
7150
7145
|
* @param name
|
7151
7146
|
*/
|
7152
|
-
|
7147
|
+
listSenders(name) {
|
7153
7148
|
return this._http.get('/api/mailbox/senders/', {
|
7154
7149
|
params: {
|
7155
7150
|
name
|
7156
7151
|
}
|
7157
7152
|
});
|
7158
7153
|
}
|
7159
|
-
|
7154
|
+
toggleFlag(id, flag) {
|
7160
7155
|
return this._http.put(`/api/mailbox/flag/${id}?flag=${flag}`, null).pipe(tap(() => this._change$.next({ id, flag })));
|
7161
7156
|
}
|
7162
|
-
|
7157
|
+
markCommentsViewed(id) {
|
7163
7158
|
return this._http.put(`/api/comments/viewed/${id}`, {}, { headers: { 'no-progress': 'true' } }).pipe(tap((e) => this._change$.next({ id, viewed: e.time })));
|
7164
7159
|
}
|
7165
|
-
|
7160
|
+
reportTyping(id) {
|
7166
7161
|
return this._http.put(`/api/comments/typing/${id}`, {}, { headers: { 'no-progress': 'true' } });
|
7167
7162
|
}
|
7168
|
-
|
7163
|
+
reportEditing(id) {
|
7169
7164
|
return this._http.put(`/api/mailbox/editing/${id}`, {}, { headers: { 'no-progress': 'true' } });
|
7170
7165
|
}
|
7171
7166
|
copy(id) {
|
@@ -7179,22 +7174,22 @@ class MailboxService {
|
|
7179
7174
|
comment(id, options) {
|
7180
7175
|
return this._http.post(`/api/comments/${id}`, options);
|
7181
7176
|
}
|
7182
|
-
|
7177
|
+
updateComment(id, commentId, options) {
|
7183
7178
|
return this._http.put(`/api/comments/edit/${id}/${commentId}`, options);
|
7184
7179
|
}
|
7185
|
-
|
7180
|
+
getDocumentInfo(documentId) {
|
7186
7181
|
return this._http.get(`/api/mailbox/info/${documentId}`);
|
7187
7182
|
}
|
7188
|
-
|
7183
|
+
listTimeline(documentId) {
|
7189
7184
|
return this._http.get(`/api/mailbox/timeline/${documentId}`);
|
7190
7185
|
}
|
7191
|
-
|
7186
|
+
voteComment(id, commentId, value) {
|
7192
7187
|
return this._http.post(`/api/comments/vote/${id}/${commentId}`, {}, { params: { value: value.toString() } });
|
7193
7188
|
}
|
7194
|
-
|
7189
|
+
listCommentVotes(id, commentId) {
|
7195
7190
|
return this._http.get(`/api/comments/votes/${id}/${commentId}`);
|
7196
7191
|
}
|
7197
|
-
|
7192
|
+
listCommentEdits(id, commentId) {
|
7198
7193
|
return this._http.get(`/api/comments/edits/${id}/${commentId}`);
|
7199
7194
|
}
|
7200
7195
|
findAll(filter, options) {
|
@@ -7208,6 +7203,12 @@ class MailboxService {
|
|
7208
7203
|
this._change$.next(m);
|
7209
7204
|
}));
|
7210
7205
|
}
|
7206
|
+
/**
|
7207
|
+
*
|
7208
|
+
* @param form
|
7209
|
+
* @param model
|
7210
|
+
* @returns
|
7211
|
+
*/
|
7211
7212
|
create(form, model) {
|
7212
7213
|
// return this._wrap(form, p =>
|
7213
7214
|
// this._http.post<RecipientModel<T>>('/api/mail', model, {
|
@@ -7223,6 +7224,12 @@ class MailboxService {
|
|
7223
7224
|
}
|
7224
7225
|
})), this._sync());
|
7225
7226
|
}
|
7227
|
+
/**
|
7228
|
+
*
|
7229
|
+
* @param id
|
7230
|
+
* @param read
|
7231
|
+
* @returns
|
7232
|
+
*/
|
7226
7233
|
get(id, read) {
|
7227
7234
|
return this._http.get(`/api/mail/${id}`).pipe(tap((m) => read === false && m.read === true &&
|
7228
7235
|
this._updateunreadcounter(m.received, m.folderId, -1)));
|
@@ -7275,25 +7282,26 @@ class MailboxService {
|
|
7275
7282
|
delete(id) {
|
7276
7283
|
return this._http.delete(`/api/mail/${id}`).pipe(tap(() => this._delete$.next(id)));
|
7277
7284
|
}
|
7278
|
-
|
7279
|
-
return this._http.delete(`/api/comments/${id}`);
|
7280
|
-
}
|
7281
|
-
post(form, model) {
|
7282
|
-
|
7283
|
-
|
7284
|
-
|
7285
|
-
|
7286
|
-
|
7287
|
-
|
7288
|
-
|
7289
|
-
}
|
7285
|
+
toggleRemoveComment(id, value) {
|
7286
|
+
return this._http.delete(`/api/comments/${id}?value=${value}`);
|
7287
|
+
}
|
7288
|
+
//post<T = any>(form: string, model?: T): Observable<RecipientModel<T>> {
|
7289
|
+
// return this._wrap(form, p =>
|
7290
|
+
// this._http.post<RecipientModel<T>>('/api/mail', model, {
|
7291
|
+
// params: {
|
7292
|
+
// go: true,
|
7293
|
+
// form,
|
7294
|
+
// ...p
|
7295
|
+
// }
|
7296
|
+
// }));
|
7297
|
+
//}
|
7290
7298
|
submit(id, version, form, model) {
|
7291
7299
|
return this._geoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&go=true`, model, { params })), this._sync());
|
7292
7300
|
}
|
7293
7301
|
send(id, version, form, model, action, actionArgs, read, folderId, received) {
|
7294
7302
|
return this._geoLocation(form).pipe(switchMap(params => this._http.put(`/api/mail/${id}?version=${version}&action=${action}`, model, { params: { ...params, ...actionArgs } })), tap(() => read === false && received && folderId && this._updateunreadcounter(received, folderId, -1)), this._sync());
|
7295
7303
|
}
|
7296
|
-
|
7304
|
+
listEvents(starting, ending, contains) {
|
7297
7305
|
return this._http.get(`/api/events`, {
|
7298
7306
|
params: cleanup({
|
7299
7307
|
starting: starting.toJSON(),
|
@@ -7302,7 +7310,7 @@ class MailboxService {
|
|
7302
7310
|
})
|
7303
7311
|
});
|
7304
7312
|
}
|
7305
|
-
|
7313
|
+
updateEvent(id, options) {
|
7306
7314
|
return this._http.put(`/api/events/${id}`, cleanup(options));
|
7307
7315
|
}
|
7308
7316
|
/**
|
@@ -8111,7 +8119,7 @@ class BrowseFilterComponent {
|
|
8111
8119
|
this.filters = { axes, cube };
|
8112
8120
|
}
|
8113
8121
|
this.senders$ = this.sendername.valueChanges.
|
8114
|
-
pipe(takeUntil(this._destroy), debounceTime(250), filter((v) => isString(v)), switchMap((v) => this._mailbox.
|
8122
|
+
pipe(takeUntil(this._destroy), debounceTime(250), filter((v) => isString(v)), switchMap((v) => this._mailbox.listSenders(v)));
|
8115
8123
|
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(FILTER_DEBOUNCE)).
|
8116
8124
|
subscribe(v => this.valuesChange.emit(cleanup(v)));
|
8117
8125
|
this.form.patchValue(this.values, { emitEvent: false });
|
@@ -8786,7 +8794,7 @@ class AttachmentsComponent {
|
|
8786
8794
|
return this.model.attachments.filter(a => a.fileName === item.fileName && a != item);
|
8787
8795
|
}
|
8788
8796
|
async download(item) {
|
8789
|
-
//this._mailbox.
|
8797
|
+
//this._mailbox.downloadAttachment(this.model.documentId, item.id).subscribe(data => {
|
8790
8798
|
//const blob = new Blob([data], { type: item.contentType });
|
8791
8799
|
//if (typeof window.navigator.msSaveBlob !== 'undefined') { // IE
|
8792
8800
|
// window.navigator.msSaveBlob(blob, item.fileName);
|
@@ -9320,7 +9328,7 @@ class BrowseItemsComponent {
|
|
9320
9328
|
dragStarted(event) {
|
9321
9329
|
}
|
9322
9330
|
toggleRead(item) {
|
9323
|
-
this._mailbox.
|
9331
|
+
this._mailbox.markAsRead(item.id, !item.read, item.folderId, item.received).
|
9324
9332
|
subscribe(() => item.read = !item.read);
|
9325
9333
|
}
|
9326
9334
|
select(id) {
|
@@ -9335,7 +9343,7 @@ class BrowseItemsComponent {
|
|
9335
9343
|
this._retrieve(mail).subscribe(item => {
|
9336
9344
|
if (item.tags && item.tags.indexOf(tag) > -1)
|
9337
9345
|
return;
|
9338
|
-
this._mailbox.
|
9346
|
+
this._mailbox.updateRecipientTags(mail.id, item.tags).subscribe(() => {
|
9339
9347
|
if (!item.tags)
|
9340
9348
|
item.tags = [tag];
|
9341
9349
|
else
|
@@ -9406,7 +9414,7 @@ class BrowseItemsComponent {
|
|
9406
9414
|
flag(item, evt) {
|
9407
9415
|
const extra = item;
|
9408
9416
|
extra.working = true;
|
9409
|
-
this._mailbox.
|
9417
|
+
this._mailbox.toggleFlag(item.id, !item.flag).subscribe({
|
9410
9418
|
next: () => {
|
9411
9419
|
item.flag = !item.flag;
|
9412
9420
|
extra.working = false;
|
@@ -9729,7 +9737,7 @@ class TagsComponent {
|
|
9729
9737
|
setTimeout(() => this.inputElement.nativeElement.focus());
|
9730
9738
|
}
|
9731
9739
|
_save() {
|
9732
|
-
this._mailbox.
|
9740
|
+
this._mailbox.updateRecipientTags(this._data.id, this._data.tags.map(t => t.name)).subscribe();
|
9733
9741
|
}
|
9734
9742
|
add(event) {
|
9735
9743
|
if (!this.auto.isOpen) {
|
@@ -10058,7 +10066,7 @@ class ComposeFormComponent {
|
|
10058
10066
|
const extra = this.model, { flag } = this.model;
|
10059
10067
|
extra.working = true;
|
10060
10068
|
this.working = true;
|
10061
|
-
this._mailbox.
|
10069
|
+
this._mailbox.toggleFlag(this.model.id, !flag).subscribe({
|
10062
10070
|
next: () => {
|
10063
10071
|
this.model.flag = !flag;
|
10064
10072
|
extra.working = false;
|
@@ -13294,7 +13302,7 @@ class EditCommentComponent {
|
|
13294
13302
|
}
|
13295
13303
|
ok(evt) {
|
13296
13304
|
this.sending = true;
|
13297
|
-
this._mailbox.
|
13305
|
+
this._mailbox.updateComment(this.data.documentId, this.data.id, evt).subscribe(c => this._popupRef.close(c), () => {
|
13298
13306
|
this.sending = false;
|
13299
13307
|
this._sb.error();
|
13300
13308
|
});
|
@@ -13386,7 +13394,7 @@ class CommentEditsComponent {
|
|
13386
13394
|
this.resource = _data.resource;
|
13387
13395
|
}
|
13388
13396
|
ngOnInit() {
|
13389
|
-
this.versions = this._mailbox.
|
13397
|
+
this.versions = this._mailbox.listCommentEdits(this._data.documentId, this._data.id);
|
13390
13398
|
}
|
13391
13399
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentEditsComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }], target: i0.ɵɵFactoryTarget.Component }); }
|
13392
13400
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentEditsComponent, isStandalone: false, selector: "bizdoc-comment-edits", ngImport: i0, template: "<span class=\"mat-h2\">{{'History' | translate}}</span>\r\n\r\n@for (v of versions | async; track v) {\r\n <div class=\"comment\">\r\n <p [innerHTML]=\"v.text|taggingHtml:resource\"></p>\r\n @if (v.byId || byId) {\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n }\r\n <small>{{v.time | amCalendar}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
|
@@ -13409,18 +13417,18 @@ class CommentLikesComponent {
|
|
13409
13417
|
});
|
13410
13418
|
}
|
13411
13419
|
ngOnInit() {
|
13412
|
-
this.votes = this._mailbox.
|
13420
|
+
this.votes = this._mailbox.listCommentVotes(this._data.documentId, this._data.id);
|
13413
13421
|
}
|
13414
13422
|
ngOnDestroy() {
|
13415
13423
|
this._destroy.next();
|
13416
13424
|
this._destroy.complete();
|
13417
13425
|
}
|
13418
13426
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentLikesComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
13419
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentLikesComponent, isStandalone: false, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n
|
13427
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentLikesComponent, isStandalone: false, selector: "bizdoc-comment-votes", ngImport: i0, template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <div class=\"row\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n <span class=\"divider\"></span>\r\n <mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon>\r\n </div>\r\n <br />\r\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
13420
13428
|
}
|
13421
13429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentLikesComponent, decorators: [{
|
13422
13430
|
type: Component,
|
13423
|
-
args: [{ standalone: false, selector: 'bizdoc-comment-votes', template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n
|
13431
|
+
args: [{ standalone: false, selector: 'bizdoc-comment-votes', template: "<span class=\"mat-h2\">{{'Votes' | translate}}</span>\r\n@for (v of votes | async; track v) {\r\n <div class=\"vote\">\r\n <div class=\"row\">\r\n <bizdoc-identity-name class=\"mat-body\" [identity]=\"v.userId\" [by]=\"v.byId\"></bizdoc-identity-name>\r\n <span class=\"divider\"></span>\r\n <mat-icon>{{v.voted === 1 ? 'thumb_up_alt' : 'thumb_down_alt'}}</mat-icon>\r\n </div>\r\n <br />\r\n <small bizdocTooltip=\"{{v.time | amCalendar }}\">{{v.time | amTimeAgo}}</small>\r\n </div>\r\n}\r\n", styles: [":host{padding:8px}\n"] }]
|
13424
13432
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
13425
13433
|
type: Inject,
|
13426
13434
|
args: [POPUP_DATA]
|
@@ -13494,7 +13502,7 @@ class CommentComponent {
|
|
13494
13502
|
}
|
13495
13503
|
vote(value, event) {
|
13496
13504
|
value = this.item.voted !== value ? value : 0;
|
13497
|
-
this._mailbox.
|
13505
|
+
this._mailbox.voteComment(this.model.documentId, this.item.id, value).subscribe(() => {
|
13498
13506
|
if (this.item.votes === undefined)
|
13499
13507
|
this.item.votes = value;
|
13500
13508
|
else if (value === 0)
|
@@ -13523,17 +13531,12 @@ class CommentComponent {
|
|
13523
13531
|
_open(component, data) {
|
13524
13532
|
return this._popup.open(component, this.bodyElement, { position: 'start', data });
|
13525
13533
|
}
|
13526
|
-
delete() {
|
13527
|
-
this.
|
13528
|
-
|
13529
|
-
|
13530
|
-
|
13531
|
-
|
13532
|
-
next: () => {
|
13533
|
-
this.item.deleted = true;
|
13534
|
-
this.deleted.emit();
|
13535
|
-
}, error: () => this._ps.error()
|
13536
|
-
});
|
13534
|
+
delete(value) {
|
13535
|
+
this._mailbox.toggleRemoveComment(this.item.id, value).subscribe({
|
13536
|
+
next: () => {
|
13537
|
+
this.item.deleted = value;
|
13538
|
+
this.deleted.emit(value);
|
13539
|
+
}, error: this._ps.error.bind(this)
|
13537
13540
|
});
|
13538
13541
|
}
|
13539
13542
|
edits() {
|
@@ -13560,13 +13563,13 @@ class CommentComponent {
|
|
13560
13563
|
});
|
13561
13564
|
}
|
13562
13565
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: AccountService }, { token: Popup }, { token: i2$3.Overlay }, { token: MailboxService }, { token: i0.ViewContainerRef }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
13563
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentComponent, isStandalone: false, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <
|
13566
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentComponent, isStandalone: false, selector: "bizdoc-comment", inputs: { model: "model", item: "item" }, outputs: { deleted: "deleted", reply: "reply" }, host: { classAttribute: "comment" }, viewQueries: [{ propertyName: "bodyElement", first: true, predicate: ["body"], descendants: true }, { propertyName: "previewTemplate", first: true, predicate: ["previewTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n @if (!item.deleted) {\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete(true)\">{{'Delete'|translate}}</button>\r\n }\r\n @else {\r\n <button mat-menu-item (click)=\"delete(false)\">{{'Undo'|translate}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <mat-icon matRipple (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\">thumb_up_alt</mat-icon>\r\n <mat-icon matRipple (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\">thumb_down_alt</mat-icon>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i2$3.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i12.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i2$5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TaggingPipe, name: "taggingHtml" }] }); }
|
13564
13567
|
}
|
13565
13568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentComponent, decorators: [{
|
13566
13569
|
type: Component,
|
13567
13570
|
args: [{ standalone: false, selector: 'bizdoc-comment', host: {
|
13568
13571
|
class: 'comment'
|
13569
|
-
}, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete()\">{{'Delete'|translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <
|
13572
|
+
}, template: "<div class=\"row\">\r\n <div class=\"comment-body\" #body>\r\n <div [innerHTML]=\"item.text|taggingHtml:item.resource\" class=\"comment-text\"></div>\r\n @if (item.image) {\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" (click)=\"preview()\" />\r\n }\r\n </div>\r\n @if (me) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" class=\"tool\" (click)=\"$event.stopPropagation()\"><mat-icon>more_vert</mat-icon></button>\r\n }\r\n <mat-menu #menu>\r\n <ng-template matMenuContent>\r\n @if (!item.deleted) {\r\n <button mat-menu-item (click)=\"edit()\">{{'Edit'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"delete(true)\">{{'Delete'|translate}}</button>\r\n }\r\n @else {\r\n <button mat-menu-item (click)=\"delete(false)\">{{'Undo'|translate}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"column\">\r\n <span [innerHTML]=\"name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <div>\r\n <small class=\"flex\" bizdocTooltip=\"{{item.edited || item.time | amCalendar }}\">{{item.edited || item.time | amTimeAgo}}</small>\r\n @if (item.edited) {\r\n <a (click)=\"edits()\" class=\"modification\">{{'Edited'| translate}}</a>\r\n }\r\n @if (!me) {\r\n <a (click)=\"reply.emit()\" class=\"modification\">{{'Reply'| translate}}</a>\r\n }\r\n </div>\r\n </div>\r\n @if (voting) {\r\n <div class=\"comment-actions\">\r\n @if (item.votes > 0 || item.votes < 0) {\r\n <a [class.score-negative]=\"item.votes < 0\" class=\"comment-score\" dir=\"ltr\" (click)=\"votes()\" [bizdocTooltip]=\"'Votes'|translate\">{{item.votes}}</a>\r\n }\r\n <mat-icon matRipple (click)=\"vote(1, $event)\" [class.voted-true]=\"item.voted===1\">thumb_up_alt</mat-icon>\r\n <mat-icon matRipple (click)=\"vote(-1, $event)\" [class.voted-false]=\"item.voted===-1\">thumb_down_alt</mat-icon>\r\n </div>\r\n }\r\n</div>\r\n<ng-template #previewTemplate>\r\n <img [src]=\"'data:image/png;base64,'+item.image\" alt=\"\" />\r\n</ng-template>\r\n" }]
|
13570
13573
|
}], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: AccountService }, { type: Popup }, { type: i2$3.Overlay }, { type: MailboxService }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
13571
13574
|
type: Inject,
|
13572
13575
|
args: [BIZDOC_CONFIG]
|
@@ -13635,10 +13638,10 @@ class CommentsComponent {
|
|
13635
13638
|
});
|
13636
13639
|
this._messaging.commentDelete$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).subscribe(e => {
|
13637
13640
|
const comment = this.model.comments.find(c => c.id === e.id);
|
13638
|
-
comment.deleted =
|
13641
|
+
comment.deleted = e.deleted;
|
13639
13642
|
this.change.emit();
|
13640
13643
|
});
|
13641
|
-
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.
|
13644
|
+
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
13642
13645
|
}
|
13643
13646
|
_formatUserElement(person) {
|
13644
13647
|
if (this._config.chat !== false)
|
@@ -13679,8 +13682,6 @@ class CommentsComponent {
|
|
13679
13682
|
}
|
13680
13683
|
return n;
|
13681
13684
|
}
|
13682
|
-
deleted(item) {
|
13683
|
-
}
|
13684
13685
|
reply(item) {
|
13685
13686
|
this._replyTo = item;
|
13686
13687
|
this._accounts.get(item.byId || item.userId).
|
@@ -13708,7 +13709,7 @@ class CommentsComponent {
|
|
13708
13709
|
onScroll(evt) {
|
13709
13710
|
if (evt.target.scrollTop === 0 && this.model.comments.length && !this._top) {
|
13710
13711
|
const time = this.model.comments.sort((c0, c1) => c0.time > c1.time ? 1 : -1)[0].time;
|
13711
|
-
this._mailbox.
|
13712
|
+
this._mailbox.listComments(this.model.documentId, time).subscribe(cs => {
|
13712
13713
|
if (cs.length === 0)
|
13713
13714
|
this._top = true;
|
13714
13715
|
else {
|
@@ -13736,7 +13737,7 @@ class CommentsComponent {
|
|
13736
13737
|
_viewed() {
|
13737
13738
|
const { viewed, comments, documentId } = this.model;
|
13738
13739
|
comments.length && (!viewed || comments.findIndex(c => c.time > viewed) > -1) &&
|
13739
|
-
this._mailbox.
|
13740
|
+
this._mailbox.markCommentsViewed(documentId).subscribe(e => {
|
13740
13741
|
this.model.viewed = e.time;
|
13741
13742
|
this.change.emit();
|
13742
13743
|
});
|
@@ -13772,13 +13773,13 @@ class CommentsComponent {
|
|
13772
13773
|
window.localStorage.setItem(id, this.input.text);
|
13773
13774
|
}
|
13774
13775
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentsComponent, deps: [{ token: AccountService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: ChatInfo }, { token: MailboxService }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
13775
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentsComponent, isStandalone: false, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"
|
13776
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: CommentsComponent, isStandalone: false, selector: "bizdoc-comments", inputs: { model: "model" }, outputs: { change: "change" }, host: { classAttribute: "comments" }, viewQueries: [{ propertyName: "threadElement", first: true, predicate: ["thread"], descendants: true, read: ElementRef, static: true }, { propertyName: "input", first: true, predicate: EditInputComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}\n"], dependencies: [{ kind: "component", type: EditInputComponent, selector: "bizdoc-edit-text", inputs: ["placeholder", "text", "image", "resource", "disabled", "autofocus", "cache"], outputs: ["change", "ok", "focus", "blur"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CommentComponent, selector: "bizdoc-comment", inputs: ["model", "item"], outputs: ["deleted", "reply"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }] }); }
|
13776
13777
|
}
|
13777
13778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CommentsComponent, decorators: [{
|
13778
13779
|
type: Component,
|
13779
13780
|
args: [{ standalone: false, selector: 'bizdoc-comments', host: {
|
13780
13781
|
class: 'comments'
|
13781
|
-
}, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\"
|
13782
|
+
}, template: "@if (!model.comments.length) {\r\n <bizdoc-none icon=\"format_quote\"></bizdoc-none>\r\n}\r\n\r\n<div class=\"column comments-thread\" #thread (scroll)=\"onScroll($event)\">\r\n @for (c of model.comments; track c.id) {\r\n <ng-container role=\"listitem\">\r\n @if (!c.deleted || showDeleted) {\r\n <bizdoc-comment\r\n [model]=\"model\"\r\n [item]=\"c\"\r\n (reply)=\"reply(c)\">\r\n </bizdoc-comment>\r\n } @else {\r\n <a (click)=\"showDeleted = true\" class=\"comment-deleted\">{{'Deleted' | translate}}</a>\r\n }\r\n </ng-container>\r\n }\r\n</div>\r\n\r\n<div class=\"comments-typing\" [style.visibility]=\"typing ? 'visible': 'hidden'\">{{'Typing' | translate : typing}}</div>\r\n\r\n@if (replyName) {\r\n <div class=\"comments-reply\">\r\n <span [innerHTML]=\"replyName | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <a class=\"modification\" (click)=\"clearReply()\">{{'Cancel'|translate}}</a>\r\n </div>\r\n}\r\n\r\n<bizdoc-edit-text (ok)=\"post($event)\" (change)=\"_textChange.next()\"\r\n placeholder=\"CommentHere\"\r\n [disabled]=\"sending\" (focus)=\"onFocus()\" (blur)=\"onBlur()\">\r\n</bizdoc-edit-text>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.comments-thread{flex:1 1 auto;overflow:auto;padding:8px 12px 0}.comment-deleted{align-self:center}.comments-typing,.comments-reply{font-size:12px;padding:0 8px}.comments-reply .modification{font-size:medium}\n"] }]
|
13782
13783
|
}], ctorParameters: () => [{ type: AccountService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: ChatInfo }, { type: MailboxService }, { type: HubService }, { type: undefined, decorators: [{
|
13783
13784
|
type: Inject,
|
13784
13785
|
args: [BIZDOC_CONFIG]
|
@@ -16713,7 +16714,7 @@ class DocumentResolver {
|
|
16713
16714
|
this._mailbox = _mailbox;
|
16714
16715
|
}
|
16715
16716
|
onResolve(params) {
|
16716
|
-
return this._mailbox.
|
16717
|
+
return this._mailbox.getDocumentInfo((params['id'].decodeId()));
|
16717
16718
|
}
|
16718
16719
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentResolver, deps: [{ token: MailboxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
16719
16720
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DocumentResolver }); }
|
@@ -16917,7 +16918,7 @@ class ScheduleViewComponent {
|
|
16917
16918
|
}
|
16918
16919
|
this.starting = dates[0],
|
16919
16920
|
this.ending = dates[dates.length - 1];
|
16920
|
-
this._mailbox.
|
16921
|
+
this._mailbox.listEvents(this.starting, this.ending).subscribe({
|
16921
16922
|
next: r => {
|
16922
16923
|
const data = r.map(e => {
|
16923
16924
|
return {
|
@@ -16935,7 +16936,7 @@ class ScheduleViewComponent {
|
|
16935
16936
|
});
|
16936
16937
|
}
|
16937
16938
|
drag(_) {
|
16938
|
-
this._mailbox.
|
16939
|
+
this._mailbox.updateEvent(1, { starting: undefined }).subscribe({ error: () => this._sb.error() });
|
16939
16940
|
}
|
16940
16941
|
nav(e) {
|
16941
16942
|
switch (e.action) {
|
@@ -19527,11 +19528,11 @@ class HomeBase {
|
|
19527
19528
|
window.dispatchEvent(new Event('resize'));
|
19528
19529
|
}
|
19529
19530
|
mails() {
|
19530
|
-
this._session.
|
19531
|
+
this._session.markInboxAsTouched();
|
19531
19532
|
}
|
19532
19533
|
notifs(_) {
|
19533
19534
|
this._session.profile.notifications.length &&
|
19534
|
-
this._session.
|
19535
|
+
this._session.markNotificationsAsTouched();
|
19535
19536
|
}
|
19536
19537
|
_is(name, val) {
|
19537
19538
|
if (val === undefined)
|
@@ -19627,11 +19628,11 @@ class QuickNotificationsComponent extends NotificationsComponentBase {
|
|
19627
19628
|
this._service.mute(item.id, mute);
|
19628
19629
|
}
|
19629
19630
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: QuickNotificationsComponent, deps: [{ token: PopupRef }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
|
19630
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"], dependencies: [{ kind: "directive", type: i9.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
19631
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: QuickNotificationsComponent, isStandalone: false, selector: "bizdoc-notifications", usesInheritance: true, ngImport: i0, template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\"\r\n matListItemMeta class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"], dependencies: [{ kind: "directive", type: i9.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2$5.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$5.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$5.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "directive", type: i2$5.MatListItemMeta, selector: "[matListItemMeta]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
19631
19632
|
}
|
19632
19633
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: QuickNotificationsComponent, decorators: [{
|
19633
19634
|
type: Component,
|
19634
|
-
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\" class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"] }]
|
19635
|
+
args: [{ standalone: false, selector: 'bizdoc-notifications', template: "<mat-nav-list role=\"list\">\r\n <!--dense-->\r\n @for (n of notifications | sort: 'sent' : 'desc' | slice:0:9; track n; let i = $index) {\r\n <mat-list-item role=\"listitem\" class=\"item\" [class.read]=\"n.read\" (click)=\"open(n, $event)\">\r\n <h3 *ngComponentOutlet=\"n.comp; injector: n.injector\" matListItemTitle></h3>\r\n <span matListItemLine [bizdocTooltip]=\"n.sent | amCalendar\">{{n.sent | amTimeAgo }}</span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [matMenuTriggerData]=\"{muted: false}\"\r\n matListItemMeta class=\"tool\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <ng-template matMenuContent let-muted=\"muted\">\r\n <button mat-menu-item (click)=\"mute(n, true)\">{{ (!(muted | async) ? 'Mute': 'Unmute') | translate}}</button>\r\n </ng-template>\r\n </mat-menu>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n<div class=\"tools row\">\r\n <a (click)=\"all()\">{{'ShowAll'|translate}}</a> \r\n <span class=\"divider\"></span>\r\n <a (click)='options()'>{{'Options'|translate}}</a>\r\n</div>\r\n", styles: [".item .tool{opacity:.1}.item:hover .tool{opacity:1}.tools{font-variant-caps:all-small-caps;font-size:medium;padding:8px}\n"] }]
|
19635
19636
|
}], ctorParameters: () => [{ type: PopupRef }, { type: RouterImpl }] });
|
19636
19637
|
|
19637
19638
|
let DocumentListingComponent = class DocumentListingComponent {
|
@@ -19806,7 +19807,7 @@ class SearchService {
|
|
19806
19807
|
});
|
19807
19808
|
});
|
19808
19809
|
// senders from server
|
19809
|
-
this._mailbox.
|
19810
|
+
this._mailbox.listSenders(value).subscribe(r => r.forEach(s => results.push({
|
19810
19811
|
portal: new ComponentPortal(PathListingComponent),
|
19811
19812
|
model: {
|
19812
19813
|
path: ['mailbox', 'f', 'ib'],
|
@@ -19818,7 +19819,7 @@ class SearchService {
|
|
19818
19819
|
})));
|
19819
19820
|
// events
|
19820
19821
|
const today = new Date();
|
19821
|
-
this._mailbox.
|
19822
|
+
this._mailbox.listEvents(today, new Date(today.valueOf() + 604800000), value).
|
19822
19823
|
subscribe(r => r.forEach(e => results.push({
|
19823
19824
|
portal: new ComponentPortal(PathListingComponent),
|
19824
19825
|
model: {
|
@@ -21461,7 +21462,7 @@ class HomeComponent extends HomeBase {
|
|
21461
21462
|
}
|
21462
21463
|
notifs(evt) {
|
21463
21464
|
this.profile.notifications.length &&
|
21464
|
-
this._session.
|
21465
|
+
this._session.markNotificationsAsTouched();
|
21465
21466
|
this._popup.open(QuickNotificationsComponent, evt.target, { position: 'below' });
|
21466
21467
|
super.notifs();
|
21467
21468
|
}
|
@@ -22545,7 +22546,7 @@ class DocumentResolveService {
|
|
22545
22546
|
return of(item);
|
22546
22547
|
}
|
22547
22548
|
const id = route.paramMap.get('id').decodeId();
|
22548
|
-
return this._mailbox.
|
22549
|
+
return this._mailbox.getDocumentInfo(id).pipe(catchError$1(e => {
|
22549
22550
|
this._sb.error();
|
22550
22551
|
throw e;
|
22551
22552
|
}));
|
@@ -23430,8 +23431,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
23430
23431
|
}] } });
|
23431
23432
|
|
23432
23433
|
let DateRangeField = class DateRangeField {
|
23434
|
+
set dense(val) {
|
23435
|
+
if (val)
|
23436
|
+
this.subscriptSizing = 'dynamic';
|
23437
|
+
}
|
23433
23438
|
constructor(_fb) {
|
23434
23439
|
this._fb = _fb;
|
23440
|
+
this.subscriptSizing = 'fixed';
|
23435
23441
|
this.isMobile = isMobile();
|
23436
23442
|
this.control = this._fb.group({
|
23437
23443
|
start: this._fb.control(null),
|
@@ -23449,14 +23455,14 @@ let DateRangeField = class DateRangeField {
|
|
23449
23455
|
this.inp.nativeElement.focus();
|
23450
23456
|
}
|
23451
23457
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateRangeField, deps: [{ token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
23452
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateRangeField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "inp", first: true, predicate: ["inp"], descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance>\r\n <mat-label>{{label }}</mat-label>\r\n <mat-date-range-input [formGroup]=\"control\" [rangePicker]=\"picker\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\">\r\n <input matStartDate formControlName=\"start\" [placeholder]=\"startPlaceholder\" #inp>\r\n <input matEndDate formControlName=\"end\" [placeholder]=\"endPlaceholder\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n<span>{{control.controls.start.value|dateRange:control.controls.end.value}}</span>\r\n}\r\n", dependencies: [{ 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: DateRangePipe, name: "dateRange" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23458
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateRangeField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "inp", first: true, predicate: ["inp"], descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label }}</mat-label>\r\n <mat-date-range-input [formGroup]=\"control\" [rangePicker]=\"picker\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\">\r\n <input matStartDate formControlName=\"start\" [placeholder]=\"startPlaceholder\" #inp>\r\n <input matEndDate formControlName=\"end\" [placeholder]=\"endPlaceholder\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n<span>{{control.controls.start.value|dateRange:control.controls.end.value}}</span>\r\n}\r\n", dependencies: [{ 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: DateRangePipe, name: "dateRange" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23453
23459
|
};
|
23454
23460
|
DateRangeField = __decorate([
|
23455
23461
|
BizDoc({ selector: 'date-range-control' })
|
23456
23462
|
], DateRangeField);
|
23457
23463
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateRangeField, decorators: [{
|
23458
23464
|
type: Component,
|
23459
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance>\r\n <mat-label>{{label }}</mat-label>\r\n <mat-date-range-input [formGroup]=\"control\" [rangePicker]=\"picker\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\">\r\n <input matStartDate formControlName=\"start\" [placeholder]=\"startPlaceholder\" #inp>\r\n <input matEndDate formControlName=\"end\" [placeholder]=\"endPlaceholder\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n<span>{{control.controls.start.value|dateRange:control.controls.end.value}}</span>\r\n}\r\n" }]
|
23465
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label }}</mat-label>\r\n <mat-date-range-input [formGroup]=\"control\" [rangePicker]=\"picker\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\">\r\n <input matStartDate formControlName=\"start\" [placeholder]=\"startPlaceholder\" #inp>\r\n <input matEndDate formControlName=\"end\" [placeholder]=\"endPlaceholder\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #picker [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n<span>{{control.controls.start.value|dateRange:control.controls.end.value}}</span>\r\n}\r\n" }]
|
23460
23466
|
}], ctorParameters: () => [{ type: i1$2.FormBuilder }], propDecorators: { inp: [{
|
23461
23467
|
type: ViewChild,
|
23462
23468
|
args: ['inp']
|
@@ -23464,9 +23470,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
23464
23470
|
|
23465
23471
|
let DateField = class DateField {
|
23466
23472
|
constructor() {
|
23473
|
+
this.subscriptSizing = 'fixed';
|
23467
23474
|
this.isMobile = isMobile();
|
23468
23475
|
this.control = new FormControl();
|
23469
23476
|
}
|
23477
|
+
set dense(val) {
|
23478
|
+
if (val)
|
23479
|
+
this.subscriptSizing = 'dynamic';
|
23480
|
+
}
|
23470
23481
|
focus() { this.input.focus(); }
|
23471
23482
|
ngOnInit() {
|
23472
23483
|
this.required && this.control.addValidators(Validators.required);
|
@@ -23474,14 +23485,14 @@ let DateField = class DateField {
|
|
23474
23485
|
this.max && this.control.addValidators(Validators.max(this.max));
|
23475
23486
|
}
|
23476
23487
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
23477
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n
|
23488
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: DateField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <input matInput [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\"\r\n [matDatepicker]=\"picker\" />\r\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker [touchUi]=\"isMobile\"></mat-datepicker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n }\r\n@else {\r\n @if (control.value) {\r\n<span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n", dependencies: [{ 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.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: "component", type: i2$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { 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: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23478
23489
|
};
|
23479
23490
|
DateField = __decorate([
|
23480
23491
|
BizDoc({ selector: 'date-control' })
|
23481
23492
|
], DateField);
|
23482
23493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: DateField, decorators: [{
|
23483
23494
|
type: Component,
|
23484
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n
|
23495
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <input matInput [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\"\r\n [matDatepicker]=\"picker\" />\r\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker [touchUi]=\"isMobile\"></mat-datepicker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n }\r\n@else {\r\n @if (control.value) {\r\n<span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n" }]
|
23485
23496
|
}], propDecorators: { input: [{
|
23486
23497
|
type: ViewChild,
|
23487
23498
|
args: [MatInput]
|
@@ -23520,8 +23531,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
23520
23531
|
|
23521
23532
|
let InputField = class InputField {
|
23522
23533
|
constructor() {
|
23534
|
+
this.subscriptSizing = 'fixed';
|
23523
23535
|
this.control = new FormControl();
|
23524
23536
|
}
|
23537
|
+
set dense(val) {
|
23538
|
+
if (val)
|
23539
|
+
this.subscriptSizing = 'dynamic';
|
23540
|
+
}
|
23525
23541
|
ngOnInit() {
|
23526
23542
|
switch (this.type) {
|
23527
23543
|
case FieldKind.EmailAddress:
|
@@ -23546,14 +23562,14 @@ let InputField = class InputField {
|
|
23546
23562
|
}
|
23547
23563
|
focus() { this.input.focus(); }
|
23548
23564
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: InputField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
23549
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: InputField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n
|
23565
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: InputField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <input matInput [formControl]=control [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" [pattern]=\"pattern\" />\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (control.hasError('minLength')) {\r\n <mat-error [innerHTML]=\"'MinLengthErr'|translate:(label|localizedString):minLength\"></mat-error>\r\n }\r\n @if (control.hasError('maxLength')) {\r\n <mat-error [innerHTML]=\"'MaxLengthErr'|translate:(label|localizedString):maxLength\"></mat-error>\r\n }\r\n @if (control.hasError('email')) {\r\n <mat-error [innerHTML]=\"'EmailErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (control.hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'PatternErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n } @else {\r\n @switch (kind) {\r\n @case ('PhoneNumber') {\r\n<a [href]=\"'tel:'+control.value\">{{control.value}}</a>\r\n }\r\n @case ('EmailAddress') {\r\n<a [href]=\"control.value\">{{control.value}}</a>\r\n }\r\n @case ('Url') {\r\n<a [href]=\"control.value\">{{control.value}}</a>\r\n }\r\n @case ('Password') {\r\n<span>\r\n</span>\r\n }\r\n @default {\r\n<span>{{control.value}}</span>\r\n }\r\n }\r\n }\r\n", dependencies: [{ 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { 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: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23550
23566
|
};
|
23551
23567
|
InputField = __decorate([
|
23552
23568
|
BizDoc({ selector: 'text-control' })
|
23553
23569
|
], InputField);
|
23554
23570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: InputField, decorators: [{
|
23555
23571
|
type: Component,
|
23556
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n
|
23572
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <input matInput [formControl]=control [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" [pattern]=\"pattern\" />\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (control.hasError('minLength')) {\r\n <mat-error [innerHTML]=\"'MinLengthErr'|translate:(label|localizedString):minLength\"></mat-error>\r\n }\r\n @if (control.hasError('maxLength')) {\r\n <mat-error [innerHTML]=\"'MaxLengthErr'|translate:(label|localizedString):maxLength\"></mat-error>\r\n }\r\n @if (control.hasError('email')) {\r\n <mat-error [innerHTML]=\"'EmailErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (control.hasError('pattern')) {\r\n <mat-error [innerHTML]=\"'PatternErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n } @else {\r\n @switch (kind) {\r\n @case ('PhoneNumber') {\r\n<a [href]=\"'tel:'+control.value\">{{control.value}}</a>\r\n }\r\n @case ('EmailAddress') {\r\n<a [href]=\"control.value\">{{control.value}}</a>\r\n }\r\n @case ('Url') {\r\n<a [href]=\"control.value\">{{control.value}}</a>\r\n }\r\n @case ('Password') {\r\n<span>\r\n</span>\r\n }\r\n @default {\r\n<span>{{control.value}}</span>\r\n }\r\n }\r\n }\r\n" }]
|
23557
23573
|
}], propDecorators: { input: [{
|
23558
23574
|
type: ViewChild,
|
23559
23575
|
args: [MatInput]
|
@@ -23561,8 +23577,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
23561
23577
|
|
23562
23578
|
let NumericField = class NumericField {
|
23563
23579
|
constructor() {
|
23580
|
+
this.subscriptSizing = 'fixed';
|
23564
23581
|
this.control = new FormControl();
|
23565
23582
|
}
|
23583
|
+
set dense(val) {
|
23584
|
+
if (val)
|
23585
|
+
this.subscriptSizing = 'dynamic';
|
23586
|
+
}
|
23566
23587
|
focus() { this.input.focus(); }
|
23567
23588
|
ngOnInit() {
|
23568
23589
|
this.required && this.control.addValidators(Validators.required);
|
@@ -23570,14 +23591,14 @@ let NumericField = class NumericField {
|
|
23570
23591
|
this.max && this.control.addValidators(Validators.max(this.max));
|
23571
23592
|
}
|
23572
23593
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumericField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
23573
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: NumericField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n
|
23594
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: NumericField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <input matInput type=\"number\" [formControl]=control [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\" [pattern]=\"pattern\" />\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n } @else {\r\n{{control.value|number}}\r\n }\r\n", dependencies: [{ 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$2.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { 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: "pipe", type: i9.DecimalPipe, name: "number" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23574
23595
|
};
|
23575
23596
|
NumericField = __decorate([
|
23576
23597
|
BizDoc({ selector: 'number-control' })
|
23577
23598
|
], NumericField);
|
23578
23599
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NumericField, decorators: [{
|
23579
23600
|
type: Component,
|
23580
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n
|
23601
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <input matInput type=\"number\" [formControl]=control [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [min]=\"min\" [max]=\"max\" [pattern]=\"pattern\" />\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n } @else {\r\n{{control.value|number}}\r\n }\r\n" }]
|
23581
23602
|
}], propDecorators: { input: [{
|
23582
23603
|
type: ViewChild,
|
23583
23604
|
args: [MatInput]
|
@@ -23586,20 +23607,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
23586
23607
|
let SelectField = class SelectField extends OptionsControlField {
|
23587
23608
|
constructor() {
|
23588
23609
|
super(...arguments);
|
23610
|
+
this.subscriptSizing = 'fixed';
|
23589
23611
|
this.control = new FormControl();
|
23590
23612
|
}
|
23613
|
+
set dense(val) {
|
23614
|
+
if (val)
|
23615
|
+
this.subscriptSizing = 'dynamic';
|
23616
|
+
}
|
23591
23617
|
focus() {
|
23592
23618
|
this.select.focus();
|
23593
23619
|
}
|
23594
23620
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectField, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
23595
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SelectField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]
|
23621
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SelectField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=\"appearance\" [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n @for (o of options; track o) {\r\n <mat-option [value]=\"o.key\">{{o.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>\r\n @switch (multiple) {\r\n @case (true) {\r\n @for (o of control.value; track o; let index = $index) {\r\n {{optionOf(o)|localizedString}}\r\n @if (index>0) {\r\n , \r\n }\r\n }\r\n }\r\n @default {\r\n {{optionOf(control.value)|localizedString}}\r\n }\r\n }\r\n </span>\r\n }\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "component", type: i2$6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
23596
23622
|
};
|
23597
23623
|
SelectField = __decorate([
|
23598
23624
|
BizDoc({ selector: 'select-control' })
|
23599
23625
|
], SelectField);
|
23600
23626
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SelectField, decorators: [{
|
23601
23627
|
type: Component,
|
23602
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]
|
23628
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=\"appearance\" [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n @for (o of options; track o) {\r\n <mat-option [value]=\"o.key\">{{o.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>\r\n @switch (multiple) {\r\n @case (true) {\r\n @for (o of control.value; track o; let index = $index) {\r\n {{optionOf(o)|localizedString}}\r\n @if (index>0) {\r\n , \r\n }\r\n }\r\n }\r\n @default {\r\n {{optionOf(control.value)|localizedString}}\r\n }\r\n }\r\n </span>\r\n }\r\n}\r\n" }]
|
23603
23629
|
}], propDecorators: { select: [{
|
23604
23630
|
type: ViewChild,
|
23605
23631
|
args: [MatSelect]
|
@@ -23772,7 +23798,7 @@ class FileInput {
|
|
23772
23798
|
const accept = item.isImage ? 'image/*' :
|
23773
23799
|
'.' + AttachmentInfo.fileExt(item.fileName) + ',' + item.contentType;
|
23774
23800
|
this._promptFileInput({ multiple: false, accept }).then(files => {
|
23775
|
-
this._mailbox.
|
23801
|
+
this._mailbox.checkInAttachment(this._model.id, this._model.version, item.id, files[0]).
|
23776
23802
|
subscribe({
|
23777
23803
|
next: a => {
|
23778
23804
|
delete item.checkedOut;
|
@@ -23790,7 +23816,7 @@ class FileInput {
|
|
23790
23816
|
});
|
23791
23817
|
}
|
23792
23818
|
checkOut(item) {
|
23793
|
-
this._mailbox.
|
23819
|
+
this._mailbox.checkOutAttachment(this._model.id, this._model.version, item.id).
|
23794
23820
|
subscribe(async () => {
|
23795
23821
|
item.checkedOut = true;
|
23796
23822
|
await this.download(item);
|
@@ -23900,7 +23926,7 @@ class FileInput {
|
|
23900
23926
|
// is checked out
|
23901
23927
|
if (item.checkedOut) {
|
23902
23928
|
// check in
|
23903
|
-
let observable = this._mailbox.
|
23929
|
+
let observable = this._mailbox.checkInAttachment(this._model.id, this._model.version, item.id, file).
|
23904
23930
|
pipe(
|
23905
23931
|
//TODO:
|
23906
23932
|
// reportProgress(item),
|
@@ -24061,8 +24087,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
24061
24087
|
|
24062
24088
|
let TextareaField = class TextareaField {
|
24063
24089
|
constructor() {
|
24090
|
+
this.subscriptSizing = 'fixed';
|
24064
24091
|
this.control = new FormControl();
|
24065
24092
|
}
|
24093
|
+
set dense(val) {
|
24094
|
+
if (val)
|
24095
|
+
this.subscriptSizing = 'dynamic';
|
24096
|
+
}
|
24066
24097
|
ngOnInit() {
|
24067
24098
|
this.minLength && this.control.addValidators(Validators.minLength(this.minLength));
|
24068
24099
|
this.maxLength && this.control.addValidators(Validators.maxLength(this.maxLength));
|
@@ -24070,14 +24101,14 @@ let TextareaField = class TextareaField {
|
|
24070
24101
|
}
|
24071
24102
|
focus() { this.input.focus(); }
|
24072
24103
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextareaField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
24073
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextareaField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance
|
24104
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TextareaField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <textarea matInput [formControl]=control cdkTextareaAutosize [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" [pattern]=\"pattern\"></textarea>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (maxLength) {\r\n <mat-hint align=\"end\">{{control.value?.length || 0}} / {{maxLength}}</mat-hint>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n <p [innerHTML]=\"control.value\"></p>\r\n}\r\n", dependencies: [{ 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { 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: "directive", type: i6.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
24074
24105
|
};
|
24075
24106
|
TextareaField = __decorate([
|
24076
24107
|
BizDoc({ selector: 'textarea-control' })
|
24077
24108
|
], TextareaField);
|
24078
24109
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TextareaField, decorators: [{
|
24079
24110
|
type: Component,
|
24080
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance
|
24111
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <textarea matInput [formControl]=control cdkTextareaAutosize [placeholder]=\"placeholder|localizedString\"\r\n [required]=\"required\" [minlength]=\"minLength\" [maxlength]=\"maxLength\" [pattern]=\"pattern\"></textarea>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n @if (maxLength) {\r\n <mat-hint align=\"end\">{{control.value?.length || 0}} / {{maxLength}}</mat-hint>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n <p [innerHTML]=\"control.value\"></p>\r\n}\r\n" }]
|
24081
24112
|
}], propDecorators: { input: [{
|
24082
24113
|
type: ViewChild,
|
24083
24114
|
args: [MatInput]
|
@@ -24340,53 +24371,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
24340
24371
|
|
24341
24372
|
let AddressField = class AddressField {
|
24342
24373
|
constructor() {
|
24374
|
+
this.subscriptSizing = 'fixed';
|
24343
24375
|
this.control = new FormControl(null);
|
24344
24376
|
}
|
24377
|
+
set dense(val) {
|
24378
|
+
if (val)
|
24379
|
+
this.subscriptSizing = 'dynamic';
|
24380
|
+
}
|
24345
24381
|
focus() { this.input.focus(); }
|
24346
24382
|
ngOnInit() {
|
24347
24383
|
this.required && this.control.addValidators(Validators.required);
|
24348
24384
|
}
|
24349
24385
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AddressField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
24350
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AddressField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: AddressInput, descendants: true }], ngImport: i0, template:
|
24351
|
-
<mat-form-field [appearance]=appearance>
|
24352
|
-
<mat-label>{{label|localizedString}}</mat-label>
|
24353
|
-
@if (hint) {
|
24354
|
-
<mat-hint> {{ hint |localizedString}}</mat-hint>
|
24355
|
-
}
|
24356
|
-
<bizdoc-address [formControl]=control [placeholder]="placeholder|localizedString"></bizdoc-address>
|
24357
|
-
@if (control.hasError('required')) {
|
24358
|
-
<mat-error [innerHTML]="'RequiredErr'|translate:(label|localizedString)"></mat-error>
|
24359
|
-
}
|
24360
|
-
</mat-form-field>
|
24361
|
-
} @else {
|
24362
|
-
{{control.value}}
|
24363
|
-
}
|
24364
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: AddressInput, selector: "bizdoc-address", inputs: ["debounce", "location", "country", "placeholder", "required", "disabled", "value"], outputs: ["optionSelected"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
24386
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: AddressField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: AddressInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n <bizdoc-address [formControl]=control [placeholder]=\"placeholder|localizedString\"></bizdoc-address>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value}}\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: AddressInput, selector: "bizdoc-address", inputs: ["debounce", "location", "country", "placeholder", "required", "disabled", "value"], outputs: ["optionSelected"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
24365
24387
|
};
|
24366
24388
|
AddressField = __decorate([
|
24367
24389
|
BizDoc({ selector: 'address-control' })
|
24368
24390
|
], AddressField);
|
24369
24391
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: AddressField, decorators: [{
|
24370
24392
|
type: Component,
|
24371
|
-
args: [{
|
24372
|
-
standalone: false,
|
24373
|
-
template: `@if (mode==='compose') {
|
24374
|
-
<mat-form-field [appearance]=appearance>
|
24375
|
-
<mat-label>{{label|localizedString}}</mat-label>
|
24376
|
-
@if (hint) {
|
24377
|
-
<mat-hint> {{ hint |localizedString}}</mat-hint>
|
24378
|
-
}
|
24379
|
-
<bizdoc-address [formControl]=control [placeholder]="placeholder|localizedString"></bizdoc-address>
|
24380
|
-
@if (control.hasError('required')) {
|
24381
|
-
<mat-error [innerHTML]="'RequiredErr'|translate:(label|localizedString)"></mat-error>
|
24382
|
-
}
|
24383
|
-
</mat-form-field>
|
24384
|
-
} @else {
|
24385
|
-
{{control.value}}
|
24386
|
-
}
|
24387
|
-
`,
|
24388
|
-
host: { class: 'field' }
|
24389
|
-
}]
|
24393
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n <bizdoc-address [formControl]=control [placeholder]=\"placeholder|localizedString\"></bizdoc-address>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n {{control.value}}\r\n}\r\n" }]
|
24390
24394
|
}], propDecorators: { input: [{
|
24391
24395
|
type: ViewChild,
|
24392
24396
|
args: [AddressInput]
|
@@ -24575,7 +24579,7 @@ let ActionsWidget = class ActionsWidget {
|
|
24575
24579
|
}
|
24576
24580
|
_draw() {
|
24577
24581
|
this.chart?.destroy();
|
24578
|
-
this._loaded.pipe(takeUntil(this._destroy), filter(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24582
|
+
this._loaded.pipe(takeUntil(this._destroy), delay(200), filter(v => v)).subscribe(() => this.chart = new AccumulationChart({
|
24579
24583
|
background: 'transparent',
|
24580
24584
|
legendSettings: this.legendSettings, enableAnimation: true,
|
24581
24585
|
tooltip: this.tooltip,
|
@@ -25064,7 +25068,7 @@ let CubeDocumentsWidget = class CubeDocumentsWidget {
|
|
25064
25068
|
this.dataSource.sort = this.sort;
|
25065
25069
|
}
|
25066
25070
|
open(item) {
|
25067
|
-
this._mailbox.
|
25071
|
+
this._mailbox.getDocumentInfo(item.id).subscribe({
|
25068
25072
|
next: item => {
|
25069
25073
|
this._router.navigate(['mailbox/d', item.documentId.encodeId()], {
|
25070
25074
|
state: {
|
@@ -26966,7 +26970,7 @@ let TasksComponent = class TasksComponent {
|
|
26966
26970
|
*/
|
26967
26971
|
drag(evt) {
|
26968
26972
|
const { id, stateId, userId } = evt.data[0];
|
26969
|
-
this._mailbox.
|
26973
|
+
this._mailbox.setDocumentState(id, stateId, userId).
|
26970
26974
|
subscribe({ error: () => this._sb.error() });
|
26971
26975
|
}
|
26972
26976
|
/**
|
@@ -28522,7 +28526,7 @@ class QuickCommentComponent {
|
|
28522
28526
|
this._destroy = new Subject();
|
28523
28527
|
}
|
28524
28528
|
ngOnInit() {
|
28525
|
-
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.
|
28529
|
+
this._textChange.pipe(debounceTime(TYPING_NOTIFY$1), takeUntil(this._destroy)).subscribe(() => this._mailbox.reportTyping(this.model.documentId).subscribe());
|
28526
28530
|
this._messaging.commentTyping$.pipe(takeUntil(this._destroy), filter(e => e.id === this.model.documentId)).
|
28527
28531
|
subscribe(e => {
|
28528
28532
|
this._accounts.get(e.userId).subscribe(u => {
|
@@ -28918,7 +28922,7 @@ let TimelineViewComponent = class TimelineViewComponent {
|
|
28918
28922
|
_prepare() {
|
28919
28923
|
const observables = [], tasks = [];
|
28920
28924
|
let i = 0;
|
28921
|
-
//const observable = this._mailbox.
|
28925
|
+
//const observable = this._mailbox.listTimeline(model.documentId).pipe(tap(t => {
|
28922
28926
|
//}))
|
28923
28927
|
this.model.log.forEach(l => {
|
28924
28928
|
let task;
|
@@ -30306,7 +30310,7 @@ class BoxFormControlComponent {
|
|
30306
30310
|
const comp = this._cf.component(selector);
|
30307
30311
|
const compRef = this._vc.createComponent(comp);
|
30308
30312
|
const instance = compRef.instance;
|
30309
|
-
instance.appearance = this._config.appearance || '
|
30313
|
+
instance.appearance = this._config.appearance || 'fill';
|
30310
30314
|
instance.mode = this.mode;
|
30311
30315
|
Object.assign(instance, this.metadata);
|
30312
30316
|
this.model && this.model[this.metadata.name] !== undefined &&
|
@@ -30362,14 +30366,14 @@ let BoxFormComponent = class BoxFormComponent {
|
|
30362
30366
|
group.addControl(field.name, instance.control);
|
30363
30367
|
}
|
30364
30368
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BoxFormComponent, deps: [{ token: i1$2.FormBuilder }, { token: FormRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
30365
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BoxFormComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: HelpTipComponent, selector: "bizdoc-help-tip", inputs: ["name"] }, { kind: "component", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: ["form", "mode", "model", "metadata"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }] }); }
|
30369
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: BoxFormComponent, isStandalone: false, selector: "ng-component", ngImport: i0, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"], dependencies: [{ kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: HelpTipComponent, selector: "bizdoc-help-tip", inputs: ["name"] }, { kind: "component", type: BoxFormControlComponent, selector: "bizdoc-box-control", inputs: ["form", "mode", "model", "metadata"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }] }); }
|
30366
30370
|
};
|
30367
30371
|
BoxFormComponent = __decorate([
|
30368
30372
|
BizDoc({ selector: 'bizdoc-box-form' })
|
30369
30373
|
], BoxFormComponent);
|
30370
30374
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: BoxFormComponent, decorators: [{
|
30371
30375
|
type: Component,
|
30372
|
-
args: [{ standalone: false, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"] }]
|
30376
|
+
args: [{ standalone: false, template: "@if (mode !== 'compose') {\r\n <form>\r\n @for (s of metadata.sections; track s) {\r\n <section>\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row\">\r\n @for (f of r.fields; track f) {\r\n }\r\n </div>\r\n }\r\n }\r\n @default {\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n} @else {\r\n @if (guide) {\r\n <bizdoc-help-tip [name]=\"guide\"></bizdoc-help-tip>\r\n }\r\n <form [formGroup]=\"form\" autocomplete=\"off\">\r\n @for (s of metadata.sections; track s) {\r\n <section [attr.data-section]=\"s.name\">\r\n <h2 class=\"mat-h2\">{{s.title|localizedString}}</h2>\r\n @if (s.note) {\r\n <p class=\"mat-body-1\">{{s.note|localizedString}}</p>\r\n }\r\n <hr />\r\n @switch (s.multiLine) {\r\n @case (true) {\r\n <ng-container [formArrayName]=\"s.name\">\r\n <table class=\"mat-mdc-table\">\r\n @for (r of s.rows; track r) {\r\n <thead class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <th class=\"mat-mdc-cell\">\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n }\r\n @for (r of s.rows; track r) {\r\n <tbody class=\"\">\r\n <tr class=\"mat-mdc-row\">\r\n @for (f of r.fields; track f) {\r\n <td class=\"mat-mdc-cell\">\r\n </td>\r\n }\r\n <td>\r\n <button mat-icon-button></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n }\r\n </table>\r\n </ng-container>\r\n }\r\n @default {\r\n <ng-container [formGroupName]=\"s.name\">\r\n @for (r of s.rows; track r) {\r\n <div class=\"row gap box-row\">\r\n @for (f of r.fields; track f) {\r\n <bizdoc-box-control [metadata]=\"f\"\r\n [mode]=\"mode\"\r\n [model]=\"data.model[s.name]\"\r\n [attr.data-field]=\"f.name\"\r\n [form]=\"form.get(s.name)\"></bizdoc-box-control>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n }\r\n }\r\n </section>\r\n }\r\n </form>\r\n}\r\n", styles: ["form{padding:8px}section{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}section .box-row{padding:4px}::ng-deep field{display:flex}\n"] }]
|
30373
30377
|
}], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: FormRef }] });
|
30374
30378
|
|
30375
30379
|
let PerformanceWindComponent = class PerformanceWindComponent {
|
@@ -30738,9 +30742,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
30738
30742
|
|
30739
30743
|
let TimeField = class TimeField {
|
30740
30744
|
constructor() {
|
30745
|
+
this.subscriptSizing = 'fixed';
|
30741
30746
|
this.isMobile = isMobile();
|
30742
30747
|
this.control = new FormControl();
|
30743
30748
|
}
|
30749
|
+
set dense(val) {
|
30750
|
+
if (val)
|
30751
|
+
this.subscriptSizing = 'dynamic';
|
30752
|
+
}
|
30744
30753
|
focus() { this.input.focus(); }
|
30745
30754
|
ngOnInit() {
|
30746
30755
|
this.required && this.control.addValidators(Validators.required);
|
@@ -30748,14 +30757,14 @@ let TimeField = class TimeField {
|
|
30748
30757
|
this.max && this.control.addValidators(Validators.max(this.max));
|
30749
30758
|
}
|
30750
30759
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
30751
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TimeField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-time-picker [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\">\r\n </mat-time-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: TimePicker, selector: "mat-time-picker", inputs: ["dateControlName", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
30760
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TimeField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-time-picker [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\">\r\n </mat-time-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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: "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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: TimePicker, selector: "mat-time-picker", inputs: ["dateControlName", "placeholder", "required", "disabled", "value"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
30752
30761
|
};
|
30753
30762
|
TimeField = __decorate([
|
30754
30763
|
BizDoc({ selector: 'time-control' })
|
30755
30764
|
], TimeField);
|
30756
30765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TimeField, decorators: [{
|
30757
30766
|
type: Component,
|
30758
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-time-picker [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\">\r\n </mat-time-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n" }]
|
30767
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-time-picker [placeholder]=\"placeholder|localizedString\" [formControl]=control\r\n [required]=\"required\">\r\n </mat-time-picker>\r\n @if (hint) {\r\n <mat-hint> {{ hint|localizedString }}</mat-hint>\r\n }\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n} @else {\r\n @if (control.value) {\r\n <span>{{control.value | amDateFormat: 'll'}}</span>\r\n }\r\n}\r\n" }]
|
30759
30768
|
}], propDecorators: { input: [{
|
30760
30769
|
type: ViewChild,
|
30761
30770
|
args: [MatInput]
|
@@ -30764,8 +30773,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
30764
30773
|
let ChipsField = class ChipsField {
|
30765
30774
|
constructor() {
|
30766
30775
|
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
30776
|
+
this.subscriptSizing = 'fixed';
|
30767
30777
|
this.control = new FormControl();
|
30768
30778
|
}
|
30779
|
+
set dense(val) {
|
30780
|
+
if (val)
|
30781
|
+
this.subscriptSizing = 'dynamic';
|
30782
|
+
}
|
30769
30783
|
ngOnInit() {
|
30770
30784
|
this.required && this.control.addValidators(Validators.required);
|
30771
30785
|
}
|
@@ -30785,14 +30799,14 @@ let ChipsField = class ChipsField {
|
|
30785
30799
|
this.control.setValue(this.tags.length ? this.tags : null);
|
30786
30800
|
}
|
30787
30801
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ChipsField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
30788
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ChipsField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance
|
30802
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ChipsField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-chip-grid #chips\r\n [formControl]=\"control\"\r\n [attr.aria-label]=\"label\">\r\n @for (t of (control.value || []); track t) {\r\n <mat-chip-row\r\n removable (removed)=\"removeTag(t)\">\r\n {{t}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-chip-grid>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n </mat-form-field>\r\n } @else {\r\n @if (control.value) {\r\n <mat-chip-set>\r\n @for (t of control.value; track t) {\r\n <mat-chip>{{t}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n }\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { 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: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { 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.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
30789
30803
|
};
|
30790
30804
|
ChipsField = __decorate([
|
30791
30805
|
BizDoc({ selector: 'tags-control' })
|
30792
30806
|
], ChipsField);
|
30793
30807
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ChipsField, decorators: [{
|
30794
30808
|
type: Component,
|
30795
|
-
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance
|
30809
|
+
args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n <mat-form-field [appearance]=appearance [subscriptSizing]=\"subscriptSizing\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-chip-grid #chips\r\n [formControl]=\"control\"\r\n [attr.aria-label]=\"label\">\r\n @for (t of (control.value || []); track t) {\r\n <mat-chip-row\r\n removable (removed)=\"removeTag(t)\">\r\n {{t}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-chip-grid>\r\n @if (control.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n </mat-form-field>\r\n } @else {\r\n @if (control.value) {\r\n <mat-chip-set>\r\n @for (t of control.value; track t) {\r\n <mat-chip>{{t}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n }\r\n" }]
|
30796
30810
|
}], propDecorators: { input: [{
|
30797
30811
|
type: ViewChild,
|
30798
30812
|
args: [MatInput]
|
@@ -33950,11 +33964,11 @@ class ProfileSettingsDialog {
|
|
33950
33964
|
this.form.patchValue({});
|
33951
33965
|
}
|
33952
33966
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ProfileSettingsDialog, deps: [{ token: AccountService }, { token: i2$2.MatDialogRef }, { token: i1$2.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
33953
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ProfileSettingsDialog, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }], ngImport: i0, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\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]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n @for (u of ousers$ | async; track u) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [formGroup]=\"form\" [rangePicker]=\"dates\" required>\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]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h4 class=\"\">{{'GrantAccess'|translate}}</h4>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n @for (u of grantAccess.value.users || []; track u) {\r\n <mat-chip-row\r\n [removable]=\"grantAccess.value.active\"\r\n (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]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\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) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span> - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n", dependencies: [{ 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: i2$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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.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: "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: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
33967
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: ProfileSettingsDialog, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }], ngImport: i0, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\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]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n @for (u of ousers$ | async; track u) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\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]=\"dates\" required>\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]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h4 class=\"\">{{'GrantAccess'|translate}}</h4>\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]=\"!grantAccess.value.active\">\r\n @for (u of grantAccess.value.users || []; track u) {\r\n <mat-chip-row [removable]=\"grantAccess.value.active\"\r\n (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]=\"grants\" [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\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) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n", dependencies: [{ 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: i2$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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.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: "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: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: UserNamePipe, name: "userName" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
33954
33968
|
}
|
33955
33969
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ProfileSettingsDialog, decorators: [{
|
33956
33970
|
type: Component,
|
33957
|
-
args: [{ standalone: false, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\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]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n
|
33971
|
+
args: [{ standalone: false, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column gap\" formGroupName=\"outOfOffice\">\r\n <h4 class=\"\">{{'OutOfOffice'|translate}}</h4>\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]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n @for (u of ousers$ | async; track u) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\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]=\"dates\" required>\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]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h4 class=\"\">{{'GrantAccess'|translate}}</h4>\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]=\"!grantAccess.value.active\">\r\n @for (u of grantAccess.value.users || []; track u) {\r\n <mat-chip-row [removable]=\"grantAccess.value.active\"\r\n (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]=\"grants\" [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\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) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n" }]
|
33958
33972
|
}], ctorParameters: () => [{ type: AccountService }, { type: i2$2.MatDialogRef }, { type: i1$2.FormBuilder }, { type: undefined, decorators: [{
|
33959
33973
|
type: Inject,
|
33960
33974
|
args: [MAT_DIALOG_DATA]
|