@bizdoc/core 3.3.5 → 3.3.8

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.
Files changed (57) hide show
  1. package/assets/bizdoc-schema.json +5 -1
  2. package/fesm2022/bizdoc-core.mjs +180 -158
  3. package/fesm2022/bizdoc-core.mjs.map +1 -1
  4. package/lib/admin/architecture/cube-axes-filter.component.d.ts +2 -2
  5. package/lib/admin/architecture/declarations.d.ts +3 -0
  6. package/lib/admin/architecture/elements/notification.component.d.ts +9 -0
  7. package/lib/browse/browse-items.component.d.ts +2 -2
  8. package/lib/core/base.d.ts +3 -0
  9. package/lib/core/fields/axes-picker.field.d.ts +2 -2
  10. package/lib/core/inputs/combination-picker-body.d.ts +2 -2
  11. package/lib/core/inputs/combination-pool.d.ts +2 -2
  12. package/lib/core/models.d.ts +4 -1
  13. package/lib/core/slots/pane-ref.d.ts +2 -1
  14. package/lib/core/slots/slots.component.d.ts +1 -0
  15. package/lib/cube/accum/accum.component.d.ts +2 -2
  16. package/lib/cube/chart/chart.component.d.ts +2 -2
  17. package/lib/cube/cube-info.service.d.ts +2 -2
  18. package/lib/cube/cube.service.d.ts +3 -3
  19. package/lib/cube/explore/explore-items.component.d.ts +2 -2
  20. package/lib/cube/explore/explore.pane.component.d.ts +2 -2
  21. package/lib/cube/explore/item-resolver.service.d.ts +3 -3
  22. package/lib/cube/filter/filter.component.d.ts +2 -2
  23. package/lib/cube/grid/grid.component.d.ts +2 -2
  24. package/lib/cube/matrix/matrix.base.d.ts +3 -3
  25. package/lib/cube/matrix/matrix.mobile.component.d.ts +2 -2
  26. package/lib/cube/matrix/matrix.pane.component.d.ts +2 -2
  27. package/lib/cube/matrix/popup.component.d.ts +2 -2
  28. package/lib/cube/matrix/table.component.d.ts +2 -2
  29. package/lib/cube/parallel/parallel.component.d.ts +2 -2
  30. package/lib/cube/pivot/pivot.component.d.ts +2 -2
  31. package/lib/cube/spreadsheet/spreadsheet.component.d.ts +2 -2
  32. package/lib/cube/sum/sum.component.d.ts +2 -2
  33. package/lib/cube/view-base.d.ts +3 -3
  34. package/lib/cube/view.mobile.component.d.ts +2 -2
  35. package/lib/cube/view.pane.component.d.ts +2 -2
  36. package/lib/dashboard/cube/accum-cube.widget.d.ts +2 -2
  37. package/lib/dashboard/cube/cube-analysis.base.d.ts +3 -3
  38. package/lib/dashboard/cube/cube-chart.widget.d.ts +2 -2
  39. package/lib/options/options.component.d.ts +1 -0
  40. package/lib/reports/cube/grid-documents.component.d.ts +2 -2
  41. package/lib/reports/cube/table-documents.component.d.ts +2 -2
  42. package/lib/reports/cube/usage-base.d.ts +3 -3
  43. package/lib/reports/cube/usage-chart.component.d.ts +2 -2
  44. package/lib/reports/cube/usage-pivot.component.d.ts +2 -2
  45. package/lib/shared.module.d.ts +1 -1
  46. package/lib/system.module.d.ts +56 -56
  47. package/lib/views/cube/chart.component.d.ts +2 -2
  48. package/lib/views/cube/cube-base.d.ts +3 -3
  49. package/lib/views/cube/explore.component.d.ts +2 -2
  50. package/lib/views/cube/matrix.component.d.ts +2 -2
  51. package/lib/views/cube/parallel.component.d.ts +2 -2
  52. package/lib/views/cube/pivot.component.d.ts +2 -2
  53. package/lib/views/cube/sum.component.d.ts +2 -2
  54. package/lib/views/cube/view.component.d.ts +2 -2
  55. package/package.json +1 -1
  56. package/public-api.d.ts +1 -1
  57. /package/lib/notifications/types/{content.notification.d.ts → content-message.notification.d.ts} +0 -0
@@ -14,7 +14,7 @@ import { Loader } from '@googlemaps/js-api-loader';
14
14
  import * as firebase from 'firebase/app';
15
15
  import { getMessaging, deleteToken, getToken } from 'firebase/messaging';
16
16
  import * as i1 from '@angular/common/http';
17
- import { HttpRequest, HttpResponse, HttpEventType, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi, HttpClientModule } from '@angular/common/http';
17
+ import { HttpRequest, HttpResponse, HttpEventType, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
18
18
  import * as i2 from 'ngx-cookie-service';
19
19
  import { CookieService } from 'ngx-cookie-service';
20
20
  import * as i10 from '@angular/material/icon';
@@ -3605,6 +3605,7 @@ class OptionsComponent {
3605
3605
  myDocumentStateChange: this._fb.control(false),
3606
3606
  cubeAnomaly: this._fb.control(false),
3607
3607
  sound: this._fb.control(false),
3608
+ extra: this._fb.group({}),
3608
3609
  }),
3609
3610
  tags: this._fb.control(null),
3610
3611
  emails: this._fb.group({
@@ -3634,6 +3635,9 @@ class OptionsComponent {
3634
3635
  return item ? item.name : null;
3635
3636
  };
3636
3637
  this.guides = this._guide.guides.filter(g => g.mode !== 'Private');
3638
+ if (!this._session.isImpersonating) {
3639
+ this.guidesCount = this.guides.filter(w => w.mode === 'Eager').length || null;
3640
+ }
3637
3641
  this.languages = this._session.languages;
3638
3642
  this.currentLanguage = this._session.language;
3639
3643
  this.available = this._session.state;
@@ -3641,6 +3645,7 @@ class OptionsComponent {
3641
3645
  this.profile = this._session.profile;
3642
3646
  this.voting = !config.comments || config.comments.voting !== false;
3643
3647
  this.options = this._session.profile.options;
3648
+ this._session.profile.notifications.forEach(n => n.settings !== false && this.form.controls.notifications.controls.extra.addControl(n.name, _fb.control(null)));
3644
3649
  }
3645
3650
  close() {
3646
3651
  this.form.valid &&
@@ -3671,9 +3676,6 @@ class OptionsComponent {
3671
3676
  }
3672
3677
  ngOnInit() {
3673
3678
  this._hub.state$.pipe(startWith(this._hub.state), takeUntil(this._destroy)).subscribe(s => this.online = s === HubConnectionState.Connected);
3674
- if (!this._session.isImpersonating) {
3675
- this.guidesCount = this.guides.filter(w => w.mode === 'Eager').length || null;
3676
- }
3677
3679
  const { outOfOffice, grantAccess, notifications, emails } = this.form.controls;
3678
3680
  this.form.patchValue(this.options, { emitEvent: false });
3679
3681
  if (!this.options.notifications.active)
@@ -3809,11 +3811,11 @@ class OptionsComponent {
3809
3811
  this._destroy.complete();
3810
3812
  }
3811
3813
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: OptionsComponent, deps: [{ token: PromptService }, { token: GuideService }, { token: HubService }, { token: i2$2.MatDialog }, { token: i1$3.FormBuilder }, { token: AccountService }, { token: PromptService }, { token: SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
3812
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n }\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (item of form.value.tags; track item) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span>&nbsp; - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
3814
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: OptionsComponent, isStandalone: false, selector: "bizdoc-options", inputs: { sectionName: ["section", "sectionName"] }, host: { listeners: { "document:keydown.escape": "close()" } }, viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "oooTmpl", first: true, predicate: ["oooTmpl"], descendants: true, static: true }, { propertyName: "notificationsTmpl", first: true, predicate: ["notificationsTmpl"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n }\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (item of form.value.tags; track item) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span>&nbsp; - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i2$3.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i2$3.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2$3.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2$3.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2$3.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.LowerCasePipe, name: "lowercase" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UserNamePipe, name: "userName" }], animations: [verticalSwapAnimation] }); }
3813
3815
  }
3814
3816
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: OptionsComponent, decorators: [{
3815
3817
  type: Component,
3816
- args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n }\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (item of form.value.tags; track item) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span>&nbsp; - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"] }]
3818
+ args: [{ standalone: false, selector: 'bizdoc-options', animations: [verticalSwapAnimation], template: "<div class=\"column\">\r\n <div class=\"profile-name\">\r\n <span class=\"mat-headline-6\">\r\n @if (profile.byName) {\r\n {{profile.byName}} \\\r\n }\r\n {{profile.name}}\r\n </span>\r\n </div>\r\n\r\n <mat-divider />\r\n\r\n <div class=\"row\">\r\n <mat-nav-list class=\"nav-list\">\r\n <mat-list-item (click)=\"nav('notifications', notificationsTmpl, 0)\" [class.active]=\"sectionName === 'notifications'\">\r\n <span matListItemTitle>{{'Notifications' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('emails', emailsTmpl, 1)\" [class.active]=\"sectionName === 'emails'\">\r\n <span matListItemTitle>{{'Emails' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('out_of_office', oooTmpl, 2)\" [class.active]=\"sectionName === 'out_of_office'\">\r\n <span matListItemTitle>{{'OutOfOffice' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('grant_access', grantAccessTmpl, 3)\" [class.active]=\"sectionName === 'grant_access'\">\r\n <span matListItemTitle>{{'GrantAccess' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"nav('preferences', preferencesTmpl, 4)\" [class.active]=\"sectionName === 'preferences'\">\r\n <span matListItemTitle>{{'Preferences' | translate}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n <div class=\"separator\"></div>\r\n <form autocomplete=\"off\" [@v-swape]=\"sectionIndex\">\r\n <ng-container *ngTemplateOutlet=\"sectionTmpl\"></ng-container>\r\n </form>\r\n </div>\r\n <mat-divider />\r\n <!--keys-->\r\n @if(!isMobile) {\r\n <dl class=\"keys mat-body-2\">\r\n <dt>Alt+n</dt>\r\n <dd>{{'AltNHelp'|translate}}</dd>\r\n <dt>Ctrl+s</dt>\r\n <dd>{{'CtrlSHelp'|translate}}</dd>\r\n <dt>Alt+s</dt>\r\n <dd>{{'AltSHelp'|translate}}</dd>\r\n <dt>Alt+q</dt>\r\n <dd>{{'AltQHelp'|translate}}</dd>\r\n <dt>Alt+a</dt>\r\n <dd>{{'AltAHelp'|translate}}</dd>\r\n <dt>Alt+h</dt>\r\n <dd>{{'AltHHelp'|translate}}</dd>\r\n <dt>Ctrl+.</dt>\r\n <dd>{{'CtrlDotHelp'|translate}}</dd>\r\n </dl>\r\n }\r\n <!--themes-->\r\n @if (themes.length > 1) {\r\n <div class=\"row center\">\r\n @for (t of themes; track t) {\r\n <button (click)=\"changeTheme(t)\" mat-icon-button class=\"theme\" [style.background]=\"t.color\" [class.active]=\"t.name === theme\" [class.dark]=\"t.dark\" [bizdocTooltip]=\"'Theme'|translate\"></button>\r\n }\r\n </div>\r\n }\r\n</div>\r\n<!--guide-->\r\n<mat-nav-list role=\"list\">\r\n <mat-divider></mat-divider>\r\n <h3 mat-subheader [matBadge]=\"guidesCount\" matBadgeColor=\"accent\" matBadgeOverlap=\"false\" matBadgeSize=\"small\">{{'Help'|translate}}</h3>\r\n @for (g of guides; track g) {\r\n <button mat-menu-item (click)=\"guide(g.name)\">{{g.title}}</button>\r\n }\r\n</mat-nav-list>\r\n<mat-divider></mat-divider>\r\n<!--footer-->\r\n<div class=\"row footer\">\r\n <button mat-button role=\"listitem\" [matMenuTriggerFor]=\"language\">\r\n {{currentLanguage | translate}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n <!--'ChangeLanguage'-->\r\n </button>\r\n <mat-menu #language>\r\n @for (l of languages; track l) {\r\n <button mat-menu-item (click)=\"changeLanguage(l)\">{{l | translate}}</button>\r\n }\r\n </mat-menu>\r\n @if (online) {\r\n <button mat-button [matMenuTriggerFor]=\"availability\">\r\n {{'ShowAs' | translate : (available | translate | lowercase)}}\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n }\r\n <mat-menu #availability>\r\n @for (m of modes; track m) {\r\n <button mat-menu-item (click)=\"setAvailable(m)\">{{m | translate}}</button>\r\n }\r\n </mat-menu>\r\n <span class=\"divider\"></span>\r\n <button mat-button role=\"listitem\" (click)=\"about()\">{{ 'About' | translate}}</button>\r\n @if (!online) {\r\n <button mat-icon-button (click)=\"revive()\" [bizdocTooltip]=\"'Connect'|translate\">\r\n <mat-icon>wifi_off</mat-icon>\r\n </button>\r\n }\r\n</div>\r\n<!--preferences-->\r\n<ng-template #preferencesTmpl>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Tags'|translate}}</mat-label>\r\n <mat-chip-grid #chips>\r\n @for (item of form.value.tags; track item) {\r\n <mat-chip-row [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--notifications-->\r\n<ng-template #notificationsTmpl>\r\n <div [formGroup]=\"form.controls.notifications\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"likes\" [style.display]=\"voting?'':'none'\">{{'LikedComment' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-checkbox>\r\n <div formGroupName=\"extra\"> \r\n @for(n of profile.notifications; track n.name) {\r\n <mat-checkbox [formControlName]=\"n.name\">{{n.title}}</mat-checkbox>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button type=\"button\" (click)=\"toggleSound()\" [disabled]=\"!form.value.notifications.active\" [bizdocTooltip]=\"(form.value.notifications.sound ? 'SoundOn': 'SoundOff')|translate\"><mat-icon>{{form.value.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<!--emails-->\r\n<ng-template #emailsTmpl>\r\n <div [formGroup]=\"form.controls.emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-checkbox formControlName=\"mail\">{{'Mails' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"chat\">{{'Conversations' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-checkbox>\r\n <mat-checkbox formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-checkbox>\r\n </div>\r\n</ng-template>\r\n<!--ooo-->\r\n<ng-template #oooTmpl>\r\n <div [formGroup]=\"form.controls.outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"oooId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"oooSelected($event)\">\r\n @for (u of susers$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\">\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n<!--grantAccess-->\r\n<ng-template #grantAccessTmpl>\r\n <div [formGroup]=\"form.controls.grantAccess\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field>\r\n <mat-label>{{'Associates'| translate}}</mat-label>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n @for (u of form.value.grantAccess.users || []; track u.id) {\r\n <mat-chip-row (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n }\r\n </mat-chip-grid>\r\n <input [formControl]=\"grantUserIds\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n @for (u of gusers$ | async; track u.id) {\r\n <mat-option [value]=\"u.id\">\r\n {{u.name}}\r\n @if (u.email) {\r\n <span>&nbsp; - {{u.email}}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{max-width:80vw;min-width:420px}.footer{align-items:center}.profile-name{margin:8px}.theme{height:22px!important;width:22px!important;-moz-border-radius:13px 13px!important;-webkit-border-radius:13px 13px!important;border-radius:13px!important;margin:4px!important}.theme.active.dark{border:2px solid #f4f4f4}.keys{padding:8px}.keys dt{width:72px;float:inline-start;clear:both;font-variant-caps:all-small-caps}.keys dd{float:inline-end;font-size:small;margin:0}.separator{height:280px;width:1px;background-color:#0003}form{padding:20px 8px 0;min-width:320px}\n"] }]
3817
3819
  }], ctorParameters: () => [{ type: PromptService }, { type: GuideService }, { type: HubService }, { type: i2$2.MatDialog }, { type: i1$3.FormBuilder }, { type: AccountService }, { type: PromptService }, { type: SessionService }, { type: undefined, decorators: [{
3818
3820
  type: Inject,
3819
3821
  args: [BIZDOC_CONFIG]
@@ -6240,7 +6242,7 @@ const AXIS_SPECIAL_CHARS = /[\.;#\-,\!]/;
6240
6242
  const AXIS_VALUE_PATTERN = /^((!?\w+(\,\w+)*)|(!?\w+\-\w+)|(!?[\w\.\*\#]+))([;]((!?\w+(\,\w+)*)|(!?\w+\-\w+)|(!?[\w\.\*\#]+)))*$/;
6241
6243
  const CLDR_FILES = ['cldr-data/main/{0}/currencies.json', 'cldr-data/main/{0}/ca-gregorian.json', 'cldr-data/main/{0}/numbers.json', 'cldr-data/main/{0}/timeZoneNames.json', 'cldr-data/supplemental/numberingSystems.json'];
6242
6244
  /** query cube */
6243
- class CubeService {
6245
+ class AnalysisService {
6244
6246
  // ctor
6245
6247
  constructor(_config, _http, _type, _session) {
6246
6248
  this._config = _config;
@@ -6626,10 +6628,10 @@ class CubeService {
6626
6628
  });
6627
6629
  });
6628
6630
  }
6629
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6630
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeService, providedIn: 'root' }); }
6631
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AnalysisService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6632
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AnalysisService, providedIn: 'root' }); }
6631
6633
  }
