@bizdoc/core 1.13.19 → 1.13.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +13 -7
- package/esm2020/lib/compose/form.component.mjs +6 -2
- package/esm2020/lib/compose/trace/trace.component.mjs +5 -2
- package/esm2020/lib/core/mailbox.service.mjs +2 -2
- package/esm2020/lib/core/translations.mjs +3 -2
- package/esm2020/lib/cube/chart/chart.component.mjs +2 -2
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +2 -2
- package/esm2020/lib/cube/grid/grid.component.mjs +2 -2
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +7 -9
- package/esm2020/lib/cube/matrix/popup.component.mjs +17 -20
- package/esm2020/lib/cube/matrix/table.component.mjs +3 -2
- package/esm2020/lib/cube/parallel/parallel.component.mjs +2 -2
- package/esm2020/lib/cube/pivot/pivot.component.mjs +2 -2
- package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +2 -2
- package/esm2020/lib/home/about/about.dialog.mjs +3 -3
- package/esm2020/lib/home/home.desktop.component.mjs +50 -24
- package/esm2020/lib/reports/report.pane.component.mjs +2 -1
- package/esm2020/lib/views/cube/explore.component.mjs +2 -2
- package/fesm2015/bizdoc-core.mjs +77 -40
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +77 -40
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/core/translations.d.ts +1 -0
- package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
- package/lib/cube/matrix/popup.component.d.ts +1 -3
- package/lib/dashboard/cube/compare.widget.d.ts +1 -1
- package/lib/home/home.desktop.component.d.ts +4 -1
- package/package.json +1 -1
    
        package/fesm2020/bizdoc-core.mjs
    CHANGED
    
    | @@ -1533,7 +1533,7 @@ class MailboxService { | |
| 1533 1533 | 
             
                                        lat: r.coords.latitude.toString()
         | 
| 1534 1534 | 
             
                                    });
         | 
| 1535 1535 | 
             
                                    observe.complete();
         | 
| 1536 | 
            -
                                },  | 
| 1536 | 
            +
                                }, e => {
         | 
| 1537 1537 | 
             
                                    if (configuration.position === 'Ask')
         | 
| 1538 1538 | 
             
                                        observe.next({});
         | 
| 1539 1539 | 
             
                                    else
         | 
| @@ -2271,7 +2271,7 @@ const STRINGS = { | |
| 2271 2271 | 
             
                    JoinAnd: '{0} and {1}',
         | 
| 2272 2272 | 
             
                    NumericJoinAnd: '{0} and {1}',
         | 
| 2273 2273 | 
             
                    JoinComma: ', ',
         | 
| 2274 | 
            -
                    Awaiting: ' | 
| 2274 | 
            +
                    Awaiting: 'waiting for {0}',
         | 
| 2275 2275 | 
             
                    Escalated: 'Escalated',
         | 
| 2276 2276 | 
             
                    Collapse: 'Collapse',
         | 
| 2277 2277 | 
             
                    DownloadExcel: 'Excel',
         | 
| @@ -2350,6 +2350,7 @@ const STRINGS = { | |
| 2350 2350 | 
             
                    ChatHelp: 'Communicate with other users privately',
         | 
| 2351 2351 | 
             
                    ShowAs: 'Show as {0}',
         | 
| 2352 2352 | 
             
                    Unauthorized: 'Unauthorized access',
         | 
| 2353 | 
            +
                    LicenseErr: 'License',
         | 
| 2353 2354 | 
             
                    RemoveAsk: 'Are you sure?',
         | 
| 2354 2355 | 
             
                    Comments: 'Comments',
         | 
| 2355 2356 | 
             
                    Remove: 'Remove',
         | 
| @@ -8979,6 +8980,7 @@ class ComposeFormComponent { | |
| 8979 8980 | 
             
                    else
         | 
| 8980 8981 | 
             
                        switch (response.status) {
         | 
| 8981 8982 | 
             
                            case 401:
         | 
| 8983 | 
            +
                                this._sb.error('Unauthorized');
         | 
| 8982 8984 | 
             
                                break;
         | 
| 8983 8985 | 
             
                            case 409: // version change
         | 
| 8984 8986 | 
             
                                {
         | 
| @@ -8988,9 +8990,12 @@ class ComposeFormComponent { | |
| 8988 8990 | 
             
                                    this._sb.error('VersionErr', this.model.number);
         | 
| 8989 8991 | 
             
                                    break;
         | 
| 8990 8992 | 
             
                                }
         | 
| 8991 | 
            -
                            case 406: // validation | 
| 8993 | 
            +
                            case 406: // validation
         | 
| 8992 8994 | 
             
                                this._sb.errorString(response.error);
         | 
| 8993 8995 | 
             
                                break;
         | 
| 8996 | 
            +
                            case 426: // license 
         | 
| 8997 | 
            +
                                this._sb.error('LicenseErr');
         | 
| 8998 | 
            +
                                break;
         | 
| 8994 8999 | 
             
                            default:
         | 
| 8995 9000 | 
             
                                this._sb.error(message, ...args);
         | 
| 8996 9001 | 
             
                        }
         | 
| @@ -9711,7 +9716,7 @@ class CubeChartComponent { | |
| 9711 9716 | 
             
                        this._draw();
         | 
| 9712 9717 | 
             
                        this.loadingChange.emit(false);
         | 
| 9713 9718 | 
             
                    }, (e) => {
         | 
| 9714 | 
            -
                        this._sb.error(e.status ===  | 
| 9719 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : e.status === 426 ? 'LicenseErr' : null);
         | 
| 9715 9720 | 
             
                        this.loadingChange.emit(false);
         | 
| 9716 9721 | 
             
                    });
         | 
| 9717 9722 | 
             
                }
         | 
| @@ -10002,7 +10007,7 @@ class CubeGridComponent { | |
| 10002 10007 | 
             
                            this.loadingChange.emit(false);
         | 
| 10003 10008 | 
             
                        });
         | 
| 10004 10009 | 
             
                    }, (e) => {
         | 
| 10005 | 
            -
                        this._sb.error(e.status ===  | 
| 10010 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : e.status === 426 ? 'LicenseErr' : null);
         | 
| 10006 10011 | 
             
                        this.loadingChange.emit(false);
         | 
| 10007 10012 | 
             
                    });
         | 
