@bizdoc/core 1.14.0-next.8 → 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.
@@ -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);
@@ -18985,7 +19003,7 @@ class SlotsComponent {
18985
19003
  const pane = this.panes[evt.previousIndex];
18986
19004
  this.panes.splice(evt.previousIndex, 1);
18987
19005
  this.panes.splice(evt.currentIndex, 0, pane);
18988
- this._replaceUrl();
19006
+ this._sync();
18989
19007
  }
18990
19008
  togglePinned(pane) {
18991
19009
  pane.pinned = !pane.pinned;
@@ -19118,8 +19136,11 @@ class SlotsComponent {
19118
19136
  return pane;
19119
19137
  }
19120
19138
  _insertPane(component, options, position) {
19121
- //this._animationBuilder.build([]).create(element, { params: {} }).play();
19122
- 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
+ });
19123
19144
  if (position === undefined)
19124
19145
  position = this.panes.length;
19125
19146
  this.panes.push(pane);
@@ -19149,6 +19170,11 @@ class SlotsComponent {
19149
19170
  pane._comm$.subscribe(e => this._action(e, pane));
19150
19171
  return pane;
19151
19172
  }
19173
+ /**
19174
+ *
19175
+ * @param component
19176
+ * @param options
19177
+ */
19152
19178
  _insertTab(component, options) {
19153
19179
  const { policy } = options, dialog = (policy & OpenPolicy.Dialog) == OpenPolicy.Dialog, dismissable = (policy & OpenPolicy.Dismissable) == OpenPolicy.Dismissable;
19154
19180
  const tab = this._constract(component, 'tab', {
@@ -19157,7 +19183,6 @@ class SlotsComponent {
19157
19183
  dismissable
19158
19184
  });
19159
19185
  this.tabs.push(tab);
19160
- this.dialog = dialog;
19161
19186
  this._router._events$.next(new NavigationStart(tab));
19162
19187
  this._cd.detectChanges();
19163
19188
  if (tab.group && this.group !== tab.group && options.swap !== false) {
@@ -19200,6 +19225,11 @@ class SlotsComponent {
19200
19225
  this._back(this.swapTab);
19201
19226
  this.swapTab = null;
19202
19227
  }
19228
+ /**
19229
+ *
19230
+ * @param e
19231
+ * @param pane
19232
+ */
19203
19233
  _action(e, pane) {
19204
19234
  switch (e) {
19205
19235
  case 'focus':
@@ -19247,19 +19277,30 @@ class SlotsComponent {
19247
19277
  this.tabs.splice(0, this.tabs.length);
19248
19278
  this.selectedTabIndex = -1;
19249
19279
  this.swapTab = null;
19250
- this.dialog = false;
19251
- this._replaceUrl();
19280
+ this._sync();
19252
19281
  this._router._events$.next(new CollapseNavigation());
19253
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
+ }
19254
19290
  _resize() {
19291
+ //this.tabs.concat(this.panes).forEach(t => t._resize$.next({
19292
+ //} as any));
19255
19293
  window.dispatchEvent(new Event('resize'));
19256
19294
  }
19295
+ dismiss() {
19296
+ this.closeTab(this.selectedTabIndex);
19297
+ }
19257
19298
  closeTab(position) {
19258
19299
  const tab = this.tabs[position];
19259
19300
  this.tabs.splice(position, 1);
19260
19301
  this._destroyPane(tab);
19261
19302
  this.selectedTabIndex = this.tabs.length ? position > 0 ? position - 1 : 0 : -1;
19262
- this._replaceUrl();
19303
+ this._sync();
19263
19304
  }
19264
19305
  expandPane() {
19265
19306
  const pane = this.panes[this.selectedIndex];
@@ -19274,7 +19315,7 @@ class SlotsComponent {
19274
19315
  i++;
19275
19316
  } while (i < this.panes.length);
19276
19317
  this.selectedIndex = 0;
19277
- this._replaceUrl();
19318
+ this._sync();
19278
19319
  pane._fullscreen$.next(true);
19279
19320
  }
19280
19321
  _getHistoryStep() {
@@ -19290,7 +19331,7 @@ class SlotsComponent {
19290
19331
  tab._mode$.next('pane');
19291
19332
  tab._fullscreen$.next(true);
19292
19333
  this.selectedTabIndex = this.tabs.length ? 0 : -1;
19293
- this._replaceUrl();
19334
+ this._sync();
19294
19335
  }
19295
19336
  select(position) {
19296
19337
  if (this.selectedIndex === position)
@@ -19313,7 +19354,7 @@ class SlotsComponent {
19313
19354
  this._discardPane(pane);
19314
19355
  if (position >= this.selectedIndex)
19315
19356
  this.select(-1);
19316
- this._replaceUrl();
19357
+ this._sync();
19317
19358
  }
19318
19359
  /**
19319
19360
  *
@@ -19403,7 +19444,7 @@ class SlotsComponent {
19403
19444
  const el = this._children.item(index);
19404
19445
  el.focus();
19405
19446
  }
19406
- onResize(pane, event) {
19447
+ onPaneResize(pane, event) {
19407
19448
  const el = event.srcElement.previousElementSibling;
19408
19449
  const // remember mouse down info
19409
19450
  width = el.clientWidth, d = this._rtl ? -1 : 1;
@@ -19443,9 +19484,6 @@ class SlotsComponent {
19443
19484
  const delta = Math.max((e.clientX - event.clientX) * d, -width);
19444
19485
  el.style.width = el.style.minWidth = (width + delta) + 'px';
19445
19486
  localStorage.setItem('tabs', el.style.width);
19446
- // this.tabs[this.selectedTabIndex]._resize$.next({
19447
- // height: el.clientHeight, width: width + delta
19448
- // });
19449
19487
  }
19450
19488
  }
19451
19489
  _destroyPane(pane) {
@@ -19458,7 +19496,7 @@ class SlotsComponent {
19458
19496
  }
19459
19497
  }
19460
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 });
19461
- 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,
19462
19500
  panesTitleAnimation,
19463
19501
  paneAnimation,
19464
19502
  paramAnimation,
@@ -19475,13 +19513,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
19475
19513
  queryAnimation,
19476
19514
  tabsAnimation,
19477
19515
  tabAnimation
19478
- ], 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"] }]
19479
19517
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
19480
19518
  type: Inject,
19481
19519
  args: [PANES_DATA]
19482
19520
  }] }, { type: SessionService }, { type: i0.ChangeDetectorRef }, { type: PanesRouter }, { type: WindowTitleService }, { type: GuideService }, { type: i0.Injector }]; }, propDecorators: { _panesContainerRef: [{
19483
19521
  type: ViewChild,
19484
- args: ['paning', { read: ViewContainerRef, static: true }]
19522
+ args: ['panning', { read: ViewContainerRef, static: true }]
19485
19523
  }], _tabsElement: [{
19486
19524
  type: ViewChild,
19487
19525
  args: ['tabing']
@@ -19491,6 +19529,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
19491
19529
  }], collapse: [{
19492
19530
  type: HostListener,
19493
19531
  args: ['document:keydown.escape']
19532
+ }], onResize: [{
19533
+ type: HostListener,
19534
+ args: ['window:resize']
19494
19535
  }] } });
19495
19536
  const PANE_PARAMS_REGEX = /(:[\w\-]+)/g;
19496
19537
  function prepareRoutes(routes, treePath) {
@@ -20048,7 +20089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
20048
20089
  const PANES_CONFIG = [{
20049
20090
  path: 'dashboard',
20050
20091
  component: DashboardPaneComponent,
20051
- policy: OpenPolicy.Clear,
20092
+ policy: OpenPolicy.Clear | OpenPolicy.Stretch,
20052
20093
  },
20053
20094
  { component: BrokenPage, path: 'broken' },
20054
20095
  {
@@ -22763,7 +22804,10 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22763
22804
  width: 0, position: 'Outside'
22764
22805
  };
22765
22806
  this.legendSettings = {
22766
- 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: {
22767
22811
  fontFamily: FONT_FAMILY
22768
22812
  }
22769
22813
  };
@@ -22872,6 +22916,15 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22872
22916
  }
22873
22917
  _draw() {
22874
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
+ }];
22875
22928
  this.gauge = new CircularGauge({
22876
22929
  tooltip: this.tooltip,
22877
22930
  centerY: '50%',
@@ -22885,15 +22938,7 @@ let PersonalScoreWidget = class PersonalScoreWidget {
22885
22938
  legendSettings: this.legendSettings,
22886
22939
  tooltipRender: this.tooltipRender.bind(this),
22887
22940
  enableRtl: this._session.inverse,
22888
- axes: [{
22889
- radius: '90%', maximum: this.max,
22890
- startAngle: 270,
22891
- endAngle: 90,
22892
- majorTicks: this.majorTicks, direction: this.direction,
22893
- labelStyle: this.labelStyle, lineStyle: this.lineStyle, minorTicks: this.minorTicks,
22894
- ranges: this.ranges,
22895
- pointers: this.pointers
22896
- }]
22941
+ axes
22897
22942
  }, this._elementRef.nativeElement);
22898
22943
  }
22899
22944
  _refresh() {
@@ -27330,6 +27375,7 @@ SharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
27330
27375
  //{ provide: LOCALE_ID, useClass: SessionService.getLocale() },
27331
27376
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27332
27377
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27378
+ { provide: APP_INITIALIZER, useFactory: SessionProviderFactory, deps: [SessionService], multi: true },
27333
27379
  ], imports: [[
27334
27380
  DayJsModule,
27335
27381
  CommonModule,
@@ -27448,6 +27494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
27448
27494
  //{ provide: LOCALE_ID, useClass: SessionService.getLocale() },
27449
27495
  { provide: HTTP_INTERCEPTORS, useClass: AppHttpInterceptor, multi: true },
27450
27496
  { provide: APP_INITIALIZER, useFactory: TranslateProviderFactory, deps: [TranslateService], multi: true },
27497
+ { provide: APP_INITIALIZER, useFactory: SessionProviderFactory, deps: [SessionService], multi: true },
27451
27498
  ],
27452
27499
  exports: [FileInput, FilterTagsComponent,
27453
27500
  DateFormatPipe, CalendarPipe, DifferencePipe, DurationPipe, TimeAgoPipe,