@bizdoc/core 1.9.10 → 1.9.12

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 (40) hide show
  1. package/esm2020/lib/browse/filter/filter.component.mjs +3 -6
  2. package/esm2020/lib/compose/compose.pane.component.mjs +7 -4
  3. package/esm2020/lib/compose/document.component.mjs +9 -11
  4. package/esm2020/lib/compose/form-ref.mjs +6 -7
  5. package/esm2020/lib/compose/form.component.mjs +2 -2
  6. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  7. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +6 -8
  8. package/esm2020/lib/core/slots/slots.component.mjs +14 -16
  9. package/esm2020/lib/cube/accum/accum.component.mjs +3 -2
  10. package/esm2020/lib/cube/chart/chart.component.mjs +7 -2
  11. package/esm2020/lib/cube/cube-view.component.mjs +9 -6
  12. package/esm2020/lib/cube/declarations.mjs +1 -1
  13. package/esm2020/lib/cube/grid/grid.component.mjs +18 -6
  14. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +8 -6
  15. package/esm2020/lib/cube/matrix/table.component.mjs +4 -4
  16. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  17. package/esm2020/lib/cube/view.pane.component.mjs +2 -2
  18. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +1 -1
  19. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +1 -1
  20. package/esm2020/lib/routes.desktop.mjs +8 -8
  21. package/fesm2015/bizdoc-core.mjs +89 -72
  22. package/fesm2015/bizdoc-core.mjs.map +1 -1
  23. package/fesm2020/bizdoc-core.mjs +89 -72
  24. package/fesm2020/bizdoc-core.mjs.map +1 -1
  25. package/lib/compose/compose.pane.component.d.ts +1 -0
  26. package/lib/compose/document.component.d.ts +2 -4
  27. package/lib/compose/form-ref.d.ts +1 -3
  28. package/lib/compose/version-compare/version-compare.component.d.ts +2 -4
  29. package/lib/core/slots/slots.component.d.ts +1 -2
  30. package/lib/cube/accum/accum.component.d.ts +1 -1
  31. package/lib/cube/chart/chart.component.d.ts +1 -1
  32. package/lib/cube/cube-view.component.d.ts +3 -1
  33. package/lib/cube/declarations.d.ts +1 -0
  34. package/lib/cube/grid/grid.component.d.ts +8 -4
  35. package/lib/cube/grid/spreadsheet.component.d.ts +3 -3
  36. package/lib/cube/matrix/table.component.d.ts +1 -1
  37. package/lib/cube/pivot/pivot.component.d.ts +1 -1
  38. package/lib/dashboard/cube/accum-cube.widget.d.ts +2 -2
  39. package/lib/dashboard/cube/cube-analysis.base.d.ts +0 -4
  40. package/package.json +1 -1
@@ -5954,12 +5954,9 @@ class BrowseFilterComponent {
5954
5954
  const folder = this._session.profile.folders.find(f => f.name === this.folderId);
5955
5955
  if (folder.filters)
5956
5956
  this.filters = folder.filters;
5957
- else if (this._config.folders.axes) {
5958
- const { axes, cube } = this._config.folders;
5959
- this.filters = { axes, cube };
5960
- }
5957
+ return;
5961
5958
  }
5962
- else if (this._config.folders.axes) {
5959
+ if (this._config.folders && this._config.folders.axes) {
5963
5960
  const { axes, cube } = this._config.folders;
5964
5961
  this.filters = { axes, cube };
5965
5962
  }
@@ -8276,8 +8273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
8276
8273
  }] } });
8277
8274
 