6632
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeService, decorators: [{
6634
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AnalysisService, decorators: [{
6633
6635
  type: Injectable,
6634
6636
  args: [{ providedIn: 'root' }]
6635
6637
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -6825,13 +6827,13 @@ class DesignerCubeFilterComponent {
6825
6827
  this._destroy.next();
6826
6828
  this._destroy.complete();
6827
6829
  }
6828
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: DesignerCubeFilterComponent, deps: [{ token: CubeService }, { token: DesignerRef }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
6830
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: DesignerCubeFilterComponent, deps: [{ token: AnalysisService }, { token: DesignerRef }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
6829
6831
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: DesignerCubeFilterComponent, isStandalone: false, selector: "bizdoc-designer-cube-filter", inputs: { cube: "cube", form: "form" }, usesOnChanges: true, ngImport: i0, template: "<h2 class=\"mat-h2\">{{'Filters'|translate}}</h2>\r\n<div [formGroup]=\"form\" class=\"column\">\r\n @for (a of cube.axes; track a) {\r\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\">\r\n @switch (a.selectionMode) {\r\n @case ('Pattern') {\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" autofocus\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @case ('Search') {\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"displayValue\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\r\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (inp.value) {\r\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n }\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @default {\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\r\n @if (a.selectionMode !== 'Multiple') {\r\n <mat-option>{{'All' | translate}}</mat-option>\r\n }\r\n @for (r of sources[a.name] | async; track r) {\r\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\r\n }\r\n </mat-select>\r\n }\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
6830
6832
  }
6831
6833
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: DesignerCubeFilterComponent, decorators: [{
6832
6834
  type: Component,
6833
6835
  args: [{ standalone: false, selector: 'bizdoc-designer-cube-filter', template: "<h2 class=\"mat-h2\">{{'Filters'|translate}}</h2>\r\n<div [formGroup]=\"form\" class=\"column\">\r\n @for (a of cube.axes; track a) {\r\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\">\r\n @switch (a.selectionMode) {\r\n @case ('Pattern') {\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" autofocus\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @case ('Search') {\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"displayValue\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\r\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (inp.value) {\r\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n }\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @default {\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\r\n @if (a.selectionMode !== 'Multiple') {\r\n <mat-option>{{'All' | translate}}</mat-option>\r\n }\r\n @for (r of sources[a.name] | async; track r) {\r\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\r\n }\r\n </mat-select>\r\n }\r\n }\r\n </mat-form-field>\r\n }\r\n </div>\r\n" }]
6834
- }], ctorParameters: () => [{ type: CubeService }, { type: DesignerRef }, { type: i1$3.FormBuilder }], propDecorators: { cube: [{
6836
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: DesignerRef }, { type: i1$3.FormBuilder }], propDecorators: { cube: [{
6835
6837
  type: Input
6836
6838
  }], form: [{
6837
6839
  type: Input
@@ -7815,7 +7817,8 @@ class PaneRef {
7815
7817
  ;
7816
7818
  get route() { return this._options.route; }
7817
7819
  ;
7818
- constructor(component, injector, _options) {
7820
+ constructor(component, injector, id, _options) {
7821
+ this.id = id;
7819
7822
  this._options = _options;
7820
7823
  this._command$ = new Subject();
7821
7824
  /** */
@@ -7972,13 +7975,13 @@ class CubeFilterComponent {
7972
7975
  this._destroy.next();
7973
7976
  this._destroy.complete();
7974
7977
  }
7975
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeFilterComponent, deps: [{ token: CubeService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$3.FormBuilder }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
7978
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeFilterComponent, deps: [{ token: AnalysisService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1$3.FormBuilder }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
7976
7979
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeFilterComponent, isStandalone: false, selector: "bizdoc-cube-filter", inputs: { cube: "cube", exclude: "exclude", include: "include", axes: "axes" }, outputs: { axesChange: "axesChange" }, usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n @for (a of visibleAxes; track a) {\r\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\" subscriptSizing=\"dynamic\">\r\n @switch (a.selectionMode) {\r\n @case ('Pattern') {\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" autofocus\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @case ('Search') {\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"displayValue\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\r\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (inp.value) {\r\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n }\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @default {\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\r\n @if (a.selectionMode !== 'Multiple') {\r\n <mat-option>{{'All' | translate}}</mat-option>\r\n }\r\n @for (r of sources[a.name] | async; track r) {\r\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\r\n }\r\n </mat-select>\r\n }\r\n }\r\n </mat-form-field>\r\n }\r\n</form>\r\n", styles: ["form{padding:4px;flex-flow:column wrap;box-sizing:border-box;gap:4px;display:flex}form>*{flex:1 1 100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.SlicePipe, name: "slice" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }] }); }
7977
7980
  }
7978
7981
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeFilterComponent, decorators: [{
7979
7982
  type: Component,
7980
7983
  args: [{ standalone: false, selector: 'bizdoc-cube-filter', template: "<form [formGroup]=\"form\">\r\n @for (a of visibleAxes; track a) {\r\n <mat-form-field [attr.data-help]=\"'axis-'+a.name\" subscriptSizing=\"dynamic\">\r\n @switch (a.selectionMode) {\r\n @case ('Pattern') {\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" autofocus\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @case ('Search') {\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"displayValue\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n @for (r of sources[a.name] | async | filterBy : 'value' : inp.value | slice:0:50; track r) {\r\n <mat-option [value]=\"r\">{{r.value}}</mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if (inp.value) {\r\n <button mat-icon-button matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n }\r\n @if (form.controls[a.name].invalid) {\r\n <mat-error>{{'AxisPatternErr' |translate}}</mat-error>\r\n }\r\n }\r\n @default {\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\">\r\n @if (a.selectionMode !== 'Multiple') {\r\n <mat-option>{{'All' | translate}}</mat-option>\r\n }\r\n @for (r of sources[a.name] | async; track r) {\r\n <mat-option [value]=\"r.key\">{{r.value}}</mat-option>\r\n }\r\n </mat-select>\r\n }\r\n }\r\n </mat-form-field>\r\n }\r\n</form>\r\n", styles: ["form{padding:4px;flex-flow:column wrap;box-sizing:border-box;gap:4px;display:flex}form>*{flex:1 1 100%;box-sizing:border-box}\n"] }]
7981
- }], ctorParameters: () => [{ type: CubeService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$3.FormBuilder }, { type: SessionService }], propDecorators: { cube: [{
7984
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1$3.FormBuilder }, { type: SessionService }], propDecorators: { cube: [{
7982
7985
  type: Input
7983
7986
  }], exclude: [{
7984
7987
  type: Input
@@ -9516,7 +9519,7 @@ class BrowseItemsComponent {
9516
9519
  this._destroy.next();
9517
9520
  this._destroy.complete();
9518
9521
  }
9519
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: BrowseItemsComponent, deps: [{ token: MailboxService }, { token: AccountService }, { token: CubeService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: i0.ChangeDetectorRef }, { token: RouterImpl }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
9522
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: BrowseItemsComponent, deps: [{ token: MailboxService }, { token: AccountService }, { token: AnalysisService }, { token: SessionService }, { token: PromptService }, { token: TranslateService }, { token: i0.ChangeDetectorRef }, { token: RouterImpl }, { token: HubService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
9520
9523
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: BrowseItemsComponent, isStandalone: false, selector: "bizdoc-browse-items", inputs: { folderId: "folderId", filterType: "filterType", filters: "filters" }, outputs: { onopen: "open", onInsights: "insights" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$7.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "directive", type: i2$7.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$6.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CheckboxComponent, selector: "bizdoc-checkbox", inputs: ["checked", "color", "icon"] }, { kind: "directive", type: StateDirective, selector: "bizdoc-status", inputs: ["stateId"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: ExpandedItemComponent, selector: "bizdoc-expanded-item", inputs: ["model"], outputs: ["sent"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.DecimalPipe, name: "number" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
9521
9524
  listAnimation,
9522
9525
  itemAnimation,
@@ -9532,7 +9535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
9532
9535
  expandListItemAnimation,
9533
9536
  listItemUpdatedAnimation
9534
9537
  ], template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n@if (dataSource?.data.length === 0) {\r\n <bizdoc-none title=\"NoMessages\" [subtitle]=\"!isMobile && folderId === DRAFT ? 'AltN' : null\" icon=\"mail_outline\"></bizdoc-none>\r\n}\r\n<mat-table cdkDropList class=\"data-table\"\r\n [cdkDropListDisabled]=\"isMobile\"\r\n [cdkDropListData]=\"dataSource?.data\"\r\n cdkDropListConnectedTo=\"folders\"\r\n cdkDropListSortingDisabled\r\n [dataSource]=\"dataSource\" matSort multiTemplateDataRows (matSortChange)=\"sortData()\"\r\n id=\"browse-table\" [@list]=\"dataSource\" [style.display]=\"dataSource?.data.length ?'':'none'\">\r\n <ng-container matColumnDef=\"select\">\r\n <mat-header-cell *matHeaderCellDef>\r\n <div class=\"\"></div>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\" [aria-label]=\"'Check'|translate\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\" [aria-label]=\"'Check'|translate\"\r\n (change)=\"$event ? selection.toggle(item) : null\"\r\n [checked]=\"selection.isSelected(item)\">\r\n </mat-checkbox>\r\n <!-- drag -->\r\n <!--<button mat-icon-button cdkDragHandle\r\n (mousedown)=\"dragDisabled = false\"\r\n (mouseup)=\"dragDisabled = true\"\r\n (touchstart)=\"dragDisabled = false\"\r\n (touchend)=\"dragDisabled = true\"\r\n class=\"drag hide-xs\" aria-disabled=\"true\">\r\n <mat-icon>drag_indicator</mat-icon>\r\n </button>-->\r\n <button mat-icon-button (click)=\"toggleExpanded(item, $event)\" [bizdocTooltip]=\"'Details' | translate\" [attr.aria-label]=\"'Details' | translate\" class=\"tool\"><mat-icon>{{item == expandedElement ? 'unfold_less' : 'unfold_more'}}</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Number column -->\r\n<ng-container matColumnDef=\"number\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.number}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- Subject column -->\r\n<ng-container matColumnDef=\"subject\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.subject}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"owner\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Owner' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.ownerId) {\r\n <bizdoc-identity-name [identity]=\"item.ownerId\" [by]=\"item.ownerById\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n<ng-container matColumnDef=\"sender\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Sender' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @if (item.senderId) {\r\n <bizdoc-identity-name [identity]=\"item.senderId\" [by]=\"item.byId\"></bizdoc-identity-name>\r\n }\r\n </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"received\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.received | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"receivedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"received\">{{'Received' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.received | amCalendar\">{{item.received | amTimeAgo}}</mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"replied\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Replied' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.replied | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issued\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.issued | amCalendar}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"issuedAgo\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"issued\">{{'Issued' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\" [bizdocTooltip]=\"item.issued | amCalendar\"> {{item.issued | amTimeAgo}} </mat-cell>\r\n</ng-container>\r\n\r\n<ng-container matColumnDef=\"state\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header=\"stateId\">{{'Status' | translate }}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <bizdoc-status [stateId]=\"item.stateId\"></bizdoc-status>\r\n </mat-cell>\r\n</ng-container>\r\n\r\n@if (customColumns) {\r\n @for (c of customColumns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header> {{c.title}} </mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n @switch (c.type) {\r\n @case ('Date') {\r\n <span>\r\n {{item.model[c.name] | amCalendar }}\r\n </span>\r\n }\r\n @case ('Decimal') {\r\n <span>\r\n {{item.model[c.name] | number }}\r\n </span>\r\n }\r\n @case ('Boolean') {\r\n <span>\r\n <bizdoc-checkbox [checked]=\"item.model[c.name]\"></bizdoc-checkbox>\r\n </span>\r\n }\r\n @default {\r\n <span>\r\n {{item.model[c.name]}}z\r\n </span>\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n}\r\n\r\n<!-- Value column -->\r\n<ng-container matColumnDef=\"value\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{'Amount' | translate}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\"> {{item.value | currency : item.currencyCode : 'symbol' : currencyFormat}} </mat-cell>\r\n</ng-container>\r\n\r\n<!-- options column -->\r\n<ng-container matColumnDef=\"options\">\r\n <mat-header-cell *matHeaderCellDef></mat-header-cell>\r\n <mat-cell *matCellDef=\"let item\">\r\n <button mat-icon-button (click)=\"flag(item, $event)\" [bizdocTooltip]=\"'Flagged'| translate\" [attr.aria-label]=\"'ToggleFlagged' | translate\" class=\"tool\"><mat-icon [class.filled]=\"item.flag\">star</mat-icon></button>\r\n @if (enableViews) {\r\n <button mat-icon-button (click)=\"insights(item, $event)\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"$event.stopPropagation()\" [matMenuTriggerFor]=\"menu\" [matMenuTriggerData]=\"{item: item}\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\" class=\"tool hide-xs\"><mat-icon>more_vert</mat-icon></button>\r\n </mat-cell>\r\n</ng-container>\r\n<!-- Expanded Content Column -->\r\n<ng-container matColumnDef=\"expandedDetail\">\r\n <mat-cell *matCellDef=\"let item\" [attr.colspan]=\"displayedColumns.length\" [@updated]=\"item == updatedElement\"\r\n [class.read-row]=\"item.read\">\r\n <div [@detailExpand]=\"item == expandedElement ? 'expanded' : 'collapsed'\" style=\"width: 100%\">\r\n @if (item == expandedElement) {\r\n <bizdoc-expanded-item [model]=\"item\"></bizdoc-expanded-item>\r\n }\r\n </div>\r\n </mat-cell>\r\n</ng-container>\r\n<mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n<mat-row @item [@updated]=\"item == updatedElement\"\r\n *matRowDef=\"let item; let dataIndex = dataIndex; columns: displayedColumns;\" class=\"element-row\"\r\n cdkDrag [cdkDragData]=\"item\"\r\n [cdkDragDisabled]=\"dragDisabled\"\r\n (cdkDragReleased)=\"dragDisabled = true\"\r\n [ngClass]=\"{'selected-row': selectedElement === item,\r\n 'expanded-row': expandedElement === item,\r\n 'odd-row': dataIndex % 2,\r\n 'read-row': item.read}\" matRipple\r\n (click)=\"open(item, $event)\">\r\n <div *cdkDragPreview>\r\n <button mat-icon-button aria-disabled=\"true\"><mat-icon>drag_indicator</mat-icon></button> <span>#{{item.number}}</span>\r\n </div>\r\n <div *cdkDragPlaceholder>\r\n <!-- none -->\r\n </div>\r\n</mat-row>\r\n<mat-row *matRowDef=\"let item; ; let dataIndex = dataIndex; columns: ['expandedDetail']\"\r\n class=\"detail-row\" matRipple\r\n [ngClass]=\"{ 'selected-row': selectedElement === item,\r\n 'odd-row': dataIndex % 2\r\n }\"></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [hidePageSize]=\"true\" [pageSize]=\"PAGE_SIZE\" [style.display]=\"!isMobile && dataSource?.data.length>PAGE_SIZE ? '':'none'\"></mat-paginator>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-template matMenuContent let-item=\"item\">\r\n <button mat-menu-item (click)=\"open(item, $event)\">{{'Open'|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"toggleRead(item)\">{{(item.read ?'MarkAsUnread':'MarkAsRead')|translate}}</button>\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"copy(item)\">{{'Copy'| translate}}</button>\r\n </ng-template>\r\n</mat-menu>\r\n", styles: ["#browse-table{width:100%}#browse-table .detail-row{min-height:0}#browse-table .element-row{cursor:pointer}#browse-table .element-row .drag{cursor:move}#browse-table .read-row{font-weight:100}@media screen and (min-width: 600px){.mat-mdc-row .tool{opacity:.05}.mat-mdc-row:hover .tool{opacity:1}}::ng-deep .mat-column-options{justify-content:end;padding-inline-end:8px}::ng-deep .mat-column-value{justify-content:right}::ng-deep .mat-column-select{white-space:nowrap}::ng-deep .mat-column-number{white-space:nowrap}\n"] }]
9535
- }], ctorParameters: () => [{ type: MailboxService }, { type: AccountService }, { type: CubeService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }, { type: RouterImpl }, { type: HubService }, { type: undefined, decorators: [{
9538
+ }], ctorParameters: () => [{ type: MailboxService }, { type: AccountService }, { type: AnalysisService }, { type: SessionService }, { type: PromptService }, { type: TranslateService }, { type: i0.ChangeDetectorRef }, { type: RouterImpl }, { type: HubService }, { type: undefined, decorators: [{
9536
9539
  type: Inject,
9537
9540
  args: [BIZDOC_CONFIG]
9538
9541
  }] }], propDecorators: { onopen: [{
@@ -10165,7 +10168,9 @@ function sortActions(a, b) {
10165
10168
  /** compose component responsible for editing a form */
10166
10169
  class ComposePaneComponent {
10167
10170
  /** compose ctor */
10168
- constructor(_session, _mailbox, _pane, _router) {
10171
+ constructor(_session, _mailbox, _pane,
10172
+ //private _overlay: Overlay,
10173
+ _router) {
10169
10174
  this._session = _session;
10170
10175
  this._mailbox = _mailbox;
10171
10176
  this._pane = _pane;
@@ -10313,11 +10318,11 @@ class ComposePaneComponent {
10313
10318
  this._destroy.complete();
10314
10319
  }
10315
10320
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ComposePaneComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
10316
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: ComposePaneComponent, isStandalone: false, selector: "bizdoc-compose-pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (page !== undefined) {\r\n <button mat-icon-button (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon>\r\n </button>\r\n &nbsp;\r\n }\r\n @if (model.draft) {\r\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.actions.length === 1) {\r\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n }\r\n @else if (form.actions.length > 1) {\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n }\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n @if (mode === 'compose') {\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n }\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon [class.filled]=\"model.tags && model.tags.length\">bookmark</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.filled]=\"model.flag\">star</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n @if (mode !== 'compose' && model.pending && !model.completed) {\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n @if (enableInsights) {\r\n <button mat-icon-button (click)=\"insights()\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n @if (expendable) {\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n }\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n @if (model.draft && !model.issued) {\r\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.help) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable form-container\" #dropable>\r\n <bizdoc-form [model]=model [page]=\"page\" #form\r\n (modelChange)=\"change()\"\r\n (saved)=\"saved()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.form-container{-ms-flex:1;-webkit-flex:1;flex:1;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "page", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
10321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: ComposePaneComponent, isStandalone: false, selector: "bizdoc-compose-pane", host: { listeners: { "document:drop": "handleDocumentDrop($event)", "drop": "handleDrop($event)", "dragenter": "handleEnter($event)", "dragleave": "handleLeave($event)", "dragover": "handleOver($event)", "document:keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "form", first: true, predicate: ComposeFormComponent, descendants: true, static: true }, { propertyName: "dropableElement", first: true, predicate: ["dropable"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (page !== undefined) {\r\n <button mat-icon-button (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon>\r\n </button>\r\n &nbsp;\r\n }\r\n @if (model.draft) {\r\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.actions.length === 1) {\r\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n }\r\n @else if (form.actions.length > 1) {\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n }\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n <!--<ng-template #actionsPane>\r\n <mat-list>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <mat-list-item (click)=\"send(a.name)\">\r\n @if(a.icon) {\r\n <mat-icon matListItemIcon>{{a.icon}}</mat-icon>\r\n }\r\n <span matListItemTitle>{{a.title}}</span>\r\n <span matListItemLine>{{a.note}}</span>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </ng-template>-->\r\n @if (mode === 'compose') {\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n }\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon [class.filled]=\"model.tags && model.tags.length\">bookmark</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.filled]=\"model.flag\">star</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n @if (mode !== 'compose' && model.pending && !model.completed) {\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n @if (enableInsights) {\r\n <button mat-icon-button (click)=\"insights()\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n @if (expendable) {\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n }\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n @if (model.draft && !model.issued) {\r\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.help) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable form-container\" #dropable>\r\n <bizdoc-form [model]=model [page]=\"page\" #form\r\n (modelChange)=\"change()\"\r\n (saved)=\"saved()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.form-container{-ms-flex:1;-webkit-flex:1;flex:1;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "page", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange", "saved"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
10317
10322
  }
10318
10323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ComposePaneComponent, decorators: [{
10319
10324
  type: Component,
10320
- args: [{ standalone: false, selector: 'bizdoc-compose-pane', template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (page !== undefined) {\r\n <button mat-icon-button (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon>\r\n </button>\r\n &nbsp;\r\n }\r\n @if (model.draft) {\r\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.actions.length === 1) {\r\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n }\r\n @else if (form.actions.length > 1) {\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n }\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n @if (mode === 'compose') {\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n }\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon [class.filled]=\"model.tags && model.tags.length\">bookmark</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.filled]=\"model.flag\">star</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n @if (mode !== 'compose' && model.pending && !model.completed) {\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n @if (enableInsights) {\r\n <button mat-icon-button (click)=\"insights()\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n @if (expendable) {\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n }\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n @if (model.draft && !model.issued) {\r\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.help) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable form-container\" #dropable>\r\n <bizdoc-form [model]=model [page]=\"page\" #form\r\n (modelChange)=\"change()\"\r\n (saved)=\"saved()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.form-container{-ms-flex:1;-webkit-flex:1;flex:1;overflow:auto}\n"] }]
10325
+ args: [{ standalone: false, selector: 'bizdoc-compose-pane', template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (page !== undefined) {\r\n <button mat-icon-button (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon>\r\n </button>\r\n &nbsp;\r\n }\r\n @if (model.draft) {\r\n <button mat-stroked-button color=\"primary\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.actions.length === 1) {\r\n <button mat-stroked-button color=\"primary\" [attr.data-help]=\"'action-'+form.actions[0].name\" (click)=\"send(model.actions[0])\" [disabled]=\"!valid||working\">\r\n <span>{{form.actions[0].title}}</span>\r\n </button>\r\n }\r\n @else if (form.actions.length > 1) {\r\n <button mat-stroked-button data-help=\"send\" color=\"primary\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n }\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n }\r\n </ng-template>\r\n </mat-menu>\r\n <!--<ng-template #actionsPane>\r\n <mat-list>\r\n @for (a of form.actions; track a; let i = $index) {\r\n @if (i > 0 && form.actions[i - 1].group !== a.group) {\r\n <mat-divider></mat-divider>\r\n }\r\n <mat-list-item (click)=\"send(a.name)\">\r\n @if(a.icon) {\r\n <mat-icon matListItemIcon>{{a.icon}}</mat-icon>\r\n }\r\n <span matListItemTitle>{{a.title}}</span>\r\n <span matListItemLine>{{a.note}}</span>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </ng-template>-->\r\n @if (mode === 'compose') {\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\">\r\n <mat-icon>save</mat-icon>\r\n </button>\r\n }\r\n <button mat-icon-button data-help=\"tag\" (click)=\"form.tag($event)\" [bizdocTooltip]=\"'Tags' | translate\" [disabled]=\"working\"><mat-icon [class.filled]=\"model.tags && model.tags.length\">bookmark</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.filled]=\"model.flag\">star</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.attach()\" data-help=\"attach\" [bizdocTooltip]=\"'AttachFile' | translate\" [disabled]=\"working\"><mat-icon>attach_file</mat-icon></button>\r\n @if (mode !== 'compose' && model.pending && !model.completed) {\r\n <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\"><mat-icon>create</mat-icon></button>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"navTrace()\" [bizdocTooltip]=\"'Trace' | translate\" tabindex=\"1\"><mat-icon>timeline</mat-icon></button>\r\n <button mat-icon-button (click)=\"navComments()\" data-help=\"comments\" [bizdocTooltip]=\"'Comments' | translate\" [matBadge]=\"newCommentsCount\" [matBadgeHidden]=\"!newCommentsCount\" matBadgeColor=\"accent\">\r\n <mat-icon [class.filled]=\"model.comments.length > 0\">format_quote</mat-icon>\r\n </button>\r\n @if (enableInsights) {\r\n <button mat-icon-button (click)=\"insights()\" [bizdocTooltip]=\"'Insights' | translate\" [attr.aria-label]=\"'Insight' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n }\r\n @if (expendable) {\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n }\r\n <button mat-icon-button [matMenuTriggerFor]=\"optionsMenu\" [bizdocTooltip]=\"'Options' | translate\" [attr.aria-label]=\"'Options' | translate\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #optionsMenu=\"matMenu\">\r\n <ng-template matMenuContent>\r\n <button mat-menu-item (click)=\"form.copy()\" [disabled]=\"working\">\r\n <!--<mat-icon>content_copy</mat-icon>-->\r\n <span>{{'Copy' | translate}}</span>\r\n </button>\r\n @if (model.draft && !model.issued) {\r\n <button mat-menu-item (click)=\"discard()\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n }\r\n @if (form.help) {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"form.guide(form.help)\">\r\n <!--<mat-icon>help_outline</mat-icon>-->\r\n <span>{{'Help' | translate}}</span>\r\n </button>\r\n }\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"close()\"><!--<mat-icon></mat-icon>--><span>{{'Close'| translate}}</span></button>\r\n </ng-template>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"file-dropable form-container\" #dropable>\r\n <bizdoc-form [model]=model [page]=\"page\" #form\r\n (modelChange)=\"change()\"\r\n (saved)=\"saved()\"\r\n (validChange)=\"valid=$event\"\r\n (workingChange)=\"working=$event\"\r\n (dirtyChange)=\"dirty=$event\" [mode]=\"mode\"></bizdoc-form>\r\n</div>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}.form-container{-ms-flex:1;-webkit-flex:1;flex:1;overflow:auto}\n"] }]
10321
10326
  }], ctorParameters: () => [{ type: SessionService }, { type: MailboxService }, { type: PaneRef }, { type: PanesRouter }], propDecorators: { form: [{
10322
10327
  type: ViewChild,
10323
10328
  args: [ComposeFormComponent, { static: true }]
@@ -10689,7 +10694,7 @@ class CubeAccumulationChartComponent {
10689
10694
  this._destroy.next();
10690
10695
  this._destroy.complete();
10691
10696
  }
10692
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumulationChartComponent, deps: [{ token: CubeService }, { token: PromptService }, { token: TranslateService }, { token: i0.ElementRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
10697
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumulationChartComponent, deps: [{ token: AnalysisService }, { token: PromptService }, { token: TranslateService }, { token: i0.ElementRef }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
10693
10698
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeAccumulationChartComponent, isStandalone: false, selector: "bizdoc-cube-accum", inputs: { palettes: "palettes", height: "height", width: "width", cube: "cube", xAxis: "xAxis", filters: "filters", chartType: "chartType", scope: "scope", loading: "loading" }, outputs: { loadingChange: "loadingChange", explore: "explore" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
10694
10699
  }
10695
10700
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumulationChartComponent, decorators: [{
@@ -10702,7 +10707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
10702
10707
  class: 'cube-view'
10703
10708
  }
10704
10709
  }]
10705
- }], ctorParameters: () => [{ type: CubeService }, { type: PromptService }, { type: TranslateService }, { type: i0.ElementRef }, { type: SessionService }], propDecorators: { id: [{
10710
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: PromptService }, { type: TranslateService }, { type: i0.ElementRef }, { type: SessionService }], propDecorators: { id: [{
10706
10711
  type: HostBinding
10707
10712
  }], palettes: [{
10708
10713
  type: Input
@@ -11015,7 +11020,7 @@ class CubeChartComponent {
11015
11020
  this._destroy.next();
11016
11021
  this._destroy.complete();
11017
11022
  }
11018
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartComponent, deps: [{ token: CubeService }, { token: PromptService }, { token: TranslateService }, { token: SessionService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11023
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartComponent, deps: [{ token: AnalysisService }, { token: PromptService }, { token: TranslateService }, { token: SessionService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11019
11024
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeChartComponent, isStandalone: false, selector: "bizdoc-cube-chart", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", yAxis: "yAxis", chartType: "chartType", indicesChartType: "indicesChartType", scope: "scope", loading: "loading", palettes: "palettes" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
11020
11025
  }
11021
11026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartComponent, decorators: [{
@@ -11028,7 +11033,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
11028
11033
  class: 'cube-view'
11029
11034
  }
11030
11035
  }]
11031
- }], ctorParameters: () => [{ type: CubeService }, { type: PromptService }, { type: TranslateService }, { type: SessionService }, { type: i0.ElementRef }], propDecorators: { width: [{
11036
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: PromptService }, { type: TranslateService }, { type: SessionService }, { type: i0.ElementRef }], propDecorators: { width: [{
11032
11037
  type: Input
11033
11038
  }], height: [{
11034
11039
  type: Input
@@ -11230,7 +11235,7 @@ class CubeGridComponent {
11230
11235
  ngOnDestroy() {
11231
11236
  this.grid && this.grid.destroy();
11232
11237
  }
11233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeGridComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: DatasourceService }, { token: CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeGridComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: DatasourceService }, { token: AnalysisService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11234
11239
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeGridComponent, isStandalone: false, selector: "bizdoc-cube-grid", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] }); }
11235
11240
  }
11236
11241
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeGridComponent, decorators: [{
@@ -11238,7 +11243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
11238
11243
  args: [{ standalone: false, selector: 'bizdoc-cube-grid', template: '', host: {
11239
11244
  class: 'cube-view'
11240
11245
  }, styles: [".nowrap{white-space:nowrap;word-wrap:normal}::ng-deep .e-rowcell:not(.e-headertext){cursor:pointer}::ng-deep .e-grid td.e-cellselectionbackground{background-color:none}\n"] }]
11241
- }], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: DatasourceService }, { type: CubeService }, { type: i0.ElementRef }], propDecorators: { width: [{
11246
+ }], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: DatasourceService }, { type: AnalysisService }, { type: i0.ElementRef }], propDecorators: { width: [{
11242
11247
  type: Input
11243
11248
  }], height: [{
11244
11249
  type: Input
@@ -11771,7 +11776,7 @@ class CubePivotComponent {
11771
11776
  this._destroy.next();
11772
11777
  this._destroy.complete();
11773
11778
  }
11774
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotComponent, deps: [{ token: CubeService }, { token: SessionService }, { token: TranslateService }, { token: PromptService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11779
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotComponent, deps: [{ token: AnalysisService }, { token: SessionService }, { token: TranslateService }, { token: PromptService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
11775
11780
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubePivotComponent, isStandalone: false, selector: "bizdoc-cube-pivot", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", chartType: "chartType", indicesChartType: "indicesChartType", palettes: "palettes", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "style.direction": "dir", "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, styles: [":host ::ng-deep .e-cellvalue{cursor:pointer}\n"] }); }
11776
11781
  }
11777
11782
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotComponent, decorators: [{
@@ -11780,7 +11785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
11780
11785
  class: 'cube-view',
11781
11786
  '[style.direction]': 'dir'
11782
11787
  }, styles: [":host ::ng-deep .e-cellvalue{cursor:pointer}\n"] }]
11783
- }], ctorParameters: () => [{ type: CubeService }, { type: SessionService }, { type: TranslateService }, { type: PromptService }, { type: i0.ElementRef }], propDecorators: { width: [{
11788
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: SessionService }, { type: TranslateService }, { type: PromptService }, { type: i0.ElementRef }], propDecorators: { width: [{
11784
11789
  type: Input
11785
11790
  }], height: [{
11786
11791
  type: Input
@@ -12143,7 +12148,7 @@ class CubeSpreadsheetComponent {
12143
12148
  ngOnDestroy() {
12144
12149
  this.spreadsheet && this.spreadsheet.destroy();
12145
12150
  }
12146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: CubeService }, { token: TranslateService }, { token: DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
12151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeSpreadsheetComponent, deps: [{ token: SessionService }, { token: PromptService }, { token: AnalysisService }, { token: TranslateService }, { token: DatasourceService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
12147
12152
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeSpreadsheetComponent, isStandalone: false, selector: "bizdoc-cube-spreadsheet", inputs: { width: "width", height: "height", cube: "cube", xAxis: "xAxis", yAxis: "yAxis", series: "series", indices: "indices", filters: "filters", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { properties: { "id": "this.id" }, classAttribute: "cube-view" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
12148
12153
  }
12149
12154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeSpreadsheetComponent, decorators: [{
@@ -12157,7 +12162,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
12157
12162
  class: 'cube-view'
12158
12163
  },
12159
12164
  }]
12160
- }], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: CubeService }, { type: TranslateService }, { type: DatasourceService }, { type: i0.ElementRef }], propDecorators: { width: [{
12165
+ }], ctorParameters: () => [{ type: SessionService }, { type: PromptService }, { type: AnalysisService }, { type: TranslateService }, { type: DatasourceService }, { type: i0.ElementRef }], propDecorators: { width: [{
12161
12166
  type: Input
12162
12167
  }], height: [{
12163
12168
  type: Input
@@ -12422,12 +12427,12 @@ class ViewBase {
12422
12427
  evt && evt.preventDefault();
12423
12428
  }
12424
12429
  }
12425
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ViewBase, deps: [{ token: SessionService }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Directive }); }
12430
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ViewBase, deps: [{ token: SessionService }, { token: RouterImpl }, { token: AnalysisService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Directive }); }
12426
12431
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: ViewBase, isStandalone: true, ngImport: i0 }); }
12427
12432
  }
12428
12433
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ViewBase, decorators: [{
12429
12434
  type: Directive
12430
- }], ctorParameters: () => [{ type: SessionService }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }] });
12435
+ }], ctorParameters: () => [{ type: SessionService }, { type: RouterImpl }, { type: AnalysisService }, { type: GuideService }] });
12431
12436
 
12432
12437
  class MatIconAnimate {
12433
12438
  constructor(element) {
@@ -12508,13 +12513,13 @@ class CubeViewPaneComponent extends ViewBase {
12508
12513
  e.axesChange.pipe(takeUntil(popupRef.closed())).subscribe(this.navigate.bind(this));
12509
12514
  });
12510
12515
  }
12511
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeViewPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
12516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeViewPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: RouterImpl }, { token: AnalysisService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
12512
12517
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeViewPaneComponent, isStandalone: false, selector: "ng-component", host: { listeners: { "window.keydown": "handleKeydown($event)" } }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "filterEl", first: true, predicate: ["filterEl"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n[(loading)]=\"loading\"></bizdoc-cube-view>\r\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto;overflow:hidden}\n"], dependencies: [{ kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12513
12518
  }
12514
12519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeViewPaneComponent, decorators: [{
12515
12520
  type: Component,
12516
12521
  args: [{ standalone: false, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"vp.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"vp.exportToExcel()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">tune</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"openFilter($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\" #filterEl><mat-icon [class.filled]=\"anyFilters\">filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n[(loading)]=\"loading\"></bizdoc-cube-view>\r\n<!--<ng-lottie options=\"{path: 'assets/8318-loader.json'}\" *ngIf=\"loading\"></ng-lottie>-->\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto;overflow:hidden}\n"] }]
12517
- }], ctorParameters: () => [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }], propDecorators: { viewPane: [{
12522
+ }], ctorParameters: () => [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: AnalysisService }, { type: GuideService }], propDecorators: { viewPane: [{
12518
12523
  type: ViewChild,
12519
12524
  args: [CubeViewComponent, { static: true }]
12520
12525
  }], filterEl: [{
@@ -13888,7 +13893,7 @@ class ExploreItemsComponent {
13888
13893
  ngOnDestroy() {
13889
13894
  this._loading$.unsubscribe();
13890
13895
  }
13891
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ExploreItemsComponent, deps: [{ token: CubeService }, { token: PromptService }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
13896
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ExploreItemsComponent, deps: [{ token: AnalysisService }, { token: PromptService }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
13892
13897
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: ExploreItemsComponent, isStandalone: false, selector: "bizdoc-cube-explore", inputs: { pageSize: "pageSize", cube: "cube", index: "index", scope: "scope", axes: "axes", loading: "loading" }, outputs: { explore: "explore", load: "load", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table matSort [dataSource]=\"dataSource\" @list>\r\n @for (c of columns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label || c.name}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\"\r\n [class.figure]=\"c.controlType === 'number'\"\r\n [class.date]=\"c.controlType === 'date'\">\r\n @switch (c.controlType) {\r\n @case ('date') {\r\n {{element[c.name] | amDateFormat: 'll'}}\r\n }\r\n @case ('number') {\r\n @switch (c.kind) {\r\n @case ('Currency') {\r\n {{element[c.name] | currency : (element['currencyCode'] || CURRENCY_CODE) : 'symbol' : CURRENCY_FORMAT }}\r\n }\r\n @default {\r\n {{element[c.name] | number }}\r\n }\r\n }\r\n }\r\n @case ('checkbox') {\r\n <bizdoc-checkbox [checked]=\"element.model[c.name]\"></bizdoc-checkbox>\r\n }\r\n @default {\r\n {{element[c.name] }}\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"expand(element)\" [class.selectable]=\"selectable\" @item></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [pageSize]=\"pageSize\" hidePageSize style=\"display: none\"></mat-paginator>\r\n", styles: [".selectable{cursor:pointer}.figure{justify-content:right}.date{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: CheckboxComponent, selector: "bizdoc-checkbox", inputs: ["checked", "color", "icon"] }, { kind: "pipe", type: i9.DecimalPipe, name: "number" }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }], animations: [
13893
13898
  listAnimation,
13894
13899
  itemAnimation
@@ -13900,7 +13905,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
13900
13905
  listAnimation,
13901
13906
  itemAnimation
13902
13907
  ], template: "<mat-table matSort [dataSource]=\"dataSource\" @list>\r\n @for (c of columns; track c) {\r\n <ng-container [matColumnDef]=\"c.name\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label || c.name}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\"\r\n [class.figure]=\"c.controlType === 'number'\"\r\n [class.date]=\"c.controlType === 'date'\">\r\n @switch (c.controlType) {\r\n @case ('date') {\r\n {{element[c.name] | amDateFormat: 'll'}}\r\n }\r\n @case ('number') {\r\n @switch (c.kind) {\r\n @case ('Currency') {\r\n {{element[c.name] | currency : (element['currencyCode'] || CURRENCY_CODE) : 'symbol' : CURRENCY_FORMAT }}\r\n }\r\n @default {\r\n {{element[c.name] | number }}\r\n }\r\n }\r\n }\r\n @case ('checkbox') {\r\n <bizdoc-checkbox [checked]=\"element.model[c.name]\"></bizdoc-checkbox>\r\n }\r\n @default {\r\n {{element[c.name] }}\r\n }\r\n }\r\n </mat-cell>\r\n </ng-container>\r\n }\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"expand(element)\" [class.selectable]=\"selectable\" @item></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [pageSize]=\"pageSize\" hidePageSize style=\"display: none\"></mat-paginator>\r\n", styles: [".selectable{cursor:pointer}.figure{justify-content:right}.date{white-space:nowrap}\n"] }]
13903
- }], ctorParameters: () => [{ type: CubeService }, { type: PromptService }, { type: SessionService }, { type: TranslateService }], propDecorators: { pageSize: [{
13908
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: PromptService }, { type: SessionService }, { type: TranslateService }], propDecorators: { pageSize: [{
13904
13909
  type: Input
13905
13910
  }], cube: [{
13906
13911
  type: Input
@@ -13975,13 +13980,13 @@ class CubeExplorePaneComponent {
13975
13980
  }
13976
13981
  });
13977
13982
  }
13978
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExplorePaneComponent, deps: [{ token: PaneRef }, { token: PromptService }, { token: SessionService }, { token: CubeService }, { token: TranslateService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
13983
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExplorePaneComponent, deps: [{ token: PaneRef }, { token: PromptService }, { token: SessionService }, { token: AnalysisService }, { token: TranslateService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
13979
13984
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeExplorePaneComponent, isStandalone: false, selector: "ng-component", host: { listeners: { "window:resize": "resize()" } }, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{width:100%;min-width:360px}\n"], dependencies: [{ kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FilterTagsComponent, selector: "bizdoc-cube-tags", inputs: ["axes", "cube", "interactive"], outputs: ["axesChange"] }, { kind: "component", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
13980
13985
  }
13981
13986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExplorePaneComponent, decorators: [{
13982
13987
  type: Component,
13983
13988
  args: [{ standalone: false, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"items.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.exportExcel()\" [bizdocTooltip]=\"'DownloadExcel' | translate\"><mat-icon>save_alt</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-tags [interactive]=false [cube]=\"cube\" [axes]=\"axes\"></bizdoc-cube-tags>\r\n<bizdoc-cube-explore #items [cube]=\"cube\" [index]=\"index\" [axes]=axes\r\n (explore)=\"item($event)\" (loadingChange)=\"loading = $event\"\r\n [scope]=\"scope\" [pageSize]=\"pageSize\"></bizdoc-cube-explore>\r\n", styles: [":host{width:100%;min-width:360px}\n"] }]
13984
- }], ctorParameters: () => [{ type: PaneRef }, { type: PromptService }, { type: SessionService }, { type: CubeService }, { type: TranslateService }, { type: PanesRouter }], propDecorators: { resize: [{
13989
+ }], ctorParameters: () => [{ type: PaneRef }, { type: PromptService }, { type: SessionService }, { type: AnalysisService }, { type: TranslateService }, { type: PanesRouter }], propDecorators: { resize: [{
13985
13990
  type: HostListener,
13986
13991
  args: ['window:resize']
13987
13992
  }] } });
@@ -16950,12 +16955,12 @@ class CubeMatrixBase {
16950
16955
  refresh() {
16951
16956
  this.axes = { ...this.axes };
16952
16957
  }
16953
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixBase, deps: [{ token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Directive }); }
16958
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixBase, deps: [{ token: AnalysisService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Directive }); }
16954
16959
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: CubeMatrixBase, isStandalone: true, ngImport: i0 }); }
16955
16960
  }
16956
16961
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixBase, decorators: [{
16957
16962
  type: Directive
16958
- }], ctorParameters: () => [{ type: CubeService }, { type: DatasourceService }, { type: SessionService }] });
16963
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: DatasourceService }, { type: SessionService }] });
16959
16964
 
16960
16965
  const LOADING_INDICATOR_GRACE = 200;
16961
16966
  /** cube matrix component*/
@@ -17365,13 +17370,13 @@ class CubeMatrixComponent {
17365
17370
  }
17366
17371
  }
17367
17372
  }
17368
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }, { token: TranslateService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
17373
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: PromptService }, { token: AnalysisService }, { token: SessionService }, { token: TranslateService }, { token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
17369
17374
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeMatrixComponent, isStandalone: false, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], indexAt: "indexAt", placeAt: "placeAt", scope: "scope", sum: "sum", filters: "filters", loading: "loading", interactive: "interactive" }, outputs: { onExplore: "explore", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (data) {\r\n <table #table class=\"mat-mdc-table cube-table\" (mouseleave)=\"_move(-1, -1)\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-mdc-header-row\">\r\n <th></th>\r\n @for (column of columns; track column; let x = $index) {\r\n <th\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-mdc-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n }\r\n <th class=\"mat-mdc-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n @for (row of rows; track row; let y = $index) {\r\n <tr class=\"mat-mdc-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-mdc-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n @for (column of columns; track column; let x = $index) {\r\n <td class=\"mat-mdc-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n @if (data[row.key][column.key] !== '0') {\r\n <span\r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n } @else {\r\n 0\r\n }\r\n </td>\r\n }\r\n <th class=\"mat-mdc-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n }\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-mdc-footer-row\">\r\n <th class=\"mat-mdc-footer-cell\">{{seriesTotalLabel}}</th>\r\n @for (column of columns; track column; let x = $index) {\r\n <td class=\"mat-mdc-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n @if (totals[column.key] !== undefined) {\r\n {{ totals[column.key] }}\r\n }\r\n </td>\r\n }\r\n <th class=\"mat-mdc-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n}\r\n", styles: [".cube-table{width:100%}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table .explorable{cursor:pointer}.cube-table tbody tr th,.cube-table tfoot tr th{padding:0 8px}.cube-table tfoot tr>*{border-bottom:none}\n"], animations: [matrixAnimation] }); }
17370
17375
  }
17371
17376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixComponent, decorators: [{
17372
17377
  type: Component,
17373
17378
  args: [{ standalone: false, selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "@if (data) {\r\n <table #table class=\"mat-mdc-table cube-table\" (mouseleave)=\"_move(-1, -1)\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-mdc-header-row\">\r\n <th></th>\r\n @for (column of columns; track column; let x = $index) {\r\n <th\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-mdc-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n }\r\n <th class=\"mat-mdc-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n @for (row of rows; track row; let y = $index) {\r\n <tr class=\"mat-mdc-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-mdc-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n @for (column of columns; track column; let x = $index) {\r\n <td class=\"mat-mdc-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n @if (data[row.key][column.key] !== '0') {\r\n <span\r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n } @else {\r\n 0\r\n }\r\n </td>\r\n }\r\n <th class=\"mat-mdc-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n }\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-mdc-footer-row\">\r\n <th class=\"mat-mdc-footer-cell\">{{seriesTotalLabel}}</th>\r\n @for (column of columns; track column; let x = $index) {\r\n <td class=\"mat-mdc-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n @if (totals[column.key] !== undefined) {\r\n {{ totals[column.key] }}\r\n }\r\n </td>\r\n }\r\n <th class=\"mat-mdc-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n}\r\n", styles: [".cube-table{width:100%}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table .explorable{cursor:pointer}.cube-table tbody tr th,.cube-table tfoot tr th{padding:0 8px}.cube-table tfoot tr>*{border-bottom:none}\n"] }]
17374
- }], ctorParameters: () => [{ type: PromptService }, { type: CubeService }, { type: SessionService }, { type: TranslateService }, { type: DatasourceService }], propDecorators: { tableElement: [{
17379
+ }], ctorParameters: () => [{ type: PromptService }, { type: AnalysisService }, { type: SessionService }, { type: TranslateService }, { type: DatasourceService }], propDecorators: { tableElement: [{
17375
17380
  type: ViewChild,
17376
17381
  args: ['table']
17377
17382
  }], seriesTotalLabel: [{
@@ -17499,13 +17504,13 @@ class CubeMatrixPaneComponent extends CubeMatrixBase {
17499
17504
  state: { index }
17500
17505
  });
17501
17506
  }
17502
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: PaneRef }, { token: PanesRouter }, { token: TranslateService }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
17507
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: PaneRef }, { token: PanesRouter }, { token: TranslateService }, { token: AnalysisService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
17503
17508
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeMatrixPaneComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:500px;width:100%}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
17504
17509
  }
17505
17510
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
17506
17511
  type: Component,
17507
17512
  args: [{ standalone: false, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n(loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:500px;width:100%}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
17508
- }], ctorParameters: () => [{ type: PaneRef }, { type: PanesRouter }, { type: TranslateService }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
17513
+ }], ctorParameters: () => [{ type: PaneRef }, { type: PanesRouter }, { type: TranslateService }, { type: AnalysisService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
17509
17514
  type: ViewChild,
17510
17515
  args: [CubeMatrixComponent, { static: true }]
17511
17516
  }] } });
@@ -18058,6 +18063,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
18058
18063
  args: ['click', ['$event']]
18059
18064
  }] } });
18060
18065
 
18066
+ class ContentNotification {
18067
+ ngOnInit() {
18068
+ }
18069
+ constructor(notification, vc) {
18070
+ this.notification = notification;
18071
+ this._factory = inject(BizDocComponentFactoryResolver);
18072
+ this._session = inject(SessionService);
18073
+ const configuration = this._session.profile.notifications.find(n => n.contentType === notification.contentType);
18074
+ const comp = this._factory.component(configuration.template);
18075
+ const compRef = vc.createComponent(comp, {
18076
+ // injector: Injector.create([{
18077
+ // provide: NotificationRef,
18078
+ // value: new NotificationRef()
18079
+ // }])
18080
+ });
18081
+ compRef.instance.onBind(notification.content);
18082
+ }
18083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ContentNotification, deps: [{ token: NOTIFICATION_DATA }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
18084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: ContentNotification, isStandalone: false, selector: "bizdoc-notify-content", ngImport: i0, template: '', isInline: true }); }
18085
+ }
18086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ContentNotification, decorators: [{
18087
+ type: Component,
18088
+ args: [{
18089
+ standalone: false,
18090
+ selector: 'bizdoc-notify-content',
18091
+ template: ''
18092
+ }]
18093
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
18094
+ type: Inject,
18095
+ args: [NOTIFICATION_DATA]
18096
+ }] }, { type: i0.ViewContainerRef }] });
18097
+
18061
18098
  class NotificationsService {
18062
18099
  constructor(_http, messaging, _session) {
18063
18100
  this._http = _http;
@@ -18137,7 +18174,7 @@ class NotificationsComponentBase {
18137
18174
  case 'TextMessage':
18138
18175
  return TextNotification;
18139
18176
  case 'ContentMessage':
18140
- return TextNotification;
18177
+ return ContentNotification;
18141
18178
  case 'Invite':
18142
18179
  return InviteNotification;
18143
18180
  case 'UpcomingEvent':
@@ -19114,12 +19151,12 @@ class CubeItemResolver {
19114
19151
  onResolve(params, queryParams) {
19115
19152
  return this._service.item(params['cube'], queryParams, params['key']);
19116
19153
  }
19117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolver, deps: [{ token: CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19154
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolver, deps: [{ token: AnalysisService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19118
19155
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolver }); }
19119
19156
  }
19120
19157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolver, decorators: [{
19121
19158
  type: Injectable
19122
- }], ctorParameters: () => [{ type: CubeService }] });
19159
+ }], ctorParameters: () => [{ type: AnalysisService }] });
19123
19160
  class CubeItemResolveService {
19124
19161
  constructor(_service) {
19125
19162
  this._service = _service;
@@ -19127,12 +19164,12 @@ class CubeItemResolveService {
19127
19164
  resolve(route) {
19128
19165
  return this._service.item(route.params['cube'], route.queryParams, route.params['key']);
19129
19166
  }
19130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolveService, deps: [{ token: CubeService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolveService, deps: [{ token: AnalysisService }], target: i0.ɵɵFactoryTarget.Injectable }); }
19131
19168
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolveService }); }
19132
19169
  }
19133
19170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeItemResolveService, decorators: [{
19134
19171
  type: Injectable
19135
- }], ctorParameters: () => [{ type: CubeService }] });
19172
+ }], ctorParameters: () => [{ type: AnalysisService }] });
19136
19173
 
19137
19174
  /** */
19138
19175
  class OutOfOfficeToast {
@@ -19743,13 +19780,22 @@ class SlotsComponent {
19743
19780
  this._rtl = this._session.inverse;
19744
19781
  this._resizing = new Subject();
19745
19782
  this._destroy = new Subject();
19783
+ this._counter = 0;
19746
19784
  _session.themeChange.
19747
19785
  subscribe(() => this.accent = _session.getAccent());
19748
19786
  this._routes = prepareRoutes(data);
19787
+ this._router._comm$.
19788
+ subscribe(e => {
19789
+ switch (e) {
19790
+ case 'collapse':
19791
+ this.collapse();
19792
+ break;
19793
+ default:
19794
+ }
19795
+ });
19749
19796
  }
19750
19797
  ngOnInit() {
19751
- this._router._navigate$.
19752
- subscribe(async (n) => {
19798
+ this._router._navigate$.subscribe(async (n) => {
19753
19799
  const { commands, component, pathMode, relativeTo, injector } = n;
19754
19800
  let { icon, title, group, help, policy, queryParams, state: data } = n;
19755
19801
  let queryString, params, parent, path, route;
@@ -19966,20 +20012,12 @@ class SlotsComponent {
19966
20012
  else
19967
20013
  this._deserialize(location.pathname.substring(1));
19968
20014
  });
19969
- this._router._comm$.
19970
- subscribe(e => {
19971
- switch (e) {
19972
- case 'collapse':
19973
- this.collapse();
19974
- break;
19975
- default:
19976
- }
19977
- });
19978
20015
  if (location.pathname.length > 1)
19979
20016
  this._deserialize(location.pathname.substring(1), history.state && history.state.bizdoc ? history.state : undefined);
19980
20017
  else
19981
20018
  this._navToDefault();
19982
- this._resizing.pipe(debounceTime(150), takeUntil(this._destroy)).subscribe(this._resize.bind(this));
20019
+ this._resizing.pipe(debounceTime(150), takeUntil(this._destroy)).
20020
+ subscribe(this._resize.bind(this));
19983
20021
  }
19984
20022
  _navToDefault() {
19985
20023
  this._router._navigate$.next({
@@ -20422,7 +20460,8 @@ class SlotsComponent {
20422
20460
  * @param options
20423
20461
  */
20424
20462
  _constract(component, options) {
20425
- const pane = new PaneRef(component, options.injector || this._injector, options);
20463
+ this._counter += 1;
20464
+ const pane = new PaneRef(component, options.injector || this._injector, this._counter, options);
20426
20465
  pane._command$.subscribe(e => this._paneCommand(e, pane));
20427
20466
  return pane;
20428
20467
  }
@@ -20813,7 +20852,7 @@ class SlotsComponent {
20813
20852
  this._destroy.complete();
20814
20853
  }
20815
20854
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
20816
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: SlotsComponent, isStandalone: false, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" >\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" \r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw;box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.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-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$7.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$7.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$7.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20855
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: SlotsComponent, isStandalone: false, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" >\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p.id; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" \r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t.id; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t.id; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw;box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.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-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$3.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$7.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$7.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$7.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i7.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
20817
20856
  panesAnimation,
20818
20857
  paneAnimation,
20819
20858
  paramAnimation,
@@ -20831,7 +20870,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
20831
20870
  queryAnimation,
20832
20871
  tabsAnimation,
20833
20872
  tabAnimation
20834
- ], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" >\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" \r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw;box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.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-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
20873
+ ], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" >\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p.id; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" \r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t.id; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon>&nbsp;\r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t.id; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw;box-shadow:var(--mat-app-elevation-shadow-level-18, none)}.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-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
20835
20874
  }], ctorParameters: () => [{ type: undefined, decorators: [{
20836
20875
  type: Inject,
20837
20876
  args: [PANES_DATA]
@@ -22215,13 +22254,13 @@ class CubeMobileViewComponent extends ViewBase {
22215
22254
  this._destroy.next();
22216
22255
  this._destroy.complete();
22217
22256
  }
22218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMobileViewComponent, deps: [{ token: SessionService }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }, { token: PromptService }, { token: WindowTitleService }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
22257
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMobileViewComponent, deps: [{ token: SessionService }, { token: RouterImpl }, { token: AnalysisService }, { token: GuideService }, { token: PromptService }, { token: WindowTitleService }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
22219
22258
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeMobileViewComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }, { propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }, { propertyName: "explorePane", first: true, predicate: ExploreItemsComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n <span>{{p.title}}</span>\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\r\n <mat-menu #menu>\r\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\r\n @if (mode === 'explore') {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\" autosize>\r\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\r\n @switch (mode) {\r\n @case ('explore') {\r\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\r\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\r\n }\r\n @case ('item') {\r\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\r\n }\r\n @default {\r\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\r\n }\r\n }\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n [(loading)]=\"loading\"></bizdoc-cube-view>\r\n </mat-sidenav-content>\r\n</mat-sidenav-container>\r\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"], dependencies: [{ kind: "component", type: i7$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6$4.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6$4.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6$4.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: ["template", "model"] }, { kind: "component", type: CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "component", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "component", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
22220
22259
  }
22221
22260
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMobileViewComponent, decorators: [{
22222
22261
  type: Component,
22223
22262
  args: [{ standalone: false, template: "<mat-toolbar class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n <button mat-icon-button (click)=\"viewPane.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n <span>{{p.title}}</span>\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'Download' | translate\" data-help=\"download\"><mat-icon>save_alt</mat-icon></button>\r\n <mat-menu #menu>\r\n <button mat-menu-item (click)=\"viewPane.exportToExcel()\">{{'DownloadExcel' | translate}}</button>\r\n @if (mode === 'explore') {\r\n <mat-divider></mat-divider>\r\n <button mat-menu-item (click)=\"explorePane.exportExcel()\">{{'DownloadExplore' | translate}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"toggleFilter()\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-sidenav-container class=\"page-container\" autosize>\r\n <mat-sidenav mode=\"over\" position=\"end\" [opened]=\"false\">\r\n @switch (mode) {\r\n @case ('explore') {\r\n <bizdoc-cube-explore [cube]=\"cube.name\" [index]=\"exploreIndex\" [axes]=exploreAxes\r\n (explore)=\"exploreItem($event)\" #explorePane [pageSize]=1000 (loadingChange)=\"loading = $event\"></bizdoc-cube-explore>\r\n }\r\n @case ('item') {\r\n <bizdoc-cube-item [template]=\"template\" [model]=\"item\"></bizdoc-cube-item>\r\n }\r\n @default {\r\n <bizdoc-cube-filter [cube]=\"cube.name\" [axes]=\"axes\" [exclude]=\"exclude\" (axesChange)=\"filterChange($event)\"></bizdoc-cube-filter>\r\n }\r\n }\r\n </mat-sidenav>\r\n <mat-sidenav-content>\r\n <bizdoc-cube-view [filters]=\"axes\" #viewPane\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n [(loading)]=\"loading\"></bizdoc-cube-view>\r\n </mat-sidenav-content>\r\n</mat-sidenav-container>\r\n", styles: [":host ::ng-deep .mat-sidenav-container .mat-sidenav-content{overflow:hidden;max-width:95%}:host ::ng-deep .e-pivot-context-menu{display:none}\n"] }]
22224
- }], ctorParameters: () => [{ type: SessionService }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }, { type: PromptService }, { type: WindowTitleService }, { type: i1$2.ActivatedRoute }], propDecorators: { viewPane: [{
22263
+ }], ctorParameters: () => [{ type: SessionService }, { type: RouterImpl }, { type: AnalysisService }, { type: GuideService }, { type: PromptService }, { type: WindowTitleService }, { type: i1$2.ActivatedRoute }], propDecorators: { viewPane: [{
22225
22264
  type: ViewChild,
22226
22265
  args: [CubeViewComponent, { static: true }]
22227
22266
  }], drawer: [{
@@ -22371,13 +22410,13 @@ class CubeMatrixMobileComponent extends CubeMatrixBase {
22371
22410
  state: { index }
22372
22411
  });
22373
22412
  }
22374
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: WindowTitleService }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
22413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: WindowTitleService }, { token: i1$2.ActivatedRoute }, { token: i1$2.Router }, { token: AnalysisService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
22375
22414
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeMatrixMobileComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n(loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:500px;width:100%}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], dependencies: [{ kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
22376
22415
  }
22377
22416
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
22378
22417
  type: Component,
22379
22418
  args: [{ standalone: false, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n(loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:500px;width:100%}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
22380
- }], ctorParameters: () => [{ type: WindowTitleService }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
22419
+ }], ctorParameters: () => [{ type: WindowTitleService }, { type: i1$2.ActivatedRoute }, { type: i1$2.Router }, { type: AnalysisService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
22381
22420
  type: ViewChild,
22382
22421
  args: [CubeMatrixComponent, { static: true }]
22383
22422
  }] } });
@@ -22927,7 +22966,7 @@ class CubeMatrixPopupComponent extends CubeMatrixBase {
22927
22966
  }
22928
22967
  });
22929
22968
  }
22930
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
22969
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: AnalysisService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
22931
22970
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeMatrixPopupComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n @if (!preloading && (patterns?.length || filters?.length)) {\r\n <div class=\"row\">\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"aggregate(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n </div>\r\n }\r\n <bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\"\r\n [sum]=sum [interactive]=\"false\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n [filters]=\"axes\" (loadingChange)=\"loading=$event\"></bizdoc-cube-matrix>\r\n</div>\r\n", styles: [".container{padding:8px}::ng-deep .cube-table{display:inline}\n"], dependencies: [{ kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
22932
22971
  }
22933
22972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
@@ -22939,7 +22978,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
22939
22978
  }] }, { type: undefined, decorators: [{
22940
22979
  type: Inject,
22941
22980
  args: [POPUP_DATA]
22942
- }] }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
22981
+ }] }, { type: AnalysisService }, { type: DatasourceService }, { type: SessionService }], propDecorators: { table: [{
22943
22982
  type: ViewChild,
22944
22983
  args: [CubeMatrixComponent, { static: true }]
22945
22984
  }] } });