| 10008 10013 | 
             
                }
         | 
| @@ -10308,7 +10313,7 @@ class CubePivotComponent { | |
| 10308 10313 | 
             
                        this._draw();
         | 
| 10309 10314 | 
             
                        this.loadingChange.emit(false);
         | 
| 10310 10315 | 
             
                    }, (e) => {
         | 
| 10311 | 
            -
                        this._sb.error(e.status ===  | 
| 10316 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : e.status === 426 ? 'LicenseErr' : null);
         | 
| 10312 10317 | 
             
                        this.loadingChange.emit(false);
         | 
| 10313 10318 | 
             
                    });
         | 
| 10314 10319 | 
             
                }
         | 
| @@ -10687,20 +10692,18 @@ class CubeSpreadsheetComponent { | |
| 10687 10692 | 
             
                                this._draw();
         | 
| 10688 10693 | 
             
                                this.loadingChange.emit(false);
         | 
| 10689 10694 | 
             
                            });
         | 
| 10690 | 
            -
                        },  | 
| 10691 | 
            -
                            this._sb.error(e.status === 406 ? 'Unauthorized' : null);
         | 
| 10692 | 
            -
                            this.loadingChange.emit(false);
         | 
| 10693 | 
            -
                        });
         | 
| 10695 | 
            +
                        }, e => this._handleErr(e));
         | 
| 10694 10696 | 
             
                    else
         | 
| 10695 10697 | 
             
                        this._service.table(this._cube.name, this._xAxis, { filters: this.filters, indices: this._indices }).
         | 
| 10696 10698 | 
             
                            subscribe(data => {
         | 
| 10697 10699 | 
             
                            this._datatable(data);
         | 
| 10698 10700 | 
             
                            this._draw();
         | 
| 10699 10701 | 
             
                            this.loadingChange.emit(false);
         | 
| 10700 | 
            -
                        },  | 
| 10701 | 
            -
             | 
| 10702 | 
            -
             | 
| 10703 | 
            -
             | 
| 10702 | 
            +
                        }, e => this._handleErr(e));
         | 
| 10703 | 
            +
                }
         | 
| 10704 | 
            +
                _handleErr(response) {
         | 
| 10705 | 
            +
                    this._sb.error(response.status === 401 ? 'Unauthorized' : response.status === 426 ? 'LicenseErr' : null);
         | 
| 10706 | 
            +
                    this.loadingChange.emit(false);
         | 
| 10704 10707 | 
             
                }
         | 
| 10705 10708 | 
             
                _datatable(data) {
         | 
| 10706 10709 | 
             
                    const cells = [], style = { fontWeight: 'bold', textAlign: 'center' };
         | 
| @@ -12596,7 +12599,7 @@ class CubeExplorePaneComponent { | |
| 12596 12599 | 
             
                        this.loading = false;
         | 
| 12597 12600 | 
             
                    }, e => {
         | 
| 12598 12601 | 
             
                        this.loading = false;
         | 
| 12599 | 
            -
                        this._sb.error(e.status ===  | 
| 12602 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : null);
         | 
| 12600 12603 | 
             
                    });
         | 
| 12601 12604 | 
             
                }
         | 
| 12602 12605 | 
             
            }
         | 