8278
8275
  class FormRef {
8279
- constructor(_router) {
8280
- this._router = _router;
8276
+ constructor( /*private _router: RouterImpl*/) {
8281
8277
  this._saving = new Subject();
8282
8278
  this._stateChange = new Subject();
8283
8279
  this._modelChange = new Subject();
@@ -8306,10 +8302,10 @@ class FormRef {
8306
8302
  * @param page
8307
8303
  */
8308
8304
  navigate(page) {
8309
- this._router.navigate([], {
8310
- queryParams: { page },
8311
- state: { paging: true }
8312
- });
8305
+ //this._router.navigate([], {
8306
+ // queryParams: { page },
8307
+ // state: { paging: true }
8308
+ //});
8313
8309
  this._navigating.next(page);
8314
8310
  }
8315
8311
  /** release events */
@@ -8778,7 +8774,7 @@ class ComposeFormComponent {
8778
8774
  if (!this.form.template)
8779
8775
  throw (`Form '${this.form.name}' model missing '[Template()]' attribute.`);
8780
8776
  const factory = this._cf.resolve(this.form.template);
8781
- this._formRef = new FormRef(this._router);
8777
+ this._formRef = new FormRef();
8782
8778
  this._formRef._navigating.
8783
8779
  subscribe(p => this.page = p);
8784
8780
  this._formRef._stateChange.pipe(startWith()).
@@ -9124,7 +9120,7 @@ class ComposePaneComponent {
9124
9120
  this._pane.icon = form.icon;
9125
9121
  if (this.model.draft) {
9126
9122
  this.mode = 'compose';
9127
- //this._pane.expand();
9123
+ //setTimeout(()=>this._pane.expand());
9128
9124
  }
9129
9125
  else
9130
9126
  this.mode = 'preview';
@@ -9162,6 +9158,9 @@ class ComposePaneComponent {
9162
9158
  });
9163
9159
  this._pane.fullscreenChange.subscribe(f => this.expendable = !f);
9164
9160
  }
9161
+ close() {
9162
+ this._pane.close();
9163
+ }
9165
9164
  edit() {
9166
9165
  this.mode = 'compose';
9167
9166
  this.expendable && this.expand();
@@ -9248,12 +9247,12 @@ class ComposePaneComponent {
9248
9247
  }
9249
9248
  }
9250
9249
  ComposePaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ComposePaneComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component });
9251
- ComposePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ComposePaneComponent, 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)" }, classAttribute: "pane" }, 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 <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.actions?.length === 1\" [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 <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"model.actions?.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\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':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</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 <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.copy()\" data-help=\"copy\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"working\"><mat-icon>content_copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"discard()\" [bizdocTooltip]=\"'Discard' | translate\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\"><mat-icon>delete_outlined</mat-icon></button>\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 <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.guide(form.help)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"form.help\" tabindex=\"1\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n</mat-toolbar>\r\n<div class=\"file-dropable\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\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: [".nav-toolbar{position:sticky;top:0;z-index:1}.file-dropable.drag{opacity:.5;overflow:hidden;margin:8px;border-style:dashed;border-color:#777;border-width:5px;background-color:#f5f5f5;z-index:2;top:0;left:0;right:0;bottom:0}\n"], components: [{ type: i7$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i8$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange"] }], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i8$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i8$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe } });
9250
+ ComposePaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ComposePaneComponent, 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)" }, classAttribute: "pane" }, 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 <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.actions?.length === 1\" [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 <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"model.actions?.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\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':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</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 <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\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 <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\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 <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</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 <button mat-menu-item (click)=\"discard()\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n <ng-container *ngIf=\"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 </ng-container>\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\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\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: [".nav-toolbar{position:sticky;top:0;z-index:1}.file-dropable.drag{opacity:.5;overflow:hidden;margin:8px;border-style:dashed;border-color:#777;border-width:5px;background-color:#f5f5f5;z-index:2;top:0;left:0;right:0;bottom:0}\n"], components: [{ type: i7$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i8$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: ComposeFormComponent, selector: "bizdoc-form", inputs: ["model", "working", "dirty", "valid", "mode", "contacts"], outputs: ["modelChange", "workingChange", "dirtyChange", "validChange"] }], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i8$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i8$1.MatMenuContent, selector: "ng-template[matMenuContent]" }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }], pipes: { "translate": TranslatePipe } });
9252
9251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ComposePaneComponent, decorators: [{
9253
9252
  type: Component,
9254
9253
  args: [{ selector: 'bizdoc-compose.pane', host: {
9255
9254
  class: 'pane'
9256
- }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.actions?.length === 1\" [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 <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"model.actions?.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\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':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</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 <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.copy()\" data-help=\"copy\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"working\"><mat-icon>content_copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"discard()\" [bizdocTooltip]=\"'Discard' | translate\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\"><mat-icon>delete_outlined</mat-icon></button>\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 <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\r\n <button mat-icon-button (click)=\"form.guide(form.help)\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"form.help\" tabindex=\"1\"><mat-icon>help_outline</mat-icon></button>\r\n <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</mat-icon></button>\r\n</mat-toolbar>\r\n<div class=\"file-dropable\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\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: [".nav-toolbar{position:sticky;top:0;z-index:1}.file-dropable.drag{opacity:.5;overflow:hidden;margin:8px;border-style:dashed;border-color:#777;border-width:5px;background-color:#f5f5f5;z-index:2;top:0;left:0;right:0;bottom:0}\n"] }]
9255
+ }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button color=\"primary\" (click)=\"form.back()\" [bizdocTooltip]=\"'Back'|translate\" *ngIf=\"form.page !== undefined\" tabindex=\"1\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.draft\" data-help=\"submit\"\r\n (click)=\"submit()\" [disabled]=\"!valid||working\">\r\n <span>{{'Submit' | translate}}</span>\r\n </button>\r\n <button mat-stroked-button color=\"primary\" *ngIf=\"model.actions?.length === 1\" [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 <button mat-stroked-button data-help=\"send\" color=\"primary\" *ngIf=\"model.actions?.length > 1\" [matMenuTriggerFor]=\"actionMenu\" [disabled]=\"!valid||working\" [bizdocTooltip]=\"'Send' | translate\">\r\n <span>{{'Send' | translate}}</span>\r\n </button>\r\n <!-- action -->\r\n <mat-menu #actionMenu>\r\n <ng-template matMenuContent>\r\n <ng-container *ngFor=\"let a of form.actions; let i = index\">\r\n <mat-divider *ngIf=\"i > 0 && form.actions[i - 1].group !== a.group\"></mat-divider>\r\n <button mat-menu-item (click)=\"send(a.name)\">{{a.title}}</button>\r\n </ng-container>\r\n </ng-template>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"save()\" data-help=\"save\" [disabled]=\"!dirty||working\" [bizdocTooltip]=\"'Save'|translate\" *ngIf=\"mode === 'compose'\">\r\n <mat-icon>save</mat-icon>\r\n </button>\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':'bookmark_border'}}</mat-icon></button>\r\n <button mat-icon-button data-help=\"flag\" [bizdocTooltip]=\"'Flagged'| translate\" [disabled]=\"working\" (click)=\"form.flag()\"><mat-icon [class.document-flag]=\"model.flag\">{{model.flag ? 'star' : 'star_border'}}</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 <button mat-icon-button [disabled]=\"working\" data-help=\"edit\" (click)=\"edit()\" [bizdocTooltip]=\"'Edit' | translate\" *ngIf=\"mode !== 'compose' && model.pending && !model.completed\"><mat-icon>create</mat-icon></button>\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 <button mat-icon-button (click)=\"view()\" [bizdocTooltip]=\"'View' | translate\" [attr.aria-label]=\"'View' | translate\" class=\"tool\"><mat-icon>data_usage</mat-icon></button>\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 <button mat-icon-button (click)=\"expand()\" [bizdocTooltip]=\"'Expand' | translate\" *ngIf=\"expendable\" [attr.aria-label]=\"'Expand' | translate\"><mat-icon>open_in_new</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 <button mat-menu-item (click)=\"discard()\" *ngIf=\"model.draft && !model.issued\" [disabled]=\"working\">\r\n <!--<mat-icon>delete_outlined</mat-icon>-->\r\n <span>{{'Discard' | translate}}</span>\r\n </button>\r\n <ng-container *ngIf=\"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 </ng-container>\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\" #dropable>\r\n <bizdoc-form [model]=model #form\r\n (modelChange)=\"change()\"\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: [".nav-toolbar{position:sticky;top:0;z-index:1}.file-dropable.drag{opacity:.5;overflow:hidden;margin:8px;border-style:dashed;border-color:#777;border-width:5px;background-color:#f5f5f5;z-index:2;top:0;left:0;right:0;bottom:0}\n"] }]
9257
9256
  }], ctorParameters: function () { return [{ type: SessionService }, { type: MailboxService }, { type: PaneRef }, { type: PanesRouter }]; }, propDecorators: { form: [{
9258
9257
  type: ViewChild,
9259
9258
  args: [ComposeFormComponent, { static: true }]
@@ -9521,7 +9520,8 @@ class CubeAccumulationChartComponent {
9521
9520
  dataLabel: this.dataLabel,
9522
9521
  explode: true,
9523
9522
  explodeOffset: '10%',
9524
- explodeIndex: 0, innerRadius: this.innerRadius,
9523
+ explodeIndex: 0,
9524
+ innerRadius: this.innerRadius,
9525
9525
  palettes: this.palettes
9526
9526
  }]
9527
9527
  }, this._elementRef.nativeElement);
@@ -9653,12 +9653,17 @@ class CubeChartComponent {
9653
9653
  set series(value) {
9654
9654
  if (value)
9655
9655
  this._series = isArray(value) ? value : [value];
9656
+ else
9657
+ this._series = null;
9656
9658
  }
9657
9659
  get indices() {
9658
9660
  return this._indices;
9659
9661
  }
9660
9662
  set indices(value) {
9661
- this._indices = isArray(value) ? value : [value];
9663
+ if (value)
9664
+ this._indices = isArray(value) ? value : [value];
9665
+ else
9666
+ this._indices = null;
9662
9667
  }
9663
9668
  ngOnInit() {
9664
9669
  if (this.chartType === 'Line' || this.chartType === 'Spline')
@@ -9844,9 +9849,20 @@ class CubeGridComponent {
9844
9849
  this._rows = [];
9845
9850
  this._columns = [];
9846
9851
  }
9852
+ set xAxis(val) {
9853
+ this._xAxis = isArray(val) ? val : [val];
9854
+ }
9855
+ set series(val) {
9856
+ if (val)
9857
+ this._series = isArray(val) ? val : [val];
9858
+ }
9859
+ set indices(val) {
9860
+ if (val)
9861
+ this._indices = isArray(val) ? val : [val];
9862
+ }
9847
9863
  ngOnInit() {
9848
- const cube = this._session.profile.cubes.find(c => c.name === this.cube);
9849
- const x = cube.axes.find(a => a.name === this.xAxis[0]), y = cube.axes.find(a => a.name === this.series[0]);
9864
+ this._cube = this.cube ? this._session.profile.cubes.find(c => c.name === this.cube) : this._session.profile.cubes[0];
9865
+ const x = this._cube.axes.find(a => a.name === this._xAxis[0]), y = this._cube.axes.find(a => a.name === this._series[0]);
9850
9866
  const promises = [];
9851
9867
  // aquire columns source
9852
9868
  let observe = this._ds.all(x.dataType).
@@ -9896,7 +9912,7 @@ class CubeGridComponent {
9896
9912
  }
9897
9913
  execute() {
9898
9914
  this.loadingChange.emit(true);
9899
- this._service.series(this.cube, this.xAxis, { series: this.series, filters: this.filters, indices: this.indices }).
9915
+ this._service.series(this._cube.name, this._xAxis, { series: this._series, filters: this.filters, indices: this._indices }).
9900
9916
  subscribe(series => {
9901
9917
  this._prepare.then(() => {
9902
9918
  const rows = [];
@@ -9967,9 +9983,9 @@ class CubeGridComponent {
9967
9983
  if (data[`_${column}`] === 0)
9968
9984
  return;
9969
9985
  const axes = {};
9970
- axes[this.xAxis[0]] = column;
9986
+ axes[this._xAxis[0]] = column;
9971
9987
  if (type !== 'Index')
9972
- axes[this.series[0]] = row;
9988
+ axes[this._series[0]] = row;
9973
9989
  this.explore.emit({ axes, index: type === 'Index' ? row : null });
9974
9990
  }
9975
9991
  customAggregate(_, column) {
@@ -10210,7 +10226,7 @@ class CubePivotComponent {
10210
10226
  // columns
10211
10227
  const columns = xAxis2.concat(series2);
10212
10228
  // query
10213
- this._service.table(this.cube, columns, { filters: this.filters, indices: this.indices }).subscribe(r => {
10229
+ this._service.table(this._cube.name, columns, { filters: this.filters, indices: this.indices }).subscribe(r => {
10214
10230
  this._presets(xAxis2, series2, r);
10215
10231
  this._draw();
10216
10232
  this.loadingChange.emit(false);
@@ -10372,9 +10388,9 @@ class CubePivotComponent {
10372
10388
  }
10373
10389
  }
10374
10390
  ngOnDestroy() {
10391
+ this.pivot && this.pivot.destroy();
10375
10392
  this._destroy.next();
10376
10393
  this._destroy.complete();
10377
- this.pivot && this.pivot.destroy();
10378
10394
  }
10379
10395
  }
10380
10396
  CubePivotComponent.nextId = 0;
@@ -10460,7 +10476,7 @@ class CubeSpreadsheetComponent {
10460
10476
  maximumFractionDigits: this._service.fractionDigits,
10461
10477
  minimumFractionDigits: this._service.fractionDigits
10462
10478
  });
10463
- this._cube = this._session.profile.cubes.find(c => c.name === this.cube);
10479
+ this._cube = this.cube ? this._session.profile.cubes.find(c => c.name === this.cube) : this._session.profile.cubes[0];
10464
10480
  if (!this._series) {
10465
10481
  this._axes = this._xAxis.map(c => this._cube.axes.find(a => a.name == c));
10466
10482
  if (this._indices)
@@ -10512,7 +10528,7 @@ class CubeSpreadsheetComponent {
10512
10528
  execute() {
10513
10529
  this.loadingChange.emit(true);
10514
10530
  if (!this._series)
10515
- this._service.table(this.cube, this._xAxis, { filters: this.filters, indices: this._indices }).
10531
+ this._service.table(this._cube.name, this._xAxis, { filters: this.filters, indices: this._indices }).
10516
10532
  subscribe(data => {
10517
10533
  this._datatable(data);
10518
10534
  this._draw();
@@ -10570,7 +10586,7 @@ class CubeSpreadsheetComponent {
10570
10586
  const cells = [{ value: '' }];
10571
10587
  this._xcolumns.forEach(c => cells.push({ value: c.value, style }));
10572
10588
  this.dataSource = [{ cells, height: 25 }];
10573
- this._indices && this._cube.indices.filter(i => this._indices.indexOf(i.name) > 0).
10589
+ this._indices && this._cindices.
10574
10590
  forEach(i => {
10575
10591
  const cells = [{ value: i.title, style }], serie = d.find(s => s.index === i.name), map = {};
10576
10592
  if (serie) {
@@ -10646,8 +10662,10 @@ class CubeSpreadsheetComponent {
10646
10662
  const key = this.dataSource[i].source['_' + a.name];
10647
10663
  if (!axes[a.name])
10648
10664
  axes[a.name] = key;
10649
- else if (isString(axes[a.name]))
10650
- axes[a.name] = [axes[a.name], key];
10665
+ else if (isString(axes[a.name])) {
10666
+ if (axes[a.name] !== key)
10667
+ axes[a.name] = [axes[a.name], key];
10668
+ }
10651
10669
  else if (axes[a.name].indexOf(key) < 0)
10652
10670
  axes[a.name].push(key);
10653
10671
  });
@@ -10762,9 +10780,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
10762
10780
 
10763
10781
  /** */
10764
10782
  class CubeViewComponent {
10765
- constructor(_viewContainer, _factoryResolver) {
10783
+ constructor(_viewContainer, _factoryResolver, _cd) {
10766
10784
  this._viewContainer = _viewContainer;
10767
10785
  this._factoryResolver = _factoryResolver;
10786
+ this._cd = _cd;
10768
10787
  this.axes = {};
10769
10788
  this.explore = new EventEmitter();
10770
10789
  this.loadingChange = new EventEmitter();
@@ -10852,7 +10871,8 @@ class CubeViewComponent {
10852
10871
  }
10853
10872
  }
10854
10873
  }
10855
- this.refresh();
10874
+ //this._cd.detectChanges();
10875
+ setTimeout(() => this._instance.execute());
10856
10876
  }
10857
10877
  _attach(comp) {
10858
10878
  const factory = this._factoryResolver.resolveComponentFactory(comp);
@@ -10870,6 +10890,7 @@ class CubeViewComponent {
10870
10890
  instance.cube = this.cube.name;
10871
10891
  instance.xAxis = this.view.xAxis;
10872
10892
  instance.currencyCode = this.cube.currencyCode;
10893
+ instance.filters = { ...this.view.filters, ...this.axes };
10873
10894
  instance.loadingChange.pipe(takeUntil(this._viewDestroy), debounceTime(150)).subscribe(e => this.loadingChange.emit(this.loading = e));
10874
10895
  return instance;
10875
10896
  }
@@ -10885,7 +10906,7 @@ class CubeViewComponent {
10885
10906
  }
10886
10907
  refresh() {
10887
10908
  this._instance.filters = { ...this.view.filters, ...this.axes };
10888
- this._instance.ngOnChanges({ 'filters': {} });
10909
+ this._instance.execute();
10889
10910
  }
10890
10911
  exportToExcel() {
10891
10912
  this._instance.exportToExcel(this.view.title);
@@ -10896,7 +10917,7 @@ class CubeViewComponent {
10896
10917
  this._viewDestroy.complete();
10897
10918
  }
10898
10919
  }
10899
- CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
10920
+ CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10900
10921
  CubeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: { axes: "axes", cube: "cube", view: "view", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { listeners: { "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
10901
10922
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewComponent, decorators: [{
10902
10923
  type: Component,
@@ -10911,7 +10932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
10911
10932
  CubeSpreadsheetComponent
10912
10933
  ]
10913
10934
  }]
10914
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { axes: [{
10935
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { axes: [{
10915
10936
  type: Input
10916
10937
  }], explore: [{
10917
10938
  type: Output
@@ -11060,12 +11081,12 @@ class CubeViewPaneComponent extends ViewBase {
11060
11081
  }
11061
11082
  }
11062
11083
  CubeViewPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewPaneComponent, deps: [{ token: SessionService }, { token: PaneRef }, { token: Popup }, { token: RouterImpl }, { token: CubeService }, { token: GuideService }], target: i0.ɵɵFactoryTarget.Component });
11063
- CubeViewPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\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\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\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</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-filter-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-filter-tags>-->\r\n<bizdoc-cube-view [axes]=\"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;flex-direction:column;height:100%;min-width:650px}:host ::ng-deep .cube-view{flex:1 auto}\n"], components: [{ type: i7$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["axes", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i8$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": TranslatePipe } });
11084
+ CubeViewPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: CubeViewPaneComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "viewPane", first: true, predicate: CubeViewComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\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\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\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</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-filter-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-filter-tags>-->\r\n<bizdoc-cube-view [axes]=\"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;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"], components: [{ type: i7$4.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: ["axes", "cube", "view", "loading"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i8$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": TranslatePipe } });
11064
11085
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: CubeViewPaneComponent, decorators: [{
11065
11086
  type: Component,
11066
11087
  args: [{ host: {
11067
11088
  class: 'pane'
11068
- }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\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\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\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</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-filter-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-filter-tags>-->\r\n<bizdoc-cube-view [axes]=\"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;flex-direction:column;height:100%;min-width:650px}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
11089
+ }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\" *ngIf=\"view.guide\"><mat-icon>help_outline</mat-icon></button>\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\">filter_alt</mat-icon></button>\r\n <mat-menu #pmenu>\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"patternChange(p)\">\r\n {{p.title}}\r\n </button>\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</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<!--<bizdoc-filter-tags [(filters)]=\"axes\" [cube]=\"cube\"></bizdoc-filter-tags>-->\r\n<bizdoc-cube-view [axes]=\"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;flex-direction:column;height:100%}:host ::ng-deep .cube-view{flex:1 auto}\n"] }]
11069
11090
  }], ctorParameters: function () { return [{ type: SessionService }, { type: PaneRef }, { type: Popup }, { type: RouterImpl }, { type: CubeService }, { type: GuideService }]; }, propDecorators: { viewPane: [{
11070
11091
  type: ViewChild,
11071
11092
  args: [CubeViewComponent, { static: true }]
@@ -13339,17 +13360,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
13339
13360
  /** component*/
13340
13361
  class VersionCompareComponent {
13341
13362
  /** ctor */
13342
- constructor(_session, _cf, _container, _router, _injector) {
13363
+ constructor(_session, _cf, _container, _injector) {
13343
13364
  this._session = _session;
13344
13365
  this._cf = _cf;
13345
13366
  this._container = _container;
13346
- this._router = _router;
13347
13367
  this._injector = _injector;
13348
13368
  }
13349
13369
  get form() { return this._form; }
13350
13370
  get currentVersion() { return this._currentVersion; }
13351
13371
  get baseVersion() { return this._baseVersion; }
13352
- ngOnChanges(changes) {
13372
+ ngOnChanges(_) {
13353
13373
  this._form = this._session.profile.forms.find(f => f.name === this.model.formId);
13354
13374
  const log = this.model.log.find(l => l.type === 'ModelChange' && l.time === this.version);
13355
13375
  const idx = this.model.log.indexOf(log);
@@ -13359,7 +13379,7 @@ class VersionCompareComponent {
13359
13379
  const componentFactory = this._cf.resolve(this._form.template);
13360
13380
  const injector = Injector.create([
13361
13381
  { provide: VersionCompareComponent, useValue: this },
13362
- { provide: FormRef, useValue: new FormRef(this._router) },
13382
+ { provide: FormRef, useValue: new FormRef() },
13363
13383
  { provide: DOCUMENT_MODEL, useValue: this.model }
13364
13384
  ], this._injector);
13365
13385
  this._container.clear();
@@ -13370,7 +13390,7 @@ class VersionCompareComponent {
13370
13390
  instance.onBind(newModel, this._baseVersion);
13371
13391
  }
13372
13392
  }
13373
- VersionCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: VersionCompareComponent, deps: [{ token: SessionService }, { token: BizDocComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: PanesRouter }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
13393
+ VersionCompareComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: VersionCompareComponent, deps: [{ token: SessionService }, { token: BizDocComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
13374
13394
  VersionCompareComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: VersionCompareComponent, selector: "bizdoc-version-compare", inputs: { model: "model", version: "version" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
13375
13395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: VersionCompareComponent, decorators: [{
13376
13396
  type: Component,
@@ -13378,7 +13398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
13378
13398
  selector: 'bizdoc-version-compare',
13379
13399
  template: ''
13380
13400
  }]
13381
- }], ctorParameters: function () { return [{ type: SessionService }, { type: BizDocComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: PanesRouter }, { type: i0.Injector }]; }, propDecorators: { model: [{
13401
+ }], ctorParameters: function () { return [{ type: SessionService }, { type: BizDocComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { model: [{
13382
13402
  type: Input
13383
13403
  }], version: [{
13384
13404
  type: Input
@@ -15552,16 +15572,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
15552
15572
  }], ctorParameters: function () { return [{ type: SessionService }, { type: TranslateService }, { type: PaneRef }]; } });
15553
15573
 
15554
15574
  class DocumentInfoComponent {
15555
- constructor(_session, _cf, _router, _injector) {
15575
+ constructor(_session, _cf, _injector) {
15556
15576
  this._session = _session;
15557
15577
  this._cf = _cf;
15558
- this._router = _router;
15559
15578
  this._injector = _injector;
15560
15579
  }
15561
- ngOnChanges(changes) {
15580
+ ngOnChanges(_) {
15562
15581
  const form = this._session.profile.forms.find(f => f.name === this.model.formId);
15563
15582
  this._formRef && this._formRef._destroy();
15564
- this._formRef = new FormRef(this._router);
15583
+ this._formRef = new FormRef();
15565
15584
  const factory = this._cf.resolve(form.template);
15566
15585
  const injector = Injector.create([{
15567
15586
  provide: DOCUMENT_MODEL, useValue: this.model
@@ -15577,12 +15596,12 @@ class DocumentInfoComponent {
15577
15596
  this._formRef._destroy();
15578
15597
  }
15579
15598
  }
15580
- DocumentInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DocumentInfoComponent, deps: [{ token: SessionService }, { token: BizDocComponentFactoryResolver }, { token: RouterImpl }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
15599
+ DocumentInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DocumentInfoComponent, deps: [{ token: SessionService }, { token: BizDocComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
15581
15600
  DocumentInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: DocumentInfoComponent, selector: "bizdoc-document", inputs: { model: "model" }, viewQueries: [{ propertyName: "_container", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"form-header\">\r\n <bizdoc-people [model]=\"model\"></bizdoc-people>\r\n <bizdoc-attachments [model]=\"model\" [includeDeleted]=\"false\" [viewedIndicator]=\"true\"></bizdoc-attachments>\r\n</div>\r\n<ng-container #component></ng-container>\r\n", components: [{ type: PeopleComponent, selector: "bizdoc-people", inputs: ["model"] }, { type: AttachmentsComponent, selector: "bizdoc-attachments", inputs: ["model", "viewedIndicator", "includeDeleted"] }] });
15582
15601
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: DocumentInfoComponent, decorators: [{
15583
15602
  type: Component,
15584
15603
  args: [{ selector: 'bizdoc-document', template: "<div class=\"form-header\">\r\n <bizdoc-people [model]=\"model\"></bizdoc-people>\r\n <bizdoc-attachments [model]=\"model\" [includeDeleted]=\"false\" [viewedIndicator]=\"true\"></bizdoc-attachments>\r\n</div>\r\n<ng-container #component></ng-container>\r\n" }]
15585
- }], ctorParameters: function () { return [{ type: SessionService }, { type: BizDocComponentFactoryResolver }, { type: RouterImpl }, { type: i0.Injector }]; }, propDecorators: { _container: [{
15604
+ }], ctorParameters: function () { return [{ type: SessionService }, { type: BizDocComponentFactoryResolver }, { type: i0.Injector }]; }, propDecorators: { _container: [{
15586
15605
  type: ViewChild,
15587
15606
  args: ['component', { read: ViewContainerRef, static: true }]
15588
15607
  }], model: [{
@@ -16296,10 +16315,10 @@ class ComposeMenuComponent {
16296
16315
  }
16297
16316
  }
16298
16317
  ComposeMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ComposeMenuComponent, deps: [{ token: SessionService }, { token: MailboxService }, { token: PromptService }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component });
16299
- ComposeMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: { change: "change" }, ngImport: i0, template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <span class=\"mat-subheader\">BizDoc</span>\r\n <h1 class=\"mat-display-1\">{{'New'|translate}}</h1>\r\n\r\n <mat-nav-list>\r\n <mat-list-item *ngFor=\"let f of forms\" (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\r\n <mat-icon matListIcon>{{f.icon}}</mat-icon>\r\n <span matLine>{{f.title}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n\r\n <!--<hr />\r\n\r\n <form>\r\n <mat-form-field floatLabel=\"never\" data-help=\"copy\">\r\n <input matInput type=\"search\" [placeholder]=\"'Copy'|translate\" [formControl]=\"search\" autocomplete=\"off\" />\r\n <mat-icon class=\"mat-icon-rtl-mirror\" matSuffix aria-disabled=\"true\">search</mat-icon>\r\n </mat-form-field>\r\n <ul class=\"mat-body-2\">\r\n <li *ngFor=\"let i of items | async\" (click)=\"copy(i)\">\r\n <a>\r\n {{i.number}}\r\n <ng-container *ngIf=\"i.subject\">&nbsp;{{i.subject}}</ng-container>\r\n </a>\r\n </li>\r\n </ul>\r\n </form>-->\r\n</div>\r\n", styles: ["h1{margin:0 16px}form{padding:8px}hr{opacity:.4}\n"], components: [{ type: i11$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i2$3.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$3.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i6$1.MatLine, selector: "[mat-line], [matLine]" }], pipes: { "translate": TranslatePipe }, animations: [] });
16318
+ ComposeMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: { change: "change" }, ngImport: i0, template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <span class=\"mat-subheader\">BizDoc</span>\r\n <h1 class=\"mat-display-1\">{{'New'|translate}}</h1>\r\n\r\n <mat-nav-list>\r\n <mat-list-item *ngFor=\"let f of forms\" (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\r\n <mat-icon matListIcon>{{f.icon}}</mat-icon>\r\n <span matLine>{{f.title}}</span>\r\n <!--<mat-spinner radius=\"25\" *ngIf=\"creating===f.name\"></mat-spinner>-->\r\n </mat-list-item>\r\n </mat-nav-list>\r\n</div>\r\n", styles: ["h1{margin:0 16px}form{padding:8px}hr{opacity:.4}\n"], components: [{ type: i11$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i2$3.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i2$3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i7$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i10$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2$3.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i6$1.MatLine, selector: "[mat-line], [matLine]" }], pipes: { "translate": TranslatePipe }, animations: [] });
16300
16319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ComposeMenuComponent, decorators: [{
16301
16320
  type: Component,
16302
- args: [{ selector: 'bizdoc-new-menu', animations: [], template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <span class=\"mat-subheader\">BizDoc</span>\r\n <h1 class=\"mat-display-1\">{{'New'|translate}}</h1>\r\n\r\n <mat-nav-list>\r\n <mat-list-item *ngFor=\"let f of forms\" (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\r\n <mat-icon matListIcon>{{f.icon}}</mat-icon>\r\n <span matLine>{{f.title}}</span>\r\n </mat-list-item>\r\n </mat-nav-list>\r\n\r\n <!--<hr />\r\n\r\n <form>\r\n <mat-form-field floatLabel=\"never\" data-help=\"copy\">\r\n <input matInput type=\"search\" [placeholder]=\"'Copy'|translate\" [formControl]=\"search\" autocomplete=\"off\" />\r\n <mat-icon class=\"mat-icon-rtl-mirror\" matSuffix aria-disabled=\"true\">search</mat-icon>\r\n </mat-form-field>\r\n <ul class=\"mat-body-2\">\r\n <li *ngFor=\"let i of items | async\" (click)=\"copy(i)\">\r\n <a>\r\n {{i.number}}\r\n <ng-container *ngIf=\"i.subject\">&nbsp;{{i.subject}}</ng-container>\r\n </a>\r\n </li>\r\n </ul>\r\n </form>-->\r\n</div>\r\n", styles: ["h1{margin:0 16px}form{padding:8px}hr{opacity:.4}\n"] }]
16321
+ args: [{ selector: 'bizdoc-new-menu', animations: [], template: "<mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"working ? 'visible':'hidden'\"></mat-progress-bar>\r\n<div class=\"container\">\r\n <span class=\"mat-subheader\">BizDoc</span>\r\n <h1 class=\"mat-display-1\">{{'New'|translate}}</h1>\r\n\r\n <mat-nav-list>\r\n <mat-list-item *ngFor=\"let f of forms\" (click)=\"create(f.name)\" [attr.data-help]=\"f.name + '-form'\">\r\n <mat-icon matListIcon>{{f.icon}}</mat-icon>\r\n <span matLine>{{f.title}}</span>\r\n <!--<mat-spinner radius=\"25\" *ngIf=\"creating===f.name\"></mat-spinner>-->\r\n </mat-list-item>\r\n </mat-nav-list>\r\n</div>\r\n", styles: ["h1{margin:0 16px}form{padding:8px}hr{opacity:.4}\n"] }]
16303
16322
  }], ctorParameters: function () { return [{ type: SessionService }, { type: MailboxService }, { type: PromptService }, { type: PanesRouter }]; }, propDecorators: { change: [{
16304
16323
  type: Output
16305
16324
  }] } });
@@ -16744,7 +16763,7 @@ class SlotsComponent {
16744
16763
  return;
16745
16764
  }
16746
16765
  else {
16747
- this._navQueryParams(tab, queryParams, state);
16766
+ this._navQueryParams(tab, queryParams);
16748
16767
  this.group = tab.group;
16749
16768
  this.selectedTabIndex = i;
16750
16769
  this._cd.detectChanges();
@@ -16776,7 +16795,7 @@ class SlotsComponent {
16776
16795
  return;
16777
16796
  }
16778
16797
  else {
16779
- this._navQueryParams(pane, queryParams, state);
16798
+ this._navQueryParams(pane, queryParams);
16780
16799
  this.scrollTo(i);
16781
16800
  this._replaceUrl();
16782
16801
  return;
@@ -16830,7 +16849,7 @@ class SlotsComponent {
16830
16849
  else {
16831
16850
  const pane = (policy & OpenPolicy.Tab) == OpenPolicy.Tab ?
16832
16851
  this.tabs[this.selectedTabIndex] : this.panes[this.selectedIndex];
16833
- this._navQueryParams(pane, queryParams, state);
16852
+ this._navQueryParams(pane, queryParams);
16834
16853
  this._replaceUrl();
16835
16854
  if ((policy & OpenPolicy.Tab) != OpenPolicy.Tab)
16836
16855
  this.select(this.selectedIndex);
@@ -16957,7 +16976,7 @@ class SlotsComponent {
16957
16976
  }
16958
16977
  else {
16959
16978
  const queryParams = this._parseQueryParams(queryString);
16960
- this._navQueryParams(pane, queryParams, state);
16979
+ this._navQueryParams(pane, queryParams);
16961
16980
  return;
16962
16981
  }
16963
16982
  }
@@ -16995,7 +17014,7 @@ class SlotsComponent {
16995
17014
  }
16996
17015
  else {
16997
17016
  const queryParams = this._parseQueryParams(queryString);
16998
- this._navQueryParams(tab, queryParams, state);
17017
+ this._navQueryParams(tab, queryParams);
16999
17018
  return;
17000
17019
  }
17001
17020
  }
@@ -17032,11 +17051,9 @@ class SlotsComponent {
17032
17051
  *
17033
17052
  * @param pane
17034
17053
  * @param queryParams
17035
- * @param data
17036
17054
  */
17037
- _navQueryParams(pane, queryParams, data) {
17055
+ _navQueryParams(pane, queryParams) {
17038
17056
  pane._queryString = this._queryString(queryParams);
17039
- pane._data$.next({ ...pane.data, ...data });
17040
17057
  pane._queryParams$.next(queryParams);
17041
17058
  this._router._events$.next(new QueryParamNavigation(queryParams, pane));
17042
17059
  }
@@ -17513,15 +17530,15 @@ class SlotsComponent {
17513
17530
  this.navigationArrows();
17514
17531
  this._resize();
17515
17532
  }
17516
- navigationArrows(evt) {
17517
- const container = this._panesContainerRef.element.nativeElement;
17518
- this.next = this._rtl ? container.clientWidth - container.scrollLeft < container.scrollWidth :
17519
- container.scrollLeft + container.clientWidth < container.scrollWidth;
17520
- this.prev = this._rtl ? container.scrollLeft < 0 : container.scrollLeft > 0;
17533
+ navigationArrows(_) {
17534
+ const container = this._panesContainerRef.element.nativeElement, scrollLeft = Math.round(container.scrollLeft);
17535
+ this.next = this._rtl ? container.clientWidth - scrollLeft < container.scrollWidth :
17536
+ scrollLeft + container.clientWidth < container.scrollWidth;
17537
+ this.prev = this._rtl ? scrollLeft < 0 : scrollLeft > 0;
17521
17538
  }
17522
17539
  scrollBy(n) {
17523
- const { nativeElement } = this._panesContainerRef.element;
17524
- nativeElement.scrollBy({ behavior: 'smooth', left: n * (this._rtl ? -1 : 1) });
17540
+ const left = n * (this._rtl ? -1 : 1);
17541
+ this._panesContainerRef.element.nativeElement.scrollBy({ behavior: 'smooth', left });
17525
17542
  }
17526
17543
  focus(index) {
17527
17544
  const el = this._children.item(index);
@@ -18099,13 +18116,13 @@ const PANES_CONFIG = [{
18099
18116
  {
18100
18117
  path: 'views',
18101
18118
  component: DocumentViewPaneComponent,
18102
- policy: OpenPolicy.Tab | OpenPolicy.Expandable
18119
+ policy: OpenPolicy.Tab
18103
18120
  },
18104
18121
  {
18105
18122
  path: 'comments',
18106
18123
  icon: 'format_quote',
18107
18124
  component: CommentsPaneComponent,
18108
- policy: OpenPolicy.Scope | OpenPolicy.Pinnable | OpenPolicy.Tab,
18125
+ policy: OpenPolicy.Scope | OpenPolicy.Tab,
18109
18126
  children: [{
18110
18127
  path: ':commentId/versions',
18111
18128
  icon: 'history',
@@ -18133,7 +18150,7 @@ const PANES_CONFIG = [{
18133
18150
  }, {
18134
18151
  path: 'd/:id',
18135
18152
  component: DocumentInfoPaneComponent,
18136
- policy: OpenPolicy.Tab | OpenPolicy.Expandable,
18153
+ policy: OpenPolicy.Tab,
18137
18154
  resolve: {
18138
18155
  item: DocumentResolver
18139
18156
  },
@@ -18163,7 +18180,7 @@ const PANES_CONFIG = [{
18163
18180
  path: ':cube/v/:view',
18164
18181
  icon: 'bar_chart',
18165
18182
  component: CubeViewPaneComponent,
18166
- policy: OpenPolicy.Clear | OpenPolicy.Expandable
18183
+ policy: OpenPolicy.Clear
18167
18184
  }, {
18168
18185
  path: ':cube/explore',
18169
18186
  icon: 'summarize',
@@ -18172,7 +18189,7 @@ const PANES_CONFIG = [{
18172
18189
  children: [{
18173
18190
  path: 'i/:template/:key',
18174
18191
  component: ExploreItemPaneComponent,
18175
- policy: OpenPolicy.Pinnable | OpenPolicy.Tab,
18192
+ policy: OpenPolicy.Tab,
18176
18193
  resolve: { item: ItemResolver }
18177
18194
  }]
18178
18195
  },
@@ -18180,7 +18197,7 @@ const PANES_CONFIG = [{
18180
18197
  path: ':cube/i/:xAxis/:serie',
18181
18198
  icon: 'bar_chart',
18182
18199
  component: CubeMatrixPaneComponent,
18183
- policy: OpenPolicy.Pinnable | OpenPolicy.Tab | OpenPolicy.Expandable
18200
+ policy: OpenPolicy.Tab
18184
18201
  }]
18185
18202
  }, {
18186
18203
  path: 'reports',
@@ -18232,7 +18249,7 @@ const PANES_CONFIG = [{
18232
18249
  path: 'chatroom/:id',
18233
18250
  icon: 'person',
18234
18251
  component: ConversationPaneComponent,
18235
- policy: OpenPolicy.Tab | OpenPolicy.Expandable,
18252
+ policy: OpenPolicy.Tab
18236
18253
  }
18237
18254
  ];
18238
18255