@@ -23031,12 +23070,12 @@ class CubeInfo {
23031
23070
  data
23032
23071
  });
23033
23072
  }
23034
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInfo, deps: [{ token: SessionService }, { token: CubeService }, { token: RouterImpl }, { token: Popup }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
23073
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInfo, deps: [{ token: SessionService }, { token: AnalysisService }, { token: RouterImpl }, { token: Popup }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable }); }
23035
23074
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInfo }); }
23036
23075
  }
23037
23076
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInfo, decorators: [{
23038
23077
  type: Injectable
23039
- }], ctorParameters: () => [{ type: SessionService }, { type: CubeService }, { type: RouterImpl }, { type: Popup }, { type: BizDocComponentFactoryResolver }] });
23078
+ }], ctorParameters: () => [{ type: SessionService }, { type: AnalysisService }, { type: RouterImpl }, { type: Popup }, { type: BizDocComponentFactoryResolver }] });
23040
23079
 
23041
23080
  let AssignActionComponent = class AssignActionComponent {
23042
23081
  constructor(_fb, _session, _accounts) {
@@ -24476,12 +24515,12 @@ class CubeAnalysisBase {
24476
24515
  this._destroy.next();
24477
24516
  this._destroy.complete();
24478
24517
  }
24479
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAnalysisBase, deps: [{ token: WidgetRef }, { token: CubeInfo }, { token: SessionService }, { token: DatasourceService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Directive }); }
24518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAnalysisBase, deps: [{ token: WidgetRef }, { token: CubeInfo }, { token: SessionService }, { token: DatasourceService }, { token: AnalysisService }], target: i0.ɵɵFactoryTarget.Directive }); }
24480
24519
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: CubeAnalysisBase, isStandalone: true, ngImport: i0 }); }
24481
24520
  }