| @@ -12930,6 +12933,7 @@ class ReportPaneComponent { | |
| 12930 12933 | 
             
                clearFilter() {
         | 
| 12931 12934 | 
             
                    this.args = {};
         | 
| 12932 12935 | 
             
                    this.anyFilters = false;
         | 
| 12936 | 
            +
                    this._cd.detectChanges();
         | 
| 12933 12937 | 
             
                    this.viewer.execute();
         | 
| 12934 12938 | 
             
                }
         | 
| 12935 12939 | 
             
                /**
         | 
| @@ -14526,8 +14530,11 @@ class TraceViewComponent extends TraceBase { | |
| 14526 14530 | 
             
                                    step.action = await actionBy(action, by.gender, recipient.id);
         | 
| 14527 14531 | 
             
                            }
         | 
| 14528 14532 | 
             
                            else {
         | 
| 14529 | 
            -
                                if (recipient.userId === this._session.userId)
         | 
| 14533 | 
            +
                                if (recipient.userId === this._session.userId) {
         | 
| 14530 14534 | 
             
                                    step.name = this._translate.get('You');
         | 
| 14535 | 
            +
                                    if (action)
         | 
| 14536 | 
            +
                                        step.action = await actionBy(action, this._session.gender, recipient.id);
         | 
| 14537 | 
            +
                                }
         | 
| 14531 14538 | 
             
                                else {
         | 
| 14532 14539 | 
             
                                    let who = await profileOf(recipient.userId);
         | 
| 14533 14540 | 
             
                                    step.name = nameOf(who);
         | 
| @@ -15320,9 +15327,10 @@ class CubeMatrixComponent { | |
| 15320 15327 | 
             
                        clearTimeout(progressTask);
         | 
| 15321 15328 | 
             
                        this.loadingChange.next(this.loading = false);
         | 
| 15322 15329 | 
             
                    }, (e) => {
         | 
| 15323 | 
            -
                        this._sb.error(e.status ===  | 
| 15330 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : e.status === 426 ? 'LicenseErr' : null);
         | 
| 15324 15331 | 
             
                        clearTimeout(progressTask);
         | 
| 15325 15332 | 
             
                        this.loadingChange.next(this.loading = false);
         | 
| 15333 | 
            +
                        this.loadingChange.error(e);
         | 
| 15326 15334 | 
             
                    }));
         | 
| 15327 15335 | 
             
                }
         | 
| 15328 15336 | 
             
                _serialize(series) {
         | 
| @@ -17318,10 +17326,10 @@ class AboutDialog { | |
| 17318 17326 | 
             
                }
         | 
| 17319 17327 | 
             
            }
         | 
| 17320 17328 | 
             
            AboutDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AboutDialog, deps: [{ token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 17321 | 
            -
            AboutDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AboutDialog, selector: "bizdoc-about", ngImport: i0, template: "<h2 mat-dialog-title>BizDoc v{{version}}</h2>\r\n<mat-dialog-content>\r\n  <div *ngIf=\"license; else none\">\r\n    <div [ngSwitch]=\"license.mode\">\r\n      <div *ngSwitchCase=\"'Grace'\"> {{\"GraceLicense\" | translate : dayjs(license.expiration).toNow() }}</div>\r\n      <div *ngSwitchCase=\"'Limited'\">{{'LimitLicense'|translate}}</div>\r\n      <div *ngSwitchCase=\"'Expired'\">{{\"ExpiredLicense\" | translate : (license.expiration | amTimeAgo)}}</div>\r\n    </div>\r\n    <div [innerHtml]='\"LicencedTo\" | translate : license.companyName'></div>\r\n  </div>\r\n  <br />\r\n  <span>© Moding Ltd.</span>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <button mat-button mat-dialog-close>{{'OK'|translate}}</button>\r\n</mat-dialog-actions>\r\n<ng-template #none>\r\n  <div>{{'EvaluationLicense' | translate}}</div>\r\n</ng-template>\r\n", components: [{ type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": TranslatePipe, "amTimeAgo": TimeAgoPipe } });
         | 
| 17329 | 
            +
            AboutDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AboutDialog, selector: "bizdoc-about", ngImport: i0, template: "<h2 mat-dialog-title>BizDoc v{{version}}</h2>\r\n<mat-dialog-content>\r\n  <div *ngIf=\"license; else none\">\r\n    <div [ngSwitch]=\"license.mode\">\r\n      <div *ngSwitchCase=\"'Grace'\"> {{\"GraceLicense\" | translate : dayjs(license.expiration).toNow() }}</div>\r\n      <div *ngSwitchCase=\"'Limited'\">{{'LimitLicense'|translate}}</div>\r\n      <div *ngSwitchCase=\"'Expired'\">{{\"ExpiredLicense\" | translate : (license.expiration | amTimeAgo)}}</div>\r\n    </div>\r\n    <div *ngIf=\"license.companyName\" [innerHtml]='\"LicencedTo\" | translate : license.companyName'></div>\r\n  </div>\r\n  <br />\r\n  <span>© Moding Ltd.</span>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <button mat-button mat-dialog-close>{{'OK'|translate}}</button>\r\n</mat-dialog-actions>\r\n<ng-template #none>\r\n  <div>{{'EvaluationLicense' | translate}}</div>\r\n</ng-template>\r\n", components: [{ type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "translate": TranslatePipe, "amTimeAgo": TimeAgoPipe } });
         | 
| 17322 17330 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AboutDialog, decorators: [{
         | 
| 17323 17331 | 
             
                        type: Component,
         | 
| 17324 | 
            -
                        args: [{ selector: 'bizdoc-about', template: "<h2 mat-dialog-title>BizDoc v{{version}}</h2>\r\n<mat-dialog-content>\r\n  <div *ngIf=\"license; else none\">\r\n    <div [ngSwitch]=\"license.mode\">\r\n      <div *ngSwitchCase=\"'Grace'\"> {{\"GraceLicense\" | translate : dayjs(license.expiration).toNow() }}</div>\r\n      <div *ngSwitchCase=\"'Limited'\">{{'LimitLicense'|translate}}</div>\r\n      <div *ngSwitchCase=\"'Expired'\">{{\"ExpiredLicense\" | translate : (license.expiration | amTimeAgo)}}</div>\r\n    </div>\r\n    <div [innerHtml]='\"LicencedTo\" | translate : license.companyName'></div>\r\n  </div>\r\n  <br />\r\n  <span>© Moding Ltd.</span>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <button mat-button mat-dialog-close>{{'OK'|translate}}</button>\r\n</mat-dialog-actions>\r\n<ng-template #none>\r\n  <div>{{'EvaluationLicense' | translate}}</div>\r\n</ng-template>\r\n" }]
         | 
| 17332 | 
            +
                        args: [{ selector: 'bizdoc-about', template: "<h2 mat-dialog-title>BizDoc v{{version}}</h2>\r\n<mat-dialog-content>\r\n  <div *ngIf=\"license; else none\">\r\n    <div [ngSwitch]=\"license.mode\">\r\n      <div *ngSwitchCase=\"'Grace'\"> {{\"GraceLicense\" | translate : dayjs(license.expiration).toNow() }}</div>\r\n      <div *ngSwitchCase=\"'Limited'\">{{'LimitLicense'|translate}}</div>\r\n      <div *ngSwitchCase=\"'Expired'\">{{\"ExpiredLicense\" | translate : (license.expiration | amTimeAgo)}}</div>\r\n    </div>\r\n    <div *ngIf=\"license.companyName\" [innerHtml]='\"LicencedTo\" | translate : license.companyName'></div>\r\n  </div>\r\n  <br />\r\n  <span>© Moding Ltd.</span>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n  <button mat-button mat-dialog-close>{{'OK'|translate}}</button>\r\n</mat-dialog-actions>\r\n<ng-template #none>\r\n  <div>{{'EvaluationLicense' | translate}}</div>\r\n</ng-template>\r\n" }]
         | 
| 17325 17333 | 
             
                    }], ctorParameters: function () { return [{ type: SessionService }]; } });
         | 
| 17326 17334 |  | 
| 17327 17335 | 
             
            const OPTION_PANEL = new InjectionToken('options');
         | 
| @@ -19237,10 +19245,11 @@ function prepareRoutes(routes, treePath) { | |
| 19237 19245 |  | 
| 19238 19246 | 
             
            /** home comp */
         | 
| 19239 19247 | 
             
            class HomeComponent extends HomeBase {
         | 
| 19240 | 
            -
                constructor(_router, _mailbox, injector, session, popup, messaging, translate, snackBar, config) {
         | 
| 19248 | 
            +
                constructor(_router, _mailbox, injector, session, popup, messaging, translate, _sb, snackBar, config) {
         | 
| 19241 19249 | 
             
                    super(popup, session, messaging, translate, snackBar, injector, config);
         | 
| 19242 19250 | 
             
                    this._router = _router;
         | 
| 19243 19251 | 
             
                    this._mailbox = _mailbox;
         | 
| 19252 | 
            +
                    this._sb = _sb;
         | 
| 19244 19253 | 
             
                    this.sysAdmin = this._session.isSystem;
         | 
| 19245 19254 | 
             
                    this._submenuMode = localStorage.getItem('submenuMode') || 'full';
         | 
| 19246 19255 | 
             
                    this.forms = this._session.profile.forms.filter(f => f.creatable);
         | 
| @@ -19328,11 +19337,35 @@ class HomeComponent extends HomeBase { | |
| 19328 19337 | 
             
                            policy: OpenPolicy.Clear,
         | 
| 19329 19338 | 
             
                            state: { item: r }
         | 
| 19330 19339 | 
             
                        });
         | 
| 19331 | 
            -
                    }, () => {
         | 
| 19332 | 
            -
                        this. | 
| 19340 | 
            +
                    }, (e) => {
         | 
| 19341 | 
            +
                        this._handleErr(e);
         | 
| 19333 19342 | 
             
                        this.creating = false;
         | 
| 19334 19343 | 
             
                    });
         | 
| 19335 19344 | 
             
                }
         | 
