@bizdoc/core 1.14.0-next.6 → 1.14.0-next.9

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.
@@ -25,7 +25,7 @@ import * as i1$3 from '@angular/material/slide-toggle';
25
25
  import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
26
26
  import * as i2$1 from '@angular/cdk/a11y';
27
27
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
28
- import { L10n, setCulture, loadCldr, setCurrencyCode, Internationalization, enableRtl } from '@syncfusion/ej2-base';
28
+ import { L10n, setCulture, loadCldr, setCurrencyCode, Internationalization, enableRtl, registerLicense } from '@syncfusion/ej2-base';
29
29
  import 'dayjs/locale/he';
30
30
  import 'dayjs/locale/de';
31
31
  import 'dayjs/locale/ru';
@@ -842,6 +842,7 @@ var OpenPolicy;
842
842
  OpenPolicy[OpenPolicy["Dialog"] = 112] = "Dialog";
843
843
  OpenPolicy[OpenPolicy["Dismissable"] = 128] = "Dismissable";
844
844
  OpenPolicy[OpenPolicy["Toggle"] = 256] = "Toggle";
845
+ OpenPolicy[OpenPolicy["Stretch"] = 256] = "Stretch";
845
846
  })(OpenPolicy || (OpenPolicy = {}));
846
847
  const DEFAULT_POLICY = OpenPolicy.Pane;
847
848
 
@@ -1007,6 +1008,9 @@ const THEMES = [
1007
1008
  { name: 'brown', primary: 'brown', color: '#795548', accent: 'grey' }
1008
1009
  ];
1009
1010
  const SUPPORTED_LANGUAGES = ['en', 'he', 'de', 'ar', 'ru'], RTL_LANGUALGES = ['he', 'ar'];
1011
+ function SessionProviderFactory(provider) {
1012
+ return () => provider.prepare();
1013
+ }
1010
1014
  class SessionService {
1011
1015
  constructor(_config, _http, _cookies, _hub) {
1012
1016
  this._config = _config;
@@ -1020,7 +1024,12 @@ class SessionService {
1020
1024
  this.themeChange = this._themeChange.asObservable();
1021
1025
  this._firebase = new FirebaseService(this._config ? this._config.firebase : null, this);
1022
1026
  ('serviceWorker' in navigator) && this._loadSw();
1023
- _config && _config.maps && this._loadMaps();
1027
+ }
1028
+ prepare() {
1029
+ const promisses = [];
1030
+ if (this._config.maps)
1031
+ promisses.push(this._googleMaps());
1032
+ return Promise.all(promisses);
1024
1033
  }
1025
1034
  get profile() { return this._profile; }
1026
1035
  get gender() { return this.profile.byId ? this._profile.byGender : this._profile.gender; }
@@ -1215,11 +1224,14 @@ class SessionService {
1215
1224
  }, null);
1216
1225
  });
1217
1226
  }
1218
- _loadMaps() {
1227
+ _googleMaps() {
1219
1228
  const apiKey = this._config.maps.apiKey;
1220
- const script = document.createElement('script');
1221
- script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places&language=${this.language}`;
1222
- document.head.append(script);
1229
+ return new Promise((resolve, reject) => {
1230
+ const script = document.createElement('script');
1231
+ script.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places&language=${this.language}`;
1232
+ script.addEventListener('load', resolve, {});
1233
+ document.head.append(script);
1234
+ });
1223
1235
  }
1224
1236
  }
1225
1237
  SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SessionService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.CookieService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -6257,6 +6269,9 @@ class PaneRef {
6257
6269
  ;
6258
6270
  get parent() { return this._options.parent; }
6259
6271
  ;
6272
+ get stretch() { return this._options.stretch; }
6273
+ ;
6274
+ set stretch(val) { this._options.stretch = val; }
6260
6275
  get dialog() { return this._options.dialog; }
6261
6276
  ;
6262
6277
  get dismissable() { return this._options.dismissable; }
@@ -11392,6 +11407,10 @@ class CubeViewPaneComponent extends ViewBase {
11392
11407
  this._pane.group = this.cube.title;
11393
11408
  this._pane.title = this.view.title;
11394
11409
  this._pane.icon = this.view.icon || this.cube.icon;
11410
+ if (this.view.type === 'Spreadsheet' ||
11411
+ this.view.type === 'Grid' ||
11412
+ (this.view.type === 'Pivot' && !this.view.chartType))
11413
+ this._pane.stretch = true;
11395
11414
  });
