@bizdoc/core 2.3.44 → 2.4.0
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/assets/bizdoc-schema.json +4 -2
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -1
- package/assets/themes/deep-purple-light-blue.min.css +12 -8
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +12 -8
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +7 -2
- package/esm2022/lib/admin/architecture/elements/action.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/control.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +13 -5
- package/esm2022/lib/admin/architecture/elements/folder.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/form.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/guide.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/job.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/node.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/policy.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/report.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/role.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/rule.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/source.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/state.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/type.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/utility.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/view.component.mjs +1 -1
- package/esm2022/lib/admin/architecture/elements/widget.component.mjs +1 -1
- package/esm2022/lib/compose/attachments/attachments.component.mjs +4 -4
- package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +10 -8
- package/esm2022/lib/compose/new-menu.component.mjs +4 -8
- package/esm2022/lib/core/authentication.mjs +2 -1
- package/esm2022/lib/core/http.interceptor.mjs +35 -31
- package/esm2022/lib/core/hub.service.mjs +3 -3
- package/esm2022/lib/core/info/attachment-info.service.mjs +2 -2
- package/esm2022/lib/core/inputs/file.input.mjs +8 -6
- package/esm2022/lib/core/mailbox.service.mjs +4 -4
- package/esm2022/lib/core/models.mjs +1 -1
- package/esm2022/lib/cube/cube-view.component.mjs +3 -1
- package/esm2022/lib/home/sign/sign.component.mjs +4 -10
- package/esm2022/lib/system.module.mjs +4 -2
- package/fesm2022/bizdoc-core.mjs +106 -90
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/architecture/designer-element.component.d.ts +2 -1
- package/lib/admin/architecture/elements/cube.component.d.ts +1 -0
- package/lib/compose/attachments/attachments.component.d.ts +1 -1
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -3
- package/lib/core/authentication.d.ts +3 -4
- package/lib/core/http.interceptor.d.ts +1 -1
- package/lib/core/inputs/file.input.d.ts +1 -1
- package/lib/core/mailbox.service.d.ts +1 -1
- package/lib/core/models.d.ts +1 -1
- package/package.json +13 -13
    
        package/fesm2022/bizdoc-core.mjs
    CHANGED
    
    | @@ -881,6 +881,7 @@ const queryAnimation = trigger('query', [state('*', style({})), | |
| 881 881 | 
             
                transition('*<=>*', animate(0, style({})))]);
         | 
| 882 882 |  | 
| 883 883 | 
             
            class AuthenticationImpl {
         | 
| 884 | 
            +
                disconnect() { return Promise.resolve(); }
         | 
| 884 885 | 
             
            }
         | 
| 885 886 |  | 
| 886 887 | 
             
            /** Listen to hub contracts */
         | 
| @@ -941,8 +942,8 @@ class HubService { | |
| 941 942 | 
             
                    }
         | 
| 942 943 | 
             
                    this._connection = new HubConnectionBuilder().withUrl('/chub', {
         | 
| 943 944 | 
             
                        //     logger: LogLevel.Debug,
         | 
| 944 | 
            -
                        accessTokenFactory: this._auth. | 
| 945 | 
            -
                        skipNegotiation: true,
         | 
| 945 | 
            +
                        accessTokenFactory: this._auth.getAuthToken.bind(this),
         | 
| 946 | 
            +
                        //skipNegotiation: true,
         | 
| 946 947 | 
             
                    }).withAutomaticReconnect().build();
         | 
| 947 948 | 
             
                    this._connection.on('newMail', (data) => this._newMail.next(data));
         | 
| 948 949 | 
             
                    this._connection.on('mailUpdate', (data) => this._updateMail.next(data));
         | 
| @@ -6579,9 +6580,9 @@ class MailboxService { | |
| 6579 6580 | 
             
                        folder.count++;
         | 
| 6580 6581 | 
             
                    });
         | 
| 6581 6582 | 
             
                }
         | 