24482
24521
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAnalysisBase, decorators: [{
24483
24522
  type: Directive
24484
- }], ctorParameters: () => [{ type: WidgetRef }, { type: CubeInfo }, { type: SessionService }, { type: DatasourceService }, { type: CubeService }] });
24523
+ }], ctorParameters: () => [{ type: WidgetRef }, { type: CubeInfo }, { type: SessionService }, { type: DatasourceService }, { type: AnalysisService }] });
24485
24524
 
24486
24525
  /** statistics component*/
24487
24526
  class CubeAccumAnalysisWidget extends CubeAnalysisBase {
@@ -24607,7 +24646,7 @@ class CubeAccumAnalysisWidget extends CubeAnalysisBase {
24607
24646
  this.chart && this.chart.destroy();
24608
24647
  super.ngOnDestroy();
24609
24648
  }
24610
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumAnalysisWidget, deps: [{ token: WidgetRef }, { token: CubeInfo }, { token: SessionService }, { token: DatasourceService }, { token: CubeService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
24649
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumAnalysisWidget, deps: [{ token: WidgetRef }, { token: CubeInfo }, { token: SessionService }, { token: DatasourceService }, { token: AnalysisService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
24611
24650
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeAccumAnalysisWidget, isStandalone: false, selector: "bizdoc-accum-cube-analysis", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
24612
24651
  }
24613
24652
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeAccumAnalysisWidget, decorators: [{
@@ -24622,7 +24661,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
24622
24661
  dir: 'ltr'
24623
24662
  }
24624
24663
  }]
24625
- }], ctorParameters: () => [{ type: WidgetRef }, { type: CubeInfo }, { type: SessionService }, { type: DatasourceService }, { type: CubeService }, { type: i0.ElementRef }] });
24664
+ }], ctorParameters: () => [{ type: WidgetRef }, { type: CubeInfo }, { type: SessionService }, { type: DatasourceService }, { type: AnalysisService }, { type: i0.ElementRef }] });
24626
24665
 
