@bizdoc/core 2.3.44 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/assets/bizdoc-schema.json +4 -2
  2. package/assets/themes/brown.min.css +1 -1
  3. package/assets/themes/dark.min.css +1 -1
  4. package/assets/themes/deep-purple-light-blue.min.css +12 -8
  5. package/assets/themes/deep-purple-teal.min.css +1 -1
  6. package/assets/themes/default.min.css +12 -8
  7. package/assets/themes/green.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/esm2022/lib/admin/architecture/designer-element.component.mjs +7 -2
  10. package/esm2022/lib/admin/architecture/elements/action.component.mjs +1 -1
  11. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +1 -1
  12. package/esm2022/lib/admin/architecture/elements/control.component.mjs +1 -1
  13. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +13 -5
  14. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +1 -1
  15. package/esm2022/lib/admin/architecture/elements/form.component.mjs +1 -1
  16. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +1 -1
  17. package/esm2022/lib/admin/architecture/elements/job.component.mjs +1 -1
  18. package/esm2022/lib/admin/architecture/elements/node.component.mjs +1 -1
  19. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +1 -1
  20. package/esm2022/lib/admin/architecture/elements/report.component.mjs +1 -1
  21. package/esm2022/lib/admin/architecture/elements/role.component.mjs +1 -1
  22. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +1 -1
  23. package/esm2022/lib/admin/architecture/elements/source.component.mjs +1 -1
  24. package/esm2022/lib/admin/architecture/elements/state.component.mjs +1 -1
  25. package/esm2022/lib/admin/architecture/elements/type.component.mjs +1 -1
  26. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +1 -1
  27. package/esm2022/lib/admin/architecture/elements/view.component.mjs +1 -1
  28. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +1 -1
  29. package/esm2022/lib/app.component.mjs +2 -1
  30. package/esm2022/lib/bizdoc.module.mjs +5 -6
  31. package/esm2022/lib/compose/attachments/attachments.component.mjs +4 -4
  32. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +10 -8
  33. package/esm2022/lib/compose/new-menu.component.mjs +4 -8
  34. package/esm2022/lib/core/authentication.mjs +5 -1
  35. package/esm2022/lib/core/configuration.mjs +1 -1
  36. package/esm2022/lib/core/functions.mjs +4 -1
  37. package/esm2022/lib/core/http.interceptor.mjs +38 -31
  38. package/esm2022/lib/core/hub.service.mjs +3 -3
  39. package/esm2022/lib/core/info/attachment-info.service.mjs +2 -2
  40. package/esm2022/lib/core/inputs/file.input.mjs +8 -6
  41. package/esm2022/lib/core/mailbox.service.mjs +4 -4
  42. package/esm2022/lib/core/models.mjs +1 -1
  43. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +2 -63
  44. package/esm2022/lib/core/pipes/to-now.pipe.mjs +66 -0
  45. package/esm2022/lib/core/session.service.mjs +7 -1
  46. package/esm2022/lib/cube/cube-view.component.mjs +3 -1
  47. package/esm2022/lib/home/sign/sign.component.mjs +6 -14
  48. package/esm2022/lib/shared.module.mjs +6 -3
  49. package/esm2022/lib/system.module.mjs +4 -2
  50. package/esm2022/public-api.mjs +3 -2
  51. package/fesm2022/bizdoc-core.mjs +142 -115
  52. package/fesm2022/bizdoc-core.mjs.map +1 -1
  53. package/lib/admin/architecture/designer-element.component.d.ts +2 -1
  54. package/lib/admin/architecture/elements/cube.component.d.ts +1 -0
  55. package/lib/compose/attachments/attachments.component.d.ts +1 -1
  56. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +3 -3
  57. package/lib/core/authentication.d.ts +4 -4
  58. package/lib/core/configuration.d.ts +1 -0
  59. package/lib/core/functions.d.ts +1 -0
  60. package/lib/core/http.interceptor.d.ts +1 -1
  61. package/lib/core/inputs/file.input.d.ts +1 -1
  62. package/lib/core/mailbox.service.d.ts +1 -1
  63. package/lib/core/models.d.ts +1 -1
  64. package/lib/core/pipes/time-ago.pipe.d.ts +0 -13
  65. package/lib/core/pipes/to-now.pipe.d.ts +17 -0
  66. package/lib/core/session.service.d.ts +2 -0
  67. package/lib/shared.module.d.ts +188 -187
  68. package/package.json +13 -13
  69. package/public-api.d.ts +2 -1