| 6582 | 
            -
                formatDownloadUrl( | 
| 6583 | 
            -
                    let url = `/api/attachments/${documentId}/${ | 
| 6584 | 
            -
                    const token = this._auth. | 
| 6583 | 
            +
                async formatDownloadUrl(document, file) {
         | 
| 6584 | 
            +
                    let url = `/api/attachments/${document.documentId}/${file.id}`;
         | 
| 6585 | 
            +
                    const token = await this._auth.getAuthToken();
         | 
| 6585 6586 | 
             
                    if (token)
         | 
| 6586 6587 | 
             
                        url +=
         | 
| 6587 6588 | 
             
                            `?access_token=${token}`;
         | 
| @@ -8065,9 +8066,10 @@ class AttachmentPreview { | |
| 8065 8066 | 
             
                    this._afterClosed = new Subject();
         | 
| 8066 8067 | 
             
                    this.dir = _directionality.value;
         | 
| 8067 8068 | 
             
                    this.isImage = isImage(this.data.file.contentType);
         | 
| 8068 | 
            -
                     | 
| 8069 | 
            -
             | 
| 8070 | 
            -
             | 
| 8069 | 
            +
                    this._url().then(url => {
         | 
| 8070 | 
            +
                        url += (url.indexOf('?') > 0 ? '&' : '?') + 'inline=true';
         | 
| 8071 | 
            +
                        this.objectData = sanitizer.bypassSecurityTrustResourceUrl(url);
         | 
| 8072 | 
            +
                    });
         | 
| 8071 8073 | 
             
                    this.beforeClose().subscribe(() => this.slideDown = 'leave');
         | 
| 8072 8074 | 
             
                }
         | 
| 8073 8075 | 
             
                resize() {
         | 
| @@ -8082,11 +8084,12 @@ class AttachmentPreview { | |
| 8082 8084 | 
             
                ngAfterViewInit() {
         | 
| 8083 8085 | 
             
                    this.resize();
         | 
| 8084 8086 | 
             
                }
         | 
| 8085 | 
            -
                download() {
         | 
| 8086 | 
            -
                     | 
| 8087 | 
            +
                async download() {
         | 
| 8088 | 
            +
                    const url = await this._url();
         | 
| 8089 | 
            +
                    location.assign(url);
         | 
| 8087 8090 | 
             
                }
         | 
| 8088 | 
            -
                _url() {
         | 
| 8089 | 
            -
                    return this._service.formatDownloadUrl(this.data. | 
| 8091 | 
            +
                async _url() {
         | 
| 8092 | 
            +
                    return this._service.formatDownloadUrl(this.data.document, this.data.file);
         | 
| 8090 8093 | 
             
                }
         | 
| 8091 8094 | 
             
                rotate() {
         | 
| 8092 8095 | 
             
                    const elem = (this.isImage ? this.img : this.obj).nativeElement;
         | 
| @@ -8209,7 +8212,7 @@ class AttachmentInfo { | |
| 8209 8212 | 
             
                            {
         | 
| 8210 8213 | 
             
                                provide: FILE_PREVIEW_DIALOG_DATA, useValue: {
         | 
| 8211 8214 | 
             
                                    file,
         | 
| 8212 | 
            -
                                     | 
| 8215 | 
            +
                                    document: item
         | 
| 8213 8216 | 
             
                                }
         | 
| 8214 8217 | 
             
                            },
         | 
| 8215 8218 | 
             
                            { provide: OverlayRef, useValue: oRef }
         | 
| @@ -8359,7 +8362,7 @@ class AttachmentsComponent { | |
| 8359 8362 | 
             
                getVersions(item) {
         | 
| 8360 8363 | 
             
                    return this.model.attachments.filter(a => a.fileName === item.fileName && a != item);
         | 
| 8361 8364 | 
             
                }
         | 
| 8362 | 
            -
                download(item) {
         | 
| 8365 | 
            +
                async download(item) {
         | 
| 8363 8366 | 
             
                    //this._mailbox.download(this.model.documentId, item.id).subscribe(data => {
         | 
| 8364 8367 | 
             
                    //const blob = new Blob([data], { type: item.contentType });
         | 
| 8365 8368 | 
             
                    //if (typeof window.navigator.msSaveBlob !== 'undefined') { // IE
         | 
| @@ -8370,7 +8373,7 @@ class AttachmentsComponent { | |
| 8370 8373 | 
             
                    //if (!pwa || pwa.closed || typeof pwa.closed === 'undefined')
         | 
| 8371 8374 | 
             
                    //}
         | 
| 8372 8375 | 
             
                    //});
         | 
| 8373 | 
            -
                    location.href = this._mailbox.formatDownloadUrl(this.model | 
| 8376 | 
            +
                    location.href = await this._mailbox.formatDownloadUrl(this.model, item);
         | 
| 8374 8377 | 
             
                    item.viewed = new Date();
         | 
| 8375 8378 | 
             
                }
         | 
| 8376 8379 | 
             
                previewOrDownload(item) {
         | 
| @@ -8394,7 +8397,7 @@ class AttachmentsComponent { | |
| 8394 8397 | 
             
                    });
         | 
| 8395 8398 | 
             
                    const injector = Injector.create({
         | 
| 8396 8399 | 
             
                        providers: [
         | 
| 8397 | 
            -
                            { provide: FILE_PREVIEW_DIALOG_DATA, useValue: { file: item,  | 
| 8400 | 
            +
                            { provide: FILE_PREVIEW_DIALOG_DATA, useValue: { file: item, document: this.model } },
         | 
| 8398 8401 | 
             
                            { provide: OverlayRef, useValue: oRef }
         | 
| 8399 8402 | 
             
                        ], parent: this._injector
         | 
| 8400 8403 | 
             
                    });
         | 
| @@ -11918,6 +11921,8 @@ class CubeViewComponent { | |
| 11918 11921 | 
             
                    const dim = this._dim();
         | 
| 11919 11922 | 
             
                    switch (this.view.type) {
         | 
| 11920 11923 | 
             
                        case 'Pivot':
         | 
| 11924 | 
            +
                        case 'PivotChart':
         | 
| 11925 | 
            +
                        case 'PivotGrid':
         | 
| 11921 11926 | 
             
                            {
         | 
| 11922 11927 | 
             
                                let comp = this._attach(CubePivotComponent);
         | 
| 11923 11928 | 
             
                                comp.width = `${dim.width - 4}px`;
         | 
| @@ -18596,39 +18601,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor | |
| 18596 18601 |  | 
| 18597 18602 | 
             
            class AppHttpInterceptor {
         | 
| 18598 18603 | 
             
                intercept(req, next) {
         | 
| 18599 | 
            -
                     | 
| 18600 | 
            -
                         | 
| 18601 | 
            -
             | 
| 18602 | 
            -
             | 
| 18603 | 
            -
                         | 
| 18604 | 
            -
             | 
| 18605 | 
            -
             | 
| 18606 | 
            -
             | 
| 18607 | 
            -
             | 
| 18608 | 
            -
             | 
| 18609 | 
            -
                         | 
| 18610 | 
            -
             | 
| 18611 | 
            -
             | 
| 18612 | 
            -
             | 
| 18613 | 
            -
             | 
| 18614 | 
            -
             | 
| 18615 | 
            -
             | 
| 18616 | 
            -
                                this._authenticationInProgress$ = null;
         | 
| 18617 | 
            -
                                return this.intercept(req, next);
         | 
| 18604 | 
            +
                    return from(this._auth.getAuthToken()).pipe(switchMap$1(token => {
         | 
| 18605 | 
            +
                        const connectionId = this._messaging.connectionId, headers = {
         | 
| 18606 | 
            +
                            'accept-language': this._session.language,
         | 
| 18607 | 
            +
                        };
         | 
| 18608 | 
            +
                        if (connectionId)
         | 
| 18609 | 
            +
                            headers['connection-id'] = connectionId;
         | 
| 18610 | 
            +
                        if (token)
         | 
| 18611 | 
            +
                            headers['Authorization'] = `Bearer ${token}`;
         | 
| 18612 | 
            +
                        const request = req.clone({
         | 
| 18613 | 
            +
                            setHeaders: headers,
         | 
| 18614 | 
            +
                        });
         | 
| 18615 | 
            +
                        if (!req.headers.has('no-progress')) {
         | 
| 18616 | 
            +
                            this._ongoingCounter$.next(1);
         | 
| 18617 | 
            +
                            return next.handle(request).pipe(tap({
         | 
| 18618 | 
            +
                                next: event => event instanceof HttpResponse
         | 
| 18619 | 
            +
                                    && this._ongoingCounter$.next(0),
         | 
| 18620 | 
            +
                                error: () => this._ongoingCounter$.next(0)
         | 
| 18618 18621 | 
             
                            }));
         | 
| 18622 | 
            +
                        }
         | 
| 18623 | 
            +
                        else
         | 
| 18624 | 
            +
                            return next.handle(request);
         | 
| 18625 | 
            +
                    }), catchError((e) => {
         | 
| 18626 | 
            +
                        // there is already ongoing authentication, 
         | 
| 18627 | 
            +
                        if (this._authenticating$)
         | 
| 18628 | 
            +
                            return this._authenticating$;
         | 
| 18629 | 
            +
                        else if (e.status === 401) {
         | 
| 18630 | 
            +
                            this._authenticating$ =
         | 
| 18631 | 
            +
                                // give AuthenticationImpl to 
         | 
| 18632 | 
            +
                                from(this._auth.authenticate()).
         | 
| 18633 | 
            +
                                    pipe(tap(() => this._authenticating$ = null), 
         | 
| 18634 | 
            +
                                // authorization ok, try
         | 
| 18635 | 
            +
                                switchMap$1(() => this.intercept(req, next)));
         | 
| 18636 | 
            +
                            return this._authenticating$;
         | 
| 18637 | 
            +
                        }
         | 
| 18619 18638 | 
             
                        else
         | 
| 18620 18639 | 
             
                            throw e;
         | 
| 18621 18640 | 
             
                    }));
         | 
| 18622 | 
            -
                    if (!req.headers.has('no-progress')) {
         | 
| 18623 | 
            -
                        this._ongoingCounter$.next(1);
         | 
| 18624 | 
            -
                        return handle.pipe(tap({
         | 
| 18625 | 
            -
                            next: event => event instanceof HttpResponse
         | 
| 18626 | 
            -
                                && this._ongoingCounter$.next(0),
         | 
| 18627 | 
            -
                            error: () => this._ongoingCounter$.next(0)
         | 
| 18628 | 
            -
                        }));
         | 
| 18629 | 
            -
                    }
         | 
| 18630 | 
            -
                    else
         | 
| 18631 | 
            -
                        return handle;
         | 
| 18632 18641 | 
             
                }
         | 
| 18633 18642 | 
             
                constructor(_session, _auth, _messaging) {
         | 
| 18634 18643 | 
             
                    this._session = _session;
         | 
| @@ -18866,18 +18875,12 @@ class QuickSignComponent { | |
| 18866 18875 | 
             
                }
         | 
| 18867 18876 | 
             
                signOut() {
         | 
| 18868 18877 | 
             
                    this._close();
         | 
| 18869 | 
            -
                    const task = () => {
         | 
| 18870 | 
            -
                        this._ps.mask('Goodbye');
         | 
| 18871 | 
            -
                        location.assign('/');
         | 
| 18872 | 
            -
                    };
         | 
| 18873 18878 | 
             
                    this._ps.ask('SignOutAsk', 'SignOut', { ok: 'Yes', cancel: 'No' }).subscribe(ok => {
         | 
| 18874 18879 | 
             
                        if (ok) {
         | 
| 18875 18880 | 
             
                            eraseCookie(IMPERSONATE_COOKIE_NAME);
         | 
| 18876 | 
            -
                             | 
| 18877 | 
            -
             | 
| 18878 | 
            -
             | 
| 18879 | 
            -
                            else
         | 
| 18880 | 
            -
                                task();
         | 
| 18881 | 
            +
                            this._ps.mask('Goodbye');
         | 
| 18882 | 
            +
                            this._auth.disconnect().
         | 
| 18883 | 
            +
                                then(() => location.assign('/'));
         | 
| 18881 18884 | 
             
                        }
         | 
| 18882 18885 | 
             
                    });
         | 
| 18883 18886 | 
             
                }
         | 
| @@ -20497,13 +20500,9 @@ class ComposeMenuComponent { | |
| 20497 20500 | 
             
                create(form) {
         | 
| 20498 20501 | 
             
                    this._working.next(true);
         | 
| 20499 20502 | 
             
                    this._mailbox.create(form).subscribe({
         | 
| 20500 | 
            -
                        next: i =>  | 
| 20501 | 
            -
             | 
| 20502 | 
            -
             | 
| 20503 | 
            -
                        }, error: e => {
         | 
| 20504 | 
            -
                            this._working.next(false);
         | 
| 20505 | 
            -
                            this._error(e);
         | 
| 20506 | 
            -
                        }
         | 
| 20503 | 
            +
                        next: i => this._nav(i),
         | 
| 20504 | 
            +
                        error: e => this._error(e),
         | 
| 20505 | 
            +
                        complete: () => this._working.next(false)
         | 
| 20507 20506 | 
             
                    });
         | 
| 20508 20507 | 
             
                }
         | 
| 20509 20508 | 
             
                copy(item) {
         | 
| @@ -22847,8 +22846,8 @@ class FileInput { | |
| 22847 22846 | 
             
                getVersions(item) {
         | 
| 22848 22847 | 
             
                    return this._model.attachments.filter(a => a.fileName === item.fileName && a.id !== item.id);
         | 
| 22849 22848 | 
             
                }
         | 
| 22850 | 
            -
                download(item) {
         | 
| 22851 | 
            -
                    location.href = this._mailbox.formatDownloadUrl(this._model | 
| 22849 | 
            +
                async download(item) {
         | 
| 22850 | 
            +
                    location.href = await this._mailbox.formatDownloadUrl(this._model, item);
         | 
| 22852 22851 | 
             
                    item.viewed = new Date();
         | 
| 22853 22852 | 
             
                }
         | 
| 22854 22853 | 
             
                previewOrDownload(item) {
         | 
| @@ -23057,17 +23056,19 @@ class FileInput { | |
| 23057 23056 | 
             
                 * @param attachment
         | 
| 23058 23057 | 
             
                 */
         | 
| 23059 23058 | 
             
                _createItem(attachment) {
         | 
| 23060 | 
            -
                    const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType) | 
| 23061 | 
            -
                     | 
| 23059 | 
            +
                    const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType);
         | 
| 23060 | 
            +
                    const newModel = {
         | 
| 23062 23061 | 
             
                        ...attachment,
         | 
| 23063 23062 | 
             
                        hasPreview,
         | 
| 23064 23063 | 
             
                        isImage,
         | 
| 23065 23064 | 
             
                        fileExt,
         | 
| 23066 | 
            -
                        url,
         | 
| 23067 23065 | 
             
                        icon: EXTENTION_ICONS[fileExt],
         | 
| 23068 23066 | 
             
                        checkedOut: attachment.checkedOut &&
         | 
| 23069 23067 | 
             
                            attachment.holdingId === this._session.profile.userId
         | 
| 23070 23068 | 
             
                    };
         | 
| 23069 | 
            +
                    isImage &&
         | 
| 23070 | 
            +
                        this._mailbox.formatDownloadUrl(this._model, attachment).then(url => newModel.url = this._sanitizer.bypassSecurityTrustUrl(url));
         | 
| 23071 | 
            +
                    return newModel;
         | 
| 23071 23072 | 
             
                }
         | 
| 23072 23073 | 
             
                /**
         | 
| 23073 23074 | 
             
                 *
         | 
| @@ -33536,6 +33537,7 @@ class DesignerItemComponent { | |
| 33536 33537 | 
             
                    this._cfr = _cfr;
         | 
| 33537 33538 | 
             
                    this.SVG = FAMILY_SVG;
         | 
| 33538 33539 | 
             
                    this.onSave = new EventEmitter();
         | 
| 33540 | 
            +
                    this.onContinue = new EventEmitter();
         | 
| 33539 33541 | 
             
                    this._destroy = new Subject();
         | 
| 33540 33542 | 
             
                    this.mode = _ref.mode;
         | 
| 33541 33543 | 
             
                    this.model = _ref.model;
         | 
| @@ -33637,6 +33639,7 @@ class DesignerItemComponent { | |
| 33637 33639 | 
             
                    this._elementDesigner?.onContinue &&
         | 
| 33638 33640 | 
             
                        this._elementDesigner.onContinue();
         | 
| 33639 33641 | 
             
                    this.mode = 'edit';
         | 
| 33642 | 
            +
                    this.onContinue.emit();
         | 
| 33640 33643 | 
             
                    if (this._elementDesigner)
         | 
| 33641 33644 | 
             
                        this._elementDesigner.mode = 'edit';
         | 
| 33642 33645 | 
             
                    this._commonForm();
         | 
| @@ -33685,7 +33688,7 @@ class DesignerItemComponent { | |
| 33685 33688 | 
             
                    this._destroy?.complete();
         | 
| 33686 33689 | 
             
                }
         | 
| 33687 33690 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1$2.FormBuilder }, { token: i2$1.DomSanitizer }, { token: DesignerRef }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 33688 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\n<!--widget mode -->\n@case ('widget') {\n<!--icon -->\n  @if (model.familyKey) {\n    @if (SVG[model.familyKey]) {\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\n    }\n    @else {\n<div>{{model.family}}</div>\n    }\n  }\n<!--options-->\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n<!--designer widget-->\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\n}\n@case ('edit') {\n<!--edit / custom mode -->\n@if (context?.active) {\n<mat-toolbar class=\"row\">\n  @if(context.mode === 'add') {\n  <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\n  <span class=\"divider\"></span>\n  <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">close</mat-icon></button>\n  }\n  @else {\n  <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_backspace</mat-icon></button>\n  }\n</mat-toolbar>\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n  <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\n</form>\n}\n@else {\n<!--edit mode -->\n<mat-toolbar bizdoc-sticky>\n  <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\n</mat-toolbar>\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  @if (model.resourceType) {\n  <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\n  <br />\n  }\n  <ng-container [formGroup]=\"form\">\n    <div class=\"row gap\">\n      <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n        @if (form.controls.name.hasError('duplicate')) {\n        <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </div>\n    @if (icon) {\n    <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\n    }\n  </ng-container>\n  <!--arguments-->\n  @if (arguments) {\n  <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n  }\n  <!--edit template-->\n  <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\n  <!--options-->\n  @if (options) {\n  <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n  }\n  <!--privileges-->\n  @if (form.controls.privileges) {\n  <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\n  }\n</form>\n}\n}\n<!--add-->\n@case ('add') {\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  <!--arguments-->\n  @if (arguments) {\n  <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n  }\n  <!--add template-->\n  <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\n  @if (options) {\n  <!--options-->\n  <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n  }\n  <!-- continue-->\n  <div class=\"row actions\">\n    <span class=\"divider\"></span>\n    <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\n  </div>\n</form>\n  }\n}\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33691 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save", onContinue: "continue" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\n<!--widget mode -->\n@case ('widget') {\n<!--icon -->\n  @if (model.familyKey) {\n    @if (SVG[model.familyKey]) {\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\n    }\n    @else {\n<div>{{model.family}}</div>\n    }\n  }\n<!--options-->\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n<!--designer widget-->\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\n}\n@case ('edit') {\n<!--edit / custom mode -->\n@if (context?.active) {\n<mat-toolbar class=\"row\">\n  @if(context.mode === 'add') {\n  <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\n  <span class=\"divider\"></span>\n  <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">close</mat-icon></button>\n  }\n  @else {\n  <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_backspace</mat-icon></button>\n  }\n</mat-toolbar>\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n  <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\n</form>\n}\n@else {\n<!--edit mode -->\n<mat-toolbar bizdoc-sticky>\n  <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\n</mat-toolbar>\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  @if (model.resourceType) {\n  <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\n  <br />\n  }\n  <ng-container [formGroup]=\"form\">\n    <div class=\"row gap\">\n      <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n        @if (form.controls.name.hasError('duplicate')) {\n        <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </div>\n    @if (icon) {\n    <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\n    }\n  </ng-container>\n  <!--arguments-->\n  @if (arguments) {\n  <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n  }\n  <!--edit template-->\n  <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\n  <!--options-->\n  @if (options) {\n  <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n  }\n  <!--privileges-->\n  @if (form.controls.privileges) {\n  <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\n  }\n</form>\n}\n}\n<!--add-->\n@case ('add') {\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\n  <!--arguments-->\n  @if (arguments) {\n  <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n  }\n  <!--add template-->\n  <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\n  @if (options) {\n  <!--options-->\n  <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\n  }\n  <!-- continue-->\n  <div class=\"row actions\">\n    <span class=\"divider\"></span>\n    <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\n  </div>\n</form>\n  }\n}\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33689 33692 | 
             
            }
         | 
| 33690 33693 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DesignerItemComponent, decorators: [{
         | 
| 33691 33694 | 
             
                        type: Component,
         | 
| @@ -33704,6 +33707,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor | |
| 33704 33707 | 
             
                        }], onSave: [{
         | 
| 33705 33708 | 
             
                            type: Output,
         | 
| 33706 33709 | 
             
                            args: ['save']
         | 
| 33710 | 
            +
                        }], onContinue: [{
         | 
| 33711 | 
            +
                            type: Output,
         | 
| 33712 | 
            +
                            args: ['continue']
         | 
| 33707 33713 | 
             
                        }], editContent: [{
         | 
| 33708 33714 | 
             
                            type: ContentChild,
         | 
| 33709 33715 | 
             
                            args: [EditContentDirective]
         | 
| @@ -33879,7 +33885,7 @@ class ActionDesignerComponent extends DesignerTypeElementComponent { | |
| 33879 33885 | 
             
                    super.ngOnInit();
         | 
| 33880 33886 | 
             
                }
         | 
| 33881 33887 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ActionDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 33882 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ActionDesignerComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <div>\r\n        <mat-checkbox formControlName=\"multiple\">{{'EnableMultipleSelection'|translate}}</mat-checkbox>\r\n      </div>\r\n      <h2 class=\"mat-h2\">{{'Labels'|translate}}</h2>\r\n      <bizdoc-localized-string formControlName=\"past\" [placeholder]=\"Past\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"verb\" [placeholder]=\"Verb\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"adjective\" [placeholder]=\"Adjective\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"adjectivePlural\" [placeholder]=\"AdjectivePlural\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"you\" [placeholder]=\"You\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <div>\r\n        <bizdoc-color-picker formControlName=\"color\" [label]=\"'Color'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n      </div>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: ColorPicker, selector: "bizdoc-color-picker", inputs: ["label", "value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33888 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ActionDesignerComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <div>\r\n        <mat-checkbox formControlName=\"multiple\">{{'EnableMultipleSelection'|translate}}</mat-checkbox>\r\n      </div>\r\n      <h2 class=\"mat-h2\">{{'Labels'|translate}}</h2>\r\n      <bizdoc-localized-string formControlName=\"past\" [placeholder]=\"Past\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"verb\" [placeholder]=\"Verb\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"adjective\" [placeholder]=\"Adjective\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"adjectivePlural\" [placeholder]=\"AdjectivePlural\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"you\" [placeholder]=\"You\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <div>\r\n        <bizdoc-color-picker formControlName=\"color\" [label]=\"'Color'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n      </div>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: ColorPicker, selector: "bizdoc-color-picker", inputs: ["label", "value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33883 33889 | 
             
            }
         | 
| 33884 33890 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ActionDesignerComponent, decorators: [{
         | 
| 33885 33891 | 
             
                        type: Component,
         | 
| @@ -33904,7 +33910,7 @@ class AttributeDesignComponent extends DesignerTypeElementComponent { | |
| 33904 33910 | 
             
                    this._ref.model.title = dataType.title;
         | 
| 33905 33911 | 
             
                }
         | 
| 33906 33912 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AttributeDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 33907 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: AttributeDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select required formControlName=\"dataType\">\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocAddContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select required formControlName=\"dataType\">\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: AddContentDirective, selector: "[bizdocAddContent]" }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33913 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: AttributeDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select required formControlName=\"dataType\">\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocAddContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select required formControlName=\"dataType\">\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: AddContentDirective, selector: "[bizdocAddContent]" }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 33908 33914 | 
             
            }
         | 
| 33909 33915 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AttributeDesignComponent, decorators: [{
         | 
| 33910 33916 | 
             
                        type: Component,
         | 
| @@ -33922,7 +33928,7 @@ class ControlDesignComponent extends DesignerTypeElementComponent { | |
| 33922 33928 | 
             
                    super.ngOnInit();
         | 
| 33923 33929 | 
             
                }
         | 
| 33924 33930 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ControlDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 33925 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ControlDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <mat-checkbox formControlName=\"visible\">{{'Visible'}}</mat-checkbox>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 33931 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ControlDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <mat-checkbox formControlName=\"visible\">{{'Visible'}}</mat-checkbox>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 33926 33932 | 
             
            }
         | 
| 33927 33933 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ControlDesignComponent, decorators: [{
         | 
| 33928 33934 | 
             
                        type: Component,
         | 
| @@ -33989,6 +33995,9 @@ class CubeDesignComponent extends DesignerTypeElementComponent { | |
| 33989 33995 | 
             
                    setTimeout(() => {
         | 
| 33990 33996 | 
             
                    }, ms + 600000);
         | 
| 33991 33997 | 
             
                }
         | 
| 33998 | 
            +
                onContinue() {
         | 
| 33999 | 
            +
                    this._form();
         | 
| 34000 | 
            +
                }
         | 
| 33992 34001 | 
             
                _form() {
         | 
| 33993 34002 | 
             
                    this.typegroups = super._typegroups;
         | 
| 33994 34003 | 
             
                    this.guides = this._ref.designer.guides;
         | 
| @@ -34061,9 +34070,14 @@ class CubeDesignComponent extends DesignerTypeElementComponent { | |
| 34061 34070 | 
             
                        switch (v) {
         | 
| 34062 34071 | 
             
                            case 'Spreadsheet':
         | 
| 34063 34072 | 
             
                            case 'Grid':
         | 
| 34064 | 
            -
                            case 'Pivot':
         | 
| 34065 | 
            -
             | 
| 34073 | 
            +
                            case 'Pivot': // deprecated
         | 
| 34074 | 
            +
                            case 'PivotGrid':
         | 
| 34066 34075 | 
             
                                chartType.disable({ emitEvent: false });
         | 
| 34076 | 
            +
                                series.addValidators(Validators.required);
         | 
| 34077 | 
            +
                                break;
         | 
| 34078 | 
            +
                            case 'PivotChart':
         | 
| 34079 | 
            +
                                chartType.enable({ emitEvent: false });
         | 
| 34080 | 
            +
                                series.addValidators(Validators.required);
         | 
| 34067 34081 | 
             
                                break;
         | 
| 34068 34082 | 
             
                            default:
         | 
| 34069 34083 | 
             
                                series.clearValidators();
         | 
| @@ -34126,11 +34140,11 @@ class CubeDesignComponent extends DesignerTypeElementComponent { | |
| 34126 34140 | 
             
                    });
         | 
| 34127 34141 | 
             
                }
         | 
| 34128 34142 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CubeDesignComponent, deps: [{ token: i1$2.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34129 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n    <dl>\n      @if (jobInfo.lastExecution) {\n      <dt>{{'LastExecution'|translate}}</dt>\n      <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.nextExecution) {\n      <dt>{{'NextExecution'|translate}}</dt>\n      <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.lastJobState) {\n      <dt>{{'LastJobState'|translate}}</dt>\n      <dd>\n        @if (jobInfo.error) {\n        <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n        }\n        <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n      </dd>\n      }\n    </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\n        <span> {{'Synchronize'|translate}}</span>\n      </button>\n       \n      @if (syncing) {\n      <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n    <div class=\"row\">\n      @if(model.axes?.length)\n      {\n      <mat-chip-set>\n        @for(axis of model.axes; track axis){\n        <mat-chip>{{axis.title}}</mat-chip>\n        }\n        @for(index of model.indices || []; track index){\n        <mat-chip>{{index.title}}</mat-chip>\n        }\n      </mat-chip-set>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-label>{{'SecurityLevel'|translate}}</mat-label>\n      <mat-radio-group formControlName=\"scope\">\n        <p></p>\n        <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\n        <p>{{'SecurityGlobalHelp'|translate}}</p>\n        <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\n        <p>{{'SecurityPositionsHelp'|translate}}</p>\n        <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\n        <p>{{'SecurityPatternsHelp'|translate}}</p>\n      </mat-radio-group>\n      <ng-container formGroupName=\"yAxis\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Type'|translate}}</mat-label>\n          <mat-select formControlName=\"type\">\n            <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n            <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n            <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      <mat-form-field>\n        <mat-label>{{'Currency'|translate}}</mat-label>\n        <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\n          @for (c of currencies; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <!--Axes-->\n      <h2 class=\"mat-h2 row\">\n        {{'Axes'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\n        @for (a of axes.controls; track a; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{a.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Indices-->\n      <h2 class=\"mat-h2 row\">\n        {{'Indices'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\n        @for (i of indices.controls; track i; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{i.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      @if (indices.controls.length) {\n      <mat-form-field>\n        <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\n        <mat-select formControlName=\"anomaly\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\n          <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      }\n      <!--Patterns-->\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{p.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Views-->\n      <h2 class=\"row mat-h2\">\n        {{'CubeViews'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\n        @for (v of views.controls; track v; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{v.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-form-field>\n        <mat-label>{{'Schedule'|translate}}</mat-label>\n        <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\n        <mat-icon matSuffix>timer</mat-icon>\n        <mat-hint></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!--idx-->\n  <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!-- pattern-->\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n  <!-- view -->\n  <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Type'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\n          <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\n          <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\n          <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'XAxis'|translate}}</mat-label>\n        <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n        @if (form.controls.xAxis.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Series'|translate}}</mat-label>\n        <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\n          }\n          }\n        </mat-select>\n        @if (form.controls.series.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Indices'|translate}}</mat-label>\n        <mat-select formControlName=\"indices\" multiple>\n          @for (i of indices.controls; track i) {\n          <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'ChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"chartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\n          <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\n          <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\n          <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\n          <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"indicesChartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      @if (cube) {\n      <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n      }\n    </ng-container>\n  </ng-template>\n  <!-- Axis -->\n  <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row gap\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of typegroups['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of typegroups|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\n      <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\n      <mat-form-field>\n        <mat-label>{{'SelectionMode'|translate}}</mat-label>\n        <mat-select formControlName=\"selectionMode\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option>{{'OneMode'|translate}}</mat-option>\n          <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\n          <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\n          <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DescendentOf'|translate}}</mat-label>\n        <mat-select formControlName=\"descendentOf\">\n          @for (a of axes.controls; track a) {\n          @if (a!=form) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34143 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n    <dl>\n      @if (jobInfo.lastExecution) {\n      <dt>{{'LastExecution'|translate}}</dt>\n      <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.nextExecution) {\n      <dt>{{'NextExecution'|translate}}</dt>\n      <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.lastJobState) {\n      <dt>{{'LastJobState'|translate}}</dt>\n      <dd>\n        @if (jobInfo.error) {\n        <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n        }\n        <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n      </dd>\n      }\n    </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\n        <span> {{'Synchronize'|translate}}</span>\n      </button>\n       \n      @if (syncing) {\n      <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n    <div class=\"row\">\n      @if(model.axes?.length)\n      {\n      <mat-chip-set>\n        @for(axis of model.axes; track axis){\n        <mat-chip>{{axis.title}}</mat-chip>\n        }\n        @for(index of model.indices || []; track index){\n        <mat-chip>{{index.title}}</mat-chip>\n        }\n      </mat-chip-set>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-label>{{'SecurityLevel'|translate}}</mat-label>\n      <mat-radio-group formControlName=\"scope\">\n        <p></p>\n        <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\n        <p>{{'SecurityGlobalHelp'|translate}}</p>\n        <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\n        <p>{{'SecurityPositionsHelp'|translate}}</p>\n        <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\n        <p>{{'SecurityPatternsHelp'|translate}}</p>\n      </mat-radio-group>\n      <ng-container formGroupName=\"yAxis\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Type'|translate}}</mat-label>\n          <mat-select formControlName=\"type\">\n            <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n            <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n            <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      <mat-form-field>\n        <mat-label>{{'Currency'|translate}}</mat-label>\n        <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\n          @for (c of currencies; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <!--Axes-->\n      <h2 class=\"mat-h2 row\">\n        {{'Axes'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\n        @for (a of axes.controls; track a; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{a.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Indices-->\n      <h2 class=\"mat-h2 row\">\n        {{'Indices'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\n        @for (i of indices.controls; track i; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{i.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      @if (indices.controls.length) {\n      <mat-form-field>\n        <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\n        <mat-select formControlName=\"anomaly\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\n          <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      }\n      <!--Patterns-->\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{p.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Views-->\n      <h2 class=\"row mat-h2\">\n        {{'CubeViews'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\n        @for (v of views.controls; track v; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{v.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-form-field>\n        <mat-label>{{'Schedule'|translate}}</mat-label>\n        <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\n        <mat-icon matSuffix>timer</mat-icon>\n        <mat-hint></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!--idx-->\n  <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!-- pattern-->\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n  <!-- view -->\n  <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Type'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\n          <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\n          <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\n          <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\n          <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'XAxis'|translate}}</mat-label>\n        <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n        @if (form.controls.xAxis.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Series'|translate}}</mat-label>\n        <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\n          }\n          }\n        </mat-select>\n        @if (form.controls.series.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Indices'|translate}}</mat-label>\n        <mat-select formControlName=\"indices\" multiple>\n          @for (i of indices.controls; track i) {\n          <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'ChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"chartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\n          <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\n          <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\n          <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\n          <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"indicesChartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      @if (cube) {\n      <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n      }\n    </ng-container>\n  </ng-template>\n  <!-- Axis -->\n  <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row gap\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of typegroups['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of typegroups|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\n      <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\n      <mat-form-field>\n        <mat-label>{{'SelectionMode'|translate}}</mat-label>\n        <mat-select formControlName=\"selectionMode\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option>{{'OneMode'|translate}}</mat-option>\n          <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\n          <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\n          <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DescendentOf'|translate}}</mat-label>\n        <mat-select formControlName=\"descendentOf\">\n          @for (a of axes.controls; track a) {\n          @if (a!=form) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34130 34144 | 
             
            }
         | 
| 34131 34145 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CubeDesignComponent, decorators: [{
         | 
| 34132 34146 | 
             
                        type: Component,
         | 
| 34133 | 
            -
                        args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n    <dl>\n      @if (jobInfo.lastExecution) {\n      <dt>{{'LastExecution'|translate}}</dt>\n      <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.nextExecution) {\n      <dt>{{'NextExecution'|translate}}</dt>\n      <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.lastJobState) {\n      <dt>{{'LastJobState'|translate}}</dt>\n      <dd>\n        @if (jobInfo.error) {\n        <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n        }\n        <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n      </dd>\n      }\n    </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\n        <span> {{'Synchronize'|translate}}</span>\n      </button>\n       \n      @if (syncing) {\n      <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n    <div class=\"row\">\n      @if(model.axes?.length)\n      {\n      <mat-chip-set>\n        @for(axis of model.axes; track axis){\n        <mat-chip>{{axis.title}}</mat-chip>\n        }\n        @for(index of model.indices || []; track index){\n        <mat-chip>{{index.title}}</mat-chip>\n        }\n      </mat-chip-set>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-label>{{'SecurityLevel'|translate}}</mat-label>\n      <mat-radio-group formControlName=\"scope\">\n        <p></p>\n        <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\n        <p>{{'SecurityGlobalHelp'|translate}}</p>\n        <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\n        <p>{{'SecurityPositionsHelp'|translate}}</p>\n        <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\n        <p>{{'SecurityPatternsHelp'|translate}}</p>\n      </mat-radio-group>\n      <ng-container formGroupName=\"yAxis\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Type'|translate}}</mat-label>\n          <mat-select formControlName=\"type\">\n            <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n            <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n            <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      <mat-form-field>\n        <mat-label>{{'Currency'|translate}}</mat-label>\n        <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\n          @for (c of currencies; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <!--Axes-->\n      <h2 class=\"mat-h2 row\">\n        {{'Axes'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\n        @for (a of axes.controls; track a; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{a.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Indices-->\n      <h2 class=\"mat-h2 row\">\n        {{'Indices'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\n        @for (i of indices.controls; track i; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{i.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      @if (indices.controls.length) {\n      <mat-form-field>\n        <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\n        <mat-select formControlName=\"anomaly\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\n          <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      }\n      <!--Patterns-->\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{p.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Views-->\n      <h2 class=\"row mat-h2\">\n        {{'CubeViews'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\n        @for (v of views.controls; track v; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{v.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-form-field>\n        <mat-label>{{'Schedule'|translate}}</mat-label>\n        <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\n        <mat-icon matSuffix>timer</mat-icon>\n        <mat-hint></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!--idx-->\n  <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!-- pattern-->\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n  <!-- view -->\n  <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Type'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\n          <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\n          <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\n          <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'XAxis'|translate}}</mat-label>\n        <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n        @if (form.controls.xAxis.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Series'|translate}}</mat-label>\n        <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\n          }\n          }\n        </mat-select>\n        @if (form.controls.series.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Indices'|translate}}</mat-label>\n        <mat-select formControlName=\"indices\" multiple>\n          @for (i of indices.controls; track i) {\n          <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'ChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"chartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\n          <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\n          <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\n          <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\n          <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"indicesChartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      @if (cube) {\n      <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n      }\n    </ng-container>\n  </ng-template>\n  <!-- Axis -->\n  <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row gap\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of typegroups['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of typegroups|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\n      <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\n      <mat-form-field>\n        <mat-label>{{'SelectionMode'|translate}}</mat-label>\n        <mat-select formControlName=\"selectionMode\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option>{{'OneMode'|translate}}</mat-option>\n          <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\n          <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\n          <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DescendentOf'|translate}}</mat-label>\n        <mat-select formControlName=\"descendentOf\">\n          @for (a of axes.controls; track a) {\n          @if (a!=form) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"] }]
         | 
| 34147 | 
            +
                        args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n    <dl>\n      @if (jobInfo.lastExecution) {\n      <dt>{{'LastExecution'|translate}}</dt>\n      <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.nextExecution) {\n      <dt>{{'NextExecution'|translate}}</dt>\n      <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n      }\n      @if (jobInfo.lastJobState) {\n      <dt>{{'LastJobState'|translate}}</dt>\n      <dd>\n        @if (jobInfo.error) {\n        <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n        }\n        <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n      </dd>\n      }\n    </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\n        <span> {{'Synchronize'|translate}}</span>\n      </button>\n       \n      @if (syncing) {\n      <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n    <div class=\"row\">\n      @if(model.axes?.length)\n      {\n      <mat-chip-set>\n        @for(axis of model.axes; track axis){\n        <mat-chip>{{axis.title}}</mat-chip>\n        }\n        @for(index of model.indices || []; track index){\n        <mat-chip>{{index.title}}</mat-chip>\n        }\n      </mat-chip-set>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-label>{{'SecurityLevel'|translate}}</mat-label>\n      <mat-radio-group formControlName=\"scope\">\n        <p></p>\n        <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\n        <p>{{'SecurityGlobalHelp'|translate}}</p>\n        <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\n        <p>{{'SecurityPositionsHelp'|translate}}</p>\n        <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\n        <p>{{'SecurityPatternsHelp'|translate}}</p>\n      </mat-radio-group>\n      <ng-container formGroupName=\"yAxis\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Type'|translate}}</mat-label>\n          <mat-select formControlName=\"type\">\n            <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\n            <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\n            <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      <mat-form-field>\n        <mat-label>{{'Currency'|translate}}</mat-label>\n        <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\n          @for (c of currencies; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <!--Axes-->\n      <h2 class=\"mat-h2 row\">\n        {{'Axes'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\n        @for (a of axes.controls; track a; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{a.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Indices-->\n      <h2 class=\"mat-h2 row\">\n        {{'Indices'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\n        @for (i of indices.controls; track i; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{i.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      @if (indices.controls.length) {\n      <mat-form-field>\n        <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\n        <mat-select formControlName=\"anomaly\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\n          <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      }\n      <!--Patterns-->\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{p.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <!--Views-->\n      <h2 class=\"row mat-h2\">\n        {{'CubeViews'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\n        @for (v of views.controls; track v; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\">\n            {{v.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-form-field>\n        <mat-label>{{'Schedule'|translate}}</mat-label>\n        <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\n        <mat-icon matSuffix>timer</mat-icon>\n        <mat-hint></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!--idx-->\n  <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <!-- pattern-->\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n  <!-- view -->\n  <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Type'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\n          <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\n          <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\n          <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\n          <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'XAxis'|translate}}</mat-label>\n        <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n        @if (form.controls.xAxis.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Series'|translate}}</mat-label>\n        <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n          @for (a of axes.controls; track a) {\n          @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\n          }\n          }\n        </mat-select>\n        @if (form.controls.series.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Indices'|translate}}</mat-label>\n        <mat-select formControlName=\"indices\" multiple>\n          @for (i of indices.controls; track i) {\n          <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'ChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"chartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\n          <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\n          <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\n          <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\n          <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n        <mat-select formControlName=\"indicesChartType\">\n          @switch (form.controls.type.value) {\n          @case ('Chart') {\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          }\n          @case ('Pivot') {\n          <mat-option>{{'None'|translate}}</mat-option>\n          <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n          <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\n          <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\n          <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n          <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\n          <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\n          <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n          <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\n          <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\n          <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\n          <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\n          <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\n          <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\n          <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\n          <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\n          <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\n          <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\n          <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\n          <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      @if (cube) {\n      <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n      }\n    </ng-container>\n  </ng-template>\n  <!-- Axis -->\n  <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row gap\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of typegroups['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of typegroups|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (form.controls.title.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\n      <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\n      <mat-form-field>\n        <mat-label>{{'SelectionMode'|translate}}</mat-label>\n        <mat-select formControlName=\"selectionMode\">\n          <mat-option value=\"None\">{{'None'|translate}}</mat-option>\n          <mat-option>{{'OneMode'|translate}}</mat-option>\n          <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\n          <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\n          <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DescendentOf'|translate}}</mat-label>\n        <mat-select formControlName=\"descendentOf\">\n          @for (a of axes.controls; track a) {\n          @if (a!=form) {\n          <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\n          }\n          }\n        </mat-select>\n      </mat-form-field>\n      <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"] }]
         | 
| 34134 34148 | 
             
                    }], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: SystemService }, { type: PromptService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
         | 
| 34135 34149 | 
             
                                type: Inject,
         | 
| 34136 34150 | 
             
                                args: [DesignerRef]
         | 
| @@ -34172,7 +34186,7 @@ class FolderDesignComponent extends DesignerTypeElementComponent { | |
| 34172 34186 | 
             
                    this.cube = this.cubes.find(c => c.name === evt.value);
         | 
| 34173 34187 | 
             
                }
         | 
| 34174 34188 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FolderDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34175 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      @if (cubes.length) {\n      <ng-container formGroupName=\"filters\">\n        <h2 class=\"mat-h2\">{{'Filters'|translate}}</h2>\n        @if (cubes.length>1) {\n        <mat-form-field>\n          <mat-label>{{'Cube'|translate}}</mat-label>\n          <mat-select formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n            <mat-option>{{'None'|translate}}</mat-option>\n            @for (c of cubes; track c) {\n            <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n            }\n          </mat-select>\n        </mat-form-field>\n        }\n        <mat-form-field>\n          <mat-label>{{'Axes'|translate}}</mat-label>\n          <mat-select formControlName=\"axes\" multiple>\n            @for (a of cube?.axes; track a) {\n            <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n            }\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      }\n      <h2 class=\"mat-h2 row\">\n        {{'Columns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(columns, newColumn(), 'Column', 'column')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"columns\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, columns)\">\n        @for (c of columns.controls; track c; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"c\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\" width=\"99%\">\n            {{c.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n            <button mat-icon-button (click)=\"edit(c, 'Column', 'column')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"columns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <!--column -->\n  <ng-template bizdocCustomContent=\"column\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required [matAutocomplete]=\"names\" />\n        <mat-autocomplete #names=\"matAutocomplete\" (optionSelected)=\"form.controls.title.setValue($event.option.getLabel())\">\n          <mat-option value=\"number\">{{'Number'|translate}}</mat-option>\n          <mat-option value=\"subject\">{{'Subject'|translate}}</mat-option>\n          <mat-option value=\"value\">{{'Value'|translate}}</mat-option>\n          <mat-option value=\"owner\">{{'Owner'|translate}}</mat-option>\n          <mat-option value=\"sender\">{{'Sender'|translate}}</mat-option>\n          <mat-option value=\"received\">{{'Received'|translate}}</mat-option>\n          <mat-option value=\"receivedAgo\">{{'ReceivedAgo'|translate}}</mat-option>\n          <mat-option value=\"replied\">{{'Replied'|translate}}</mat-option>\n          <mat-option value=\"state\">{{'State'|translate}}</mat-option>\n          <mat-option value=\"issued\">{{'Issued'|translate}}</mat-option>\n          <mat-option value=\"issuedAgo\">{{'IssuedAgo'|translate}}</mat-option>\n        </mat-autocomplete>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          @for (c of controls; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34189 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      @if (cubes.length) {\n      <ng-container formGroupName=\"filters\">\n        <h2 class=\"mat-h2\">{{'Filters'|translate}}</h2>\n        @if (cubes.length>1) {\n        <mat-form-field>\n          <mat-label>{{'Cube'|translate}}</mat-label>\n          <mat-select formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\n            <mat-option>{{'None'|translate}}</mat-option>\n            @for (c of cubes; track c) {\n            <mat-option [value]=\"c.name\">{{c.title|localizedString}}</mat-option>\n            }\n          </mat-select>\n        </mat-form-field>\n        }\n        <mat-form-field>\n          <mat-label>{{'Axes'|translate}}</mat-label>\n          <mat-select formControlName=\"axes\" multiple>\n            @for (a of cube?.axes; track a) {\n            <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n            }\n          </mat-select>\n        </mat-form-field>\n      </ng-container>\n      }\n      <h2 class=\"mat-h2 row\">\n        {{'Columns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(columns, newColumn(), 'Column', 'column')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"columns\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, columns)\">\n        @for (c of columns.controls; track c; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"c\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\" width=\"99%\">\n            {{c.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n            <button mat-icon-button (click)=\"edit(c, 'Column', 'column')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"columns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <!--column -->\n  <ng-template bizdocCustomContent=\"column\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" required />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required [matAutocomplete]=\"names\" />\n        <mat-autocomplete #names=\"matAutocomplete\" (optionSelected)=\"form.controls.title.setValue($event.option.getLabel())\">\n          <mat-option value=\"number\">{{'Number'|translate}}</mat-option>\n          <mat-option value=\"subject\">{{'Subject'|translate}}</mat-option>\n          <mat-option value=\"value\">{{'Value'|translate}}</mat-option>\n          <mat-option value=\"owner\">{{'Owner'|translate}}</mat-option>\n          <mat-option value=\"sender\">{{'Sender'|translate}}</mat-option>\n          <mat-option value=\"received\">{{'Received'|translate}}</mat-option>\n          <mat-option value=\"receivedAgo\">{{'ReceivedAgo'|translate}}</mat-option>\n          <mat-option value=\"replied\">{{'Replied'|translate}}</mat-option>\n          <mat-option value=\"state\">{{'State'|translate}}</mat-option>\n          <mat-option value=\"issued\">{{'Issued'|translate}}</mat-option>\n          <mat-option value=\"issuedAgo\">{{'IssuedAgo'|translate}}</mat-option>\n        </mat-autocomplete>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"type\">\n          @for (c of controls; track c) {\n          <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34176 34190 | 
             
            }
         | 
| 34177 34191 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FolderDesignComponent, decorators: [{
         | 
| 34178 34192 | 
             
                        type: Component,
         | 
| @@ -34400,7 +34414,7 @@ class FormDesignComponent extends DesignerTypeElementComponent { | |
| 34400 34414 | 
             
                    this._destroy.complete();
         | 
| 34401 34415 | 
             
                }
         | 
| 34402 34416 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1$2.FormBuilder }, { token: PanesRouter }, { token: SystemService }, { token: SessionService }, { token: i0.Injector }, { token: TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34403 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n  <ng-template bizdocContent>\n    @if (usage) {\n    <ejs-sparkline width='250px' height='200px'\n                   type=\"Line\"\n                   [id]=\"model.name\"\n                   [fill]=\"primary\"\n                   [dataSource]=\"usage\"\n                   xName=\"date\"\n                   yName=\"count\"\n                   lineWidth=\"2\"\n                   valueType=\"DateTime\"\n                   [locale]=\"locale\"\n                   [markerSettings]=\"markerSettings\"\n                   [tooltipSettings]=\"tooltipSettings\"\n                   (tooltipInitialize)=\"tooltipInitialize($event)\"\n                   [enableRtl]=\"enableRtl\">\n    </ejs-sparkline>\n    }\n    <div class=\"row\">\n      <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n      <span class=\"divider\"></span>\n      <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n      <mat-menu #options>\n        <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n      </mat-menu>\n    </div>\n  </ng-template>\n  <!--edit-->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row flex\" [formGroup]=\"format\">\n        <mat-form-field>\n          <mat-label>{{'Prefix'|translate}}</mat-label>\n          <input matInput formControlName=\"prefix\" />\n        </mat-form-field>\n         \n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Digits'|translate}}</mat-label>\n          <input matInput formControlName=\"digits\" maxlength=\"2\" />\n        </mat-form-field>\n         \n        <mat-form-field>\n          <mat-label>{{'Suffix'|translate}}</mat-label>\n          <input matInput formControlName=\"suffix\" />\n        </mat-form-field>\n      </div>\n      <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n      <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n      @if (guides.length) {\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      }\n      @if (cubes.length) {\n      <mat-form-field>\n        <mat-label>{{'Cube'|translate}}</mat-label>\n        <mat-select formControlName=\"cubes\" multiple>\n          @for (c of cubes; track c) {\n          <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n        <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n      </mat-form-field>\n      }\n      <!--Rules-->\n      <h2 class=\"mat-h2 row\">\n        {{'Rules'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n        @for (r of rules.controls; track r; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\" width=\"99%\">\n            {{r.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n            <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n         \n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i7$4.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34417 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\" [context]=\"context\">\n  <ng-template bizdocContent>\n    @if (usage) {\n    <ejs-sparkline width='250px' height='200px'\n                   type=\"Line\"\n                   [id]=\"model.name\"\n                   [fill]=\"primary\"\n                   [dataSource]=\"usage\"\n                   xName=\"date\"\n                   yName=\"count\"\n                   lineWidth=\"2\"\n                   valueType=\"DateTime\"\n                   [locale]=\"locale\"\n                   [markerSettings]=\"markerSettings\"\n                   [tooltipSettings]=\"tooltipSettings\"\n                   (tooltipInitialize)=\"tooltipInitialize($event)\"\n                   [enableRtl]=\"enableRtl\">\n    </ejs-sparkline>\n    }\n    <div class=\"row\">\n      <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\n      <span class=\"divider\"></span>\n      <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n      <mat-menu #options>\n        <button mat-menu-item (click)=\"invite()\">{{'Invite'|l18n}}</button>\n      </mat-menu>\n    </div>\n  </ng-template>\n  <!--edit-->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row flex\" [formGroup]=\"format\">\n        <mat-form-field>\n          <mat-label>{{'Prefix'|translate}}</mat-label>\n          <input matInput formControlName=\"prefix\" />\n        </mat-form-field>\n         \n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Digits'|translate}}</mat-label>\n          <input matInput formControlName=\"digits\" maxlength=\"2\" />\n        </mat-form-field>\n         \n        <mat-form-field>\n          <mat-label>{{'Suffix'|translate}}</mat-label>\n          <input matInput formControlName=\"suffix\" />\n        </mat-form-field>\n      </div>\n      <bizdoc-localized-string formControlName=\"group\" [placeholder]=\"'Group'|translate\"></bizdoc-localized-string>\n      <bizdoc-localized-string formControlName=\"description\" [placeholder]=\"'Description'|translate\"></bizdoc-localized-string>\n      @if (guides.length) {\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n      }\n      @if (cubes.length) {\n      <mat-form-field>\n        <mat-label>{{'Cube'|translate}}</mat-label>\n        <mat-select formControlName=\"cubes\" multiple>\n          @for (c of cubes; track c) {\n          <mat-option [value]=\"c.name\">{{c.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n        <mat-hint>{{'FormCubeHelp'|translate}}</mat-hint>\n      </mat-form-field>\n      }\n      <!--Rules-->\n      <h2 class=\"mat-h2 row\">\n        {{'Rules'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(rules, newRule(), 'Rule', 'rule')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"rules\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, rules)\">\n        @for (r of rules.controls; track r; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"r\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell flex\" width=\"99%\">\n            {{r.controls.title.value}}\n          </td>\n          <td class=\"mat-mdc-cell\" style=\"white-space: pre;\">\n            <button mat-icon-button (click)=\"edit(r, 'Rule', 'rule')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"rules.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"rule\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <div class=\"row\">\n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Title'|translate}}</mat-label>\n          <input matInput formControlName=\"title\" required />\n          @if (form.controls.title.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n         \n        <mat-form-field class=\"flex\">\n          <mat-label>{{'Name'|translate}}</mat-label>\n          <input matInput formControlName=\"name\" required />\n          @if (form.controls.name.hasError('required')) {\n          <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n          }\n        </mat-form-field>\n      </div>\n      <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i7$4.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34404 34418 | 
             
            }
         | 
| 34405 34419 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormDesignComponent, decorators: [{
         | 
| 34406 34420 | 
             
                        type: Component,
         | 
| @@ -34441,7 +34455,7 @@ class GuideDesignComponent extends DesignerTypeElementComponent { | |
| 34441 34455 | 
             
                    });
         | 
| 34442 34456 | 
             
                }
         | 
| 34443 34457 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: GuideDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34444 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: GuideDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\"\n                         [context]=\"context\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <h2 class=\"mat-h2 row\">\n        {{'Steps'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(steps, newStep(), 'Step', stepform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"steps\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, steps)\">\n        @for (s of steps.controls; track s; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{s.controls.title.value || s.controls.content.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(s, 'Step', 'step')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"steps.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"step\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Content'|translate}}</mat-label>\n        <input matInput formControlName=\"content\" required />\n        @if (form.controls.content.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Content'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Selector'|translate}}</mat-label>\n        <input matInput formControlName=\"selector\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Position'|translate}}</mat-label>\n        <mat-select formControlName=\"position\">\n          <mat-option value=\"Above\">{{'Above'|translate}}</mat-option>\n          <mat-option value=\"Start\">{{'Start'|translate}}</mat-option>\n          <mat-option value=\"End\">{{'End'|translate}}</mat-option>\n          <mat-option value=\"Below\">{{'Below'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-checkbox formControlName=\"execute\">{{'Execute'|translate}}</mat-checkbox>\n      <!--privileges-->\n      <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34458 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: GuideDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\"\n                         [context]=\"context\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <h2 class=\"mat-h2 row\">\n        {{'Steps'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(steps, newStep(), 'Step', stepform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"steps\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, steps)\">\n        @for (s of steps.controls; track s; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"s\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{s.controls.title.value || s.controls.content.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(s, 'Step', 'step')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"steps.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"step\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Content'|translate}}</mat-label>\n        <input matInput formControlName=\"content\" required />\n        @if (form.controls.content.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Content'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Selector'|translate}}</mat-label>\n        <input matInput formControlName=\"selector\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Position'|translate}}</mat-label>\n        <mat-select formControlName=\"position\">\n          <mat-option value=\"Above\">{{'Above'|translate}}</mat-option>\n          <mat-option value=\"Start\">{{'Start'|translate}}</mat-option>\n          <mat-option value=\"End\">{{'End'|translate}}</mat-option>\n          <mat-option value=\"Below\">{{'Below'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-checkbox formControlName=\"execute\">{{'Execute'|translate}}</mat-checkbox>\n      <!--privileges-->\n      <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34445 34459 | 
             
            }
         | 
| 34446 34460 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: GuideDesignComponent, decorators: [{
         | 
| 34447 34461 | 
             
                        type: Component,
         | 
| @@ -34454,7 +34468,7 @@ class NodeDesignerComponent extends DesignerTypeElementComponent { | |
| 34454 34468 | 
             
                    this.form = this._fb.group({});
         | 
| 34455 34469 | 
             
                }
         | 
| 34456 34470 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NodeDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34457 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: NodeDesignerComponent, selector: "bizdoc-node-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 34471 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: NodeDesignerComponent, selector: "bizdoc-node-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 34458 34472 | 
             
            }
         | 
| 34459 34473 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NodeDesignerComponent, decorators: [{
         | 
| 34460 34474 | 
             
                        type: Component,
         | 
| @@ -34467,7 +34481,7 @@ class PolicyDesignComponent extends DesignerTypeElementComponent { | |
| 34467 34481 | 
             
                    this.form = this._fb.group({});
         | 
| 34468 34482 | 
             
                }
         | 
| 34469 34483 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PolicyDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34470 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: PolicyDesignComponent, selector: "bizdoc-policy-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 34484 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: PolicyDesignComponent, selector: "bizdoc-policy-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 34471 34485 | 
             
            }
         | 
| 34472 34486 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PolicyDesignComponent, decorators: [{
         | 
| 34473 34487 | 
             
                        type: Component,
         | 
| @@ -34487,7 +34501,7 @@ class ReportDesignerComponent extends DesignerTypeElementComponent { | |
| 34487 34501 | 
             
                    super.ngOnInit();
         | 
| 34488 34502 | 
             
                }
         | 
| 34489 34503 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReportDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34490 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: ReportDesignerComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34504 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: ReportDesignerComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n          <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34491 34505 | 
             
            }
         | 
| 34492 34506 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReportDesignerComponent, decorators: [{
         | 
| 34493 34507 | 
             
                        type: Component,
         | 
| @@ -34516,7 +34530,7 @@ class RoleDesignComponent extends DesignerTypeElementComponent { | |
| 34516 34530 | 
             
                    this.form.controls.dataType.enable({ emitEvent: false });
         | 
| 34517 34531 | 
             
                }
         | 
| 34518 34532 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RoleDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34519 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: RoleDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (dataTypeDisabled) {\n        <mat-hint><a (click)=\"enableTypeEdit()\">{{'ChangeValue'|translate}}</a></mat-hint>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'SequencePolicy'|translate}}</mat-label>\n        <mat-select formControlName=\"sequencePolicy\">\n          <mat-option value=\"Higher\">{{'Higher'|translate}}</mat-option>\n          <mat-option value=\"Earlier\">{{'Earlier'|translate}}</mat-option>\n          <mat-option value=\"Strict\">{{'Strict'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Priority'|translate}}</mat-label>\n        <input matInput type=\"number\" formControlName=\"priority\" />\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34533 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: RoleDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'DataType'|translate}}</mat-label>\n        <mat-select formControlName=\"dataType\" required>\n          @for (t of datatypes['_'].elements|sort: 'title'; track t) {\n          <mat-option [value]=\"t.name\">\n            {{t.title}}\n          </mat-option>\n          }\n          @for (g of datatypes|sort: 'title'; track g) {\n          <mat-optgroup [label]=\"g.title\">\n            @for (t of g.elements|sort: 'title'; track t) {\n            <mat-option [value]=\"t.name\">\n              {{t.title}}\n            </mat-option>\n            }\n          </mat-optgroup>\n          }\n        </mat-select>\n        @if (dataTypeDisabled) {\n        <mat-hint><a (click)=\"enableTypeEdit()\">{{'ChangeValue'|translate}}</a></mat-hint>\n        }\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'SequencePolicy'|translate}}</mat-label>\n        <mat-select formControlName=\"sequencePolicy\">\n          <mat-option value=\"Higher\">{{'Higher'|translate}}</mat-option>\n          <mat-option value=\"Earlier\">{{'Earlier'|translate}}</mat-option>\n          <mat-option value=\"Strict\">{{'Strict'|translate}}</mat-option>\n        </mat-select>\n      </mat-form-field>\n      <mat-form-field>\n        <mat-label>{{'Priority'|translate}}</mat-label>\n        <input matInput type=\"number\" formControlName=\"priority\" />\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34520 34534 | 
             
            }
         | 
| 34521 34535 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RoleDesignComponent, decorators: [{
         | 
| 34522 34536 | 
             
                        type: Component,
         | 
| @@ -34529,7 +34543,7 @@ class RuleDesignComponent extends DesignerTypeElementComponent { | |
| 34529 34543 | 
             
                    this.form = this._fb.group({});
         | 
| 34530 34544 | 
             
                }
         | 
| 34531 34545 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RuleDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34532 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: RuleDesignComponent, selector: "bizdoc-rule-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 34546 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: RuleDesignComponent, selector: "bizdoc-rule-designer", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 34533 34547 | 
             
            }
         | 
| 34534 34548 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RuleDesignComponent, decorators: [{
         | 
| 34535 34549 | 
             
                        type: Component,
         | 
| @@ -34558,7 +34572,7 @@ class StateDesignComponent extends DesignerTypeElementComponent { | |
| 34558 34572 | 
             
                    super.ngOnInit();
         | 
| 34559 34573 | 
             
                }
         | 
| 34560 34574 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: StateDesignComponent, deps: [{ token: i1$2.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34561 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: StateDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <div class=\"row\">\r\n        <bizdoc-color-picker formControlName=\"color\" [label]=\"'Color'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n        <bizdoc-color-picker formControlName=\"backgroundColor\" [label]=\"'BackgroundColor'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n      </div>\r\n      <bizdoc-localized-string formControlName=\"past\" [placeholder]=\"'Past'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"future\" [placeholder]=\"'Future'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n      @if (variables.length) {\r\n      <h2 class=\"mat-h2 row\">\r\n        {{'Variables'|translate}}\r\n      </h2>\r\n      <ng-container formGroupName=\"options\">\r\n        @for (a of variables; track a) {\r\n          <mat-form-field>\r\n            <mat-label>{{a.title | localizedString}}</mat-label>\r\n            <bizdoc-select [type]=\"a.dataType\"/>\r\n          </mat-form-field>\r\n        }\r\n      </ng-container>\r\n      }\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "component", type: ColorPicker, selector: "bizdoc-color-picker", inputs: ["label", "value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34575 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: StateDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <div class=\"row\">\r\n        <bizdoc-color-picker formControlName=\"color\" [label]=\"'Color'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n        <bizdoc-color-picker formControlName=\"backgroundColor\" [label]=\"'BackgroundColor'|translate\" class=\"flex\"></bizdoc-color-picker>\r\n      </div>\r\n      <bizdoc-localized-string formControlName=\"past\" [placeholder]=\"'Past'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n      <bizdoc-localized-string formControlName=\"future\" [placeholder]=\"'Future'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n      @if (variables.length) {\r\n      <h2 class=\"mat-h2 row\">\r\n        {{'Variables'|translate}}\r\n      </h2>\r\n      <ng-container formGroupName=\"options\">\r\n        @for (a of variables; track a) {\r\n          <mat-form-field>\r\n            <mat-label>{{a.title | localizedString}}</mat-label>\r\n            <bizdoc-select [type]=\"a.dataType\"/>\r\n          </mat-form-field>\r\n        }\r\n      </ng-container>\r\n      }\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "component", type: ColorPicker, selector: "bizdoc-color-picker", inputs: ["label", "value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34562 34576 | 
             
            }
         | 
| 34563 34577 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: StateDesignComponent, decorators: [{
         | 
| 34564 34578 | 
             
                        type: Component,
         | 
| @@ -34619,7 +34633,7 @@ class TypeDesignComponent extends DesignerTypeElementComponent { | |
| 34619 34633 | 
             
                    });
         | 
| 34620 34634 | 
             
                }
         | 
| 34621 34635 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TypeDesignComponent, deps: [{ token: i1$2.FormBuilder }, { token: DatasourceService }, { token: TranslateService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34622 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: TypeDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [context]=\"context\">\n  <ng-template bizdocContent>\n    <div class=\"row\">\n      <span class=\"divider\"></span>\n      <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n      <mat-menu #options>\n        <button mat-menu-item (click)=\"test()\" type=\"button\">{{'TestType'|translate}}</button>\n      </mat-menu>\n    </div>\n  </ng-template>\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <h2 class=\"mat-h2 row\">\n        {{'Groups'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(groups, newGroup(), 'Group', 'group')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"groups\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, groups)\">\n        @for (g of groups.controls; track g; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"g\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{g.controls.title.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(g, 'Group', 'group')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"groups.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"tpatterns\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{p.controls.title.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-checkbox formControlName=\"assignable\">{{'Assignable'|translate}}</mat-checkbox>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocAddContent>\n    <ng-container [formGroup]=\"form\">\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"group\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Items'|translate}}</mat-label>\n        <mat-select [placeholder]=\"'Items'|translate\" multiple formControlName=\"items\" required>\n          @for (v of values; track v) {\n          <mat-option [value]=\"v.key\">\n            <span>{{v.value}}</span>\n          </mat-option>\n          }\n        </mat-select>\n        @if (form.controls.items.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Items'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Regex'|translate}}</mat-label>\n        <input matInput formControlName=\"expression\" required />\n        @if (form.controls.expression.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Expression'|translate)\"></mat-error>\n        }\n        <mat-hint><span [innerHTML]=\"'RegexHint' | translate : 'https://regex101.com/'| sanitizeHtml\"></span></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: AddContentDirective, selector: "[bizdocAddContent]" }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34636 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: TypeDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [context]=\"context\">\n  <ng-template bizdocContent>\n    <div class=\"row\">\n      <span class=\"divider\"></span>\n      <button mat-icon-button [matMenuTriggerFor]=\"options\" [disabled]=\"model.draft\"><mat-icon>more_vert</mat-icon></button>\n      <mat-menu #options>\n        <button mat-menu-item (click)=\"test()\" type=\"button\">{{'TestType'|translate}}</button>\n      </mat-menu>\n    </div>\n  </ng-template>\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <h2 class=\"mat-h2 row\">\n        {{'Groups'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(groups, newGroup(), 'Group', 'group')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"groups\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, groups)\">\n        @for (g of groups.controls; track g; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"g\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{g.controls.title.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(g, 'Group', 'group')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"groups.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <h2 class=\"mat-h2 row\">\n        {{'Patterns'|translate}}\n        <span class=\"divider\"></span>\n        <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\n      </h2>\n      <table formArrayName=\"tpatterns\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\n        @for (p of patterns.controls; track p; let index = $index) {\n        <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\n          <td class=\"mat-mdc-cell\">\n            <mat-icon cdkDragHandle>drag_indicator</mat-icon>\n          </td>\n          <td class=\"mat-mdc-cell\" width=\"99%\">\n            {{p.controls.title.value }}\n          </td>\n          <td class=\"mat-mdc-cell nowrap\">\n            <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\n            <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\n          </td>\n        </tr>\n        }\n      </table>\n      <mat-checkbox formControlName=\"assignable\">{{'Assignable'|translate}}</mat-checkbox>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocAddContent>\n    <ng-container [formGroup]=\"form\">\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"group\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Items'|translate}}</mat-label>\n        <mat-select [placeholder]=\"'Items'|translate\" multiple formControlName=\"items\" required>\n          @for (v of values; track v) {\n          <mat-option [value]=\"v.key\">\n            <span>{{v.value}}</span>\n          </mat-option>\n          }\n        </mat-select>\n        @if (form.controls.items.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Items'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n  <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Title'|translate}}</mat-label>\n        <input matInput formControlName=\"title\" />\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Name'|translate}}</mat-label>\n        <input matInput formControlName=\"name\" required />\n        @if (form.controls.name.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\n        }\n      </mat-form-field>\n      <mat-form-field class=\"flex\">\n        <mat-label>{{'Regex'|translate}}</mat-label>\n        <input matInput formControlName=\"expression\" required />\n        @if (form.controls.expression.hasError('required')) {\n        <mat-error [innerHTML]=\"'RequiredErr'|translate:('Expression'|translate)\"></mat-error>\n        }\n        <mat-hint><span [innerHTML]=\"'RegexHint' | translate : 'https://regex101.com/'| sanitizeHtml\"></span></mat-hint>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: AddContentDirective, selector: "[bizdocAddContent]" }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34623 34637 | 
             
            }
         | 
| 34624 34638 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TypeDesignComponent, decorators: [{
         | 
| 34625 34639 | 
             
                        type: Component,
         | 
| @@ -34635,7 +34649,7 @@ class UtilityDesignComponent extends DesignerTypeElementComponent { | |
| 34635 34649 | 
             
                    this.form = this._fb.group({});
         | 
| 34636 34650 | 
             
                }
         | 
| 34637 34651 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UtilityDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34638 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: UtilityDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 34652 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: UtilityDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [icon]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 34639 34653 | 
             
            }
         | 
| 34640 34654 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UtilityDesignComponent, decorators: [{
         | 
| 34641 34655 | 
             
                        type: Component,
         | 
| @@ -34648,7 +34662,7 @@ class ViewDesignComponent extends DesignerTypeElementComponent { | |
| 34648 34662 | 
             
                    this.form = this._fb.group({});
         | 
| 34649 34663 | 
             
                }
         | 
| 34650 34664 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34651 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }] }); }
         | 
| 34665 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }] }); }
         | 
| 34652 34666 | 
             
            }
         | 
| 34653 34667 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ViewDesignComponent, decorators: [{
         | 
| 34654 34668 | 
             
                        type: Component,
         | 
| @@ -34668,7 +34682,7 @@ class WidgetDesignComponent extends DesignerTypeElementComponent { | |
| 34668 34682 | 
             
                    super.ngOnInit();
         | 
| 34669 34683 | 
             
                }
         | 
| 34670 34684 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: WidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34671 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: WidgetDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n            <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34685 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: WidgetDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n      <mat-form-field>\n        <mat-label>{{'Guide'|translate}}</mat-label>\n        <mat-select formControlName=\"guide\">\n          <mat-option>{{'None'|translate}}</mat-option>\n          @for (g of guides; track g) {\n            <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\n          }\n        </mat-select>\n      </mat-form-field>\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34672 34686 | 
             
            }
         | 
| 34673 34687 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: WidgetDesignComponent, decorators: [{
         | 
| 34674 34688 | 
             
                        type: Component,
         | 
| @@ -34683,7 +34697,7 @@ class SourceDesignComponent extends DesignerTypeElementComponent { | |
| 34683 34697 | 
             
                    });
         | 
| 34684 34698 | 
             
                }
         | 
| 34685 34699 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SourceDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 34686 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: SourceDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <!-- widget -->\r\n  <ng-template bizdocContent>\r\n    <dl>\r\n      <dt></dt>\r\n      <dd>{{model.regularExpression}}</dd>\r\n    </dl>\r\n  </ng-template>\r\n  <!-- edit -->\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <mat-form-field>\r\n        <input matInput formControlName=\"regularExpression\" [placeholder]=\"'Regex'| translate\" required autocomplete=\"off\" />\r\n        <mat-hint><span [innerHTML]=\"'RegexHint' | translate : 'https://regex101.com/'| sanitizeHtml\"></span></mat-hint>\r\n      </mat-form-field>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34700 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: SourceDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\r\n  <!-- widget -->\r\n  <ng-template bizdocContent>\r\n    <dl>\r\n      <dt></dt>\r\n      <dd>{{model.regularExpression}}</dd>\r\n    </dl>\r\n  </ng-template>\r\n  <!-- edit -->\r\n  <ng-template bizdocEditContent>\r\n    <ng-container [formGroup]=\"form\">\r\n      <mat-form-field>\r\n        <input matInput formControlName=\"regularExpression\" [placeholder]=\"'Regex'| translate\" required autocomplete=\"off\" />\r\n        <mat-hint><span [innerHTML]=\"'RegexHint' | translate : 'https://regex101.com/'| sanitizeHtml\"></span></mat-hint>\r\n      </mat-form-field>\r\n    </ng-container>\r\n  </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 34687 34701 | 
             
            }
         | 
| 34688 34702 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SourceDesignComponent, decorators: [{
         | 
| 34689 34703 | 
             
                        type: Component,
         | 
| @@ -36152,7 +36166,7 @@ class JobDesignComponent extends DesignerTypeElementComponent { | |
| 36152 36166 | 
             
                    });
         | 
| 36153 36167 | 
             
                }
         | 
| 36154 36168 | 
             
                static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: JobDesignComponent, deps: [{ token: i1$2.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
         | 
| 36155 | 
            -
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: JobDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n      <dl>\n        @if (jobInfo.lastExecution) {\n          <dt>{{'LastExecution'|translate}}</dt>\n          <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n        }\n        @if (jobInfo.nextExecution) {\n          <dt>{{'NextExecution'|translate}}</dt>\n          <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n        }\n        @if (jobInfo.lastJobState) {\n          <dt>{{'LastJobState'|translate}}</dt>\n          <dd>\n            @if (jobInfo.error) {\n              <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n            }\n            <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n          </dd>\n        }\n      </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"execute()\" [disabled]=\"model.draft || working\">\n        <span> {{'Execute'|translate}}</span>\n      </button>\n       \n      @if (working) {\n        <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save"] }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 36169 | 
            +
                static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: JobDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\">\n  <!-- widget -->\n  <ng-template bizdocContent>\n    @if (jobInfo) {\n      <dl>\n        @if (jobInfo.lastExecution) {\n          <dt>{{'LastExecution'|translate}}</dt>\n          <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\n        }\n        @if (jobInfo.nextExecution) {\n          <dt>{{'NextExecution'|translate}}</dt>\n          <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\n        }\n        @if (jobInfo.lastJobState) {\n          <dt>{{'LastJobState'|translate}}</dt>\n          <dd>\n            @if (jobInfo.error) {\n              <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\n            }\n            <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\n          </dd>\n        }\n      </dl>\n    }\n    <div class=\"row start center\">\n      <button mat-stroked-button (click)=\"execute()\" [disabled]=\"model.draft || working\">\n        <span> {{'Execute'|translate}}</span>\n      </button>\n       \n      @if (working) {\n        <mat-spinner diameter=\"22\"></mat-spinner>\n      }\n    </div>\n  </ng-template>\n  <!-- edit -->\n  <ng-template bizdocEditContent>\n    <ng-container [formGroup]=\"form\">\n    </ng-container>\n  </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
         | 
| 36156 36170 | 
             
            }
         | 
| 36157 36171 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: JobDesignComponent, decorators: [{
         | 
| 36158 36172 | 
             
                        type: Component,
         | 
| @@ -36252,7 +36266,9 @@ class SystemModule { | |
| 36252 36266 | 
             
                            Indices: 'Indices',
         | 
| 36253 36267 | 
             
                            Spreadsheet: 'Spreadsheet',
         | 
| 36254 36268 | 
             
                            Chart: 'Chart',
         | 
| 36255 | 
            -
                             | 
| 36269 | 
            +
                            PivotGrid: 'Pivot Grid',
         | 
| 36270 | 
            +
                            PivotChart: 'Pivot Chart',
         | 
| 36271 | 
            +
                            Grid: 'Grid',
         | 
| 36256 36272 | 
             
                            Pie: 'Pie',
         | 
| 36257 36273 | 
             
                            Line: 'Line',
         | 
| 36258 36274 | 
             
                            Column: 'Column',
         |