24627
24666
  /** statistics component*/
24628
24667
  class CubeChartAnalysisWidget extends CubeAnalysisBase {
@@ -24742,7 +24781,7 @@ class CubeChartAnalysisWidget extends CubeAnalysisBase {
24742
24781
  this.chart && this.chart.destroy();
24743
24782
  super.ngOnDestroy();
24744
24783
  }
24745
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartAnalysisWidget, deps: [{ token: WidgetRef }, { token: SessionService }, { token: DatasourceService }, { token: CubeService }, { token: CubeInfo }, { token: i0.ElementRef }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
24784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartAnalysisWidget, deps: [{ token: WidgetRef }, { token: SessionService }, { token: DatasourceService }, { token: AnalysisService }, { token: CubeInfo }, { token: i0.ElementRef }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
24746
24785
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeChartAnalysisWidget, isStandalone: false, selector: "bizdoc-cube-chart-analysis", host: { attributes: { "dir": "ltr" }, properties: { "id": "id" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
24747
24786
  }
24748
24787
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartAnalysisWidget, decorators: [{
@@ -24757,7 +24796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
24757
24796
  dir: 'ltr'
24758
24797
  }
24759
24798
  }]
24760
- }], ctorParameters: () => [{ type: WidgetRef }, { type: SessionService }, { type: DatasourceService }, { type: CubeService }, { type: CubeInfo }, { type: i0.ElementRef }, { type: TranslateService }] });
24799
+ }], ctorParameters: () => [{ type: WidgetRef }, { type: SessionService }, { type: DatasourceService }, { type: AnalysisService }, { type: CubeInfo }, { type: i0.ElementRef }, { type: TranslateService }] });
24761
24800
 
24762
24801
  let CubeAnalysisWidget = class CubeAnalysisWidget {
24763
24802
  constructor(_ref, _injector, _vc) {
@@ -25872,13 +25911,13 @@ class CubeDocumentsGridComponent {
25872
25911
  this._destroy.next();
25873
25912
  this._destroy.complete();
25874
25913
  }
25875
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsGridComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: AccountService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
25914
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsGridComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: AccountService }, { token: AnalysisService }], target: i0.ɵɵFactoryTarget.Component }); }
25876
25915
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: CubeDocumentsGridComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "grid", first: true, predicate: GridComponent, descendants: true }], ngImport: i0, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\"\r\n [pageSettings]=pageSettings\r\n [allowPaging]=false\r\n [enableHover]=false\r\n [enableAdaptiveUI]=true\r\n [enableStickyHeader]=true\r\n [allowExcelExport]=true\r\n [height]=height\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=groupSettings>\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <!--<e-column *ngFor=\"let a of cube.axes\" [field]=\"a.name\" [headerText]=\"a.title|translate\">\r\n </e-column>-->\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", dependencies: [{ kind: "directive", type: i6$5.ColumnDirective, selector: "ejs-gantt>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowReordering", "allowResizing", "allowSorting", "clipMode", "customAttributes", "disableHtmlEncode", "displayAsCheckBox", "edit", "editType", "field", "filter", "format", "formatter", "headerTemplate", "headerText", "headerTextAlign", "hideAtMedia", "isPrimaryKey", "maxWidth", "minWidth", "sortComparer", "template", "textAlign", "type", "validationRules", "valueAccessor", "visible", "width"] }, { kind: "directive", type: i6$5.ColumnsDirective, selector: "ejs-gantt>e-columns" }, { kind: "directive", type: i6$6.ColumnDirective, selector: "e-columns>e-column", inputs: ["border", "width"] }, { kind: "directive", type: i6$6.ColumnsDirective, selector: "ejs-chart>e-columns" }, { kind: "component", type: i8$3.GridComponent, selector: "ejs-grid", inputs: ["adaptiveUIMode", "aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "autoFit", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "cssClass", "currencyCode", "currentAction", "currentViewData", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "emptyRecordTemplate", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableHtmlSanitizer", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualMaskRow", "enableVirtualization", "exportGrids", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "loadingIndicator", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "showHider", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportDetailTemplate", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }, { kind: "directive", type: i8$3.ColumnDirective, selector: "ejs-grid>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowGrouping", "allowReordering", "allowResizing", "allowSearching", "allowSorting", "autoFit", "clipMode", "columns", "commands", "customAttributes", "dataSource", "defaultValue", "disableHtmlEncode", "displayAsCheckBox", "edit", "editTemplate", "editType", "enableGroupByFormat", "field", "filter", "filterBarTemplate", "filterTemplate", "foreignKeyField", "foreignKeyValue", "format", "formatter", "freeze", "headerTemplate", "headerText", "headerTextAlign", "headerValueAccessor", "hideAtMedia", "index", "isFrozen", "isIdentity", "isPrimaryKey", "lockColumn", "maxWidth", "minWidth", "showColumnMenu", "showInColumnChooser", "sortComparer", "template", "textAlign", "type", "uid", "validationRules", "valueAccessor", "visible", "width"] }, { kind: "directive", type: i8$3.ColumnsDirective, selector: "ejs-grid>e-columns" }, { kind: "directive", type: i8$3.AggregateColumnDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns>e-column", inputs: ["columnName", "customAggregate", "field", "footerTemplate", "format", "groupCaptionTemplate", "groupFooterTemplate", "type"] }, { kind: "directive", type: i8$3.AggregateColumnsDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns" }, { kind: "directive", type: i9$1.ColumnDirective, selector: "e-columns>e-column", inputs: ["customWidth", "format", "hidden", "index", "isLocked", "isReadOnly", "validation", "width"] }, { kind: "directive", type: i9$1.ColumnsDirective, selector: "e-sheet>e-columns" }, { kind: "directive", type: i10$2.ColumnDirective, selector: "e-columns>e-column", inputs: ["allowDrag", "allowDrop", "allowToggle", "headerText", "isExpanded", "keyField", "maxCount", "minCount", "showAddButton", "showItemCount", "template", "transitionColumns"] }, { kind: "directive", type: i10$2.ColumnsDirective, selector: "ejs-kanban>e-columns" }, { kind: "pipe", type: DateFormatPipe, name: "amDateFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: StatePipe, name: "state" }, { kind: "pipe", type: FormPipe, name: "form" }] }); }
25877
25916
  }
25878
25917
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsGridComponent, decorators: [{
25879
25918
  type: Component,
25880
25919
  args: [{ standalone: false, template: "<ejs-grid [dataSource]=\"dataSource\" (rowSelected)=\"rowSelected($event)\"\r\n [pageSettings]=pageSettings\r\n [allowPaging]=false\r\n [enableHover]=false\r\n [enableAdaptiveUI]=true\r\n [enableStickyHeader]=true\r\n [allowExcelExport]=true\r\n [height]=height\r\n [allowGrouping]=true\r\n [allowSorting]=true\r\n [groupSettings]=groupSettings>\r\n <e-columns>\r\n <e-column field=\"number\" [headerText]=\"'Number'|translate\"></e-column>\r\n <e-column field=\"subject\" [headerText]=\"'Subject'|translate\"></e-column>\r\n <e-column field=\"stateId\" [headerText]=\"'Status'|translate\">\r\n <ng-template #template let-data>{{data.stateId | state}}</ng-template>\r\n </e-column>\r\n <e-column field=\"date\" [headerText]=\"'Date'|translate\">\r\n <ng-template #template let-data>{{data.date | amDateFormat: 'lll'}}</ng-template>\r\n </e-column>\r\n <e-column field=\"formId\" [headerText]=\"'Form'|translate\">\r\n <ng-template #template let-data>{{data.formId | form}}</ng-template>\r\n </e-column>\r\n <e-column field=\"userName\" [headerText]=\"'Name'|translate\">\r\n </e-column>\r\n <!--<e-column *ngFor=\"let a of cube.axes\" [field]=\"a.name\" [headerText]=\"a.title|translate\">\r\n </e-column>-->\r\n <e-column field=\"total\" [headerText]=\"'Value'|translate\" textAlign=\"Right\" [format]=\"valueFormat\">\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n" }]
25881
- }], ctorParameters: () => [{ type: ReportRef }, { type: DocumentInfo }, { type: SessionService }, { type: AccountService }, { type: CubeService }], propDecorators: { grid: [{
25920
+ }], ctorParameters: () => [{ type: ReportRef }, { type: DocumentInfo }, { type: SessionService }, { type: AccountService }, { type: AnalysisService }], propDecorators: { grid: [{
25882
25921
  type: ViewChild,
25883
25922
  args: [GridComponent]
25884
25923
  }] } });
@@ -25907,13 +25946,13 @@ class CubeDocumentsTableComponent {
25907
25946
  open(id) {
25908
25947
  this._info.open(id);
25909
25948
  }
25910
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsTableComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
25949
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsTableComponent, deps: [{ token: ReportRef }, { token: DocumentInfo }, { token: SessionService }, { token: AnalysisService }], target: i0.ɵɵFactoryTarget.Component }); }
25911
25950
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeDocumentsTableComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], ngImport: i0, template: "<table mat-table matSort [dataSource]=\"dataSource\" [@list]=\"PAGE_SIZE\">\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element.id)\">{{element.number}}</a> </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subject}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"userId\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Name' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <bizdoc-identity-name [identity]=\"element.userId\" [by]=\"element.byId\"></bizdoc-identity-name>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"stateId\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Status' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> <span class=\"document-state\" [style.color]=\"element.stateId|state : 'color'\" [style.borderColor]=\"element.stateId|state : 'color'\">{{element.stateId | state}}</span> </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Value' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"figure\">\r\n {{element.value | currency : (element.currencyCode || DEFAULT_CURRENCY) : 'symbol' : CURRENCY_FORMAT }}\r\n @if (element.partial) {\r\n <mat-icon [bizdocTooltip]=\"element.total | currency : element.currencyCode : 'symbol' : CURRENCY_FORMAT\">error_outline</mat-icon>\r\n }\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\r\n <tr mat-row [@item] *matRowDef=\"let element; columns: displayColumns;\"></tr>\r\n</table>\r\n<mat-paginator [pageSize]=\"PAGE_SIZE\" hidePageSize showFirstLastButtons [style.display]=\"paging ? '' : 'none'\"></mat-paginator>\r\n", styles: ["table{width:100%}td.figure{text-align:right}.document-state{border-radius:2px 3px;padding:4px;border-width:1px;border-style:solid}\n"], dependencies: [{ kind: "component", type: i5$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6$1.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6$1.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7$4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: IdentityName, selector: "bizdoc-identity-name", inputs: ["identity", "by", "chating"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: StatePipe, name: "state" }], animations: [listAnimation, itemAnimation] }); }
25912
25951
  }