11396
11415
  this._pane.queryParamsChange.subscribe(p => this.originalAxes = p);
11397
11416
  this._pane.resize.subscribe(() => this.viewPane.resize());
@@ -17301,8 +17320,7 @@ class DocumentViewRef {
17301
17320
  }
17302
17321
 
17303
17322
  class ViewItemComponent {
17304
- constructor(_pane, _http, _vc, _injector, _cf) {
17305
- this._pane = _pane;
17323
+ constructor(_http, _vc, _injector, _cf) {
17306
17324
  this._http = _http;
17307
17325
  this._vc = _vc;
17308
17326
  this._injector = _injector;
@@ -17341,7 +17359,7 @@ class ViewItemComponent {
17341
17359
  this._destroy.complete();
17342
17360
  }
17343
17361
  }
17344
- ViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ViewItemComponent, deps: [{ token: PaneRef, optional: true }, { token: i1.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
17362
+ ViewItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ViewItemComponent, deps: [{ token: i1.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
17345
17363
  ViewItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ViewItemComponent, selector: "bizdoc-document-view-item", inputs: { model: "model", view: "view" }, host: { listeners: { "window:resize": "resize()" } }, ngImport: i0, template: '', isInline: true });
17346
17364
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ViewItemComponent, decorators: [{
17347
17365
  type: Component,
@@ -17350,9 +17368,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
17350
17368
  template: '',
17351
17369
  //host: { class: 'bz-view' }
17352
17370
  }]
17353
- }], ctorParameters: function () { return [{ type: PaneRef, decorators: [{
17354
- type: Optional
17355
- }] }, { type: i1.HttpClient }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: BizDocComponentFactoryResolver }]; }, propDecorators: { model: [{
17371
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: BizDocComponentFactoryResolver }]; }, propDecorators: { model: [{
17356
17372
  type: Input
17357
17373
  }], view: [{
17358
17374
  type: Input
@@ -18498,6 +18514,7 @@ class SlotsComponent {
18498
18514
  this.panes = [];
18499
18515
  this.tabs = [];
18500
18516
  this._selectedTabIndex = -1;
18517
+ this.dialog = false;
18501
18518
  this.selectedIndex = -1;
18502
18519
  this.dragging = false;
18503
18520
  this.ripple = {
@@ -18527,6 +18544,7 @@ class SlotsComponent {
18527
18544
  }
18528
18545
  set selectedTabIndex(value) {
18529
18546
  this._selectedTabIndex = value;
18547
+ this.dialog = this._selectedTabIndex > -1 && this.tabs.at(this._selectedTabIndex).dialog;
18530
18548
  this._setTabAnimation();
18531
18549
  }
18532
18550
  _setTabAnimation() {
@@ -18609,7 +18627,7 @@ class SlotsComponent {
18609
18627
  this.group = tab.group;
18610
18628
  this.selectedTabIndex = i;
18611
18629
  this._cd.detectChanges();
18612
- this._replaceUrl();
18630
+ this._sync();
18613
18631
  return;
18614
18632
  }
18615
18633
  }
@@ -18617,7 +18635,7 @@ class SlotsComponent {
18617
18635
  await this._navParams(path, tab, params, queryParams, state);
18618
18636
  this.group = tab.group;
18619
18637
  this.selectedTabIndex = i;
18620
- this._replaceUrl();
18638
+ this._sync();
18621
18639
  return;
18622
18640
  }
18623
18641
  i++;
@@ -18639,13 +18657,13 @@ class SlotsComponent {
18639
18657
  else {
18640
18658
  this._navQueryParams(pane, queryParams, state);
18641
18659
  this.scrollTo(i);
18642
- this._replaceUrl();
18660
+ this._sync();
18643
18661
  return;
18644
18662
  }
18645
18663
  }
18646
18664
  else if (pane.route === route) {
18647
18665
  await this._navParams(path, pane, params, queryParams, state);
18648
- this._replaceUrl();
18666
+ this._sync();
18649
18667
  return;
18650
18668
  }
18651
18669
  i++;
@@ -18686,13 +18704,13 @@ class SlotsComponent {
18686
18704
  pane._fullscreen$.next(this.panes.length === 1);
18687
18705
  }
18688
18706
  route &&
18689
- this._replaceUrl();
18707
+ this._sync();
18690
18708
  }
18691
18709
  else {
18692
18710
  const pane = (policy & OpenPolicy.Tab) == OpenPolicy.Tab ?
18693
18711
  this.tabs[this.selectedTabIndex] : this.panes[this.selectedIndex];
18694
18712
  this._navQueryParams(pane, queryParams, state);
18695
- this._replaceUrl();
18713
+ this._sync();
18696
18714
  if ((policy & OpenPolicy.Tab) != OpenPolicy.Tab)
18697
18715
  this.select(this.selectedIndex);
18698
18716
  }
@@ -18952,7 +18970,7 @@ class SlotsComponent {
18952
18970
  this._cd.detectChanges();
18953
18971
  }
18954
18972
  /** */
18955
- _replaceUrl() {
18973
+ _sync() {
18956
18974
  this._navigating = true;
18957
18975
  this._history('push');
18958
18976
  setTimeout(() => this._navigating = false, 200);
@@ -18965,7 +18983,7 @@ class SlotsComponent {
18965
18983
  let path = this.panes.filter(p => p.route).map(s => s.fullPath).join(PATH_CHAR);
18966
18984
  if (this.tabs.length)
18967
18985
  path += PANE_CHAR + this.tabs.filter(p => p.route).map(s => s.fullPath).join(PATH_CHAR);
18968
- (mode == 'replace' ? history.replaceState : history.pushState)({
18986
+ const state = {
18969
18987
  bizdoc: true,
18970
18988
  step: history.state && history.state.bizdoc ? history.state.step + 1 : 1,
18971
18989
  selectedTabIndex: this.selectedTabIndex,
@@ -18975,13 +18993,17 @@ class SlotsComponent {
18975
18993
  group: this.group,
18976
18994
  swapTab: this.swapTab,
18977
18995
  prevGroup: this.prevGroup
18978
- }, '', '/' + path);
18996
+ };
18997
+ if (mode === 'push')
18998
+ history.pushState(state, '', '/' + path);
18999
+ else
19000
+ history.replaceState(state, '');
18979
19001
  }
18980
19002
  drop(evt) {
18981
19003
  const pane = this.panes[evt.previousIndex];
18982
19004
  this.panes.splice(evt.previousIndex, 1);
18983
19005
  this.panes.splice(evt.currentIndex, 0, pane);
18984
- this._replaceUrl();
19006
+ this._sync();
18985
19007
  }
18986
19008
  togglePinned(pane) {
18987
19009
  pane.pinned = !pane.pinned;
@@ -19114,8 +19136,11 @@ class SlotsComponent {
19114
19136
  return pane;
19115
19137
  }
19116
19138
  _insertPane(component, options, position) {
19117
- //this._animationBuilder.build([]).create(element, { params: {} }).play();
19118
- const pane = this._constract(component, 'pane', options);
19139
+ const stretch = (options.policy & OpenPolicy.Stretch) == OpenPolicy.Stretch;
19140
+ const pane = this._constract(component, 'pane', {
19141
+ stretch,
19142
+ ...options
19143
+ });
19119
19144
  if (position === undefined)
19120
19145
  position = this.panes.length;
19121
19146
  this.panes.push(pane);
@@ -19145,6 +19170,11 @@ class SlotsComponent {
19145
19170
  pane._comm$.subscribe(e => this._action(e, pane));
19146
19171
  return pane;
19147
19172
  }
19173
+ /**
19174
+ *
19175
+ * @param component
19176
+ * @param options
19177
+ */
19148
19178
  _insertTab(component, options) {
19149
19179
  const { policy } = options, dialog = (policy & OpenPolicy.Dialog) == OpenPolicy.Dialog, dismissable = (policy & OpenPolicy.Dismissable) == OpenPolicy.Dismissable;
19150
19180
  const tab = this._constract(component, 'tab', {
@@ -19153,7 +19183,6 @@ class SlotsComponent {
19153
19183
  dismissable
19154
19184
  });
19155
19185
  this.tabs.push(tab);
19156
- this.dialog = dialog;
19157
19186
  this._router._events$.next(new NavigationStart(tab));
19158
19187
  this._cd.detectChanges();
19159
19188
  if (tab.group && this.group !== tab.group && options.swap !== false) {
@@ -19196,6 +19225,11 @@ class SlotsComponent {
19196
19225
  this._back(this.swapTab);
19197
19226
  this.swapTab = null;
19198
19227
  }
19228
+ /**
19229
+ *
19230
+ * @param e
19231
+ * @param pane
19232
+ */
19199
19233
  _action(e, pane) {
19200
19234
  switch (e) {
19201
19235
  case 'focus':
@@ -19243,19 +19277,30 @@ class SlotsComponent {
19243
19277
  this.tabs.splice(0, this.tabs.length);
19244
19278
  this.selectedTabIndex = -1;
19245
19279
  this.swapTab = null;
19246
- this.dialog = false;
19247
- this._replaceUrl();
19280
+ this._sync();
19248
19281
  this._router._events$.next(new CollapseNavigation());
19249
19282
  }
19283
+ onResize() {
19284
+ if (this.panes.length && !this.panes[this.panes.length - 1].stretch) {
19285
+ const el = this._panesContainerRef.element.nativeElement, child = el.lastElementChild;
19286
+ child.style.minWidth =
19287
+ (el.parentElement.parentElement.clientWidth - child.offsetLeft - 2) + 'px';
19288
+ }
19289
+ }
19250
19290
  _resize() {
19291
+ //this.tabs.concat(this.panes).forEach(t => t._resize$.next({
19292
+ //} as any));
19251
19293
  window.dispatchEvent(new Event('resize'));
19252
19294
  }
19295
+ dismiss() {
19296
+ this.closeTab(this.selectedTabIndex);
19297
+ }
19253
19298
  closeTab(position) {
19254
19299
  const tab = this.tabs[position];
19255
19300
  this.tabs.splice(position, 1);
19256
19301
  this._destroyPane(tab);
19257
19302
  this.selectedTabIndex = this.tabs.length ? position > 0 ? position - 1 : 0 : -1;
19258
- this._replaceUrl();
19303
+ this._sync();
19259
19304
  }
19260
19305
  expandPane() {
19261
19306
  const pane = this.panes[this.selectedIndex];
@@ -19270,7 +19315,7 @@ class SlotsComponent {
19270
19315
  i++;
19271
19316
  } while (i < this.panes.length);
19272
19317
  this.selectedIndex = 0;
19273
- this._replaceUrl();
19318
+ this._sync();
19274
19319
  pane._fullscreen$.next(true);
19275
19320
  }
19276
19321
  _getHistoryStep() {
@@ -19286,7 +19331,7 @@ class SlotsComponent {
19286
19331
  tab._mode$.next('pane');
19287
19332
  tab._fullscreen$.next(true);
19288
19333
  this.selectedTabIndex = this.tabs.length ? 0 : -1;
19289
- this._replaceUrl();
19334
+ this._sync();
19290
19335
  }
19291
19336
  select(position) {
19292
19337
  if (this.selectedIndex === position)
@@ -19309,7 +19354,7 @@ class SlotsComponent {
19309
19354
  this._discardPane(pane);
19310
19355
  if (position >= this.selectedIndex)
19311
19356
  this.select(-1);
19312
- this._replaceUrl();
19357
+ this._sync();
19313
19358
  }
19314
19359
  /**
19315
19360
  *
@@ -19399,7 +19444,7 @@ class SlotsComponent {
19399
19444
  const el = this._children.item(index);
19400
19445
  el.focus();
19401
19446
  }
19402
- onResize(pane, event) {
19447
+ onPaneResize(pane, event) {
19403
19448
  const el = event.srcElement.previousElementSibling;
19404
19449
  const // remember mouse down info
19405
19450
  width = el.clientWidth, d = this._rtl ? -1 : 1;
@@ -19439,9 +19484,6 @@ class SlotsComponent {
19439
19484
  const delta = Math.max((e.clientX - event.clientX) * d, -width);
19440
19485
  el.style.width = el.style.minWidth = (width + delta) + 'px';
19441
19486
  localStorage.setItem('tabs', el.style.width);
19442
- // this.tabs[this.selectedTabIndex]._resize$.next({
19443
- // height: el.clientHeight, width: width + delta
19444
- // });
19445
19487
  }
19446
19488
  }
19447
19489
  _destroyPane(pane) {
@@ -19454,7 +19496,7 @@ class SlotsComponent {
19454
19496
  }
19455
19497
  }
19456
19498
  SlotsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: GuideService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
19457
- SlotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SlotsComponent, selector: "bizdoc-panes", host: { listeners: { "document:keydown.escape": "collapse()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["paning"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabing"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"breadcrumbs\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\">&nbsp;</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\">&nbsp;</div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon>&nbsp;\r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .panes-title h1 .breadcrumbs{font-size:smaller}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"], components: [{ 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: QuickToolsComponent, selector: "bizdoc-quicktools" }, { type: i8$3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { type: NgxComponentOutlet, selector: "ngx-component-outlet", inputs: ["type", "injector", "ngxComponentOutletContent"], outputs: ["create"] }, { type: i8$3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe }, animations: [panesAnimation,
19499
+ SlotsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SlotsComponent, selector: "bizdoc-panes", host: { listeners: { "document:keydown.escape": "collapse()", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panning"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabing"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div class=\"panes\">\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"breadcrumbs\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #panning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onPaneResize(p, $event)\">&nbsp;</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"backdrop\" *ngIf=\"dialog\" (click)=\"dismiss()\"></div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\">&nbsp;</div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon>&nbsp;\r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .panes-title h1 .breadcrumbs{font-size:smaller}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"], components: [{ 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: QuickToolsComponent, selector: "bizdoc-quicktools" }, { type: i8$3.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["color"], exportAs: ["matTabNavBar", "matTabNav"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12$2.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { type: NgxComponentOutlet, selector: "ngx-component-outlet", inputs: ["type", "injector", "ngxComponentOutletContent"], outputs: ["create"] }, { type: i8$3.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matTabLink"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe }, animations: [panesAnimation,
19458
19500
  panesTitleAnimation,
19459
19501
  paneAnimation,
19460
19502
  paramAnimation,
@@ -19471,13 +19513,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
19471
19513
  queryAnimation,
19472
19514
  tabsAnimation,
19473
19515
  tabAnimation
19474
- ], template: "<div class=\"panes\">\r\n <div class=\"backdrop\" [style.display]=\"dialog ? '' : 'none'\"></div>\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"breadcrumbs\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #paning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onResize(p, $event)\">&nbsp;</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\">&nbsp;</div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon>&nbsp;\r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .panes-title h1 .breadcrumbs{font-size:smaller}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"] }]
19516
+ ], template: "<div class=\"panes\">\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\"\r\n *ngIf=\"prev\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n <div class=\"panes-title\" [@title]=\"titleAnimation\">\r\n <h1>\r\n <button mat-icon-button (click)=\"back()\" *ngIf=\"swap\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button>\r\n <ng-container *ngFor=\"let p of panes; let first = first\">\r\n <span class=\"breadcrumbs\" *ngIf=\"!first\">\\</span>\r\n {{p.title}}\r\n </ng-container>\r\n <button mat-icon-button (click)=\"guide(panes[0].guide)\" *ngIf=\"panes[0]?.guide\" [bizdocTooltip]=\"'Help'|translate\"><mat-icon>help</mat-icon></button>\r\n </h1>\r\n <span class=\"divider\">\r\n </span>\r\n <bizdoc-quicktools></bizdoc-quicktools>\r\n </div>\r\n <div #panning class=\"panes-container\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"navigationArrows($event)\">\r\n <ng-container *ngFor=\"let p of panes; let i = index\">\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i\" class=\"pane-content\" @pane>\r\n <ngx-component-outlet [type]=\"p.component\" [injector]=\"p.injector\" (create)=\"p._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n <div class=\"pane-separator\" *ngIf=\"i < panes.length - 1\" (mousedown)=\"onPaneResize(p, $event)\">&nbsp;</div>\r\n </ng-container>\r\n </div>\r\n <div class=\"backdrop\" *ngIf=\"dialog\" (click)=\"dismiss()\"></div>\r\n <div class=\"scroll-arrow forward\"\r\n *ngIf=\"next\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n</div>\r\n<ng-container *ngIf=\"tabs.length\">\r\n <div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\">&nbsp;</div>\r\n <div class=\"mat-elevation-z18 tabs\" [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\" #tabing>\r\n <div class=\"row tabs-title\">\r\n <button mat-icon-button (click)=\"tabBack()\" *ngIf=\"swapTab\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n <h2>{{group}}</h2>\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon inline=\"true\" class=\"mat-icon-rtl-mirror\">open_in_full</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\">\r\n <a mat-tab-link *ngFor=\"let p of tabs; let i = index\" class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"p.badge\" [matBadgeHidden]=\"!p.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\">{{p.icon}}</mat-icon>&nbsp;\r\n {{p.title}}\r\n <mat-icon *ngIf=\"p.dismissable\" (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n <!--inline=\"true\"-->\r\n </a>\r\n </nav>\r\n <div *ngFor=\"let t of tabs; let i = index\" [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ngx-component-outlet [type]=\"t.component\" [injector]=\"t.injector\" (create)=\"t._instance = $event\"></ngx-component-outlet>\r\n </div>\r\n </div>\r\n</ng-container>\r\n", styles: [":host{display:flex;flex-direction:row;flex-grow:1;overflow-x:hidden}.panes{flex-grow:1;position:relative;overflow-x:hidden;display:inline-flex;flex-direction:column;flex-basis:100%}.panes .panes-title{display:flex;flex-direction:row;align-items:center;min-width:max-content}.panes .panes-title h1{font-size:xx-large;margin:12px;font-weight:100}.panes .panes-title h1 button{vertical-align:middle}.panes .panes-title h1 .breadcrumbs{font-size:smaller}.panes .scroll-arrow{position:absolute;cursor:pointer;top:50%;z-index:1000}.panes .scroll-arrow i{font-size:50px;opacity:.2}.panes .scroll-arrow i:hover{opacity:.9}.panes .scroll-arrow:last-child{right:0}.panes .panes-container{overflow-x:auto;height:100%;display:flex;flex-direction:row}.panes .panes-container .pane-content{display:block;border-right:1px solid #00000014;height:inherit;border-left-width:1px;border-left-style:double;border-left-color:transparent;flex-grow:1;min-width:420px;overflow-y:auto}.panes .panes-container .pane-content .pane{flex-grow:1}.panes .panes-container .pane-separator{width:8px}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-webkit-user-select:none;user-select:none}.tabs-separator{width:12px}::ng-deep [dir=rtl] .scroll-arrow:last-child{right:unset;left:0}.tabs{display:flex;flex-direction:column;z-index:1;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-tab-link .tool{opacity:0}.tabs .mat-tab-link:hover .tool{opacity:1}.tabs .tab{flex-grow:1;overflow-y:auto;overflow-x:hidden;display:flex}\n"] }]
19475
19517
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
19476
19518
  type: Inject,
19477
19519
  args: [PANES_DATA]
19478
19520
  }] }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PanesRouter }, { type: WindowTitleService }, { type: GuideService }, { type: i0.Injector }]; }, propDecorators: { _panesContainerRef: [{
19479
19521
  type: ViewChild,
19480
- args: ['paning', { read: ViewContainerRef, static: true }]
19522
+ args: ['panning', { read: ViewContainerRef, static: true }]
19481
19523
  }], _tabsElement: [{
19482
19524
  type: ViewChild,
19483
19525
  args: ['tabing']
@@ -19487,6 +19529,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
19487
19529
  }], collapse: [{
19488
19530
  type: HostListener,
19489
19531
  args: ['document:keydown.escape']
19532
+ }], onResize: [{
19533
+ type: HostListener,
19534
+ args: ['window:resize']
19490
19535
  }] } });
19491
19536
  const PANE_PARAMS_REGEX = /(:[\w\-]+)/g;
19492
19537
  function prepareRoutes(routes, treePath) {
@@ -20044,7 +20089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
20044
20089
  const PANES_CONFIG = [{
20045
20090
  path: 'dashboard',
20046
20091
  component: DashboardPaneComponent,
20047
- policy: OpenPolicy.Clear,
20092
+ policy: OpenPolicy.Clear | OpenPolicy.Stretch,
20048
20093
  },
20049
20094
  { component: BrokenPage, path: 'broken' },
20050
20095
  {
@@ -22759,7 +22804,10 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22759
22804
  width: 0, position: 'Outside'
22760
22805
  };
22761
22806
  this.legendSettings = {
22762
- visible: true, position: 'Top', shape: 'Diamond', alignment: 'Center', padding: 0, margin: { top: 0 }, location: { y: 0 }, textStyle: {
22807
+ visible: true, position: 'Top', shape: 'Diamond', alignment: 'Center',
22808
+ padding: 0, margin: { top: 0 },
22809
+ location: { y: 0 },
22810
+ textStyle: {
22763
22811
  fontFamily: FONT_FAMILY
22764
22812
  }
22765
22813
  };
@@ -22868,6 +22916,15 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22868
22916
  }
22869
22917
  _draw() {
22870
22918
  this.gauge && this.gauge.destroy();
22919
+ const axes = [{
22920
+ radius: '90%', maximum: this.max,
22921
+ startAngle: 270,
22922
+ endAngle: 90,
22923
+ majorTicks: this.majorTicks, direction: this.direction,
22924
+ labelStyle: this.labelStyle, lineStyle: this.lineStyle, minorTicks: this.minorTicks,
22925
+ ranges: this.ranges,
22926
+ pointers: this.pointers
22927
+ }];
22871
22928
  this.gauge = new CircularGauge({
22872
22929
  tooltip: this.tooltip,
22873
22930
  centerY: '50%',
@@ -22881,15 +22938,7 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22881
22938
  legendSettings: this.legendSettings,
22882
22939
  tooltipRender: this.tooltipRender.bind(this),
22883
22940
  enableRtl: this._session.inverse,
22884
- axes: [{
22885
- radius: '90%', maximum: this.max,
22886
- startAngle: 270,
22887
- endAngle: 90,
22888
- majorTicks: this.majorTicks, direction: this.direction,
22889
- labelStyle: this.labelStyle, lineStyle: this.lineStyle, minorTicks: this.minorTicks,
22890
- ranges: this.ranges,
22891
- pointers: this.pointers
22892
- }]
22941
+ axes
22893
22942
  }, this._elementRef.nativeElement);
22894
22943
  }
22895
22944
  _refresh() {
@@ -27326,6 +27375,7 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
27326
27375
  //{ provide: LOCALE_ID, useClass: SessionService.getLocale() },
27327
27376
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27328
27377
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27378
+ { provide: APP_INITIALIZER, useFactory: SessionProviderFactory, deps: [SessionService], multi: true },
27329
27379
  ], imports: [[
27330
27380
  DayJsModule,
27331
27381
  CommonModule,
@@ -27444,6 +27494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
27444
27494
  //{ provide: LOCALE_ID, useClass: SessionService.getLocale() },
27445
27495
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27446
27496
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27497
+ { provide: APP_INITIALIZER, useFactory: SessionProviderFactory, deps: [SessionService], multi: true },
27447
27498
  ],
27448
27499
  exports: [FileInput, FilterTagsComponent,
27449
27500
  DateFormatPipe, CalendarPipe, DifferencePipe, DurationPipe, TimeAgoPipe,
@@ -29944,6 +29995,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
29944
29995
  }]
29945
29996
  }] });
29946
29997
 
29998
+ registerLicense('ORg4AjUWIQA/Gnt2VVhhQlFaclhJXGFWfVJpTGpQdk5xdV9DaVZUTWY/P1ZhSXxRdkFjXX5ecnBUQ2lfVUI=');
29947
29999
  class BizDocModule {
29948
30000
  static forChild(config) {
29949
30001
  const { components } = config;