| 19345 | 
            +
                _handleErr(response) {
         | 
| 19346 | 
            +
                    if (response.constructor.name === 'PositionError')
         | 
| 19347 | 
            +
                        switch (response.code) {
         | 
| 19348 | 
            +
                            case 1:
         | 
| 19349 | 
            +
                                this._sb.error('UserDeniedGeoErr');
         | 
| 19350 | 
            +
                                break;
         | 
| 19351 | 
            +
                            default:
         | 
| 19352 | 
            +
                                this._sb.error('GeoErr');
         | 
| 19353 | 
            +
                        }
         | 
| 19354 | 
            +
                    else
         | 
| 19355 | 
            +
                        switch (response.status) {
         | 
| 19356 | 
            +
                            case 401:
         | 
| 19357 | 
            +
                                this._sb.error('Unauthorized');
         | 
| 19358 | 
            +
                                break;
         | 
| 19359 | 
            +
                            case 406:
         | 
| 19360 | 
            +
                                this._sb.errorString(response.error);
         | 
| 19361 | 
            +
                                break;
         | 
| 19362 | 
            +
                            case 426: // license
         | 
| 19363 | 
            +
                                this._sb.error('LicenseErr');
         | 
| 19364 | 
            +
                                break;
         | 
| 19365 | 
            +
                            default:
         | 
| 19366 | 
            +
                                this._sb.error();
         | 
| 19367 | 
            +
                        }
         | 
| 19368 | 
            +
                }
         | 