25913
25952
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentsTableComponent, decorators: [{
25914
25953
  type: Component,
25915
25954
  args: [{ standalone: false, animations: [listAnimation, itemAnimation], template: "<table mat-table matSort [dataSource]=\"dataSource\" [@list]=\"PAGE_SIZE\">\r\n <ng-container matColumnDef=\"number\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Number' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> <a (click)=\"open(element.id)\">{{element.number}}</a> </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"subject\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Subject' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> {{element.subject}} </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"userId\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{ 'Name' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <bizdoc-identity-name [identity]=\"element.userId\" [by]=\"element.byId\"></bizdoc-identity-name>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"stateId\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Status' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\"> <span class=\"document-state\" [style.color]=\"element.stateId|state : 'color'\" [style.borderColor]=\"element.stateId|state : 'color'\">{{element.stateId | state}}</span> </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"value\">\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'Value' | translate}}</th>\r\n <td mat-cell *matCellDef=\"let element\" class=\"figure\">\r\n {{element.value | currency : (element.currencyCode || DEFAULT_CURRENCY) : 'symbol' : CURRENCY_FORMAT }}\r\n @if (element.partial) {\r\n <mat-icon [bizdocTooltip]=\"element.total | currency : element.currencyCode : 'symbol' : CURRENCY_FORMAT\">error_outline</mat-icon>\r\n }\r\n </td>\r\n </ng-container>\r\n <tr mat-header-row *matHeaderRowDef=\"displayColumns\"></tr>\r\n <tr mat-row [@item] *matRowDef=\"let element; columns: displayColumns;\"></tr>\r\n</table>\r\n<mat-paginator [pageSize]=\"PAGE_SIZE\" hidePageSize showFirstLastButtons [style.display]=\"paging ? '' : 'none'\"></mat-paginator>\r\n", styles: ["table{width:100%}td.figure{text-align:right}.document-state{border-radius:2px 3px;padding:4px;border-width:1px;border-style:solid}\n"] }]
25916
- }], ctorParameters: () => [{ type: ReportRef }, { type: DocumentInfo }, { type: SessionService }, { type: CubeService }], propDecorators: { sort: [{
25955
+ }], ctorParameters: () => [{ type: ReportRef }, { type: DocumentInfo }, { type: SessionService }, { type: AnalysisService }], propDecorators: { sort: [{
25917
25956
  type: ViewChild,
25918
25957
  args: [MatSort]
25919
25958
  }], paginator: [{
@@ -26032,12 +26071,12 @@ class UsageReportBase {
26032
26071
  this._destroy.next();
26033
26072
  this._destroy.complete();
26034
26073
  }
26035
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageReportBase, deps: [{ token: RouterImpl }, { token: ReportRef }, { token: DatasourceService }, { token: CubeService }, { token: SessionService }, { token: PromptService }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
26074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageReportBase, deps: [{ token: RouterImpl }, { token: ReportRef }, { token: DatasourceService }, { token: AnalysisService }, { token: SessionService }, { token: PromptService }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
26036
26075
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.6", type: UsageReportBase, isStandalone: true, ngImport: i0 }); }
26037
26076
  }
26038
26077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageReportBase, decorators: [{
26039
26078
  type: Directive
26040
- }], ctorParameters: () => [{ type: RouterImpl }, { type: ReportRef }, { type: DatasourceService }, { type: CubeService }, { type: SessionService }, { type: PromptService }, { type: i7$2.Directionality }, { type: TranslateService }] });
26079
+ }], ctorParameters: () => [{ type: RouterImpl }, { type: ReportRef }, { type: DatasourceService }, { type: AnalysisService }, { type: SessionService }, { type: PromptService }, { type: i7$2.Directionality }, { type: TranslateService }] });
26041
26080
  ;
26042
26081
 
26043
26082
  /**
@@ -26364,7 +26403,7 @@ class UsageChartComponent extends UsageReportBase {
26364
26403
  this.pivot && this.pivot.destroy();
26365
26404
  super.ngOnDestroy();
26366
26405
  }
26367
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageChartComponent, deps: [{ token: ReportRef }, { token: DatasourceService }, { token: CubeService }, { token: SessionService }, { token: RouterImpl }, { token: PromptService }, { token: i0.ElementRef }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
26406
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageChartComponent, deps: [{ token: ReportRef }, { token: DatasourceService }, { token: AnalysisService }, { token: SessionService }, { token: RouterImpl }, { token: PromptService }, { token: i0.ElementRef }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
26368
26407
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: UsageChartComponent, isStandalone: false, selector: "ng-component", host: { properties: { "id": "id", "dir": "dir" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
26369
26408
  }
26370
26409
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsageChartComponent, decorators: [{
@@ -26377,7 +26416,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
26377
26416
  '[dir]': 'dir'
26378
26417
  }
26379
26418
  }]
26380
- }], ctorParameters: () => [{ type: ReportRef }, { type: DatasourceService }, { type: CubeService }, { type: SessionService }, { type: RouterImpl }, { type: PromptService }, { type: i0.ElementRef }, { type: i7$2.Directionality }, { type: TranslateService }] });
26419
+ }], ctorParameters: () => [{ type: ReportRef }, { type: DatasourceService }, { type: AnalysisService }, { type: SessionService }, { type: RouterImpl }, { type: PromptService }, { type: i0.ElementRef }, { type: i7$2.Directionality }, { type: TranslateService }] });
26381
26420
 
26382
26421
  const PIVOT_HEADER_DELIMITER = '|';
26383
26422
  /**
@@ -26604,7 +26643,7 @@ class UsagePivotComponent extends UsageReportBase {
26604
26643
  this.pivot && this.pivot.destroy();
26605
26644
  super.ngOnDestroy();
26606
26645
  }
26607
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i0.ElementRef }, { token: ReportRef }, { token: DatasourceService }, { token: CubeService }, { token: SessionService }, { token: RouterImpl }, { token: PromptService }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
26646
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsagePivotComponent, deps: [{ token: i0.ElementRef }, { token: ReportRef }, { token: DatasourceService }, { token: AnalysisService }, { token: SessionService }, { token: RouterImpl }, { token: PromptService }, { token: i7$2.Directionality }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
26608
26647
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: UsagePivotComponent, isStandalone: false, selector: "ng-component", host: { properties: { "id": "id" } }, viewQueries: [{ propertyName: "pivot", first: true, predicate: PivotViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
26609
26648
  }
26610
26649
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: UsagePivotComponent, decorators: [{
@@ -26615,7 +26654,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
26615
26654
  //templateUrl: 'usage-pivot.component.html',
26616
26655
  host: { '[id]': 'id' }
26617
26656
  }]
26618
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ReportRef }, { type: DatasourceService }, { type: CubeService }, { type: SessionService }, { type: RouterImpl }, { type: PromptService }, { type: i7$2.Directionality }, { type: TranslateService }], propDecorators: { pivot: [{
26657
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: ReportRef }, { type: DatasourceService }, { type: AnalysisService }, { type: SessionService }, { type: RouterImpl }, { type: PromptService }, { type: i7$2.Directionality }, { type: TranslateService }], propDecorators: { pivot: [{
26619
26658
  type: ViewChild,
26620
26659
  args: [PivotViewComponent]
26621
26660
  }] } });
@@ -27442,7 +27481,7 @@ class CombinationPickerBody {
27442
27481
  this.selectionChange.complete();
27443
27482
  this.modeChange.complete();
27444
27483
  }
27445
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1$3.FormBuilder }, { token: PromptService }, { token: CubeInfo }, { token: DatasourceService }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
27484
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1$3.FormBuilder }, { token: PromptService }, { token: CubeInfo }, { token: DatasourceService }, { token: i0.ChangeDetectorRef }, { token: SessionService }, { token: AnalysisService }], target: i0.ɵɵFactoryTarget.Component }); }
27446
27485
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CombinationPickerBody, isStandalone: false, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div class=\"picker-popup\" cdkTrapFocus>\r\n @switch (mode) {\r\n <!--[@transformPanel]=\"enter\"-->\r\n @case ('filter') {\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n @for (a of _axes; track a) {\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (_keys[a.name].length > 1) {\r\n <mat-option>{{'All'|translate}}</mat-option>\r\n }\r\n @for (key of _keys[a.name]; track key) {\r\n <mat-option [value]=\"key\">{{_datatypes[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <!-- results -->\r\n @case ('results') {\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n @for (codes of _combinations; track codes) {\r\n <mat-list-item (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n @if (_explorable) {\r\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-action-list>\r\n }\r\n }\r\n</div>\r\n", styles: [".picker-popup{color:var(--sys-on-surface);display:flex;flex-direction:column;width:100%}.picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:6px;display:flex}.picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:calc(50% - 4px)}.picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7$5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i2$4.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
27447
27486
  }
27448
27487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPickerBody, decorators: [{
@@ -27458,7 +27497,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
27458
27497
  }, {
27459
27498
  type: Inject,
27460
27499
  args: [COMBINATION_PICKER_BODY]
27461
- }] }, { type: i1$3.FormBuilder }, { type: PromptService }, { type: CubeInfo }, { type: DatasourceService }, { type: i0.ChangeDetectorRef }, { type: SessionService }, { type: CubeService }], propDecorators: { axes: [{
27500
+ }] }, { type: i1$3.FormBuilder }, { type: PromptService }, { type: CubeInfo }, { type: DatasourceService }, { type: i0.ChangeDetectorRef }, { type: SessionService }, { type: AnalysisService }], propDecorators: { axes: [{
27462
27501
  type: ViewChildren,
27463
27502
  args: [MatSelect]
27464
27503
  }] } });
@@ -27800,13 +27839,13 @@ class CombinationPool {
27800
27839
  ngOnDestroy() {
27801
27840
  this._destroy.next();
27802
27841
  }
27803
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPool, deps: [{ token: CubeService }, { token: i1$3.FormBuilder }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
27842
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPool, deps: [{ token: AnalysisService }, { token: i1$3.FormBuilder }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
27804
27843
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CombinationPool, isStandalone: false, selector: "bizdoc-combination-pool", inputs: { form: ["formGroup", "form"], appearance: "appearance", cube: "cube", model: "model", source: "source" }, outputs: { modelChange: "modelChange" }, ngImport: i0, template: "<form [formGroup]=\"form\">\r\n @for (a of _axes; track a) {\r\n <mat-form-field [appearance]=\"appearance\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (form.controls[a.name].value) {\r\n <mat-option>{{'Dashes'|translate:('Clear'|translate)}}</mat-option>\r\n }\r\n @for (key of _keys[a.dataType]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n</form>\r\n", styles: [":host{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}form{flex-flow:row wrap;box-sizing:border-box;display:flex;padding:0!important}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}[dir=rtl] form>*{padding:0 0 5px}@media (max-width: 599px){form{flex-flow:column}form>*{width:unset}}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
27805
27844
  }
27806
27845
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CombinationPool, decorators: [{
27807
27846
  type: Component,
27808
27847
  args: [{ standalone: false, selector: 'bizdoc-combination-pool', template: "<form [formGroup]=\"form\">\r\n @for (a of _axes; track a) {\r\n <mat-form-field [appearance]=\"appearance\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (form.controls[a.name].value) {\r\n <mat-option>{{'Dashes'|translate:('Clear'|translate)}}</mat-option>\r\n }\r\n @for (key of _keys[a.dataType]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n</form>\r\n", styles: [":host{-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}form{flex-flow:row wrap;box-sizing:border-box;display:flex;padding:0!important}form>*{flex:1 1 auto;box-sizing:border-box;width:50%;padding:0 5px 0 0}[dir=rtl] form>*{padding:0 0 5px}@media (max-width: 599px){form{flex-flow:column}form>*{width:unset}}\n"] }]
27809
- }], ctorParameters: () => [{ type: CubeService }, { type: i1$3.FormBuilder }, { type: SessionService }], propDecorators: { form: [{
27848
+ }], ctorParameters: () => [{ type: AnalysisService }, { type: i1$3.FormBuilder }, { type: SessionService }], propDecorators: { form: [{
27810
27849
  type: Input,
27811
27850
  args: ['formGroup']
27812
27851
  }], appearance: [{
@@ -28406,7 +28445,7 @@ class CubeBase {
28406
28445
  }
28407
28446
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeBase, decorators: [{
28408
28447
  type: Directive
28409
- }], ctorParameters: () => [{ type: DocumentViewRef }, { type: CubeService }, { type: SessionService }, { type: undefined }] });
28448
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: AnalysisService }, { type: SessionService }, { type: undefined }] });
28410
28449
 
28411
28450
  let CubeDocumentMatrixComponent = class CubeDocumentMatrixComponent extends CubeBase {
28412
28451
  constructor(viewRef, _router, service, session) {
@@ -28470,7 +28509,7 @@ let CubeDocumentMatrixComponent = class CubeDocumentMatrixComponent extends Cube
28470
28509
  this.pattern = undefined;
28471
28510
  this.title = undefined;
28472
28511
  }
28473
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentMatrixComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
28512
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentMatrixComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: AnalysisService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
28474
28513
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeDocumentMatrixComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "table", first: true, predicate: CubeMatrixComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"patternsMenu\" [bizdocTooltip]=\"'Pattern'|translate\" [attr.aria-label]=\"'Pattern'|translate\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #patternsMenu xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{axes[f.name] | typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-matrix [cube]=\"cube.name\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=\"sum\"\r\n [filters]=\"axes\" [scope]=\"scope\" class=\"table\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (explore)='explore($event)' [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n} @else {\r\n <bizdoc-none icon=\"insert_chart_outlined\" subtitle=\"NothingHere\"></bizdoc-none>\r\n}\r\n", styles: [".table{padding:0 8px}\n"], dependencies: [{ kind: "component", type: i7$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
28475
28514
  };
28476
28515
  CubeDocumentMatrixComponent = __decorate([
@@ -28481,7 +28520,7 @@ CubeDocumentMatrixComponent = __decorate([
28481
28520
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentMatrixComponent, decorators: [{
28482
28521
  type: Component,
28483
28522
  args: [{ standalone: false, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <!-- title -->\r\n @if (patterns && patterns.length) {\r\n <button mat-icon-button [matMenuTriggerFor]=\"patternsMenu\" [bizdocTooltip]=\"'Pattern'|translate\" [attr.aria-label]=\"'Pattern'|translate\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n }\r\n <mat-menu #patternsMenu xPosition=\"before\">\r\n <!-- patterns -->\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">{{p.title}}</button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{axes[f.name] | typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-matrix [cube]=\"cube.name\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=\"sum\"\r\n [filters]=\"axes\" [scope]=\"scope\" class=\"table\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (explore)='explore($event)' [(loading)]=\"loading\"></bizdoc-cube-matrix>\r\n} @else {\r\n <bizdoc-none icon=\"insert_chart_outlined\" subtitle=\"NothingHere\"></bizdoc-none>\r\n}\r\n", styles: [".table{padding:0 8px}\n"] }]
28484
- }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: CubeService }, { type: SessionService }], propDecorators: { table: [{
28523
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: AnalysisService }, { type: SessionService }], propDecorators: { table: [{
28485
28524
  type: ViewChild,
28486
28525
  args: [CubeMatrixComponent, { static: true }]
28487
28526
  }] } });
@@ -28548,7 +28587,7 @@ let CubeInsightComponent = class CubeInsightComponent extends CubeBase {
28548
28587
  evt && evt.preventDefault();
28549
28588
  }
28550
28589
  }
28551
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInsightComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: CubeService }, { token: Popup }, { token: RouterImpl }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
28590
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInsightComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: AnalysisService }, { token: Popup }, { token: RouterImpl }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component }); }
28552
28591
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeInsightComponent, isStandalone: false, selector: "ng-component", viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n (loading)=\"loading = $event\"></bizdoc-cube-view>\r\n} @else {\r\n <bizdoc-none icon=\"equalizer\" subtitle=\"NothingHere\"></bizdoc-none>\r\n}\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%;min-height:220px}:host ::ng-deep .cube-view{flex:1 auto}\n"], dependencies: [{ kind: "component", type: i7$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["filters", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
28553
28592
  };
28554
28593
  CubeInsightComponent = __decorate([
@@ -28559,7 +28598,7 @@ CubeInsightComponent = __decorate([
28559
28598
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeInsightComponent, decorators: [{
28560
28599
  type: Component,
28561
28600
  args: [{ standalone: false, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (view.guide) {\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n }\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"pmenu\" [bizdocTooltip]=\"'Patterns' | translate\" [disabled]=\"!patterns?.length\" data-help=\"pattern\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n @for (p of patterns; track p) {\r\n <button mat-menu-item (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"clearFilter()\" [bizdocTooltip]=\"'Clear' | translate\" [disabled]=\"!anyFilters\"><mat-icon>clear_all</mat-icon></button>\r\n <button mat-icon-button (click)=\"filterToggle($event)\" [bizdocTooltip]=\"'Filter' | translate\" [disabled]=\"!anyAxes\" data-help=\"filter\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-view [filters]=\"axes\" #vp\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube\"\r\n [view]=\"view\"\r\n (loading)=\"loading = $event\"></bizdoc-cube-view>\r\n} @else {\r\n <bizdoc-none icon=\"equalizer\" subtitle=\"NothingHere\"></bizdoc-none>\r\n}\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;height:100%;min-height:220px}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
28562
- }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: CubeService }, { type: Popup }, { type: RouterImpl }, { type: GuideService }], propDecorators: { viewPane: [{
28601
+ }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: AnalysisService }, { type: Popup }, { type: RouterImpl }, { type: GuideService }], propDecorators: { viewPane: [{
28563
28602
  type: ViewChild,
28564
28603
  args: [CubeViewComponent]
28565
28604
  }] } });
@@ -28904,7 +28943,7 @@ let CubePivotViewComponent = class CubePivotViewComponent extends CubeBase {
28904
28943
  state: { index }
28905
28944
  });
28906
28945
  }
28907
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotViewComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: CubeService }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
28946
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotViewComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: AnalysisService }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
28908
28947
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubePivotViewComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n <bizdoc-cube-pivot\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"axes\"\r\n [chartType]=\"chartType\"\r\n [width]=\"width\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-pivot>\r\n}\r\n", dependencies: [{ kind: "component", type: CubePivotComponent, selector: "bizdoc-cube-pivot", inputs: ["width", "height", "cube", "xAxis", "yAxis", "series", "indices", "filters", "chartType", "indicesChartType", "palettes", "loading"], outputs: ["explore", "loadingChange"] }] }); }
28909
28948
  };
28910
28949
  CubePivotViewComponent = __decorate([
@@ -28915,7 +28954,7 @@ CubePivotViewComponent = __decorate([
28915
28954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubePivotViewComponent, decorators: [{
28916
28955
  type: Component,
28917
28956
  args: [{ standalone: false, template: "@if (hasdata) {\r\n <bizdoc-cube-pivot\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"axes\"\r\n [chartType]=\"chartType\"\r\n [width]=\"width\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-pivot>\r\n}\r\n" }]
28918
- }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: CubeService }, { type: RouterImpl }] });
28957
+ }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: AnalysisService }, { type: RouterImpl }] });
28919
28958
 
28920
28959
  class CubeSumComponent {
28921
28960
  constructor(_ds, _service, _sb, _session) {
@@ -29273,7 +29312,7 @@ class CubeSumComponent {
29273
29312
  axes[this.parentAxis] = level.scope;
29274
29313
  this.onExplore.emit({ axes, index });
29275
29314
  }
29276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeSumComponent, deps: [{ token: DatasourceService }, { token: CubeService }, { token: PromptService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29315
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeSumComponent, deps: [{ token: DatasourceService }, { token: AnalysisService }, { token: PromptService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29277
29316
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeSumComponent, isStandalone: false, selector: "bizdoc-cube-sum", inputs: { xAxis: "xAxis", periodPolicy: "periodPolicy", parentAxis: "parentAxis", filters: "filters", cube: "cube", indices: "indices", scope: "scope" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<!-- levels -->\r\n<div class=\"row\">\r\n @if (prev) {\r\n <div class=\"level prev-level\">\r\n <div class=\"level-header row\">\r\n @if (back) {\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\">keyboard_arrow_left</mat-icon>\r\n }\r\n <div div class=\"mat-h1 title\">\r\n {{'PrevLevel'| translate}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n @if (forward) {\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\r\n </div>\r\n }\r\n @if (current) {\r\n <div class=\"level current-level\">\r\n <div class=\"level-header row\">\r\n <div div class=\"mat-h1 title\">\r\n {{'CurrentLevel'| translate : primaryAxis.title}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n @if (help) {\r\n <mat-icon [bizdocTooltip]=\"help\" [inline]=\"true\">help_outline</mat-icon>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\r\n </div>\r\n }\r\n @if (next) {\r\n <div class=\"level next-level\">\r\n <div class=\"level-header\">\r\n <div div class=\"mat-h1 title\">\r\n {{'NextLevel'| translate}}\r\n </div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n<!-- level -->\r\n<ng-template #level let-use=\"use\" let-help=\"help\">\r\n <div>\r\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\r\n <div class=\"row\">\r\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\r\n <span class=\"divider\"></span>\r\n @if (use.chain && use.value !== use.chain.value) {\r\n <div>\r\n @if (use.value !== 0 && use.chain.value !== 0) {\r\n <span>{{Math.round(use.value / use.chain.value * 100) }}%</span>\r\n }\r\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- -->\r\n <div class=\"row\">\r\n @for (i of use.indices; track i) {\r\n <div class=\"index\">\r\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\r\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\r\n </div>\r\n }\r\n </div>\r\n @if (use.indices.length) {\r\n <div class=\"bar\" [class.available]=\"use.percent < 100\">\r\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\r\n @if (use.percent > 0) {\r\n <div class=\"overflow\"></div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{padding:0 8px}.level{border-width:thin;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:8px;margin:3px;-ms-flex:1 1 0;-webkit-flex:1 1 0;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.CurrencyPipe, name: "currency" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [trigger('bar', [
29278
29317
  transition('*<=>*', [style({
29279
29318
  flexBasis: '{{startWidth}}%'
@@ -29287,7 +29326,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
29287
29326
  flexBasis: '{{startWidth}}%'
29288
29327
  }), animate('500ms ease')], { params: { startWidth: 100 } }),
29289
29328
  ])], template: "<!-- levels -->\r\n<div class=\"row\">\r\n @if (prev) {\r\n <div class=\"level prev-level\">\r\n <div class=\"level-header row\">\r\n @if (back) {\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"goprev()\">keyboard_arrow_left</mat-icon>\r\n }\r\n <div div class=\"mat-h1 title\">\r\n {{'PrevLevel'| translate}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n @if (forward) {\r\n <mat-icon class=\"cliclable mat-icon-rtl-mirror\" [inline]=true (click)=\"gonext()\">keyboard_arrow_right</mat-icon>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: prev}\"></ng-container>\r\n </div>\r\n }\r\n @if (current) {\r\n <div class=\"level current-level\">\r\n <div class=\"level-header row\">\r\n <div div class=\"mat-h1 title\">\r\n {{'CurrentLevel'| translate : primaryAxis.title}}\r\n </div>\r\n <span class=\"divider\"></span>\r\n @if (help) {\r\n <mat-icon [bizdocTooltip]=\"help\" [inline]=\"true\">help_outline</mat-icon>\r\n }\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: current}\"></ng-container>\r\n </div>\r\n }\r\n @if (next) {\r\n <div class=\"level next-level\">\r\n <div class=\"level-header\">\r\n <div div class=\"mat-h1 title\">\r\n {{'NextLevel'| translate}}\r\n </div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"level; context: {use: next}\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n<!-- level -->\r\n<ng-template #level let-use=\"use\" let-help=\"help\">\r\n <div>\r\n <h2 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.title}}</h2>\r\n <div class=\"row\">\r\n <h3 class=\"mat-h1\" [class.cliclable]=\"use.value !== 0\" (click)=\"explore(use)\">{{use.value | currency : currencyCode : 'symbol' : digitsInfo}}</h3>\r\n <span class=\"divider\"></span>\r\n @if (use.chain && use.value !== use.chain.value) {\r\n <div>\r\n @if (use.value !== 0 && use.chain.value !== 0) {\r\n <span>{{Math.round(use.value / use.chain.value * 100) }}%</span>\r\n }\r\n <mat-icon>{{use.value > use.chain.value ? 'trending_up':'trending_down' }}</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n <!-- -->\r\n <div class=\"row\">\r\n @for (i of use.indices; track i) {\r\n <div class=\"index\">\r\n <h4 class=\"mat-h3 title\">{{i.title}}</h4>\r\n <h5 class=\"mat-h3\" [class.cliclable]=\"i.value !== 0\" (click)=\"explore(use, i.name)\">{{i.value | currency : currencyCode : 'symbol' : digitsInfo}}</h5>\r\n </div>\r\n }\r\n </div>\r\n @if (use.indices.length) {\r\n <div class=\"bar\" [class.available]=\"use.percent < 100\">\r\n <div class=\"value\" [style.flexBasis]=\"Math.round(use.percent < 100 ?\r\n 100 - use.percent :\r\n 100 / use.percent * 100) + '%'\"\r\n [@bar]=\"use.animation\"></div>\r\n @if (use.percent > 0) {\r\n <div class=\"overflow\"></div>\r\n }\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{padding:0 8px}.level{border-width:thin;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;padding:8px;margin:3px;-ms-flex:1 1 0;-webkit-flex:1 1 0;flex:1 1 0;border-style:solid}.level .cliclable{cursor:pointer}.level.next-level{border-style:dashed}.level .level-header{align-items:center}.level .level-header .title{margin:0;line-height:22px;font-size:inherit;font-variant-caps:all-petite-caps}.level h3{margin:0;font-size:x-large}.level h2{font-weight:400;font-size:larger;margin:0}.level .percent{display:flex;align-items:center}.level .index{padding:0 4px}.level .index h5,.level .index h4{margin:0}.level .bar{display:flex}.level .bar .value,.level .bar .overflow{height:12px}.level .bar .value{flex:0 0 0%}.level .bar .overflow{flex:1 1 0%;box-sizing:border-box}.level .bar.available .overflow{border-width:1px;border-style:dashed}\n"] }]
29290
- }], ctorParameters: () => [{ type: DatasourceService }, { type: CubeService }, { type: PromptService }, { type: SessionService }], propDecorators: { xAxis: [{
29329
+ }], ctorParameters: () => [{ type: DatasourceService }, { type: AnalysisService }, { type: PromptService }, { type: SessionService }], propDecorators: { xAxis: [{
29291
29330
  type: Input
29292
29331
  }], periodPolicy: [{
29293
29332
  type: Input
@@ -29341,7 +29380,7 @@ let CubeDocumentSumComponent = class CubeDocumentSumComponent extends CubeBase {
29341
29380
  } : null
29342
29381
  });
29343
29382
  }
29344
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentSumComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29383
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentSumComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: AnalysisService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29345
29384
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeDocumentSumComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n @if (alternate || selectedAxis) {\r\n <div class=\"nav-toolbar\">\r\n <span class=\"divider\"></span>\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n @if (selectedAxis) {\r\n <button mat-button [matMenuTriggerFor]=\"amenu\">{{selectedAxis| typeValue: primaryAxis.dataType | async }} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #amenu>\r\n @for (a of alternateAxes; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchAxis(a)\">\r\n {{a | typeValue: primaryAxis.dataType | async}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n </div>\r\n }\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-sum [xAxis]=\"primaryAxis.name\" [filters]=\"axes\" [parentAxis]=\"parentAxis\"\r\n [scope]=\"scope\" [periodPolicy]=\"periodPolicy\"\r\n [indices]=\"indices\" [cube]=\"cube.name\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-sum>\r\n}\r\n", styles: [":host{padding:0 8px}\n"], dependencies: [{ kind: "component", type: i7$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: CubeSumComponent, selector: "bizdoc-cube-sum", inputs: ["xAxis", "periodPolicy", "parentAxis", "filters", "cube", "indices", "scope"], outputs: ["explore"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }] }); }
29346
29385
  };
29347
29386
  CubeDocumentSumComponent = __decorate([
@@ -29352,7 +29391,7 @@ CubeDocumentSumComponent = __decorate([
29352
29391
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeDocumentSumComponent, decorators: [{
29353
29392
  type: Component,
29354
29393
  args: [{ standalone: false, template: "@if (hasdata) {\r\n @if (alternate || selectedAxis) {\r\n <div class=\"nav-toolbar\">\r\n <span class=\"divider\"></span>\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n @if (selectedAxis) {\r\n <button mat-button [matMenuTriggerFor]=\"amenu\">{{selectedAxis| typeValue: primaryAxis.dataType | async }} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #amenu>\r\n @for (a of alternateAxes; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchAxis(a)\">\r\n {{a | typeValue: primaryAxis.dataType | async}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n </div>\r\n }\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-sum [xAxis]=\"primaryAxis.name\" [filters]=\"axes\" [parentAxis]=\"parentAxis\"\r\n [scope]=\"scope\" [periodPolicy]=\"periodPolicy\"\r\n [indices]=\"indices\" [cube]=\"cube.name\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-sum>\r\n}\r\n", styles: [":host{padding:0 8px}\n"] }]
29355
- }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: CubeService }, { type: SessionService }] });
29394
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: AnalysisService }, { type: SessionService }] });
29356
29395
 
29357
29396
  let CubeChartViewComponent = class CubeChartViewComponent extends CubeBase {
29358
29397
  constructor(session, viewRef, service, _router) {
@@ -29401,7 +29440,7 @@ let CubeChartViewComponent = class CubeChartViewComponent extends CubeBase {
29401
29440
  state: { index }
29402
29441
  });
29403
29442
  }
29404
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartViewComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: CubeService }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
29443
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartViewComponent, deps: [{ token: SessionService }, { token: DocumentViewRef }, { token: AnalysisService }, { token: RouterImpl }], target: i0.ɵɵFactoryTarget.Component }); }
29405
29444
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeChartViewComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (hasdata; ) {\r\n <!--else none-->\r\n @switch (isAccum) {\r\n @case (true) {\r\n <bizdoc-cube-accum [chartType]=\"chartType\" [width]=\"width\" [scope]=\"scope\"\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"filters\"\r\n [xAxis]=\"xAxis\"></bizdoc-cube-accum>\r\n }\r\n @default {\r\n <bizdoc-cube-chart\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [indices]=\"indices\"\r\n [filters]=\"filters\"\r\n [chartType]=\"chartType\"\r\n [indicesChartType]=\"indicesChartType\"\r\n [width]=\"width\"\r\n [scope]=\"scope\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-chart>\r\n }\r\n }\r\n}\r\n<ng-template #none>\r\n <bizdoc-none icon=\"insert_chart_outlined\" subtitle=\"NothingHere\"></bizdoc-none>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "component", type: CubeAccumulationChartComponent, selector: "bizdoc-cube-accum", inputs: ["palettes", "height", "width", "cube", "xAxis", "filters", "chartType", "scope", "loading"], outputs: ["loadingChange", "explore"] }, { kind: "component", type: CubeChartComponent, selector: "bizdoc-cube-chart", inputs: ["width", "height", "cube", "xAxis", "series", "indices", "filters", "yAxis", "chartType", "indicesChartType", "scope", "loading", "palettes"], outputs: ["explore", "loadingChange"] }] }); }
29406
29445
  };
29407
29446
  CubeChartViewComponent = __decorate([
@@ -29412,7 +29451,7 @@ CubeChartViewComponent = __decorate([
29412
29451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeChartViewComponent, decorators: [{
29413
29452
  type: Component,
29414
29453
  args: [{ standalone: false, template: "@if (hasdata; ) {\r\n <!--else none-->\r\n @switch (isAccum) {\r\n @case (true) {\r\n <bizdoc-cube-accum [chartType]=\"chartType\" [width]=\"width\" [scope]=\"scope\"\r\n (explore)=\"explore($event)\"\r\n [cube]=\"cube.name\"\r\n [filters]=\"filters\"\r\n [xAxis]=\"xAxis\"></bizdoc-cube-accum>\r\n }\r\n @default {\r\n <bizdoc-cube-chart\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [indices]=\"indices\"\r\n [filters]=\"filters\"\r\n [chartType]=\"chartType\"\r\n [indicesChartType]=\"indicesChartType\"\r\n [width]=\"width\"\r\n [scope]=\"scope\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-chart>\r\n }\r\n }\r\n}\r\n<ng-template #none>\r\n <bizdoc-none icon=\"insert_chart_outlined\" subtitle=\"NothingHere\"></bizdoc-none>\r\n</ng-template>\r\n" }]
29415
- }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: CubeService }, { type: RouterImpl }] });
29454
+ }], ctorParameters: () => [{ type: SessionService }, { type: DocumentViewRef }, { type: AnalysisService }, { type: RouterImpl }] });
29416
29455
 
29417
29456
  let CubeExploreViewComponent = class CubeExploreViewComponent extends CubeBase {
29418
29457
  constructor(viewRef, _sb, _router, service, _ds, session) {
@@ -29464,7 +29503,7 @@ let CubeExploreViewComponent = class CubeExploreViewComponent extends CubeBase {
29464
29503
  }
29465
29504
  });
29466
29505
  }
29467
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExploreViewComponent, deps: [{ token: DocumentViewRef }, { token: PromptService }, { token: RouterImpl }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29506
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExploreViewComponent, deps: [{ token: DocumentViewRef }, { token: PromptService }, { token: RouterImpl }, { token: AnalysisService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29468
29507
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeExploreViewComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{axes[f.name] | typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-explore #items [cube]=\"cube.name\" [axes]=axes\r\n (explore)=\"item($event)\"\r\n (loadingChange)=\"loading = $event\" [pageSize]=\"pageSize\"\r\n [scope]=\"scope\"></bizdoc-cube-explore>\r\n}\r\n", dependencies: [{ kind: "component", type: i7$3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: ["pageSize", "cube", "index", "scope", "axes", "loading"], outputs: ["explore", "load", "loadingChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
29469
29508
  };
29470
29509
  CubeExploreViewComponent = __decorate([
@@ -29475,7 +29514,7 @@ CubeExploreViewComponent = __decorate([
29475
29514
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeExploreViewComponent, decorators: [{
29476
29515
  type: Component,
29477
29516
  args: [{ standalone: false, template: "@if (hasdata) {\r\n <div class=\"nav-toolbar\">\r\n @if (alternate) {\r\n <button mat-button [matMenuTriggerFor]=\"cmenu\">{{cube.title}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #cmenu>\r\n @for (a of alternate; track a) {\r\n <button mat-menu-item\r\n (click)=\"switchTo(a)\">\r\n {{a.title}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <!-- filters -->\r\n @for (f of filters; track f) {\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{axes[f.name] | typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n @for (kv of sources[f.name] | async; track kv) {\r\n <button mat-menu-item\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n }\r\n </mat-menu>\r\n }\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"items.paginator.previousPage()\" [bizdocTooltip]=\"'PrevPage' | translate\" [attr.aria-label]=\"'PrevPage' | translate\" [disabled]=\"!items.paginator.hasPreviousPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <button mat-icon-button (click)=\"items.paginator.nextPage()\" [bizdocTooltip]=\"'NextPage' | translate\" [attr.aria-label]=\"'NextPage' | translate\" [disabled]=\"!items.paginator.hasNextPage()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n </div>\r\n @if (loading) {\r\n <div class=\"loading-view\">\r\n <mat-spinner color=\"accent\"></mat-spinner>\r\n </div>\r\n }\r\n <bizdoc-cube-explore #items [cube]=\"cube.name\" [axes]=axes\r\n (explore)=\"item($event)\"\r\n (loadingChange)=\"loading = $event\" [pageSize]=\"pageSize\"\r\n [scope]=\"scope\"></bizdoc-cube-explore>\r\n}\r\n" }]
29478
- }], ctorParameters: () => [{ type: DocumentViewRef }, { type: PromptService }, { type: RouterImpl }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }] });
29517
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: PromptService }, { type: RouterImpl }, { type: AnalysisService }, { type: DatasourceService }, { type: SessionService }] });
29479
29518
 
29480
29519
  /** */
