@bizdoc/core 1.14.0 → 1.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +6 -4
- package/esm2020/lib/admin/profiler/outofoffice.component.mjs +155 -0
- package/esm2020/lib/admin/profiler/profiler.component.mjs +75 -46
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +3 -3
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/slots/pane-ref.mjs +39 -25
- package/esm2020/lib/core/slots/slots.component.mjs +27 -24
- package/esm2020/lib/core/translations.mjs +4 -2
- package/esm2020/lib/cube/cube-info.service.mjs +2 -2
- package/esm2020/lib/cube/cube.service.mjs +2 -2
- package/esm2020/lib/cube/explore/explore-items.component.mjs +2 -2
- package/esm2020/lib/options/options.component.mjs +37 -16
- package/esm2020/lib/reports/report-viewer.component.mjs +2 -2
- package/esm2020/lib/shared.module.mjs +5 -4
- package/esm2020/lib/system.module.mjs +8 -6
- package/fesm2015/bizdoc-core.mjs +337 -133
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +327 -129
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/profiler/outofoffice.component.d.ts +48 -0
- package/lib/admin/profiler/profiler.component.d.ts +20 -11
- package/lib/core/models.d.ts +2 -2
- package/lib/core/slots/pane-ref.d.ts +25 -8
- package/lib/core/slots/slots.component.d.ts +1 -1
- package/lib/core/translations.d.ts +2 -0
- package/lib/options/options.component.d.ts +4 -3
- package/lib/system.module.d.ts +24 -23
- package/package.json +16 -16
package/fesm2020/bizdoc-core.mjs
CHANGED
@@ -65,7 +65,7 @@ import { BrowserModule } from '@angular/platform-browser';
|
|
65
65
|
import * as i8$1 from '@angular/material/progress-spinner';
|
66
66
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
67
67
|
import * as i23 from '@angular/flex-layout/flex';
|
68
|
-
import { ESCAPE, ENTER, COMMA, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
|
68
|
+
import { ESCAPE, ENTER, COMMA, RIGHT_ARROW, LEFT_ARROW, UP_ARROW, DOWN_ARROW, SEMICOLON } from '@angular/cdk/keycodes';
|
69
69
|
import * as i8$2 from '@angular/material/snack-bar';
|
70
70
|
import { MatSnackBarModule, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
|
71
71
|
import * as i9$1 from '@angular/material/menu';
|
@@ -75,7 +75,7 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
75
75
|
import * as i1$6 from '@angular/router';
|
76
76
|
import { NavigationStart as NavigationStart$1, ActivationEnd, RouterModule } from '@angular/router';
|
77
77
|
import * as i3$2 from '@angular/material/chips';
|
78
|
-
import { MatChipsModule, MatChipList } from '@angular/material/chips';
|
78
|
+
import { MatChipsModule, MatChipList, MatChipInput } from '@angular/material/chips';
|
79
79
|
import * as i22 from '@angular/cdk/drag-drop';
|
80
80
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
81
81
|
import { LayoutModule } from '@angular/cdk/layout';
|
@@ -93,7 +93,7 @@ import * as i2$5 from '@angular/material/bottom-sheet';
|
|
93
93
|
import { MatBottomSheetModule } from '@angular/material/bottom-sheet';
|
94
94
|
import * as i9$4 from '@angular/material/sidenav';
|
95
95
|
import { MatSidenavModule, MatSidenav } from '@angular/material/sidenav';
|
96
|
-
import * as
|
96
|
+
import * as i19 from '@angular/material/card';
|
97
97
|
import { MatCardModule } from '@angular/material/card';
|
98
98
|
import * as i6$2 from '@angular/material/grid-list';
|
99
99
|
import { MatGridListModule } from '@angular/material/grid-list';
|
@@ -139,7 +139,7 @@ import * as i10$1 from '@syncfusion/ej2-angular-kanban';
|
|
139
139
|
import { KanbanComponent, KanbanModule } from '@syncfusion/ej2-angular-kanban';
|
140
140
|
import { CircularGaugeModule, AnnotationsService, GaugeTooltipService, LegendService as LegendService$1, CircularGauge, Annotations, GaugeTooltip, CircularGaugeComponent, Legend as Legend$1 } from '@syncfusion/ej2-angular-circulargauge';
|
141
141
|
import { PivotViewModule, ExcelExportService as ExcelExportService$1, GroupingBarService, NumberFormattingService, GroupingService, PivotChartService, ConditionalFormattingService, PivotView as PivotView$1, GroupingBar, ExcelExport as ExcelExport$1, PivotChart, PivotViewComponent } from '@syncfusion/ej2-angular-pivotview';
|
142
|
-
import * as i7$
|
142
|
+
import * as i7$4 from '@syncfusion/ej2-angular-gantt';
|
143
143
|
import { GanttModule, ExcelExportService as ExcelExportService$3, DayMarkersService, SelectionService as SelectionService$3, Gantt } from '@syncfusion/ej2-angular-gantt';
|
144
144
|
import relativeTime from 'dayjs/plugin/relativeTime';
|
145
145
|
import duration from 'dayjs/plugin/duration';
|
@@ -1969,6 +1969,7 @@ const STRINGS = {
|
|
1969
1969
|
'ar': {},
|
1970
1970
|
'ru': {},
|
1971
1971
|
'en': {
|
1972
|
+
OutOfOfficeHelp: 'Set out-of-office',
|
1972
1973
|
LastDay: '[Last] {0}',
|
1973
1974
|
TodayAt: '[Today at] {0}',
|
1974
1975
|
Tomorrow: 'Tomorrow',
|
@@ -2172,7 +2173,7 @@ const STRINGS = {
|
|
2172
2173
|
DeleteFileAsk: 'Are you sure you want to delete this attachment?',
|
2173
2174
|
DeleteCommentAsk: 'Are you sure you want to delete this comment?',
|
2174
2175
|
GrantAccess: 'Grant Access',
|
2175
|
-
GrantTip: 'May
|
2176
|
+
GrantTip: 'May view and take action on your behalf',
|
2176
2177
|
OutOfOfficeTip: 'Assign user on your absence',
|
2177
2178
|
Timeline: 'Timeline',
|
2178
2179
|
Back: 'Back',
|
@@ -2437,6 +2438,7 @@ const STRINGS = {
|
|
2437
2438
|
Working: 'Working on it...'
|
2438
2439
|
},
|
2439
2440
|
'he': {
|
2441
|
+
OutOfOfficeHelp: 'הגדרת מחוץ למשרד',
|
2440
2442
|
LastDay: '{0} [שעבר]',
|
2441
2443
|
TodayAt: '[היום ב-]{0}',
|
2442
2444
|
Tomorrow: 'מחר',
|
@@ -6188,6 +6190,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
6188
6190
|
const QUERY_CHAR = ':', PATH_CHAR = ';', ARG_CHAR = '&', PANE_CHAR = '~';
|
6189
6191
|
const PANES_DATA = new InjectionToken('panes');
|
6190
6192
|
class NavigationBase {
|
6193
|
+
preventDefault() {
|
6194
|
+
this._preventDefault = true;
|
6195
|
+
}
|
6191
6196
|
}
|
6192
6197
|
class CollapseNavigation extends NavigationBase {
|
6193
6198
|
}
|
@@ -6208,15 +6213,29 @@ class NavigationSelected extends NavigationPaneBase {
|
|
6208
6213
|
}
|
6209
6214
|
class NavigationEnd extends NavigationPaneBase {
|
6210
6215
|
}
|
6216
|
+
class NavigationMode extends NavigationPaneBase {
|
6217
|
+
constructor(mode, pane) {
|
6218
|
+
super(pane);
|
6219
|
+
this.mode = mode;
|
6220
|
+
}
|
6221
|
+
}
|
6222
|
+
class NavigationFullscreen extends NavigationPaneBase {
|
6223
|
+
constructor(fullscreen, pane) {
|
6224
|
+
super(pane);
|
6225
|
+
this.fullscreen = fullscreen;
|
6226
|
+
}
|
6227
|
+
}
|
6228
|
+
class NavigationClose extends NavigationPaneBase {
|
6229
|
+
}
|
6211
6230
|
class ParamNavigation extends NavigationPaneBase {
|
6212
|
-
constructor(params,
|
6213
|
-
super(
|
6231
|
+
constructor(params, pane) {
|
6232
|
+
super(pane);
|
6214
6233
|
this.params = params;
|
6215
6234
|
}
|
6216
6235
|
}
|
6217
6236
|
class QueryParamNavigation extends NavigationPaneBase {
|
6218
|
-
constructor(queryParams,
|
6219
|
-
super(
|
6237
|
+
constructor(queryParams, pane) {
|
6238
|
+
super(pane);
|
6220
6239
|
this.queryParams = queryParams;
|
6221
6240
|
}
|
6222
6241
|
}
|
@@ -6230,11 +6249,13 @@ class PaneRef {
|
|
6230
6249
|
this._params$ = new BehaviorSubject({});
|
6231
6250
|
this._queryParams$ = new BehaviorSubject({});
|
6232
6251
|
this._resize$ = new BehaviorSubject({});
|
6252
|
+
this._events$ = new Subject();
|
6233
6253
|
this.expandable = true;
|
6234
|
-
const { data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, fullscreen, expandable } = _options;
|
6235
|
-
this._mode$ = new BehaviorSubject(mode);
|
6236
|
-
this._fullscreen$ = new BehaviorSubject(fullscreen);
|
6254
|
+
const { stretch, data, params, queryParams, path, queryString, title, group, icon, help, guide, animation, fullscreen, expandable } = _options;
|
6237
6255
|
this._path = path || '';
|
6256
|
+
this._mode = mode;
|
6257
|
+
this._stretch = stretch;
|
6258
|
+
this._fullscreen = fullscreen;
|
6238
6259
|
this.title = title;
|
6239
6260
|
this.group = group;
|
6240
6261
|
this.guide = guide;
|
@@ -6248,15 +6269,8 @@ class PaneRef {
|
|
6248
6269
|
params && this._params$.next(params);
|
6249
6270
|
queryParams && this._queryParams$.next(queryParams);
|
6250
6271
|
}
|
6251
|
-
get injector() {
|
6252
|
-
|
6253
|
-
}
|
6254
|
-
get fullscreen() {
|
6255
|
-
return this._fullscreen$.value;
|
6256
|
-
}
|
6257
|
-
get fullscreenChange() {
|
6258
|
-
return this._fullscreen$.asObservable();
|
6259
|
-
}
|
6272
|
+
get injector() { return this._injector; }
|
6273
|
+
get fullscreen() { return this._fullscreen; }
|
6260
6274
|
get fullPath() { return this._path + (this._queryString ? (QUERY_CHAR + this._queryString) : ''); }
|
6261
6275
|
get instance() { return this._instance; }
|
6262
6276
|
get data() { return this._data$.value; }
|
@@ -6267,17 +6281,20 @@ class PaneRef {
|
|
6267
6281
|
get queryString() { return this._queryString; }
|
6268
6282
|
get queryParams() { return this._queryParams$.value; }
|
6269
6283
|
get queryParamsChange() { return this._queryParams$.asObservable(); }
|
6270
|
-
get
|
6284
|
+
get events() { return this._events$.asObservable(); }
|
6285
|
+
get closing() { return this.events.pipe(filter$1(e => e instanceof NavigationClose)); }
|
6286
|
+
get modeChange() { return this.events.pipe(filter$1(e => e instanceof NavigationMode)); }
|
6271
6287
|
;
|
6272
|
-
get
|
6288
|
+
get fullscreenChange() { return this.events.pipe(filter$1(e => e instanceof NavigationFullscreen)); }
|
6289
|
+
get path() { return this._path; }
|
6273
6290
|
;
|
6274
|
-
get mode() { return this._mode
|
6291
|
+
get mode() { return this._mode; }
|
6275
6292
|
;
|
6276
6293
|
get parent() { return this._options.parent; }
|
6277
6294
|
;
|
6278
|
-
get stretch() { return this.
|
6295
|
+
get stretch() { return this._stretch; }
|
6279
6296
|
;
|
6280
|
-
set stretch(val) { this.
|
6297
|
+
set stretch(val) { this._stretch = val; }
|
6281
6298
|
get dialog() { return this._options.dialog; }
|
6282
6299
|
;
|
6283
6300
|
get dismissable() { return this._options.dismissable; }
|
@@ -6305,9 +6322,8 @@ class PaneRef {
|
|
6305
6322
|
this._data$.complete();
|
6306
6323
|
this._params$.complete();
|
6307
6324
|
this._resize$.complete();
|
6325
|
+
this._events$.complete();
|
6308
6326
|
this._queryParams$.complete();
|
6309
|
-
this._fullscreen$.complete();
|
6310
|
-
this._mode$.complete();
|
6311
6327
|
}
|
6312
6328
|
}
|
6313
6329
|
|
@@ -6343,7 +6359,7 @@ class CubeService {
|
|
6343
6359
|
getLocaleNumberFormat(this._session.language, NumberFormatStyle.Decimal);
|
6344
6360
|
}
|
6345
6361
|
get currencyCode() {
|
6346
|
-
const { currencyCode } = this._config
|
6362
|
+
const { currencyCode } = this._config;
|
6347
6363
|
return currencyCode || DEFAULT_CURRENCY;
|
6348
6364
|
}
|
6349
6365
|
get digitsInfo() {
|
@@ -12668,7 +12684,7 @@ class ExploreItemsComponent {
|
|
12668
12684
|
const numberFormat = this._service.numberFormat, columns = this.columns.filter(c => !c.hidden), rows = [{
|
12669
12685
|
index: 1,
|
12670
12686
|
cells: columns.map((c, i) => ({
|
12671
|
-
index: i + 1, value: c.label,
|
12687
|
+
index: i + 1, value: c.label || c.name,
|
12672
12688
|
style: {
|
12673
12689
|
bold: true
|
12674
12690
|
}
|
@@ -12951,7 +12967,7 @@ class ReportViewerComponent {
|
|
12951
12967
|
const rows = [{
|
12952
12968
|
index: 1,
|
12953
12969
|
cells: this.report.columns.map((c, j) => ({
|
12954
|
-
index: j + 1, value: c.label,
|
12970
|
+
index: j + 1, value: c.label || c.name,
|
12955
12971
|
style: {
|
12956
12972
|
bold: true,
|
12957
12973
|
hAlign: c.type === 'Number' || c.type === 'Currency' ? 'right' : 'general'
|
@@ -17294,7 +17310,7 @@ class DashboardComponent {
|
|
17294
17310
|
}
|
17295
17311
|
}
|
17296
17312
|
DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DashboardComponent, deps: [{ token: GuideService }, { token: i2$4.MediaObserver }, { token: SessionService }, { token: WindowTitleService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
17297
|
-
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: DashboardComponent, selector: "bizdoc-dashboard", ngImport: i0, template: "<mat-grid-list [cols]=\"cols\" @deshboard>\r\n <mat-grid-tile *ngFor=\"let w of widgets\" [colspan]=\"w.cols && w.cols <= cols ? w.cols : 1\" [rowspan]=\"w.rows || 1\">\r\n <mat-card @card>\r\n <mat-card-header>\r\n <mat-card-title [attr.data-guide]=\"'widget-'+w.name\">\r\n <span>{{w.title}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"widget.refresh()\" [bizdocTooltip]=\"'Refresh'|translate\" [attr.aria-label]=\"'Refresh'|translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button (click)=\"widget.filter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter'|translate\" *ngIf=\"w.arguments.length||w.argumentsTemplate\"><mat-icon>filter_list</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide(w.guide)\" [bizdocTooltip]=\"'Help' | translate\" [attr.aria-label]=\"'Help'|translate\" *ngIf=\"w.guide\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <bizdoc-widget [model]=\"w\" #widget></bizdoc-widget>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n", styles: [":host{width:100%;height:100%;overflow-y:auto}@media only screen and (min-width: 600px){:host{min-width:600px}}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card ::ng-deep .mat-card-header-text{width:100%}.mat-card .mat-card-title{display:flex;flex-direction:row}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"], components: [{ type: i6$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i6$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type:
|
17313
|
+
DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: DashboardComponent, selector: "bizdoc-dashboard", ngImport: i0, template: "<mat-grid-list [cols]=\"cols\" @deshboard>\r\n <mat-grid-tile *ngFor=\"let w of widgets\" [colspan]=\"w.cols && w.cols <= cols ? w.cols : 1\" [rowspan]=\"w.rows || 1\">\r\n <mat-card @card>\r\n <mat-card-header>\r\n <mat-card-title [attr.data-guide]=\"'widget-'+w.name\">\r\n <span>{{w.title}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"widget.refresh()\" [bizdocTooltip]=\"'Refresh'|translate\" [attr.aria-label]=\"'Refresh'|translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button (click)=\"widget.filter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter'|translate\" *ngIf=\"w.arguments.length||w.argumentsTemplate\"><mat-icon>filter_list</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide(w.guide)\" [bizdocTooltip]=\"'Help' | translate\" [attr.aria-label]=\"'Help'|translate\" *ngIf=\"w.guide\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <bizdoc-widget [model]=\"w\" #widget></bizdoc-widget>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n", styles: [":host{width:100%;height:100%;overflow-y:auto}@media only screen and (min-width: 600px){:host{min-width:600px}}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card ::ng-deep .mat-card-header-text{width:100%}.mat-card .mat-card-title{display:flex;flex-direction:row}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"], components: [{ type: i6$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i6$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i19.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i19.MatCardHeader, selector: "mat-card-header" }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: WidgetItemComponent, selector: "bizdoc-widget", inputs: ["model"] }], directives: [{ type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i19.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i19.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }], pipes: { "translate": TranslatePipe }, animations: [deshboardAnimation, cardsAnimation] });
|
17298
17314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: DashboardComponent, decorators: [{
|
17299
17315
|
type: Component,
|
17300
17316
|
args: [{ selector: 'bizdoc-dashboard', animations: [deshboardAnimation, cardsAnimation], template: "<mat-grid-list [cols]=\"cols\" @deshboard>\r\n <mat-grid-tile *ngFor=\"let w of widgets\" [colspan]=\"w.cols && w.cols <= cols ? w.cols : 1\" [rowspan]=\"w.rows || 1\">\r\n <mat-card @card>\r\n <mat-card-header>\r\n <mat-card-title [attr.data-guide]=\"'widget-'+w.name\">\r\n <span>{{w.title}}</span>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"widget.refresh()\" [bizdocTooltip]=\"'Refresh'|translate\" [attr.aria-label]=\"'Refresh'|translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button (click)=\"widget.filter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [attr.aria-label]=\"'Filter'|translate\" *ngIf=\"w.arguments.length||w.argumentsTemplate\"><mat-icon>filter_list</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide(w.guide)\" [bizdocTooltip]=\"'Help' | translate\" [attr.aria-label]=\"'Help'|translate\" *ngIf=\"w.guide\"><mat-icon>help_outline</mat-icon></button>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <bizdoc-widget [model]=\"w\" #widget></bizdoc-widget>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n", styles: [":host{width:100%;height:100%;overflow-y:auto}@media only screen and (min-width: 600px){:host{min-width:600px}}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card ::ng-deep .mat-card-header-text{width:100%}.mat-card .mat-card-title{display:flex;flex-direction:row}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}\n"] }]
|
@@ -17640,6 +17656,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
17640
17656
|
args: [{ selector: 'bizdoc-about', template: "<h2 mat-dialog-title>BizDoc v{{version}}</h2>\r\n<mat-dialog-content>\r\n <div *ngIf=\"license; else none\">\r\n <div [ngSwitch]=\"license.mode\">\r\n <div *ngSwitchCase=\"'Grace'\"> {{\"GraceLicense\" | translate : dayjs(license.expiration).toNow() }}</div>\r\n <div *ngSwitchCase=\"'Limited'\">{{'LimitLicense'|translate}}</div>\r\n <div *ngSwitchCase=\"'Expired'\">{{\"ExpiredLicense\" | translate : (license.expiration | amTimeAgo)}}</div>\r\n </div>\r\n <div *ngIf=\"license.companyName\" [innerHtml]='\"LicencedTo\" | translate : license.companyName'></div>\r\n </div>\r\n <br />\r\n <span>© Moding Ltd.</span>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button mat-dialog-close>{{'OK'|translate}}</button>\r\n</mat-dialog-actions>\r\n<ng-template #none>\r\n <div>{{'EvaluationLicense' | translate}}</div>\r\n</ng-template>\r\n" }]
|
17641
17657
|
}], ctorParameters: function () { return [{ type: SessionService }]; } });
|
17642
17658
|
|
17659
|
+
class UserNamePipe {
|
17660
|
+
constructor(_accounts) {
|
17661
|
+
this._accounts = _accounts;
|
17662
|
+
}
|
17663
|
+
transform(value) {
|
17664
|
+
const subject = new BehaviorSubject(null);
|
17665
|
+
this._accounts.get(value).subscribe(u => subject.next(u.name));
|
17666
|
+
return subject;
|
17667
|
+
}
|
17668
|
+
}
|
17669
|
+
UserNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, deps: [{ token: AccountService }], target: i0.ɵɵFactoryTarget.Pipe });
|
17670
|
+
UserNamePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, name: "userName" });
|
17671
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, decorators: [{
|
17672
|
+
type: Pipe,
|
17673
|
+
args: [{ name: 'userName' }]
|
17674
|
+
}], ctorParameters: function () { return [{ type: AccountService }]; } });
|
17675
|
+
|
17643
17676
|
const OPTION_PANEL = new InjectionToken('options');
|
17644
17677
|
/** options component*/
|
17645
17678
|
class OptionsComponent {
|
@@ -17661,7 +17694,7 @@ class OptionsComponent {
|
|
17661
17694
|
this.language = this._fb.control(this._session.language);
|
17662
17695
|
this.aRIA = this._fb.control(this._session.aria);
|
17663
17696
|
this.languages = this._session.languages;
|
17664
|
-
this.gusers = this._fb.control(
|
17697
|
+
this.gusers = this._fb.control([]);
|
17665
17698
|
this.substitueId = this._fb.control(null);
|
17666
17699
|
this.form = this._fb.group({
|
17667
17700
|
notifications: this._fb.group({
|
@@ -17695,8 +17728,7 @@ class OptionsComponent {
|
|
17695
17728
|
users: this._fb.control(null, this._requiredValidator)
|
17696
17729
|
})
|
17697
17730
|
});
|
17698
|
-
this.separatorKeysCodes = [ENTER, COMMA];
|
17699
|
-
this._me = this._session.userId;
|
17731
|
+
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
17700
17732
|
this.display = (item) => {
|
17701
17733
|
return item ? item.name : null;
|
17702
17734
|
};
|
@@ -17732,17 +17764,33 @@ class OptionsComponent {
|
|
17732
17764
|
emails.controls['active'].valueChanges.pipe(takeUntil(this._destroy)).
|
17733
17765
|
subscribe(active => this._toggle(emails, active, 'mail', 'chat', 'notifications', 'events'));
|
17734
17766
|
grantAccess.controls['active'].valueChanges.pipe(takeUntil(this._destroy)).
|
17735
|
-
subscribe(active =>
|
17767
|
+
subscribe(active => {
|
17768
|
+
if (active) {
|
17769
|
+
this.gusers.enable();
|
17770
|
+
this.grantInput.focus();
|
17771
|
+
}
|
17772
|
+
else
|
17773
|
+
this.gusers.enable();
|
17774
|
+
});
|
17736
17775
|
outOfOffice.controls['active'].valueChanges.pipe(takeUntil(this._destroy)).
|
17737
17776
|
subscribe(active => {
|
17738
|
-
|
17777
|
+
if (active) {
|
17778
|
+
this.substitueId.enable();
|
17779
|
+
this.substitueInput.focus();
|
17780
|
+
}
|
17781
|
+
else
|
17782
|
+
this.substitueId.disable();
|
17739
17783
|
this._toggle(outOfOffice, active, 'from');
|
17740
17784
|
this._toggle(outOfOffice, active && outOfOffice.controls['from'].value, 'to');
|
17741
17785
|
});
|
17742
17786
|
outOfOffice.controls['from'].valueChanges.pipe(takeUntil(this._destroy)).
|
17743
17787
|
subscribe(from => this._toggle(outOfOffice, from !== null, 'to'));
|
17744
|
-
this.gusers$ = this.gusers.valueChanges.pipe(takeUntil(this._destroy),
|
17745
|
-
|
17788
|
+
this.gusers$ = this.gusers.valueChanges.pipe(takeUntil(this._destroy), filter(v => isString(v)), debounceTime(100), switchMap(v => this._accounts.findAll(v)), map(r => {
|
17789
|
+
const exclude = grantAccess.value.users?.slice() || [];
|
17790
|
+
exclude.push(this._session.profile.userId);
|
17791
|
+
return r.filter(u => exclude.indexOf(u.id) < 0);
|
17792
|
+
}));
|
17793
|
+
this.susers$ = this.substitueId.valueChanges.pipe(takeUntil(this._destroy), tap(v => !v && outOfOffice.controls['substitueId'].setValue(null)), filter(v => isString(v)), switchMap(v => this._accounts.findAll(v)), map(r => r.filter(u => u.id !== this._session.profile.userId)));
|
17746
17794
|
if (options.outOfOffice.substitueId)
|
17747
17795
|
this._accounts.get(options.outOfOffice.substitueId).subscribe(u => this.substitueId.setValue(u, { emitEvent: false }));
|
17748
17796
|
if (this._option)
|
@@ -17767,9 +17815,6 @@ class OptionsComponent {
|
|
17767
17815
|
toggleSound() {
|
17768
17816
|
this.form.controls['notifications'].controls['sound'].setValue(!this.options.notifications.sound);
|
17769
17817
|
}
|
17770
|
-
nameOf(id) {
|
17771
|
-
return this._accounts.get(id).pipe(map(u => u.name));
|
17772
|
-
}
|
17773
17818
|
addTag(event) {
|
17774
17819
|
const input = event.input;
|
17775
17820
|
const value = event.value;
|
@@ -17822,17 +17867,23 @@ class OptionsComponent {
|
|
17822
17867
|
}
|
17823
17868
|
}
|
17824
17869
|
OptionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: OptionsComponent, deps: [{ token: OPTION_PANEL }, { token: i1$4.OverlayRef }, { token: i1$2.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
|
17825
|
-
OptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" fxLayout=\"column\">\r\n <div fxLayout=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\"\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\">\r\n <mat-chip *ngFor=\"let u of (form.value.grantAccess.users || [])\"\r\n [removable]=\"form.value.grantAccess.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{nameOf(u) | async}}\r\n <mat-icon matChipRemove *ngIf=\"form.value.grantAccess.active\">cancel</mat-icon>\r\n </mat-chip>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-chip-list #chips [selectable]=\"false\" multiple>\r\n <mat-chip *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-chip-list>\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], components: [{ type: i6$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i6$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3$2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }], directives: [{ type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6$3.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i6$3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i6$3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i23.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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]" }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }, { type: i3$2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.MatChipRemove, selector: "[matChipRemove]" }, { type: i3$2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe } });
|
17870
|
+
OptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" fxLayout=\"column\">\r\n <div fxLayout=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\r\n <input matInput [formControl]=\"substitueId\" 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)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-chip-list #chips [selectable]=\"false\" multiple>\r\n <mat-chip *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-chip-list>\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], components: [{ type: i6$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i6$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3$2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }], directives: [{ type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i6$3.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i6$3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i6$3.MatExpansionPanelDescription, selector: "mat-panel-description" }, { type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i23.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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]" }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }, { type: i3$2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3$2.MatChipRemove, selector: "[matChipRemove]" }, { type: i3$2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe, "userName": UserNamePipe } });
|
17826
17871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: OptionsComponent, decorators: [{
|
17827
17872
|
type: Component,
|
17828
|
-
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" fxLayout=\"column\">\r\n <div fxLayout=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\"\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\">\r\n <mat-chip *ngFor=\"let u of
|
17873
|
+
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" fxLayout=\"column\">\r\n <div fxLayout=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" fxLayout=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\r\n <input matInput [formControl]=\"substitueId\" 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)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n </mat-chip-list>\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-chip-list #chips [selectable]=\"false\" multiple>\r\n <mat-chip *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-chip-list>\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"] }]
|
17829
17874
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
17830
17875
|
type: Inject,
|
17831
17876
|
args: [OPTION_PANEL]
|
17832
17877
|
}] }, { type: i1$4.OverlayRef }, { type: i1$2.FormBuilder }, { type: AccountService }, { type: PromptService }, { type: SessionService }, { type: undefined, decorators: [{
|
17833
17878
|
type: Inject,
|
17834
17879
|
args: [BIZDOC_CONFIG]
|
17835
|
-
}] }]; }, propDecorators: {
|
17880
|
+
}] }]; }, propDecorators: { substitueInput: [{
|
17881
|
+
type: ViewChild,
|
17882
|
+
args: ['substitueInput', { read: MatInput }]
|
17883
|
+
}], grantInput: [{
|
17884
|
+
type: ViewChild,
|
17885
|
+
args: ['grantInput', { read: MatChipInput }]
|
17886
|
+
}], outOfOffice: [{
|
17836
17887
|
type: ViewChild,
|
17837
17888
|
args: ['outOfOffice', { read: MatExpansionPanel, static: true }]
|
17838
17889
|
}], notifications: [{
|
@@ -18738,7 +18789,7 @@ class SlotsComponent {
|
|
18738
18789
|
queryParams,
|
18739
18790
|
policy
|
18740
18791
|
});
|
18741
|
-
pane.
|
18792
|
+
pane._events$.next(new NavigationFullscreen(pane._fullscreen = this.panes.length === 1, pane));
|
18742
18793
|
}
|
18743
18794
|
route &&
|
18744
18795
|
this._sync();
|
@@ -18777,7 +18828,7 @@ class SlotsComponent {
|
|
18777
18828
|
params,
|
18778
18829
|
policy, queryParams
|
18779
18830
|
});
|
18780
|
-
pane.
|
18831
|
+
pane._events$.next(new NavigationFullscreen(pane._fullscreen = this.panes.length === 1, pane));
|
18781
18832
|
}
|
18782
18833
|
}
|
18783
18834
|
});
|
@@ -18859,7 +18910,7 @@ class SlotsComponent {
|
|
18859
18910
|
for (let i = 0; i < n; i++) {
|
18860
18911
|
let pane = this.panes[i];
|
18861
18912
|
pane.fullscreen !== (n === 1) &&
|
18862
|
-
pane.
|
18913
|
+
pane._events$.next(new NavigationFullscreen(pane._fullscreen = n === 1, pane));
|
18863
18914
|
}
|
18864
18915
|
}
|
18865
18916
|
/**
|
@@ -19008,21 +19059,22 @@ class SlotsComponent {
|
|
19008
19059
|
}
|
19009
19060
|
/** */
|
19010
19061
|
_sync() {
|
19062
|
+
let path = this.panes.filter(p => p.route).map(s => s.fullPath).join(PATH_CHAR);
|
19063
|
+
if (this.tabs.length) {
|
19064
|
+
const tabs = this.tabs.filter(p => p.route);
|
19065
|
+
if (tabs.length)
|
19066
|
+
path += PANE_CHAR + tabs.map(s => s.fullPath).join(PATH_CHAR);
|
19067
|
+
}
|
19068
|
+
const state = this._history();
|
19011
19069
|
this._navigating = true;
|
19012
|
-
|
19070
|
+
history.pushState(state, '', '/' + path);
|
19013
19071
|
setTimeout(() => this._navigating = false, 200);
|
19014
19072
|
}
|
19015
19073
|
/**
|
19016
19074
|
*
|
19017
19075
|
* @param mode
|
19018
19076
|
*/
|
19019
|
-
_history(
|
19020
|
-
let path = this.panes.filter(p => p.route).map(s => s.fullPath).join(PATH_CHAR);
|
19021
|
-
if (this.tabs.length) {
|
19022
|
-
const tabs = this.tabs.filter(p => p.route);
|
19023
|
-
if (tabs.length)
|
19024
|
-
path += PANE_CHAR + tabs.map(s => s.fullPath).join(PATH_CHAR);
|
19025
|
-
}
|
19077
|
+
_history() {
|
19026
19078
|
const state = {
|
19027
19079
|
bizdoc: true,
|
19028
19080
|
step: history.state && history.state.bizdoc ? history.state.step + 1 : 1,
|
@@ -19034,10 +19086,7 @@ class SlotsComponent {
|
|
19034
19086
|
swapTab: this.swapTab,
|
19035
19087
|
prevGroup: this.prevGroup
|
19036
19088
|
};
|
19037
|
-
|
19038
|
-
history.pushState(state, '', '/' + path);
|
19039
|
-
else
|
19040
|
-
history.replaceState(state, '');
|
19089
|
+
return state;
|
19041
19090
|
}
|
19042
19091
|
drop(evt) {
|
19043
19092
|
const pane = this.panes[evt.previousIndex];
|
@@ -19172,7 +19221,7 @@ class SlotsComponent {
|
|
19172
19221
|
}
|
19173
19222
|
insert(position, component, options) {
|
19174
19223
|
const pane = this._insertPane(component, options || {}, position);
|
19175
|
-
pane.
|
19224
|
+
pane._events$.next(new NavigationFullscreen(pane._fullscreen = this.panes.length === 1, pane));
|
19176
19225
|
return pane;
|
19177
19226
|
}
|
19178
19227
|
_insertPane(component, options, position) {
|
@@ -19304,7 +19353,8 @@ class SlotsComponent {
|
|
19304
19353
|
this.expandPane();
|
19305
19354
|
break;
|
19306
19355
|
case 'refresh': {
|
19307
|
-
this._history(
|
19356
|
+
const state = this._history();
|
19357
|
+
history.replaceState(state, '');
|
19308
19358
|
break;
|
19309
19359
|
}
|
19310
19360
|
}
|
@@ -19313,11 +19363,11 @@ class SlotsComponent {
|
|
19313
19363
|
* escape
|
19314
19364
|
* @param event
|
19315
19365
|
*/
|
19316
|
-
collapse() {
|
19366
|
+
async collapse() {
|
19317
19367
|
if (!this.tabs.length)
|
19318
19368
|
return;
|
19319
19369
|
this._clearPending();
|
19320
|
-
this._clearTabs();
|
19370
|
+
await this._clearTabs();
|
19321
19371
|
this._sync();
|
19322
19372
|
this._router._events$.next(new CollapseNavigation());
|
19323
19373
|
}
|
@@ -19335,6 +19385,10 @@ class SlotsComponent {
|
|
19335
19385
|
}
|
19336
19386
|
closeTab(position) {
|
19337
19387
|
const tab = this.tabs[position];
|
19388
|
+
let evt = new NavigationClose(tab);
|
19389
|
+
tab._events$.next(evt);
|
19390
|
+
if (evt._preventDefault)
|
19391
|
+
return;
|
19338
19392
|
this.tabs.splice(position, 1);
|
19339
19393
|
this._destroyPane(tab);
|
19340
19394
|
this.selectedTabIndex = this.tabs.length ? position > 0 ? position - 1 : 0 : -1;
|
@@ -19354,7 +19408,7 @@ class SlotsComponent {
|
|
19354
19408
|
} while (i < this.panes.length);
|
19355
19409
|
this.selectedIndex = 0;
|
19356
19410
|
this._sync();
|
19357
|
-
pane.
|
19411
|
+
pane._events$.next(new NavigationFullscreen(pane._fullscreen = true, pane));
|
19358
19412
|
}
|
19359
19413
|
_getHistoryStep() {
|
19360
19414
|
return history.state && history.state.bizdoc ? history.state.step : 0;
|
@@ -19366,8 +19420,8 @@ class SlotsComponent {
|
|
19366
19420
|
const tab = this.tabs[this.selectedTabIndex];
|
19367
19421
|
this.tabs.splice(this.selectedTabIndex, 1);
|
19368
19422
|
this.panes.splice(0, this.panes.length, tab);
|
19369
|
-
tab.
|
19370
|
-
tab.
|
19423
|
+
tab._events$.next(new NavigationMode(tab._mode = 'pane', tab));
|
19424
|
+
tab._events$.next(new NavigationFullscreen(tab._fullscreen = true, tab));
|
19371
19425
|
this.selectedTabIndex = this.tabs.length ? 0 : -1;
|
19372
19426
|
this._sync();
|
19373
19427
|
}
|
@@ -21193,23 +21247,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
21193
21247
|
args: ['nameInput', { static: true, read: ElementRef }]
|
21194
21248
|
}] } });
|
21195
21249
|
|
21196
|
-
class UserNamePipe {
|
21197
|
-
constructor(_accounts) {
|
21198
|
-
this._accounts = _accounts;
|
21199
|
-
}
|
21200
|
-
transform(value) {
|
21201
|
-
const subject = new BehaviorSubject(null);
|
21202
|
-
this._accounts.get(value).subscribe(u => subject.next(u.name));
|
21203
|
-
return subject;
|
21204
|
-
}
|
21205
|
-
}
|
21206
|
-
UserNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, deps: [{ token: AccountService }], target: i0.ɵɵFactoryTarget.Pipe });
|
21207
|
-
UserNamePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, name: "userName" });
|
21208
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: UserNamePipe, decorators: [{
|
21209
|
-
type: Pipe,
|
21210
|
-
args: [{ name: 'userName' }]
|
21211
|
-
}], ctorParameters: function () { return [{ type: AccountService }]; } });
|
21212
|
-
|
21213
21250
|
let ReturnActionComponent = class ReturnActionComponent {
|
21214
21251
|
constructor(_fb, actionRef, session) {
|
21215
21252
|
this._fb = _fb;
|
@@ -21609,7 +21646,7 @@ class CubeInfo {
|
|
21609
21646
|
*/
|
21610
21647
|
_mapAxes(cube, axes) {
|
21611
21648
|
const filters = {};
|
21612
|
-
axes.forEach((a, i) => a && (filters[cube.axes[i].name] = a));
|
21649
|
+
axes.forEach((a, i) => a && cube.axes.length > i && (filters[cube.axes[i].name] = a));
|
21613
21650
|
return filters;
|
21614
21651
|
}
|
21615
21652
|
_open(comp, element, data) {
|
@@ -23087,7 +23124,7 @@ class CubeDocumentsGridComponent {
|
|
23087
23124
|
}
|
23088
23125
|
}
|
23089
23126
|
CubeDocumentsGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeDocumentsGridComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: AccountService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component });
|
23090
|
-
CubeDocumentsGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeDocumentsGridComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", components: [{ type: i6$4.GridComponent, selector: "ejs-grid", inputs: ["aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "currencyCode", "currentAction", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualization", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }], directives: [{ type: i7$
|
23127
|
+
CubeDocumentsGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: CubeDocumentsGridComponent, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", components: [{ type: i6$4.GridComponent, selector: "ejs-grid", inputs: ["aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "currencyCode", "currentAction", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualization", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }], directives: [{ type: i7$4.ColumnsDirective, selector: "ejs-gantt>e-columns" }, { type: i16.ColumnsDirective, selector: "ejs-chart>e-columns" }, { type: i6$4.ColumnsDirective, selector: "ejs-grid>e-columns" }, { type: i6$4.AggregateColumnsDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns" }, { type: i9$5.ColumnsDirective, selector: "e-sheet>e-columns" }, { type: i10$1.ColumnsDirective, selector: "ejs-kanban>e-columns" }, { type: i7$4.ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowReordering", "allowResizing", "allowSorting", "clipMode", "customAttributes", "disableHtmlEncode", "displayAsCheckBox", "edit", "editType", "field", "filter", "format", "formatter", "headerTemplate", "headerText", "headerTextAlign", "hideAtMedia", "isPrimaryKey", "maxWidth", "minWidth", "sortComparer", "template", "textAlign", "type", "valueAccessor", "visible", "width"] }, { type: i16.ColumnDirective, selector: "e-columns>e-column", inputs: ["border", "width"] }, { type: i6$4.ColumnDirective, selector: "ejs-grid>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowGrouping", "allowReordering", "allowResizing", "allowSearching", "allowSorting", "autoFit", "clipMode", "columns", "commands", "customAttributes", "dataSource", "defaultValue", "disableHtmlEncode", "displayAsCheckBox", "edit", "editTemplate", "editType", "enableGroupByFormat", "field", "filter", "filterBarTemplate", "filterTemplate", "foreignKeyField", "foreignKeyValue", "format", "formatter", "freeze", "headerTemplate", "headerText", "headerTextAlign", "headerValueAccessor", "hideAtMedia", "index", "isFrozen", "isIdentity", "isPrimaryKey", "lockColumn", "maxWidth", "minWidth", "showColumnMenu", "showInColumnChooser", "sortComparer", "template", "textAlign", "type", "uid", "validationRules", "valueAccessor", "visible", "width"] }, { type: i6$4.AggregateColumnDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns>e-column", inputs: ["columnName", "customAggregate", "field", "footerTemplate", "format", "groupCaptionTemplate", "groupFooterTemplate", "type"] }, { type: i9$5.ColumnDirective, selector: "e-columns>e-column", inputs: ["customWidth", "format", "hidden", "index", "isLocked", "validation", "width"] }, { type: i10$1.ColumnDirective, selector: "e-columns>e-column", inputs: ["allowDrag", "allowDrop", "allowToggle", "headerText", "isExpanded", "keyField", "maxCount", "minCount", "showAddButton", "showItemCount", "template", "transitionColumns"] }], pipes: { "translate": TranslatePipe, "state": StatePipe, "amDateFormat": DateFormatPipe, "form": FormPipe } });
|
23091
23128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: CubeDocumentsGridComponent, decorators: [{
|
23092
23129
|
type: Component,
|
23093
23130
|
args: [{ template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\" [pageSettings]=\"pageSettings\"\r\n [allowPaging]=false\r\n [allowExcelExport]=\"true\"\r\n [height]=\"height\"\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=\"groupSettings\">\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n" }]
|
@@ -24978,6 +25015,8 @@ class CompareNameDirective extends CompareDirectiveBase {
|
|
24978
25015
|
this._structure = this._group.structure.fields.find(e => e.name === this._name[0]);
|
24979
25016
|
this._base = this._group.base;
|
24980
25017
|
this._version = this._group.version;
|
25018
|
+
if (!this._structure)
|
25019
|
+
throw `No form field with name ${this._name[0]}`;
|
24981
25020
|
}
|
24982
25021
|
else {
|
24983
25022
|
this._structure = this._comparision.form.structure.find(e => e.name === this._name[0]);
|
@@ -24985,8 +25024,6 @@ class CompareNameDirective extends CompareDirectiveBase {
|
|
24985
25024
|
this._base = baseVersion;
|
24986
25025
|
this._version = currentVersion;
|
24987
25026
|
}
|
24988
|
-
if (!this._structure)
|
24989
|
-
throw `No form field with name ${this._name[0]}`;
|
24990
25027
|
}
|
24991
25028
|
ngAfterViewInit() {
|
24992
25029
|
if (!this._comparision)
|
@@ -27298,9 +27335,6 @@ class SharedModule {
|
|
27298
27335
|
const { formats, routing } = config || {};
|
27299
27336
|
registerComponents(CORE_COMPONENTS);
|
27300
27337
|
const providers = [{
|
27301
|
-
provide: RouterImpl, useClass: !routing || routing === 'ng' ? NgRouter : PaneRouter
|
27302
|
-
},
|
27303
|
-
{
|
27304
27338
|
provide: MAT_DATE_FORMATS, useValue: {
|
27305
27339
|
parse: {
|
27306
27340
|
dateInput: 'LL',
|
@@ -27313,6 +27347,10 @@ class SharedModule {
|
|
27313
27347
|
}
|
27314
27348
|
}
|
27315
27349
|
}];
|
27350
|
+
if (routing)
|
27351
|
+
providers.push({
|
27352
|
+
provide: RouterImpl, useClass: routing === 'ng' ? NgRouter : PaneRouter
|
27353
|
+
});
|
27316
27354
|
return {
|
27317
27355
|
ngModule: SharedModule,
|
27318
27356
|
providers
|
@@ -28748,13 +28786,14 @@ let DocumentTraceComponent = class DocumentTraceComponent {
|
|
28748
28786
|
this._start = r.start, this._end = r.end;
|
28749
28787
|
this._list();
|
28750
28788
|
});
|
28789
|
+
//let r = localStorage.getItem('trace-range');
|
28751
28790
|
this.range = [now.add(-2, 'w').toDate(),
|
28752
28791
|
now.toDate()];
|
28753
28792
|
this.form.valueChanges.pipe(takeUntil(this._destroy), debounceTime(200)).
|
28754
28793
|
subscribe(this._list.bind(this));
|
28755
28794
|
this._pane.queryParamsChange.subscribe(p => {
|
28756
|
-
const {
|
28757
|
-
|
28795
|
+
const { documentId } = p;
|
28796
|
+
documentId && this._open(documentId.decodeId());
|
28758
28797
|
});
|
28759
28798
|
this._pane.resize.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram?.refresh());
|
28760
28799
|
}
|
@@ -28770,6 +28809,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
|
|
28770
28809
|
});
|
28771
28810
|
}
|
28772
28811
|
rangeChanged(args) {
|
28812
|
+
//localStorage.setItem('trace-range', args.);
|
28773
28813
|
this._dateschange.next(args);
|
28774
28814
|
}
|
28775
28815
|
guide(evt) {
|
@@ -28837,7 +28877,7 @@ let DocumentTraceComponent = class DocumentTraceComponent {
|
|
28837
28877
|
});
|
28838
28878
|
}
|
28839
28879
|
open(item) {
|
28840
|
-
this._router.navigate([], { queryParams: {
|
28880
|
+
this._router.navigate([], { queryParams: { documentId: item.id.encodeId() } });
|
28841
28881
|
}
|
28842
28882
|
_timeline() {
|
28843
28883
|
const items = [], submissions = [];
|
@@ -29726,9 +29766,138 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
29726
29766
|
args: ['document:keydown', ['$event']]
|
29727
29767
|
}] } });
|
29728
29768
|
|
29769
|
+
class ProfileSettingsDialog {
|
29770
|
+
constructor(_accounts, _dialogRef, _fb, model) {
|
29771
|
+
this._accounts = _accounts;
|
29772
|
+
this._dialogRef = _dialogRef;
|
29773
|
+
this._fb = _fb;
|
29774
|
+
this.model = model;
|
29775
|
+
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
29776
|
+
this.substitute = this._fb.control([]);
|
29777
|
+
this.grants = this._fb.control([]);
|
29778
|
+
this.outOfOffice = this._fb.group({
|
29779
|
+
active: this._fb.control(false),
|
29780
|
+
substitueId: this._fb.control(null),
|
29781
|
+
from: this._fb.control(null),
|
29782
|
+
to: this._fb.control(null)
|
29783
|
+
});
|
29784
|
+
this.grantAccess = this._fb.group({
|
29785
|
+
active: this._fb.control(false),
|
29786
|
+
users: this._fb.control(null)
|
29787
|
+
});
|
29788
|
+
this.form = this._fb.group({
|
29789
|
+
outOfOffice: this.outOfOffice,
|
29790
|
+
grantAccess: this.grantAccess
|
29791
|
+
});
|
29792
|
+
this.userDisplay = (item) => {
|
29793
|
+
return item ? item.name : null;
|
29794
|
+
};
|
29795
|
+
}
|
29796
|
+
ngOnInit() {
|
29797
|
+
this.form.patchValue(this.model);
|
29798
|
+
const { active, to, from } = this.outOfOffice.controls;
|
29799
|
+
if (!this.model.outOfOffice || !this.model.outOfOffice.active) {
|
29800
|
+
to.disable({ emitEvent: false });
|
29801
|
+
from.disable({ emitEvent: false });
|
29802
|
+
this.substitute.disable({ emitEvent: false });
|
29803
|
+
}
|
29804
|
+
else {
|
29805
|
+
this.substitute.addValidators(Validators.required);
|
29806
|
+
if (!this.model.outOfOffice.from)
|
29807
|
+
to.disable({ emitEvent: false });
|
29808
|
+
}
|
29809
|
+
this.model.outOfOffice.substitueId &&
|
29810
|
+
this._accounts.get(this.model.outOfOffice.substitueId).subscribe(u => this.substitute.setValue(u, { emitEvent: false }));
|
29811
|
+
active.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed())).
|
29812
|
+
subscribe(active => {
|
29813
|
+
if (active) {
|
29814
|
+
from.enable();
|
29815
|
+
from.value && to.enable();
|
29816
|
+
this.substitute.enable();
|
29817
|
+
this.substitute.addValidators(Validators.required);
|
29818
|
+
this.substitueInput.focus();
|
29819
|
+
}
|
29820
|
+
else {
|
29821
|
+
from.disable();
|
29822
|
+
to.disable();
|
29823
|
+
this.substitute.clearValidators();
|
29824
|
+
this.substitute.disable();
|
29825
|
+
}
|
29826
|
+
});
|
29827
|
+
this.ousers$ = this.substitute.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter$1(v => isString(v)), switchMap$1(v => this._accounts.findAll(v)), map$1(r => r.filter(u => u.id !== this.model.userId)));
|
29828
|
+
from.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed())).
|
29829
|
+
subscribe(v => {
|
29830
|
+
if (v)
|
29831
|
+
to.enable();
|
29832
|
+
else
|
29833
|
+
to.disable();
|
29834
|
+
});
|
29835
|
+
if (!this.model.grantAccess || !this.model.grantAccess.active) {
|
29836
|
+
this.grants.disable({ emitEvent: false });
|
29837
|
+
}
|
29838
|
+
this.grantAccess.controls['active'].valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed())).
|
29839
|
+
subscribe(v => {
|
29840
|
+
if (v) {
|
29841
|
+
this.grants.enable();
|
29842
|
+
this.grants.addValidators(Validators.required);
|
29843
|
+
this.grantInput.focus();
|
29844
|
+
}
|
29845
|
+
else {
|
29846
|
+
this.grants.clearValidators();
|
29847
|
+
}
|
29848
|
+
});
|
29849
|
+
this.gusers$ = this.grants.valueChanges.pipe(takeUntil$1(this._dialogRef.afterClosed()), filter$1(v => isString(v)), switchMap$1(v => this._accounts.findAll(v)), map$1(r => r.filter(u => u.id !== this.model.userId)));
|
29850
|
+
}
|
29851
|
+
setId(event) {
|
29852
|
+
const { id } = event.option.value;
|
29853
|
+
this.outOfOffice.controls['substitueId'].setValue(id);
|
29854
|
+
}
|
29855
|
+
/**
|
29856
|
+
*
|
29857
|
+
* @param id
|
29858
|
+
*/
|
29859
|
+
removeGrant(id) {
|
29860
|
+
const users = this.form.value.grantAccess.users;
|
29861
|
+
const index = users.indexOf(id);
|
29862
|
+
if (index >= 0)
|
29863
|
+
users.splice(index, 1);
|
29864
|
+
this.form.patchValue({});
|
29865
|
+
}
|
29866
|
+
/**
|
29867
|
+
*
|
29868
|
+
* @param inp
|
29869
|
+
* @param event
|
29870
|
+
*/
|
29871
|
+
addGrant(inp, event) {
|
29872
|
+
const users = this.form.value.grantAccess.users;
|
29873
|
+
const id = event.option.value;
|
29874
|
+
if (!users)
|
29875
|
+
this.grantAccess.controls['users'].setValue([id]);
|
29876
|
+
else
|
29877
|
+
users.push(id);
|
29878
|
+
inp.value = '';
|
29879
|
+
this.form.patchValue({});
|
29880
|
+
}
|
29881
|
+
}
|
29882
|
+
ProfileSettingsDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfileSettingsDialog, deps: [{ token: AccountService }, { token: i3$1.MatDialogRef }, { token: i1$2.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
29883
|
+
ProfileSettingsDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfileSettingsDialog, 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 fxLayout=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\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 <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div fxLayout=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip *ngFor=\"let u of grantAccess.value.users || []\"\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>\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-chip-list>\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\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", components: [{ type: i1$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i3.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3$2.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i23.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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]" }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i1$1.MatSuffix, selector: "[matSuffix]" }, { type: i3$2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i3$2.MatChipRemove, selector: "[matChipRemove]" }, { type: i3$2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe, "userName": UserNamePipe } });
|
29884
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfileSettingsDialog, decorators: [{
|
29885
|
+
type: Component,
|
29886
|
+
args: [{ template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div fxLayout=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field fxFlex>\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 <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div fxLayout=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-list #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip *ngFor=\"let u of grantAccess.value.users || []\"\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>\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-chip-list>\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\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" }]
|
29887
|
+
}], ctorParameters: function () { return [{ type: AccountService }, { type: i3$1.MatDialogRef }, { type: i1$2.FormBuilder }, { type: undefined, decorators: [{
|
29888
|
+
type: Inject,
|
29889
|
+
args: [MAT_DIALOG_DATA]
|
29890
|
+
}] }]; }, propDecorators: { substitueInput: [{
|
29891
|
+
type: ViewChild,
|
29892
|
+
args: ['substitueInput', { read: MatInput }]
|
29893
|
+
}], grantInput: [{
|
29894
|
+
type: ViewChild,
|
29895
|
+
args: ['grantInput', { read: MatChipInput }]
|
29896
|
+
}] } });
|
29897
|
+
|
29729
29898
|
let ProfilerComponent = class ProfilerComponent {
|
29730
29899
|
/** ctor */
|
29731
|
-
constructor(_sb, _utilityRef, _session, _dialog, _documentInfo, media, _chat, _guide, _router,
|
29900
|
+
constructor(_sb, _utilityRef, _session, _dialog, _documentInfo, media, _chat, _guide, _router, _cd, _pane, _translate, _accounts, _fb) {
|
29732
29901
|
this._sb = _sb;
|
29733
29902
|
this._utilityRef = _utilityRef;
|
29734
29903
|
this._session = _session;
|
@@ -29737,7 +29906,8 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29737
29906
|
this._chat = _chat;
|
29738
29907
|
this._guide = _guide;
|
29739
29908
|
this._router = _router;
|
29740
|
-
this.
|
29909
|
+
this._cd = _cd;
|
29910
|
+
this._pane = _pane;
|
29741
29911
|
this._translate = _translate;
|
29742
29912
|
this._accounts = _accounts;
|
29743
29913
|
this._fb = _fb;
|
@@ -29785,6 +29955,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29785
29955
|
this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
|
29786
29956
|
this.cols = 2;
|
29787
29957
|
this._destroy = new Subject();
|
29958
|
+
this.separatorKeysCodes = [ENTER, COMMA, SEMICOLON];
|
29788
29959
|
media.media$.pipe(takeUntil(this._destroy)).subscribe(m => this.cols = m.mqAlias === 'sm' || m.mqAlias === 'xm' ? 1 : 2);
|
29789
29960
|
_session.themeChange.pipe(takeUntil(this._destroy)).subscribe(t => {
|
29790
29961
|
this.theme = t.dark ? 'MaterialDark' : 'Material';
|
@@ -29792,23 +29963,19 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29792
29963
|
});
|
29793
29964
|
}
|
29794
29965
|
ngOnInit() {
|
29795
|
-
this.
|
29796
|
-
const {
|
29797
|
-
|
29966
|
+
this._pane.queryParamsChange.subscribe(p => {
|
29967
|
+
const { userId } = p;
|
29968
|
+
userId && this._open(userId);
|
29798
29969
|
});
|
29799
|
-
this.
|
29970
|
+
this._pane.resize.pipe(takeUntil(this._destroy)).subscribe(this.resize.bind(this));
|
29800
29971
|
this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => !isObject(v)), switchMap(v => this._accounts.findAll(v)));
|
29801
29972
|
}
|
29802
29973
|
guide(evt) {
|
29803
|
-
const steps = [
|
29804
|
-
selector: '[data-help=search]',
|
29805
|
-
position: 'Below',
|
29806
|
-
content: this._translate.get('ProfilerSearchHelp')
|
29807
|
-
}];
|
29974
|
+
const steps = [];
|
29808
29975
|
if (this.data) {
|
29809
29976
|
steps.push({
|
29810
|
-
selector: '[data-help=
|
29811
|
-
content: this._translate.get('
|
29977
|
+
selector: '[data-help=settings]',
|
29978
|
+
content: this._translate.get('OutOfOfficeHelp')
|
29812
29979
|
});
|
29813
29980
|
Object.keys(this.data.activity).length &&
|
29814
29981
|
steps.push({
|
@@ -29825,7 +29992,17 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29825
29992
|
selector: '[data-help=positions]',
|
29826
29993
|
content: this._translate.get('PositionsHelp')
|
29827
29994
|
});
|
29995
|
+
steps.push({
|
29996
|
+
selector: '[data-help=reassign]',
|
29997
|
+
content: this._translate.get('ReassignHelp')
|
29998
|
+
});
|
29828
29999
|
}
|
30000
|
+
else
|
30001
|
+
steps.push({
|
30002
|
+
selector: '[data-help=search]',
|
30003
|
+
position: 'Below',
|
30004
|
+
content: this._translate.get('ProfilerSearchHelp')
|
30005
|
+
});
|
29829
30006
|
this._guide.start({
|
29830
30007
|
name: 'profiler',
|
29831
30008
|
steps
|
@@ -29833,8 +30010,8 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29833
30010
|
evt && evt.preventDefault();
|
29834
30011
|
}
|
29835
30012
|
change(evt) {
|
29836
|
-
const { id } = evt.option.value;
|
29837
|
-
this._router.navigate([], { queryParams: {
|
30013
|
+
const { id: userId } = evt.option.value;
|
30014
|
+
this._router.navigate([], { queryParams: { userId } });
|
29838
30015
|
}
|
29839
30016
|
/**
|
29840
30017
|
*
|
@@ -29843,9 +30020,11 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29843
30020
|
_open(userId) {
|
29844
30021
|
this._utilityRef.populate(userId).subscribe(e => {
|
29845
30022
|
this.data = e;
|
30023
|
+
this.search.reset(null, { emitEvent: false });
|
30024
|
+
this._cd.detectChanges();
|
29846
30025
|
while (this.chart.series.length)
|
29847
|
-
this.chart
|
29848
|
-
this.chart
|
30026
|
+
this.chart?.removeSeries(0);
|
30027
|
+
this.chart?.addSeries(this._series());
|
29849
30028
|
}, () => this._sb.error());
|
29850
30029
|
}
|
29851
30030
|
/** */
|
@@ -29872,34 +30051,52 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29872
30051
|
return action ? action.past || action.title : name;
|
29873
30052
|
}
|
29874
30053
|
resize() {
|
29875
|
-
const { width, height } = getComputedStyle(this.chartElement.nativeElement.parentElement);
|
29876
|
-
this.chart.width = width;
|
29877
|
-
this.chart.height = height;
|
30054
|
+
// const { width, height } = getComputedStyle(this.chartElement.nativeElement.parentElement);
|
30055
|
+
// this.chart.width = width;
|
30056
|
+
// this.chart.height = height;
|
29878
30057
|
}
|
29879
30058
|
pointClick(evt) {
|
29880
30059
|
const { id } = evt.series.dataSource[evt.pointIndex];
|
29881
30060
|
this._documentInfo.open(id);
|
29882
30061
|
}
|
29883
|
-
|
30062
|
+
userDisplay(item) {
|
29884
30063
|
return item ? item.name : null;
|
29885
30064
|
}
|
29886
30065
|
trace(id) {
|
29887
30066
|
this._router.navigate(['admin', 'utilities', 'document-trace'], {
|
29888
|
-
queryParams: { id },
|
30067
|
+
queryParams: { documentId: id.encodeId() },
|
29889
30068
|
policy: OpenPolicy.Defer | OpenPolicy.Pinnable
|
29890
30069
|
});
|
29891
30070
|
}
|
29892
|
-
chat(
|
29893
|
-
this._chat.open(
|
30071
|
+
chat() {
|
30072
|
+
this._chat.open(this.data.info.id);
|
29894
30073
|
}
|
29895
30074
|
reassign(position) {
|
29896
30075
|
this.assignable$ = this._accounts.findAll().pipe(map(u => u.filter(u => u.id !== this.data.info.id)));
|
29897
|
-
this._dialog.open(this.
|
30076
|
+
this._dialog.open(this.assignTpl, {}).afterClosed().
|
29898
30077
|
subscribe(u => u && this._reassign(u, position));
|
29899
30078
|
}
|
30079
|
+
settings() {
|
30080
|
+
this._dialog.open(ProfileSettingsDialog, {
|
30081
|
+
closeOnNavigation: true,
|
30082
|
+
data: {
|
30083
|
+
userId: this.data.info.id,
|
30084
|
+
grantAccess: this.data.grantAccess,
|
30085
|
+
outOfOffice: this.data.outOfOffice
|
30086
|
+
}
|
30087
|
+
}).afterClosed().
|
30088
|
+
subscribe(v => v && this._utilityRef.execute({
|
30089
|
+
outOfOffice: v.outOfOffice,
|
30090
|
+
grantAccess: v.grantAccess,
|
30091
|
+
userId: this.data.info.id
|
30092
|
+
}).subscribe(() => {
|
30093
|
+
Object.assign(this.data);
|
30094
|
+
this._sb.toast('ChangesSaved');
|
30095
|
+
}, () => this._sb.error()));
|
30096
|
+
}
|
29900
30097
|
/** */
|
29901
30098
|
_reassign(who, position) {
|
29902
|
-
this._utilityRef.execute({ who, ...position, userId: this.data.info.id }).subscribe(() => {
|
30099
|
+
this._utilityRef.execute({ reassign: { who, ...position }, userId: this.data.info.id }).subscribe(() => {
|
29903
30100
|
this._sb.toast('Assigned');
|
29904
30101
|
if (position)
|
29905
30102
|
this.data.positions.remove(position);
|
@@ -29915,8 +30112,8 @@ let ProfilerComponent = class ProfilerComponent {
|
|
29915
30112
|
this._destroy.complete();
|
29916
30113
|
}
|
29917
30114
|
};
|
29918
|
-
ProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfilerComponent, deps: [{ token: PromptService }, { token: UtilityRef }, { token: SessionService }, { token: i3$1.MatDialog }, { token: DocumentInfo }, { token: i2$4.MediaObserver }, { token: ChatInfo }, { token: GuideService }, { token: PanesRouter }, { token: PaneRef }, { token: TranslateService }, { token: AccountService }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
29919
|
-
ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assign", first: true, predicate: ["assign"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <div>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-grid-list [cols]=\"cols\" [style.display]=\"data ? '': 'none'\">\r\n <mat-grid-tile>\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data?.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <button mat-icon-button (click)=\"chat(data.info.id)\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data?.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.positions.length; else none\">\r\n <tr *ngFor=\"let p of data?.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n<!-- dialog -->\r\n<ng-template #assign>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6$2.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i6$2.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i7$4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i7$4.MatCardHeader, selector: "mat-card-header" }, { type: i16.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { 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]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i7$4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i7$4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i16.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i23.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i10.AsyncPipe, "translate": TranslatePipe, "amDuration": DurationPipe, "amDifference": DifferencePipe, "role": RolePipe } });
|
30115
|
+
ProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfilerComponent, deps: [{ token: PromptService }, { token: UtilityRef }, { token: SessionService }, { token: i3$1.MatDialog }, { token: DocumentInfo }, { token: i2$4.MediaObserver }, { token: ChatInfo }, { token: GuideService }, { token: PanesRouter }, { token: i0.ChangeDetectorRef }, { token: PaneRef }, { token: TranslateService }, { token: AccountService }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
30116
|
+
ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" fxLayout=\"row wrap\">\r\n <!-- info -->\r\n <mat-card fxFlex>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card fxFlex data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card fxFlex data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card fxFlex data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{margin:5px}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i7$3.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i19.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i19.MatCardHeader, selector: "mat-card-header" }, { type: i16.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { 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]" }, { type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i23.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i23.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i19.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i19.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i19.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i16.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i10.AsyncPipe, "translate": TranslatePipe, "amDuration": DurationPipe, "amDifference": DifferencePipe, "role": RolePipe } });
|
29920
30117
|
ProfilerComponent = __decorate([
|
29921
30118
|
BizDoc({ selector: 'bizdoc-user-profiler' })
|
29922
30119
|
/** component*/
|
@@ -29925,16 +30122,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
29925
30122
|
type: Component,
|
29926
30123
|
args: [{ host: {
|
29927
30124
|
class: 'pane'
|
29928
|
-
}, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <
|
29929
|
-
}], ctorParameters: function () { return [{ type: PromptService }, { type: UtilityRef }, { type: SessionService }, { type: i3$1.MatDialog }, { type: DocumentInfo }, { type: i2$4.MediaObserver }, { type: ChatInfo }, { type: GuideService }, { type: PanesRouter }, { type: PaneRef }, { type: TranslateService }, { type: AccountService }, { type: i1$2.FormBuilder }]; }, propDecorators: { chart: [{
|
30125
|
+
}, entryComponents: [ProfileSettingsDialog], template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" fxLayout=\"row wrap\">\r\n <!-- info -->\r\n <mat-card fxFlex>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card fxFlex data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card fxFlex data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card fxFlex data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{margin:5px}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"] }]
|
30126
|
+
}], ctorParameters: function () { return [{ type: PromptService }, { type: UtilityRef }, { type: SessionService }, { type: i3$1.MatDialog }, { type: DocumentInfo }, { type: i2$4.MediaObserver }, { type: ChatInfo }, { type: GuideService }, { type: PanesRouter }, { type: i0.ChangeDetectorRef }, { type: PaneRef }, { type: TranslateService }, { type: AccountService }, { type: i1$2.FormBuilder }]; }, propDecorators: { chart: [{
|
29930
30127
|
type: ViewChild,
|
29931
30128
|
args: ['activity']
|
29932
30129
|
}], chartElement: [{
|
29933
30130
|
type: ViewChild,
|
29934
30131
|
args: ['activity', { read: ElementRef }]
|
29935
|
-
}],
|
30132
|
+
}], assignTpl: [{
|
29936
30133
|
type: ViewChild,
|
29937
|
-
args: ['
|
30134
|
+
args: ['assignTpl']
|
29938
30135
|
}], guide: [{
|
29939
30136
|
type: HostListener,
|
29940
30137
|
args: ['window:keydown.f1', ['$event']]
|
@@ -29956,7 +30153,7 @@ class SystemModule {
|
|
29956
30153
|
}
|
29957
30154
|
}
|
29958
30155
|
SystemModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
29959
|
-
SystemModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SystemModule, declarations: [PermissionsUtility, ManageCubeIndexUtility,
|
30156
|
+
SystemModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SystemModule, declarations: [PermissionsUtility, ManageCubeIndexUtility, ProfileSettingsDialog,
|
29960
30157
|
UtilityWrapperComponent, UtilityPaneComponent,
|
29961
30158
|
SearchInput,
|
29962
30159
|
ReassignDialog,
|
@@ -29992,7 +30189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
29992
30189
|
type: NgModule,
|
29993
30190
|
args: [{
|
29994
30191
|
declarations: [
|
29995
|
-
PermissionsUtility, ManageCubeIndexUtility,
|
30192
|
+
PermissionsUtility, ManageCubeIndexUtility, ProfileSettingsDialog,
|
29996
30193
|
UtilityWrapperComponent, UtilityPaneComponent,
|
29997
30194
|
SearchInput,
|
29998
30195
|
ReassignDialog,
|
@@ -30021,7 +30218,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
30021
30218
|
PositionsComponent,
|
30022
30219
|
WorkflowComponent, WorkflowNodeComponent, RoleNodeComponent,
|
30023
30220
|
PatternsComponent
|
30024
|
-
]
|
30221
|
+
],
|
30222
|
+
entryComponents: [ProfileSettingsDialog]
|
30025
30223
|
}]
|
30026
30224
|
}] });
|
30027
30225
|
|