| 19336 19369 | 
             
                opensubmenu(menu) {
         | 
| 19337 19370 | 
             
                    if (this.submenu === menu)
         | 
| 19338 19371 | 
             
                        this.submenuMode = this.submenuMode === 'full' ? 'shrink' : 'full';
         | 
| @@ -19389,12 +19422,12 @@ class HomeComponent extends HomeBase { | |
| 19389 19422 | 
             
                    }
         | 
| 19390 19423 | 
             
                }
         | 
| 19391 19424 | 
             
            }
         | 
| 19392 | 
            -
            HomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HomeComponent, deps: [{ token: PanesRouter }, { token: MailboxService }, { token: i0.Injector }, { token: SessionService }, { token: Popup }, { token: HubService }, { token: TranslateService }, { token: i8$2.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 19425 | 
            +
            HomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HomeComponent, deps: [{ token: PanesRouter }, { token: MailboxService }, { token: i0.Injector }, { token: SessionService }, { token: Popup }, { token: HubService }, { token: TranslateService }, { token: PromptService }, { token: i8$2.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 19393 19426 | 
             
            HomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\" class=\"nav-menu row\">\r\n  <!--[class.loading]=\"loading\"-->\r\n  <div fxLayout=\"column\">\r\n    <div>\r\n      <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\" *ngIf=\"forms.length\">\r\n        <button mat-raised-button class=\"compose\" [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\"\r\n                (click)=\"opennew()\" [disabled]=\"creating\"\r\n                [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\r\n          <mat-icon>add</mat-icon>\r\n          <span class=\"nav-label\">{{'Compose'| translate}}</span>\r\n        </button>\r\n      </div>\r\n      <mat-nav-list>\r\n        <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\r\n                       (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\r\n                       data-help=\"dashboard\"\r\n                       [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon>apps</mat-icon><span class=\"nav-label\">{{'Dashboard' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\"\r\n                       [class.active]=\"activeMenu === 'mailbox'\"\r\n                       [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\r\n          <mat-icon matListIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\">inbox</mat-icon>\r\n          <span class=\"nav-label\">{{'Mailbox' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\" *ngIf=\"schedulerEnabled\"\r\n                       (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\r\n                       [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\">{{ 'Scheduler' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item *ngIf='chatEnabled' data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\r\n                       (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\r\n                       [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\">chat</mat-icon><span class=\"nav-label\">{{ 'Chat' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-divider></mat-divider>\r\n        <mat-list-item *ngIf=\"enableAnalysis && profile.cubes.length\"\r\n                       (click)=\"opensubmenu('cube')\"\r\n                       [class.active]=\"activeMenu === 'cube'\"\r\n                       [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\r\n          <mat-icon matListIcon>equalizer</mat-icon><span class=\"nav-label\">{{'Cube' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item *ngIf=\"profile.reports.length\"\r\n                       (click)=\"opensubmenu('reports')\"\r\n                       [class.active]=\"activeMenu === 'reports'\"\r\n                       [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\r\n          <mat-icon matListIcon>list_alt</mat-icon><span class=\"nav-label\">{{'Reports' | translate}}</span>\r\n        </mat-list-item>\r\n        <ng-container *ngIf=\"sysAdmin\">\r\n          <mat-divider></mat-divider>\r\n          <mat-list-item (click)=\"opensubmenu('admin')\"\r\n                         [class.active]=\"activeMenu === 'admin'\"\r\n                         [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [attr.aria-label]=\"'System' | translate\">\r\n            <mat-icon matListIcon>device_hub</mat-icon>\r\n            <span class=\"nav-label\">{{'Workflow' | translate}}</span>\r\n          </mat-list-item>\r\n        </ng-container>\r\n      </mat-nav-list>\r\n    </div>\r\n    <span class=\"divider\"></span>\r\n    <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\r\n    <!--@animate-->\r\n    <div class=\"sign-in\">\r\n      <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"end\"\r\n              [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\r\n        <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\r\n      </button>\r\n      <span class=\"divider\"></span>\r\n      <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"end\">\r\n        <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <div *ngIf=\"submenu\" class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\r\n    <div class=\"action\" *ngIf=\"submenu !== 'new'\">\r\n      <button mat-icon-button (click)=\"togglePinned()\"><mat-icon class=\"mat-icon-rtl-mirror\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\" [inline]=\"true\">{{pinned ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right'}}</mat-icon></button>\r\n    </div>\r\n    <ng-container [ngSwitch]=\"submenu\">\r\n      <bizdoc-new-menu *ngSwitchCase=\"'new'\" (change)=\"closesubmenu()\"></bizdoc-new-menu>\r\n      <bizdoc-folders-menu *ngSwitchCase=\"'mailbox'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\r\n      <bizdoc-admin-menu *ngSwitchCase=\"'admin'\" [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\r\n      <bizdoc-reports-menu *ngSwitchCase=\"'reports'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\r\n      <bizdoc-cube-menu *ngSwitchCase=\"'cube'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\r\n    </ng-container>\r\n  </div>\r\n</div>\r\n<bizdoc-panes></bizdoc-panes>\r\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden}.nav-menu .sub-menu .action{display:flex;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0}.nav-menu .new-container button{min-width:35px;padding:0 10px;height:40px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;flex-direction:row;overflow:hidden;margin-bottom:5px}\n"], components: [{ type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: 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: i12$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { type: FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { type: ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { type: CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { type: SlotsComponent, selector: "bizdoc-panes" }], directives: [{ type: i6$1.DefaultLayoutDirective, selector: "  [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],  [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],  [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],  [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i2$3.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i13.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { type: MatIconAnimate, selector: "[matAnimate]" }, { type: i10.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i10.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "translate": TranslatePipe }, animations: [submenuAnimation] });
         | 
| 19394 19427 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: HomeComponent, decorators: [{
         | 
| 19395 19428 | 
             
                        type: Component,
         | 
| 19396 19429 | 
             
                        args: [{ selector: 'bizdoc-home', animations: [submenuAnimation], template: "<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\" class=\"nav-menu row\">\r\n  <!--[class.loading]=\"loading\"-->\r\n  <div fxLayout=\"column\">\r\n    <div>\r\n      <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\" *ngIf=\"forms.length\">\r\n        <button mat-raised-button class=\"compose\" [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\"\r\n                (click)=\"opennew()\" [disabled]=\"creating\"\r\n                [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\r\n          <mat-icon>add</mat-icon>\r\n          <span class=\"nav-label\">{{'Compose'| translate}}</span>\r\n        </button>\r\n      </div>\r\n      <mat-nav-list>\r\n        <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\r\n                       (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\r\n                       data-help=\"dashboard\"\r\n                       [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon>apps</mat-icon><span class=\"nav-label\">{{'Dashboard' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\"\r\n                       [class.active]=\"activeMenu === 'mailbox'\"\r\n                       [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\r\n          <mat-icon matListIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\">inbox</mat-icon>\r\n          <span class=\"nav-label\">{{'Mailbox' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\" *ngIf=\"schedulerEnabled\"\r\n                       (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\r\n                       [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\">{{ 'Scheduler' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item *ngIf='chatEnabled' data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\r\n                       (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\r\n                       [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\">\r\n          <mat-icon matListIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\">chat</mat-icon><span class=\"nav-label\">{{ 'Chat' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-divider></mat-divider>\r\n        <mat-list-item *ngIf=\"enableAnalysis && profile.cubes.length\"\r\n                       (click)=\"opensubmenu('cube')\"\r\n                       [class.active]=\"activeMenu === 'cube'\"\r\n                       [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\r\n          <mat-icon matListIcon>equalizer</mat-icon><span class=\"nav-label\">{{'Cube' | translate}}</span>\r\n        </mat-list-item>\r\n        <mat-list-item *ngIf=\"profile.reports.length\"\r\n                       (click)=\"opensubmenu('reports')\"\r\n                       [class.active]=\"activeMenu === 'reports'\"\r\n                       [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\r\n          <mat-icon matListIcon>list_alt</mat-icon><span class=\"nav-label\">{{'Reports' | translate}}</span>\r\n        </mat-list-item>\r\n        <ng-container *ngIf=\"sysAdmin\">\r\n          <mat-divider></mat-divider>\r\n          <mat-list-item (click)=\"opensubmenu('admin')\"\r\n                         [class.active]=\"activeMenu === 'admin'\"\r\n                         [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [attr.aria-label]=\"'System' | translate\">\r\n            <mat-icon matListIcon>device_hub</mat-icon>\r\n            <span class=\"nav-label\">{{'Workflow' | translate}}</span>\r\n          </mat-list-item>\r\n        </ng-container>\r\n      </mat-nav-list>\r\n    </div>\r\n    <span class=\"divider\"></span>\r\n    <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\r\n    <!--@animate-->\r\n    <div class=\"sign-in\">\r\n      <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"end\"\r\n              [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\r\n        <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\r\n      </button>\r\n      <span class=\"divider\"></span>\r\n      <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"end\">\r\n        <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\r\n      </button>\r\n    </div>\r\n  </div>\r\n  <div *ngIf=\"submenu\" class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\r\n    <div class=\"action\" *ngIf=\"submenu !== 'new'\">\r\n      <button mat-icon-button (click)=\"togglePinned()\"><mat-icon class=\"mat-icon-rtl-mirror\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\" [inline]=\"true\">{{pinned ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right'}}</mat-icon></button>\r\n    </div>\r\n    <ng-container [ngSwitch]=\"submenu\">\r\n      <bizdoc-new-menu *ngSwitchCase=\"'new'\" (change)=\"closesubmenu()\"></bizdoc-new-menu>\r\n      <bizdoc-folders-menu *ngSwitchCase=\"'mailbox'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\r\n      <bizdoc-admin-menu *ngSwitchCase=\"'admin'\" [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\r\n      <bizdoc-reports-menu *ngSwitchCase=\"'reports'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\r\n      <bizdoc-cube-menu *ngSwitchCase=\"'cube'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\r\n    </ng-container>\r\n  </div>\r\n</div>\r\n<bizdoc-panes></bizdoc-panes>\r\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden}.nav-menu .sub-menu .action{display:flex;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0}.nav-menu .new-container button{min-width:35px;padding:0 10px;height:40px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;flex-direction:row;overflow:hidden;margin-bottom:5px}\n"] }]
         | 
| 19397 | 
            -
                    }], ctorParameters: function () { return [{ type: PanesRouter }, { type: MailboxService }, { type: i0.Injector }, { type: SessionService }, { type: Popup }, { type: HubService }, { type: TranslateService }, { type: i8$2.MatSnackBar }, { type: undefined, decorators: [{
         | 
| 19430 | 
            +
                    }], ctorParameters: function () { return [{ type: PanesRouter }, { type: MailboxService }, { type: i0.Injector }, { type: SessionService }, { type: Popup }, { type: HubService }, { type: TranslateService }, { type: PromptService }, { type: i8$2.MatSnackBar }, { type: undefined, decorators: [{
         | 
| 19398 19431 | 
             
                                type: Inject,
         | 
| 19399 19432 | 
             
                                args: [BIZDOC_CONFIG]
         | 
| 19400 19433 | 
             
                            }] }]; }, propDecorators: { drawer: [{
         | 
| @@ -19455,7 +19488,7 @@ class FormSelectorSheet { | |
| 19455 19488 | 
             
                copy(event) {
         | 
| 19456 19489 | 
             
                    event.preventDefault();
         | 
| 19457 19490 | 
             
                    this._bsRef.afterDismissed().subscribe(() => this._dialog.open(CopyDialog).afterClosed().subscribe(i => {
         | 
| 19458 | 
            -
                         | 
| 19491 | 
            +
                        i &&
         | 
| 19459 19492 | 
             
                            this._mailbox.copy(i.documentId).subscribe(i => {
         | 
| 19460 19493 | 
             
                                this._sb.toast('Copied', i.number || this._getForm(i.formId).title);
         | 
| 19461 19494 | 
             
                                this._route(i);
         | 
| @@ -19466,9 +19499,9 @@ class FormSelectorSheet { | |
| 19466 19499 | 
             
                _getForm(name) {
         | 
| 19467 19500 | 
             
                    return this._session.profile.forms.find(f => f.name === name);
         | 
| 19468 19501 | 
             
                }
         | 
| 19469 | 
            -
                _error( | 
| 19470 | 
            -
                    if ( | 
| 19471 | 
            -
                        switch ( | 
| 19502 | 
            +
                _error(response) {
         | 
| 19503 | 
            +
                    if (response.constructor.name === 'PositionError')
         | 
| 19504 | 
            +
                        switch (response.code) {
         | 
| 19472 19505 | 
             
                            case 1:
         | 
| 19473 19506 | 
             
                                this._sb.error('UserDeniedGeoErr');
         | 
| 19474 19507 | 
             
                                break;
         | 
| @@ -19476,9 +19509,15 @@ class FormSelectorSheet { | |
| 19476 19509 | 
             
                                this._sb.error('GeoErr');
         | 
| 19477 19510 | 
             
                        }
         | 
| 19478 19511 | 
             
                    else
         | 
| 19479 | 
            -
                        switch ( | 
| 19512 | 
            +
                        switch (response.status) {
         | 
| 19513 | 
            +
                            case 401:
         | 
| 19514 | 
            +
                                this._sb.error('Unauthorized');
         | 
| 19515 | 
            +
                                break;
         | 
| 19480 19516 | 
             
                            case 406:
         | 
| 19481 | 
            -
                                this._sb.errorString( | 
| 19517 | 
            +
                                this._sb.errorString(response.error);
         | 
| 19518 | 
            +
                                break;
         | 
| 19519 | 
            +
                            case 426: // license
         | 
| 19520 | 
            +
                                this._sb.error('LicenseErr');
         | 
| 19482 19521 | 
             
                                break;
         | 
| 19483 19522 | 
             
                            default:
         | 
| 19484 19523 | 
             
                                this._sb.error();
         | 
| @@ -20225,9 +20264,9 @@ class CubeMobileViewComponent extends ViewBase { | |
| 20225 20264 | 
             
                        this.item = item;
         | 
| 20226 20265 | 
             
                        this.mode = 'item';
         | 
| 20227 20266 | 
             
                        this.loading = false;
         | 
| 20228 | 
            -
                    }, e => {
         | 
| 20267 | 
            +
                    }, (e) => {
         | 
| 20229 20268 | 
             
                        this.loading = false;
         | 
| 20230 | 
            -
                        this._sb.error(e.status ===  | 
| 20269 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : null);
         | 
| 20231 20270 | 
             
                    });
         | 
| 20232 20271 | 
             
                }
         | 
| 20233 20272 | 
             
                toggleFilter() {
         | 
| @@ -20951,10 +20990,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor | |
| 20951 20990 | 
             
            class CubeMatrixPopupComponent extends CubeMatrixBase {
         | 
| 20952 20991 | 
             
                /** filters */
         | 
| 20953 20992 | 
             
                /** cube-info ctor */
         | 
| 20954 | 
            -
                constructor(_ref, data, service, ds, session | 
| 20993 | 
            +
                constructor(_ref, data, service, ds, session) {
         | 
| 20955 20994 | 
             
                    super(service, ds, session);
         | 
| 20956 20995 | 
             
                    this._ref = _ref;
         | 
| 20957 | 
            -
                    this._sb = _sb;
         | 
| 20958 20996 | 
             
                    this.preloading = true;
         | 
| 20959 20997 | 
             
                    if (!data.options)
         | 
| 20960 20998 | 
             
                        throw 'no data options';
         | 
| @@ -20974,13 +21012,12 @@ class CubeMatrixPopupComponent extends CubeMatrixBase { | |
| 20974 21012 | 
             
                }
         | 
| 20975 21013 | 
             
                ngOnInit() {
         | 
| 20976 21014 | 
             
                    this.table.loadingChange.pipe(filter$1(ok => !ok), first$1()).subscribe(() => this.preloading = false, (e) => {
         | 
| 20977 | 
            -
                        if (e.status ===  | 
| 21015 | 
            +
                        if (e.status === 401)
         | 
| 20978 21016 | 
             
                            this._ref.close();
         | 
| 20979 | 
            -
                        this._sb.error(e.status === 406 ? 'Unauthorized' : null);
         | 
| 20980 21017 | 
             
                    });
         | 
| 20981 21018 | 
             
                }
         | 
| 20982 21019 | 
             
            }
         | 
| 20983 | 
            -
            CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: CubeService }, { token: DatasourceService }, { token: SessionService } | 
| 21020 | 
            +
            CubeMatrixPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixPopupComponent, deps: [{ token: PopupRef }, { token: POPUP_DATA }, { token: CubeService }, { token: DatasourceService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 20984 21021 | 
             
            CubeMatrixPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: CubeMatrixPopupComponent, 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  <div class=\"row\" *ngIf=\"!preloading && (patterns?.length || filters?.length)\">\r\n    <span class=\"divider\"></span>\r\n    <!-- title -->\r\n    <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n    <mat-menu #options xPosition=\"before\">\r\n      <!-- patterns -->\r\n      <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\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    <ng-container *ngFor=\"let f of filters\">\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        <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n                (click)=\"filter(f.name, kv.key, kv.value)\">\r\n          {{kv.value}}\r\n        </button>\r\n      </mat-menu>\r\n    </ng-container>\r\n  </div>\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"], components: [{ type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i7$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button],             button[mat-fab], button[mat-mini-fab], button[mat-stroked-button],             button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }], pipes: { "translate": TranslatePipe, "async": i10.AsyncPipe, "typeValue": TypeValuePipe } });
         | 
| 20985 21022 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CubeMatrixPopupComponent, decorators: [{
         | 
| 20986 21023 | 
             
                        type: Component,
         | 
| @@ -20991,7 +21028,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor | |
| 20991 21028 | 
             
                            }] }, { type: undefined, decorators: [{
         | 
| 20992 21029 | 
             
                                type: Inject,
         | 
| 20993 21030 | 
             
                                args: [POPUP_DATA]
         | 
| 20994 | 
            -
                            }] }, { type: CubeService }, { type: DatasourceService }, { type: SessionService } | 
| 21031 | 
            +
                            }] }, { type: CubeService }, { type: DatasourceService }, { type: SessionService }]; }, propDecorators: { table: [{
         | 
| 20995 21032 | 
             
                            type: ViewChild,
         | 
| 20996 21033 | 
             
                            args: [CubeMatrixComponent, { static: true }]
         | 
| 20997 21034 | 
             
                        }] } });
         | 
| @@ -26208,7 +26245,7 @@ let CubeExploreViewComponent = class CubeExploreViewComponent extends CubeBase { | |
| 26208 26245 | 
             
                        this.loading = false;
         | 
| 26209 26246 | 
             
                    }, e => {
         | 
| 26210 26247 | 
             
                        this.loading = false;
         | 
| 26211 | 
            -
                        this._sb.error(e.status ===  | 
| 26248 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : null);
         | 
| 26212 26249 | 
             
                    });
         | 
| 26213 26250 | 
             
                }
         | 
| 26214 26251 | 
             
            };
         | 
| @@ -26324,7 +26361,7 @@ class CubeParallelComponent { | |
| 26324 26361 | 
             
                            this.width = Math.max(Math.round(this.size / this.items.length), 150) + 'px';
         | 
| 26325 26362 | 
             
                        this._loading.next(false);
         | 
| 26326 26363 | 
             
                    }, (e) => {
         | 
| 26327 | 
            -
                        this._sb.error(e.status ===  | 
| 26364 | 
            +
                        this._sb.error(e.status === 401 ? 'Unauthorized' : e.status === 426 ? 'LicenseErr' : null);
         | 
| 26328 26365 | 
             
                        this._loading.next(false);
         | 
| 26329 26366 | 
             
                    });
         | 
| 26330 26367 | 
             
                }
         |