29481
29520
  class Item {
@@ -29638,13 +29677,13 @@ class CubeParallelComponent {
29638
29677
  this._destroy.complete();
29639
29678
  this._loading.complete();
29640
29679
  }
29641
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelComponent, deps: [{ token: PromptService }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29680
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelComponent, deps: [{ token: PromptService }, { token: AnalysisService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29642
29681
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeParallelComponent, isStandalone: false, selector: "bizdoc-cube-parallel", inputs: { filters: "filters", xAxis: "xAxis", series: "series", indices: "indices", cube: "cube", size: "size", chartType: "chartType", scope: "scope", palettes: "palettes" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "@if (items.length) {\r\n<div class=\"row\">\r\n @for (s of items; track s) {\r\n <div class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\"\r\n [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: i6$6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }] }); }
29643
29682
  }
29644
29683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelComponent, decorators: [{
29645
29684
  type: Component,
29646
29685
  args: [{ standalone: false, selector: 'bizdoc-cube-parallel', template: "@if (items.length) {\r\n<div class=\"row\">\r\n @for (s of items; track s) {\r\n <div class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\"\r\n [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n }\r\n</div>\r\n}\r\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"] }]
29647
- }], ctorParameters: () => [{ type: PromptService }, { type: CubeService }, { type: SessionService }], propDecorators: { filters: [{
29686
+ }], ctorParameters: () => [{ type: PromptService }, { type: AnalysisService }, { type: SessionService }], propDecorators: { filters: [{
29648
29687
  type: Input
29649
29688
  }], xAxis: [{
29650
29689
  type: Input
@@ -29696,7 +29735,7 @@ let CubeParallelViewComponent = class CubeParallelViewComponent extends CubeBase
29696
29735
  state: { index: evt.index }
29697
29736
  });
29698
29737
  }
29699
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelViewComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: CubeService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelViewComponent, deps: [{ token: DocumentViewRef }, { token: RouterImpl }, { token: AnalysisService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
29700
29739
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: CubeParallelViewComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "@if (hasdata) {\r\n <bizdoc-cube-parallel\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [indices]=\"indices\"\r\n [filters]=\"axes\"\r\n [chartType]=\"chartType\"\r\n [scope]=\"scope\"\r\n [size]=\"size\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-parallel>\r\n}\r\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"], dependencies: [{ kind: "component", type: CubeParallelComponent, selector: "bizdoc-cube-parallel", inputs: ["filters", "xAxis", "series", "indices", "cube", "size", "chartType", "scope", "palettes"], outputs: ["explore"] }] }); }
29701
29740
  };
29702
29741
  CubeParallelViewComponent = __decorate([
@@ -29707,7 +29746,7 @@ CubeParallelViewComponent = __decorate([
29707
29746
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: CubeParallelViewComponent, decorators: [{
29708
29747
  type: Component,
29709
29748
  args: [{ standalone: false, template: "@if (hasdata) {\r\n <bizdoc-cube-parallel\r\n [cube]=\"cube.name\"\r\n [xAxis]=\"xAxis\"\r\n [series]=\"series\"\r\n [indices]=\"indices\"\r\n [filters]=\"axes\"\r\n [chartType]=\"chartType\"\r\n [scope]=\"scope\"\r\n [size]=\"size\"\r\n (explore)=\"explore($event)\"></bizdoc-cube-parallel>\r\n}\r\n", styles: [":host{padding:8px}.element{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;flex:1 1 auto}\n"] }]
29710
- }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: CubeService }, { type: SessionService }] });
29749
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: RouterImpl }, { type: AnalysisService }, { type: SessionService }] });
29711
29750
 