@@ -496,6 +496,9 @@ const MATERIAL_PALETTES = {
496
496
  };
497
497
 
498
498
  const IMAGE_TYPE = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'];
499
+ function eraseCookie(name) {
500
+ document.cookie = name + '=; Max-Age=-99999999;';
501
+ }
499
502
  function mapToArray(map) {
500
503
  return Object.keys(map).map(k => ({ key: k, value: map[k] }));
501
504
  }
@@ -880,7 +883,11 @@ const paramAnimation = trigger('param', [state('*', style({ backgroundColor: 'un
880
883
  const queryAnimation = trigger('query', [state('*', style({})),
881
884
  transition('*<=>*', animate(0, style({})))]);
882
885
 
886
+ const IMPERSONATE_COOKIE_NAME = 'i';
883
887
  class AuthenticationImpl {
888
+ disconnect() {
889
+ return Promise.resolve();
890
+ }
884
891
  }
885
892
 
886
893
  /** Listen to hub contracts */
@@ -941,8 +948,8 @@ class HubService {
941
948
  }
942
949
  this._connection = new HubConnectionBuilder().withUrl('/chub', {
943
950
  // logger: LogLevel.Debug,
944
- accessTokenFactory: this._auth.getAccessToken.bind(this),
945
- skipNegotiation: true,
951
+ accessTokenFactory: this._auth.getAuthToken.bind(this),
952
+ //skipNegotiation: true,
946
953
  }).withAutomaticReconnect().build();
947
954
  this._connection.on('newMail', (data) => this._newMail.next(data));
948
955
  this._connection.on('mailUpdate', (data) => this._updateMail.next(data));
@@ -2287,6 +2294,12 @@ class SessionService {
2287
2294
  });
2288
2295
  });
2289
2296
  }
2297
+ getProfileExtra(name) {
2298
+ return this._http.get(`/api/account/extra/${name}`);
2299
+ }
2300
+ setProfileExtra(name, profile) {
2301
+ return this._http.post(`/api/account/extra/${name}`, profile);
2302
+ }
2290
2303
  unregisterDevice(type, token) {
2291
2304
  return this._http.post('/api/account/unregisterDevice', { type, token });
2292
2305
  }
@@ -6579,9 +6592,9 @@ class MailboxService {
6579
6592
  folder.count++;
6580
6593
  });
6581
6594
  }