29712
29751
  let CubeDocumentsComponent = class CubeDocumentsComponent {
29713
29752
  constructor(_injector, _ref, _vc) {
@@ -30567,7 +30606,7 @@ let AxesPickerField = class AxesPickerField {
30567
30606
  this._service = _service;
30568
30607
  this.control = new FormControl();
30569
30608
  }
30570
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AxesPickerField, deps: [{ token: SessionService }, { token: CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
30609
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AxesPickerField, deps: [{ token: SessionService }, { token: AnalysisService }], target: i0.ɵɵFactoryTarget.Component }); }
30571
30610
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: AxesPickerField, isStandalone: false, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: CombinationPicker, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\r\n<mat-form-field>\r\n @if (label){<mat-label>{{label|localizedString}}</mat-label>}\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n <bizdoc-combination-picker [cube]=\"cube\" [formControl]=control\r\n [required]=\"required\"></bizdoc-combination-picker>\r\n @if (control.hasError('requiredTrue')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n{{nameOf(control.value)}}\r\n}\r\n", dependencies: [{ kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: ["divider", "displayDivider", "limit", "cube", "exploreSettings", "description", "touchUi", "placeholder", "required", "disabled", "value"], outputs: ["optionSelected", "descriptionChange"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
30572
30611
  };
30573
30612
  AxesPickerField = __decorate([
@@ -30576,7 +30615,7 @@ AxesPickerField = __decorate([
30576
30615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: AxesPickerField, decorators: [{
30577
30616
  type: Component,
30578
30617
  args: [{ standalone: false, host: { class: 'field' }, template: "@if (mode==='compose') {\r\n<mat-form-field>\r\n @if (label){<mat-label>{{label|localizedString}}</mat-label>}\r\n @if (hint) {\r\n <mat-hint> {{ hint |localizedString}}</mat-hint>\r\n }\r\n <bizdoc-combination-picker [cube]=\"cube\" [formControl]=control\r\n [required]=\"required\"></bizdoc-combination-picker>\r\n @if (control.hasError('requiredTrue')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n }\r\n</mat-form-field>\r\n} @else {\r\n{{nameOf(control.value)}}\r\n}\r\n" }]
30579
- }], ctorParameters: () => [{ type: SessionService }, { type: CubeService }], propDecorators: { input: [{
30618
+ }], ctorParameters: () => [{ type: SessionService }, { type: AnalysisService }], propDecorators: { input: [{
30580
30619
  type: ViewChild,
30581
30620
  args: [CombinationPicker]
30582
30621
  }] } });
@@ -31007,38 +31046,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
31007
31046
  args: ['container', { static: true, read: ViewContainerRef }]
31008
31047
  }] } });
31009
31048
 
31010
- class ContentNotification {
31011
- ngOnInit() {
31012
- }
31013
- constructor(notification, vc) {
31014
- this.notification = notification;
31015
- this._factory = inject(BizDocComponentFactoryResolver);
31016
- this._session = inject(SessionService);
31017
- const configuration = this._session.profile.notifications.find(n => n.contentType === notification.contentType);
31018
- const comp = this._factory.component(configuration.template);
31019
- const compRef = vc.createComponent(comp, {
31020
- // injector: Injector.create([{
31021
- // provide: NotificationRef,
31022
- // value: new NotificationRef()
31023
- // }])
31024
- });
31025
- compRef.instance.onBind(notification.content);
31026
- }
31027
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ContentNotification, deps: [{ token: NOTIFICATION_DATA }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
31028
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: ContentNotification, isStandalone: false, selector: "bizdoc-notify-content", ngImport: i0, template: '', isInline: true }); }
31029
- }
31030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: ContentNotification, decorators: [{
31031
- type: Component,
31032
- args: [{
31033
- standalone: false,
31034
- selector: 'bizdoc-notify-content',
31035
- template: ''
31036
- }]
31037
- }], ctorParameters: () => [{ type: undefined, decorators: [{
31038
- type: Inject,
31039
- args: [NOTIFICATION_DATA]
31040
- }] }, { type: i0.ViewContainerRef }] });
31041
-
31042
31049
  /** configuration componenets */
31043
31050
  const CORE_COMPONENTS = [PerformanceWindComponent, PerformanceHiloComponent, CubePerformanceWidget, CubeParallelViewComponent, CubeExploreViewComponent, CubeChartViewComponent, CubeDocumentSumComponent, CubeDocumentMatrixComponent, CubeInsightComponent, CubePivotViewComponent, TimelineViewComponent,
31044
31051
  SubstitutionComponent, MoveToActionComponent, AssignActionComponent, ReturnActionComponent, ExploreDocumentComponent,
@@ -31221,7 +31228,7 @@ class SharedModule {
31221
31228
  CookieService,
31222
31229
  DocumentInfo, AttachmentInfo, MapInfo, CubeInfo,
31223
31230
  MailboxService, SessionService, DocumentFactory, HubService,
31224
- CubeService, DatasourceService,
31231
+ AnalysisService, DatasourceService,
31225
31232
  DateRangePipe, AgoPipe, DurationFormatPipe,
31226
31233
  WindowTitleService, NotificationsService,
31227
31234
  AccountService, ChatService, ChatInfo,
@@ -31354,7 +31361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
31354
31361
  CookieService,
31355
31362
  DocumentInfo, AttachmentInfo, MapInfo, CubeInfo,
31356
31363
  MailboxService, SessionService, DocumentFactory, HubService,
31357
- CubeService, DatasourceService,
31364
+ AnalysisService, DatasourceService,
31358
31365
  DateRangePipe, AgoPipe, DurationFormatPipe,
31359
31366
  WindowTitleService, NotificationsService,
31360
31367
  AccountService, ChatService, ChatInfo,
@@ -35157,11 +35164,11 @@ class FormDesignComponent extends DesignerTypeElementComponent {
35157
35164
  this._destroy.complete();
35158
35165
  }
35159
35166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1$3.FormBuilder }, { token: PanesRouter }, { token: SystemService }, { token: SessionService }, { token: i0.Injector }, { token: TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
35160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: FormDesignComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6$6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i2$7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.6", type: FormDesignComponent, isStandalone: false, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i6$6.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i2$7.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$7.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$7.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35161
35168
  }
35162
35169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: FormDesignComponent, decorators: [{
35163
35170
  type: Component,
35164
- args: [{ standalone: false, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
35171
+ args: [{ standalone: false, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\r\n <ng-template bizdocContent>\r\n @if (usage) {\r\n <ejs-sparkline width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [locale]=\"locale\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n (tooltipInitialize)=\"tooltipInitialize($event)\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n }\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\r\n <mat-menu #options>\r\n <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\r\n </mat-menu>\r\n </div>\r\n </ng-template>\r\n <!--edit-->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap flex\" [formGroup]=\"format\">\r\n <mat-form-field>\r\n <mat-label>{{'Prefix'|translate}}</mat-label>\r\n <input matInput formControlName=\"prefix\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Digits'|translate}}</mat-label>\r\n <input matInput formControlName=\"digits\" maxlength=\"2\" />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Suffix'|translate}}</mat-label>\r\n <input matInput formControlName=\"suffix\" />\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\r\n <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\r\n @if (guides.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n @if (cubes.length) {\r\n <mat-form-field>\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select formControlName=\"cubes\" multiple>\r\n @for (c of cubes; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n <!--Rules-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Rules'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\r\n @for (r of rules.controls; track r; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\" width=\"99%\">\r\n {{r.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\r\n <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
35165
35172
  }], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: PanesRouter }, { type: SystemService }, { type: SessionService }, { type: i0.Injector }, { type: TranslateService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
35166
35173
  type: Inject,
35167
35174
  args: [DesignerRef]
@@ -35442,6 +35449,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
35442
35449
  args: [{ standalone: false, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n <dl>\r\n <dt></dt>\r\n <dd>{{model.regularExpression}}</dd>\r\n </dl>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field>\r\n <input matInput formControlName=\"regularExpression\" [placeholder]=\"'Regex'| translate\" required autocomplete=\"off\" />\r\n <mat-hint><span [innerHTML]=\"'RegexHint' | translate : 'https://regex101.com/'| sanitizeHtml\"></span></mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
35443
35450
  }] });
35444
35451
 
35452
+ class NotificationDesignComponent extends DesignerTypeElementComponent {
35453
+ constructor() {
35454
+ super(...arguments);
35455
+ this.form = this._fb.group({
35456
+ settings: this._fb.control(null)
35457
+ });
35458
+ }
35459
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NotificationDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35460
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.6", type: NotificationDesignComponent, isStandalone: false, selector: "bizdoc-notification-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
35461
+ }
35462
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: NotificationDesignComponent, decorators: [{
35463
+ type: Component,
35464
+ args: [{ standalone: false, selector: 'bizdoc-notification-designer', template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
35465
+ }] });
35466
+
35445
35467
  const SEARCH_DEBOUNCE = 200;
35446
35468
  /** */
35447
35469
  let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
@@ -35477,7 +35499,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35477
35499
  { elements: r.utilities, type: 'Tools', comp: UtilityDesignComponent, templates: r.tUtilities },
35478
35500
  { elements: r.cubes, type: 'Cubes', comp: CubeDesignComponent, templates: r.tCubes },
35479
35501
  { elements: r.types, type: 'Types', comp: TypeDesignComponent, templates: r.tTypes },
35480
- { elements: r.sources, type: 'Sources', comp: SourceDesignComponent },
35502
+ { elements: r.sources, type: 'Sources', comp: SourceDesignComponent, templates: r.tSources },
35481
35503
  { elements: r.actions, type: 'Actions', comp: ActionDesignerComponent, templates: r.tActions },
35482
35504
  { elements: r.guides, type: 'Guides', comp: GuideDesignComponent, templates: [{ title: this._translate.get('Guide') }] },
35483
35505
  //{ elements: r.jobs, type: 'Jobs', comp: JobDesignComponent },
@@ -35487,6 +35509,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35487
35509
  { elements: r.nodes, type: 'Nodes', comp: NodeDesignerComponent, templates: r.tNodes },
35488
35510
  { elements: r.attributes, type: 'Attributes', comp: AttributeDesignComponent, templates: r.tAttributes },
35489
35511
  { elements: r.rules, type: 'Rules', comp: RuleDesignComponent, templates: r.tRules },
35512
+ { elements: r.notifications, type: 'Notifications', comp: NotificationDesignComponent, templates: r.tNotifications },
35490
35513
  { elements: r.controls, type: 'Controls', comp: ControlDesignComponent },
35491
35514
  { elements: r.policies, type: 'Policies', comp: PolicyDesignComponent, templates: r.tPolicies },
35492
35515
  ];
@@ -35720,7 +35743,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35720
35743
  }
35721
35744
  save() {
35722
35745
  this.saving = true;
35723
- const { controls, attributes, policies, actions, cubes, folders, forms, guides, reports, roles, rules, states, types, utilities, views, widgets, nodes } = this.model;
35746
+ const { controls, attributes, policies, actions, cubes, folders, forms, guides, reports, roles, notifications, rules, states, types, utilities, views, widgets, nodes } = this.model;
35724
35747
  const model = {
35725
35748
  actions: strip(actions),
35726
35749
  cubes: strip(cubes),
@@ -35730,6 +35753,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35730
35753
  reports: strip(reports),
35731
35754
  roles: strip(roles),
35732
35755
  rules: strip(rules),
35756
+ notifications: strip(notifications),
35733
35757
  policies: strip(policies),
35734
35758
  states: strip(states),
35735
35759
  types: strip(types),
@@ -35743,7 +35767,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
35743
35767
  this._ref.execute(model).subscribe({
35744
35768
  next: () => {
35745
35769
  this._ps.toast('ChangesSaved');
35746
- apply(policies, actions, cubes, folders, forms, guides, reports, roles, rules, states, types, utilities, views, widgets);
35770
+ apply(policies, actions, cubes, folders, forms, guides, reports, roles, notifications, rules, states, types, utilities, views, widgets);
35747
35771
  this.saving = false;
35748
35772
  this.dirty = false;
35749
35773
  this._session.refresh().subscribe();
@@ -36976,6 +37000,7 @@ class SystemModule {
36976
37000
  registerComponents(DESINER_COMPONENTS);
36977
37001
  TranslateService.set({
36978
37002
  en: {
37003
+ Notifications: 'Notifications',
36979
37004
  Variables: 'Variables',
36980
37005
  Categories: 'Categories',
36981
37006
  Families: 'Families',
@@ -37355,7 +37380,7 @@ class SystemModule {
37355
37380
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.6", ngImport: i0, type: SystemModule, declarations: [
37356
37381
  /** design */
37357
37382
  FormInviteDialog, PerformanceReportDesignComponent, NodeDesignerComponent, DesignerPrivilegesComponent, AddContentDirective, IconPickerComponent, CustomContentDirective, EditContentDirective, WidgetContentDirective,
37358
- DocumentStateWidgetDesignComponent, PolicyDesignComponent, StateDesignComponent, RoleDesignComponent, GuideDesignComponent, ControlDesignComponent, AttributeDesignComponent, RuleDesignComponent, ReportDesignerComponent, FolderDesignComponent, UtilityDesignComponent, FormDesignComponent, WidgetDesignComponent, SourceDesignComponent, JobDesignComponent, CubeDesignComponent, ActionDesignerComponent, ReportDesignerComponent, ViewDesignComponent, TypeDesignComponent,
37383
+ DocumentStateWidgetDesignComponent, PolicyDesignComponent, StateDesignComponent, RoleDesignComponent, GuideDesignComponent, ControlDesignComponent, AttributeDesignComponent, NotificationDesignComponent, RuleDesignComponent, ReportDesignerComponent, FolderDesignComponent, UtilityDesignComponent, FormDesignComponent, WidgetDesignComponent, SourceDesignComponent, JobDesignComponent, CubeDesignComponent, ActionDesignerComponent, ReportDesignerComponent, ViewDesignComponent, TypeDesignComponent,
37359
37384
  CubeIndexDesignComponent, ConfigurationDatasourceDesignComponent, ReturnToRoleActionDesignComponent, PivotViewDesignComponent, CubeViewDesignComponent, BoxFormDesignComponent, AnomalyRuleDesignComponent, UsageReportDesignComponent, DocumentsWidgetDesignComponent, PerformanceWidgetDesignComponent, DocumentsReportDesignComponent, TasksReportDesignComponent, ExploreViewDesignComponent, AnalysisWidgetDesignComponent, ParallelViewDesignComponent, SumViewDesignComponent, MatrixViewDesignComponent, ChartViewDesignComponent,
37360
37385
  LocalizedStringField,
37361
37386
  /** utilities */
@@ -37368,7 +37393,6 @@ class SystemModule {
37368
37393
  PositionsComponent, PositionsPopup,
37369
37394
  WorkflowComponent, WorkflowNodeComponent, RoleNodeComponent,
37370
37395
  PatternsComponent], imports: [CommonModule,
37371
- HttpClientModule,
37372
37396
  ReactiveFormsModule,
37373
37397
  RouterModule,
37374
37398
  ScrollingModule,
@@ -37385,7 +37409,6 @@ class SystemModule {
37385
37409
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.6", ngImport: i0, type: SystemModule, providers: [
37386
37410
  FormResolve, SystemService
37387
37411
  ], imports: [CommonModule,
37388
- HttpClientModule,
37389
37412
  ReactiveFormsModule,
37390
37413
  RouterModule,
37391
37414
  ScrollingModule,
@@ -37400,7 +37423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
37400
37423
  declarations: [
37401
37424
  /** design */
37402
37425
  FormInviteDialog, PerformanceReportDesignComponent, NodeDesignerComponent, DesignerPrivilegesComponent, AddContentDirective, IconPickerComponent, CustomContentDirective, EditContentDirective, WidgetContentDirective,
37403
- DocumentStateWidgetDesignComponent, PolicyDesignComponent, StateDesignComponent, RoleDesignComponent, GuideDesignComponent, ControlDesignComponent, AttributeDesignComponent, RuleDesignComponent, ReportDesignerComponent, FolderDesignComponent, UtilityDesignComponent, FormDesignComponent, WidgetDesignComponent, SourceDesignComponent, JobDesignComponent, CubeDesignComponent, ActionDesignerComponent, ReportDesignerComponent, ViewDesignComponent, TypeDesignComponent,
37426
+ DocumentStateWidgetDesignComponent, PolicyDesignComponent, StateDesignComponent, RoleDesignComponent, GuideDesignComponent, ControlDesignComponent, AttributeDesignComponent, NotificationDesignComponent, RuleDesignComponent, ReportDesignerComponent, FolderDesignComponent, UtilityDesignComponent, FormDesignComponent, WidgetDesignComponent, SourceDesignComponent, JobDesignComponent, CubeDesignComponent, ActionDesignerComponent, ReportDesignerComponent, ViewDesignComponent, TypeDesignComponent,
37404
37427
  CubeIndexDesignComponent, ConfigurationDatasourceDesignComponent, ReturnToRoleActionDesignComponent, PivotViewDesignComponent, CubeViewDesignComponent, BoxFormDesignComponent, AnomalyRuleDesignComponent, UsageReportDesignComponent, DocumentsWidgetDesignComponent, PerformanceWidgetDesignComponent, DocumentsReportDesignComponent, TasksReportDesignComponent, ExploreViewDesignComponent, AnalysisWidgetDesignComponent, ParallelViewDesignComponent, SumViewDesignComponent, MatrixViewDesignComponent, ChartViewDesignComponent,
37405
37428
  LocalizedStringField,
37406
37429
  /** utilities */
@@ -37419,7 +37442,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
37419
37442
  ],
37420
37443
  imports: [
37421
37444
  CommonModule,
37422
- HttpClientModule,
37423
37445
  ReactiveFormsModule,
37424
37446
  RouterModule,
37425
37447
  ScrollingModule,
@@ -37666,5 +37688,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
37666
37688
  * Generated bundle index. Do not edit.
37667
37689
  */
37668
37690
 
37669
- export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentFactory, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, Tab, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, VirtualTabs, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
37691
+ export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, AnalysisService, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentFactory, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, OptionsComponent, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, Tab, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, VirtualTabs, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
37670
37692
  //# sourceMappingURL=bizdoc-core.mjs.map