6582
- formatDownloadUrl(documentId, fileId) {
6583
- let url = `/api/attachments/${documentId}/${fileId}`;
6584
- const token = this._auth.getAccessToken();
6595
+ async formatDownloadUrl(document, file) {
6596
+ let url = `/api/attachments/${document.documentId}/${file.id}`;
6597
+ const token = await this._auth.getAuthToken();
6585
6598
  if (token)
6586
6599
  url +=
6587
6600
  `?access_token=${token}`;
@@ -8065,9 +8078,10 @@ class AttachmentPreview {
8065
8078
  this._afterClosed = new Subject();
8066
8079
  this.dir = _directionality.value;
8067
8080
  this.isImage = isImage(this.data.file.contentType);
8068
- let url = this._url();
8069
- url += (url.indexOf('?') > 0 ? '&' : '?') + 'inline=true';
8070
- this.objectData = sanitizer.bypassSecurityTrustResourceUrl(url);
8081
+ this._url().then(url => {
8082
+ url += (url.indexOf('?') > 0 ? '&' : '?') + 'inline=true';
8083
+ this.objectData = sanitizer.bypassSecurityTrustResourceUrl(url);
8084
+ });
8071
8085
  this.beforeClose().subscribe(() => this.slideDown = 'leave');
8072
8086
  }
8073
8087
  resize() {
@@ -8082,11 +8096,12 @@ class AttachmentPreview {
8082
8096
  ngAfterViewInit() {
8083
8097
  this.resize();
8084
8098
  }
8085
- download() {
8086
- location.assign(this._url());
8099
+ async download() {
8100
+ const url = await this._url();
8101
+ location.assign(url);
8087
8102
  }
8088
- _url() {
8089
- return this._service.formatDownloadUrl(this.data.documentId, this.data.file.id);
8103
+ async _url() {
8104
+ return this._service.formatDownloadUrl(this.data.document, this.data.file);
8090
8105
  }
8091
8106
  rotate() {
8092
8107
  const elem = (this.isImage ? this.img : this.obj).nativeElement;
@@ -8209,7 +8224,7 @@ class AttachmentInfo {
8209
8224
  {
8210
8225
  provide: FILE_PREVIEW_DIALOG_DATA, useValue: {
8211
8226
  file,
8212
- documentId: item.documentId
8227
+ document: item
8213
8228
  }
8214
8229
  },
8215
8230
  { provide: OverlayRef, useValue: oRef }
@@ -8359,7 +8374,7 @@ class AttachmentsComponent {
8359
8374
  getVersions(item) {
8360
8375
  return this.model.attachments.filter(a => a.fileName === item.fileName && a != item);
8361
8376
  }
8362
- download(item) {
8377
+ async download(item) {
8363
8378
  //this._mailbox.download(this.model.documentId, item.id).subscribe(data => {
8364
8379
  //const blob = new Blob([data], { type: item.contentType });
8365
8380
  //if (typeof window.navigator.msSaveBlob !== 'undefined') { // IE
@@ -8370,7 +8385,7 @@ class AttachmentsComponent {
8370
8385
  //if (!pwa || pwa.closed || typeof pwa.closed === 'undefined')
8371
8386
  //}
8372
8387
  //});
8373
- location.href = this._mailbox.formatDownloadUrl(this.model.documentId, item.id);
8388
+ location.href = await this._mailbox.formatDownloadUrl(this.model, item);
8374
8389
  item.viewed = new Date();
8375
8390
  }
8376
8391
  previewOrDownload(item) {
@@ -8394,7 +8409,7 @@ class AttachmentsComponent {
8394
8409
  });
8395
8410
  const injector = Injector.create({
8396
8411
  providers: [
8397
- { provide: FILE_PREVIEW_DIALOG_DATA, useValue: { file: item, documentId: this.model.documentId } },
8412
+ { provide: FILE_PREVIEW_DIALOG_DATA, useValue: { file: item, document: this.model } },
8398
8413
  { provide: OverlayRef, useValue: oRef }
8399
8414
  ], parent: this._injector
8400
8415
  });
@@ -8501,6 +8516,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
8501
8516
  pure: false
8502
8517
  }]
8503
8518
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
8519
+ function getSecondsUntilUpdate(time) {
8520
+ const howOld = Math.abs(time.diff(new Date(), 'minute'));
8521
+ if (howOld < 1) {
8522
+ return 1;
8523
+ }
8524
+ else if (howOld < 60) {
8525
+ return 30;
8526
+ }
8527
+ else if (howOld < 180) {
8528
+ return 300;
8529
+ }
8530
+ else {
8531
+ return 3600;
8532
+ }
8533
+ }
8534
+
8504
8535
  class TimeAgoPipe {
8505
8536
  transform(value, ...args) {
8506
8537
  this.lastTime = dayjs(value);
@@ -8547,21 +8578,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
8547
8578
  pure: false
8548
8579
  }]
8549
8580
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
8550
- function getSecondsUntilUpdate(time) {
8551
- const howOld = Math.abs(time.diff(new Date(), 'minute'));
8552
- if (howOld < 1) {
8553
- return 1;
8554
- }
8555
- else if (howOld < 60) {
8556
- return 30;
8557
- }
8558
- else if (howOld < 180) {
8559
- return 300;
8560
- }
8561
- else {
8562
- return 3600;
8563
- }
8564
- }
8565
8581
 
8566
8582
  class StatePipe {
8567
8583
  transform(value, ...args) {
@@ -11918,6 +11934,8 @@ class CubeViewComponent {
11918
11934
  const dim = this._dim();
11919
11935
  switch (this.view.type) {
11920
11936
  case 'Pivot':
11937
+ case 'PivotChart':
11938
+ case 'PivotGrid':
11921
11939
  {
11922
11940
  let comp = this._attach(CubePivotComponent);
11923
11941
  comp.width = `${dim.width - 4}px`;
@@ -18596,39 +18614,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
18596
18614
 
18597
18615
  class AppHttpInterceptor {
18598
18616
  intercept(req, next) {
18599
- const url = req.url, connectionId = this._messaging.connectionId, headers = {
18600
- 'accept-language': this._session.language,
18601
- };
18602
- if (connectionId)
18603
- headers['connection-id'] = connectionId;
18604
- const accessToken = this._auth.getAccessToken();
18605
- if (accessToken)
18606
- headers['Authorization'] = `Bearer ${accessToken}`;
18607
- const request = req.clone({
18608
- setHeaders: headers,
18609
- url
18610
- });
18611
- const handle = next.handle(request).pipe(catchError((e) => {
18612
- if (this._authenticationInProgress$)
18613
- return this._authenticationInProgress$;
18614
- else if (e.status === 401)
18615
- return this._authenticationInProgress$ = this._auth.authorize().pipe(switchMap$1(() => {
18616
- this._authenticationInProgress$ = null;
18617
- return this.intercept(req, next);
18617
+ return from(this._auth.getAuthToken()).pipe(switchMap$1(token => {
18618
+ const connectionId = this._messaging.connectionId, headers = {
18619
+ 'accept-language': this._session.language,
18620
+ };
18621
+ if (connectionId)
18622
+ headers['connection-id'] = connectionId;
18623
+ if (token)
18624
+ headers['Authorization'] = `Bearer ${token}`;
18625
+ const request = req.clone({
18626
+ setHeaders: headers,
18627
+ });
18628
+ if (!req.headers.has('no-progress')) {
18629
+ this._ongoingCounter$.next(1);
18630
+ return next.handle(request).pipe(tap({
18631
+ next: event => event instanceof HttpResponse
18632
+ && this._ongoingCounter$.next(0),
18633
+ error: () => this._ongoingCounter$.next(0)
18618
18634
  }));
18635
+ }
18636
+ else
18637
+ return next.handle(request);
18638
+ }), catchError((e) => {
18639
+ // there is already ongoing authentication,
18640
+ if (this._authenticating$)
18641
+ return this._authenticating$;
18642
+ else if (e.status === 401) {
18643
+ eraseCookie(IMPERSONATE_COOKIE_NAME);
18644
+ this._authenticating$ =
18645
+ // give AuthenticationImpl to
18646
+ from(this._auth.authenticate()).
18647
+ pipe(tap(() => this._authenticating$ = null),
18648
+ // authorization ok, try
18649
+ switchMap$1(() => this.intercept(req, next)));
18650
+ return this._authenticating$;
18651
+ }
18619
18652
  else
18620
18653
  throw e;
18621
18654
  }));
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
18655
  }
18633
18656
  constructor(_session, _auth, _messaging) {
18634
18657
  this._session = _session;
@@ -18853,7 +18876,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
18853
18876
  args: [{ selector: 'bizdoc-impersonate', template: "<h2 mat-dialog-title>{{'Impersonate' | translate}}</h2>\n<mat-dialog-content>\n <p class=\"mat-body-1\">{{'ImpersonateHelp' | translate}}</p>\n <mat-form-field>\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [placeholder]=\"'Associate' | translate\" required [formControl]=\"username\" />\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\n (optionSelected)=\"change($event)\">\n @for (u of users$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-raised-button (click)=\"go()\" [disabled]=\"!item || logging\" color=\"primary\">{{'Login' | translate}}</button>\n <button mat-button [mat-dialog-close]>{{'Cancel' | translate }}</button>\n</mat-dialog-actions>\n", styles: [".mat-mdc-form-field{width:100%}\n"] }]
18854
18877
  }], ctorParameters: () => [{ type: PromptService }, { type: SessionService }, { type: i2$2.MatDialogRef }] });
18855
18878
 
18856
- const IMPERSONATE_COOKIE_NAME = 'i';
18857
18879
  /** sign component*/
18858
18880
  class QuickSignComponent {
18859
18881
  /** options ctor */
@@ -18866,18 +18888,12 @@ class QuickSignComponent {
18866
18888
  }
18867
18889
  signOut() {
18868
18890
  this._close();
18869
- const task = () => {
18870
- this._ps.mask('Goodbye');
18871
- location.assign('/');
18872
- };
18873
18891
  this._ps.ask('SignOutAsk', 'SignOut', { ok: 'Yes', cancel: 'No' }).subscribe(ok => {
18874
18892
  if (ok) {
18893
+ this._ps.mask('Goodbye');
18875
18894
  eraseCookie(IMPERSONATE_COOKIE_NAME);
18876
- if (this._auth.signOut)
18877
- this._auth.signOut().
18878
- then(task);
18879
- else
18880
- task();
18895
+ this._auth.disconnect().
18896
+ then(() => location.assign('/'));
18881
18897
  }
18882
18898
  });
18883
18899
  }
@@ -18905,9 +18921,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
18905
18921
  }] }, { type: PopupRef, decorators: [{
18906
18922
  type: Optional
18907
18923
  }] }] });
18908
- function eraseCookie(name) {
18909
- document.cookie = name + '=; Max-Age=-99999999;';
18910
- }
18911
18924
 
18912
18925
  const DEFAULT_ROUTE = ['dashboard'];
18913
18926
  class SlotsComponent {
@@ -20497,13 +20510,9 @@ class ComposeMenuComponent {
20497
20510
  create(form) {
20498
20511
  this._working.next(true);
20499
20512
  this._mailbox.create(form).subscribe({
20500
- next: i => {
20501
- this._nav(i);
20502
- this._working.next(false);
20503
- }, error: e => {
20504
- this._working.next(false);
20505
- this._error(e);
20506
- }
20513
+ next: i => this._nav(i),
20514
+ error: e => this._error(e),
20515
+ complete: () => this._working.next(false)
20507
20516
  });
20508
20517
  }
20509
20518
  copy(item) {
@@ -21107,6 +21116,7 @@ class BizDocApp {
21107
21116
  if (!document.hidden && this._messaging.state === HubConnectionState.Disconnected && this._session.ok)
21108
21117
  this._refresh.next();
21109
21118
  });
21119
+ //window.addEventListener('offline', () => this._online = false);
21110
21120
  window.addEventListener('online', () => this._refresh.next());
21111
21121
  }
21112
21122
  ngOnInit() {
@@ -22847,8 +22857,8 @@ class FileInput {
22847
22857
  getVersions(item) {
22848
22858
  return this._model.attachments.filter(a => a.fileName === item.fileName && a.id !== item.id);
22849
22859
  }
22850
- download(item) {
22851
- location.href = this._mailbox.formatDownloadUrl(this._model.documentId, item.id);
22860
+ async download(item) {
22861
+ location.href = await this._mailbox.formatDownloadUrl(this._model, item);
22852
22862
  item.viewed = new Date();
22853
22863
  }
22854
22864
  previewOrDownload(item) {
@@ -23057,17 +23067,19 @@ class FileInput {
23057
23067
  * @param attachment
23058
23068
  */
23059
23069
  _createItem(attachment) {
23060
- const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType), url = isImage ? this._sanitizer.bypassSecurityTrustUrl(this._mailbox.formatDownloadUrl(this._model.documentId, attachment.id)) : null;
23061
- return {
23070
+ const fileExt = AttachmentInfo.fileExt(attachment.fileName), hasPreview = AttachmentInfo.exists(attachment.contentType), isImage = hasPreview && AttachmentInfo.isImage(attachment.contentType);
23071
+ const newModel = {
23062
23072
  ...attachment,
23063
23073
  hasPreview,
23064
23074
  isImage,
23065
23075
  fileExt,
23066
- url,
23067
23076
  icon: EXTENTION_ICONS[fileExt],
23068
23077
  checkedOut: attachment.checkedOut &&
23069
23078
  attachment.holdingId === this._session.profile.userId
23070
23079
  };
23080
+ isImage &&
23081
+ this._mailbox.formatDownloadUrl(this._model, attachment).then(url => newModel.url = this._sanitizer.bypassSecurityTrustUrl(url));
23082
+ return newModel;
23071
23083
  }
23072
23084
  /**
23073
23085
  *
@@ -30318,7 +30330,8 @@ const CONTROLS_COMPONENTS$1 = [SignatureField, AddressField, ChecklistField, Rad
30318
30330
  /** common BizDoc components */
30319
30331
  class SharedModule {
30320
30332
  static forChild(config) {
30321
- const { formats, routing } = config || {};
30333
+ const { formats, routing, routes } = config || {};
30334
+ routes && PANES_CONFIG.push(...routes);
30322
30335
  registerComponents(CORE_COMPONENTS);
30323
30336
  registerComponents(CONTROLS_COMPONENTS$1);
30324
30337
  const providers = [{
@@ -33536,6 +33549,7 @@ class DesignerItemComponent {
33536
33549
  this._cfr = _cfr;
33537
33550
  this.SVG = FAMILY_SVG;
33538
33551
  this.onSave = new EventEmitter();
33552
+ this.onContinue = new EventEmitter();
33539
33553
  this._destroy = new Subject();
33540
33554
  this.mode = _ref.mode;
33541
33555
  this.model = _ref.model;
@@ -33637,6 +33651,7 @@ class DesignerItemComponent {
33637
33651
  this._elementDesigner?.onContinue &&
33638
33652
  this._elementDesigner.onContinue();
33639
33653
  this.mode = 'edit';
33654
+ this.onContinue.emit();
33640
33655
  if (this._elementDesigner)
33641
33656
  this._elementDesigner.mode = 'edit';
33642
33657
  this._commonForm();
@@ -33685,7 +33700,7 @@ class DesignerItemComponent {
33685
33700
  this._destroy?.complete();
33686
33701
  }
33687
33702
  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}}&nbsp;<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" }] }); }
33703
+ 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}}&nbsp;<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
33704
  }
33690
33705
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DesignerItemComponent, decorators: [{
33691
33706
  type: Component,
@@ -33704,6 +33719,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
33704
33719
  }], onSave: [{
33705
33720
  type: Output,
33706
33721
  args: ['save']
33722
+ }], onContinue: [{
33723
+ type: Output,
33724
+ args: ['continue']
33707
33725
  }], editContent: [{
33708
33726
  type: ContentChild,
33709
33727
  args: [EditContentDirective]
@@ -33879,7 +33897,7 @@ class ActionDesignerComponent extends DesignerTypeElementComponent {
33879
33897
  super.ngOnInit();
33880
33898
  }
33881
33899
  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" }] }); }
33900
+ 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
33901
  }
33884
33902
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ActionDesignerComponent, decorators: [{
33885
33903
  type: Component,
@@ -33904,7 +33922,7 @@ class AttributeDesignComponent extends DesignerTypeElementComponent {
33904
33922
  this._ref.model.title = dataType.title;
33905
33923
  }
33906
33924
  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" }] }); }
33925
+ 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
33926
  }
33909
33927
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AttributeDesignComponent, decorators: [{
33910
33928
  type: Component,
@@ -33922,7 +33940,7 @@ class ControlDesignComponent extends DesignerTypeElementComponent {
33922
33940
  super.ngOnInit();
33923
33941
  }
33924
33942
  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"] }] }); }
33943
+ 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
33944
  }
33927
33945
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ControlDesignComponent, decorators: [{
33928
33946
  type: Component,
@@ -33989,6 +34007,9 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
33989
34007
  setTimeout(() => {
33990
34008
  }, ms + 600000);
33991
34009
  }
34010
+ onContinue() {
34011
+ this._form();
34012
+ }
33992
34013
  _form() {
33993
34014
  this.typegroups = super._typegroups;
33994
34015
  this.guides = this._ref.designer.guides;
@@ -34061,9 +34082,14 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
34061
34082
  switch (v) {
34062
34083
  case 'Spreadsheet':
34063
34084
  case 'Grid':
34064
- case 'Pivot':
34065
- series.addValidators(Validators.required);
34085
+ case 'Pivot': // deprecated
34086
+ case 'PivotGrid':
34066
34087
  chartType.disable({ emitEvent: false });
34088
+ series.addValidators(Validators.required);
34089
+ break;
34090
+ case 'PivotChart':
34091
+ chartType.enable({ emitEvent: false });
34092
+ series.addValidators(Validators.required);
34067
34093
  break;
34068
34094
  default:
34069
34095
  series.clearValidators();
@@ -34126,11 +34152,11 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
34126
34152
  });
34127
34153
  }
34128
34154
  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 &nbsp;\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" }] }); }
34155
+ 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 &nbsp;\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
34156
  }
34131
34157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CubeDesignComponent, decorators: [{
34132
34158
  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 &nbsp;\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"] }]
34159
+ 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 &nbsp;\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
34160
  }], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: SystemService }, { type: PromptService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
34135
34161
  type: Inject,
34136
34162
  args: [DesignerRef]
@@ -34172,7 +34198,7 @@ class FolderDesignComponent extends DesignerTypeElementComponent {
34172
34198
  this.cube = this.cubes.find(c => c.name === evt.value);
34173
34199
  }
34174
34200
  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" }] }); }
34201
+ 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
34202
  }
34177
34203
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FolderDesignComponent, decorators: [{
34178
34204
  type: Component,
@@ -34400,7 +34426,7 @@ class FormDesignComponent extends DesignerTypeElementComponent {
34400
34426
  this._destroy.complete();
34401
34427
  }
34402
34428
  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 &nbsp;\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 &nbsp;\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 &nbsp;\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" }] }); }
34429
+ 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 &nbsp;\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 &nbsp;\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 &nbsp;\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
34430
  }
34405
34431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: FormDesignComponent, decorators: [{
34406
34432
  type: Component,
@@ -34441,7 +34467,7 @@ class GuideDesignComponent extends DesignerTypeElementComponent {
34441
34467
  });
34442
34468
  }
34443
34469
  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" }] }); }
34470
+ 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
34471
  }
34446
34472
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: GuideDesignComponent, decorators: [{
34447
34473
  type: Component,
@@ -34454,7 +34480,7 @@ class NodeDesignerComponent extends DesignerTypeElementComponent {
34454
34480
  this.form = this._fb.group({});
34455
34481
  }
34456
34482
  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"] }] }); }
34483
+ 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
34484
  }
34459
34485
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NodeDesignerComponent, decorators: [{
34460
34486
  type: Component,
@@ -34467,7 +34493,7 @@ class PolicyDesignComponent extends DesignerTypeElementComponent {
34467
34493
  this.form = this._fb.group({});
34468
34494
  }
34469
34495
  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"] }] }); }
34496
+ 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
34497
  }
34472
34498
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PolicyDesignComponent, decorators: [{
34473
34499
  type: Component,
@@ -34487,7 +34513,7 @@ class ReportDesignerComponent extends DesignerTypeElementComponent {
34487
34513
  super.ngOnInit();
34488
34514
  }
34489
34515
  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" }] }); }
34516
+ 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
34517
  }
34492
34518
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReportDesignerComponent, decorators: [{
34493
34519
  type: Component,
@@ -34516,7 +34542,7 @@ class RoleDesignComponent extends DesignerTypeElementComponent {
34516
34542
  this.form.controls.dataType.enable({ emitEvent: false });
34517
34543
  }
34518
34544
  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" }] }); }
34545
+ 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
34546
  }
34521
34547
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RoleDesignComponent, decorators: [{
34522
34548
  type: Component,
@@ -34529,7 +34555,7 @@ class RuleDesignComponent extends DesignerTypeElementComponent {
34529
34555
  this.form = this._fb.group({});
34530
34556
  }
34531
34557
  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"] }] }); }
34558
+ 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
34559
  }
34534
34560
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: RuleDesignComponent, decorators: [{
34535
34561
  type: Component,
@@ -34558,7 +34584,7 @@ class StateDesignComponent extends DesignerTypeElementComponent {
34558
34584
  super.ngOnInit();
34559
34585
  }
34560
34586
  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" }] }); }
34587
+ 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
34588
  }
34563
34589
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: StateDesignComponent, decorators: [{
34564
34590
  type: Component,
@@ -34619,7 +34645,7 @@ class TypeDesignComponent extends DesignerTypeElementComponent {
34619
34645
  });
34620
34646
  }
34621
34647
  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" }] }); }
34648
+ 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
34649
  }
34624
34650
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TypeDesignComponent, decorators: [{
34625
34651
  type: Component,
@@ -34635,7 +34661,7 @@ class UtilityDesignComponent extends DesignerTypeElementComponent {
34635
34661
  this.form = this._fb.group({});
34636
34662
  }
34637
34663
  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"] }] }); }
34664
+ 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
34665
  }
34640
34666
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UtilityDesignComponent, decorators: [{
34641
34667
  type: Component,
@@ -34648,7 +34674,7 @@ class ViewDesignComponent extends DesignerTypeElementComponent {
34648
34674
  this.form = this._fb.group({});
34649
34675
  }
34650
34676
  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"] }] }); }
34677
+ 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
34678
  }
34653
34679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ViewDesignComponent, decorators: [{
34654
34680
  type: Component,
@@ -34668,7 +34694,7 @@ class WidgetDesignComponent extends DesignerTypeElementComponent {
34668
34694
  super.ngOnInit();
34669
34695
  }
34670
34696
  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" }] }); }
34697
+ 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
34698
  }
34673
34699
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: WidgetDesignComponent, decorators: [{
34674
34700
  type: Component,
@@ -34683,7 +34709,7 @@ class SourceDesignComponent extends DesignerTypeElementComponent {
34683
34709
  });
34684
34710
  }
34685
34711
  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" }] }); }
34712
+ 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
34713
  }
34688
34714
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SourceDesignComponent, decorators: [{
34689
34715
  type: Component,
@@ -36152,7 +36178,7 @@ class JobDesignComponent extends DesignerTypeElementComponent {
36152
36178
  });
36153
36179
  }
36154
36180
  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 &nbsp;\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" }] }); }
36181
+ 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 &nbsp;\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
36182
  }
36157
36183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: JobDesignComponent, decorators: [{
36158
36184
  type: Component,
@@ -36252,7 +36278,9 @@ class SystemModule {
36252
36278
  Indices: 'Indices',
36253
36279
  Spreadsheet: 'Spreadsheet',
36254
36280
  Chart: 'Chart',
36255
- Pivot: 'Pivot', Grid: 'Grid',
36281
+ PivotGrid: 'Pivot Grid',
36282
+ PivotChart: 'Pivot Chart',
36283
+ Grid: 'Grid',
36256
36284
  Pie: 'Pie',
36257
36285
  Line: 'Line',
36258
36286
  Column: 'Column',
@@ -36778,18 +36806,20 @@ class BizDocModule {
36778
36806
  static forChild(config) {
36779
36807
  const { components, routes } = config;
36780
36808
  registerComponents(components);
36809
+ routes && PANES_CONFIG.push(...routes);
36781
36810
  return {
36782
36811
  ngModule: BizDocModule,
36783
36812
  providers: [
36784
- { provide: PANES_DATA, useValue: withRoute(routes) }
36813
+ { provide: PANES_DATA, useValue: PANES_CONFIG }
36785
36814
  ]
36786
36815
  };
36787
36816
  }
36788
36817
  static forRoot(config) {
36789
36818
  const { formats, routes, components } = config;
36790
36819
  registerComponents(components);
36820
+ routes && PANES_CONFIG.push(...routes);
36791
36821
  const providers = [
36792
- { provide: PANES_DATA, useValue: withRoute(routes) },
36822
+ { provide: PANES_DATA, useValue: PANES_CONFIG },
36793
36823
  {
36794
36824
  provide: BIZDOC_CONFIG,
36795
36825
  useValue: config
@@ -36850,9 +36880,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
36850
36880
  ]
36851
36881
  }]
36852
36882
  }] });
36853
- function withRoute(routes) {
36854
- return !routes ? PANES_CONFIG : PANES_CONFIG.concat(routes);
36855
- }
36856
36883
 
36857
36884
  /**
36858
36885
  * Generated bundle index. Do not edit.