@bizdoc/core 2.3.28 → 2.3.31

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 (64) hide show
  1. package/assets/bizdoc-schema.json +31 -13
  2. package/assets/themes/deep-purple-light-blue.min.css +4 -4
  3. package/assets/themes/default.min.css +4 -4
  4. package/esm2022/lib/admin/architecture/declarations.mjs +19 -4
  5. package/esm2022/lib/admin/architecture/designer-element.component.mjs +47 -63
  6. package/esm2022/lib/admin/architecture/designer.component.mjs +65 -55
  7. package/esm2022/lib/admin/architecture/elements/action.component.mjs +1 -1
  8. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  9. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  10. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +5 -5
  11. package/esm2022/lib/admin/architecture/elements/control.component.mjs +1 -1
  12. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +3 -5
  13. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  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/parallel-view.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  21. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +1 -1
  22. package/esm2022/lib/admin/architecture/elements/report.component.mjs +1 -1
  23. package/esm2022/lib/admin/architecture/elements/role.component.mjs +1 -1
  24. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +1 -1
  25. package/esm2022/lib/admin/architecture/elements/source.component.mjs +1 -1
  26. package/esm2022/lib/admin/architecture/elements/state.component.mjs +1 -1
  27. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  28. package/esm2022/lib/admin/architecture/elements/type.component.mjs +7 -4
  29. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +1 -1
  30. package/esm2022/lib/admin/architecture/elements/view.component.mjs +1 -1
  31. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +1 -1
  32. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  33. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +1 -1
  34. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  35. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  36. package/esm2022/lib/compose/trace/trace.component.mjs +12 -13
  37. package/esm2022/lib/core/avatar/avatar.component.mjs +5 -6
  38. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  39. package/esm2022/lib/core/models.mjs +1 -1
  40. package/esm2022/lib/core/pipes/sort.pipe.mjs +13 -1
  41. package/esm2022/lib/core/popup/popup.component.mjs +1 -1
  42. package/esm2022/lib/core/popup/popup.service.mjs +9 -2
  43. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.mjs +1 -1
  44. package/esm2022/lib/scheduler/schedule.component.mjs +2 -2
  45. package/esm2022/lib/shared.module.mjs +7 -7
  46. package/esm2022/lib/views/timeline/{timeline.component.exp.mjs → timeline.component.mjs} +11 -13
  47. package/esm2022/public-api.mjs +4 -3
  48. package/fesm2022/bizdoc-core.mjs +217 -188
  49. package/fesm2022/bizdoc-core.mjs.map +1 -1
  50. package/lib/admin/architecture/declarations.d.ts +5 -3
  51. package/lib/admin/architecture/designer-element.component.d.ts +9 -10
  52. package/lib/admin/architecture/designer.base.d.ts +1 -1
  53. package/lib/admin/architecture/designer.component.d.ts +14 -2
  54. package/lib/admin/architecture/elements/cube.component.d.ts +0 -1
  55. package/lib/admin/architecture/elements/performance-widget.component.d.ts +1 -1
  56. package/lib/admin/system.service.d.ts +1 -1
  57. package/lib/core/models.d.ts +6 -1
  58. package/lib/core/pipes/sort.pipe.d.ts +6 -0
  59. package/lib/core/popup/popup.service.d.ts +7 -0
  60. package/lib/scheduler/schedule.component.d.ts +2 -1
  61. package/lib/shared.module.d.ts +2 -2
  62. package/lib/views/timeline/{timeline.component.exp.d.ts → timeline.component.d.ts} +2 -4
  63. package/package.json +11 -11
  64. package/public-api.d.ts +3 -2
@@ -156,6 +156,14 @@ import updateLocale from 'dayjs/plugin/updateLocale';
156
156
  import player from 'lottie-web/build/player/lottie';
157
157
  import { CircularGauge as CircularGauge$1 } from '@syncfusion/ej2-circulargauge';
158
158
 
159
+ class NodeRef {
160
+ constructor(_node) {
161
+ this._node = _node;
162
+ }
163
+ get name() { return this._node.name; }
164
+ get arguments() { return this._node.arguments; }
165
+ }
166
+
159
167
  const FONT_FAMILY = 'Roboto, monospace, sans-serif';
160
168
  //// colors from https://github.com/egoist/color-lib/blob/master/color.json
161
169
  const MATERIAL_PALETTES = {
@@ -2858,6 +2866,13 @@ class Popup {
2858
2866
  this._session = _session;
2859
2867
  this._injector = _injector;
2860
2868
  }
2869
+ /**
2870
+ *
2871
+ * @param component
2872
+ * @param element
2873
+ * @param options
2874
+ * @returns
2875
+ */
2861
2876
  open(component, element, options) {
2862
2877
  let positions;
2863
2878
  const { backdrop, position, disposeOnBackdrop, data, injector, class: clazz } = options || {};
@@ -2896,13 +2911,13 @@ class Popup {
2896
2911
  });
2897
2912
  const portal = new ComponentPortal(PopupComponent, null, popupInjector);
2898
2913
  oRef.attach(portal);
2914
+ pRef._closed.subscribe(() => oRef.detach());
2899
2915
  oRef.keydownEvents().pipe(filter(k => k.key === 'Escape')).
2900
2916
  subscribe(e => {
2901
2917
  e.stopPropagation();
2902
2918
  pRef._closed.next(null);
2903
2919
  });
2904
2920
  backdrop !== false && oRef.backdropClick().subscribe(() => disposeOnBackdrop !== false && pRef._closed.next(null));
2905
- pRef._closed.subscribe(() => oRef.detach());
2906
2921
  return pRef;
2907
2922
  }
2908
2923
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: Popup, deps: [{ token: i1$2.Overlay }, { token: SessionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -3428,6 +3443,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
3428
3443
  type: Input
3429
3444
  }] } });
3430
3445
 
3446
+ /** */
3447
+ class JsonPipe {
3448
+ transform(value, ...args) {
3449
+ return '<pre>' + JSON.stringify(value[0], null, ' ') + '</pre>';
3450
+ }
3451
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
3452
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: JsonPipe, name: "json" }); }
3453
+ }
3454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: JsonPipe, decorators: [{
3455
+ type: Pipe,
3456
+ args: [{ name: 'json' }]
3457
+ }] });
3431
3458
  class ArraySortPipe {
3432
3459
  transform(array, field, order = 'asc') {
3433
3460
  if (!Array.isArray(array)) {
@@ -5560,7 +5587,7 @@ const FAMILY_SVG = {
5560
5587
  'Google': 'google.svg',
5561
5588
  'Okta': 'okta.svg'
5562
5589
  };
5563
- const CAP_NAME_CHAR = /[A-Z]+/g, NON_NAME_CHAR = /[^\w]+/g;
5590
+ const CAP_NAME_CHAR = /[A-Z]+/g, NON_NAME_CHAR = /[^\w\-_.]+/g;
5564
5591
  /** */
5565
5592
  class DesignerRef {
5566
5593
  constructor(_designer, _element, _collection, mode) {
@@ -5600,11 +5627,26 @@ function localizeString(value) {
5600
5627
  * @param name
5601
5628
  */
5602
5629
  function programName(name) {
5603
- return name.
5630
+ return name.toLowerCase().
5604
5631
  replace(' ', '-').
5605
- replace(CAP_NAME_CHAR, (c, i) => (i > 0 && name.charAt(i - 1) !== '-' ? '-' : '') + c.toLowerCase()).
5606
5632
  replace(NON_NAME_CHAR, '');
5607
5633
  }
5634
+ function getMonthList(locales, format = "long") {
5635
+ const year = new Date().getFullYear(); // 2024
5636
+ const monthList = [...Array(12).keys()]; // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
5637
+ const formatter = new Intl.DateTimeFormat(locales, {
5638
+ month: format
5639
+ });
5640
+ const getMonthName = (monthIndex) => formatter.format(new Date(year, monthIndex));
5641
+ return monthList.map(getMonthName);
5642
+ }
5643
+ function extractString(str) {
5644
+ if (isString(str))
5645
+ return str;
5646
+ else
5647
+ for (var p in str)
5648
+ return str[p];
5649
+ }
5608
5650
 
5609
5651
  /** filter component*/
5610
5652
  class DesignerCubeFilterComponent {
@@ -11979,11 +12021,11 @@ class AvatarComponent {
11979
12021
  this._destroy.complete();
11980
12022
  }
11981
12023
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AvatarComponent, deps: [{ token: HubService }, { token: i0.ChangeDetectorRef }, { token: ChatInfo }], target: i0.ɵɵFactoryTarget.Component }); }
11982
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AvatarComponent, selector: "bizdoc-avatar", inputs: { person: "person", interactive: "interactive", dense: "dense" }, host: { listeners: { "click": "chat()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n <i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor' *ngIf=modeIcon>{{modeIcon}}</i>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
12024
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AvatarComponent, selector: "bizdoc-avatar", inputs: { person: "person", interactive: "interactive", dense: "dense" }, host: { listeners: { "click": "chat()" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n @if(modeIcon){<i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor'>{{modeIcon}}</i>}\r\n</div>\r\n", dependencies: [{ kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
11983
12025
  }
11984
12026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AvatarComponent, decorators: [{
11985
12027
  type: Component,
11986
- args: [{ selector: 'bizdoc-avatar', template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n <i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor' *ngIf=modeIcon>{{modeIcon}}</i>\r\n</div>\r\n" }]
12028
+ args: [{ selector: 'bizdoc-avatar', template: "<div class=\"avatar mat-elevation-z3\" [class.dense]=dense [class.interactive]=interactive\r\n [style.backgroundColor]='color' [style.borderColor]='borderColor' [style.backgroundImage]='image'>\r\n <div class=\"initials\">{{initials}}</div>\r\n @if(modeIcon){<i class=\"material-icons filled mode\" [bizdocTooltip]=\"mode | translate\"\r\n [style.backgroundColor]='modeColor'>{{modeIcon}}</i>}\r\n</div>\r\n" }]
11987
12029
  }], ctorParameters: () => [{ type: HubService }, { type: i0.ChangeDetectorRef }, { type: ChatInfo }], propDecorators: { person: [{
11988
12030
  type: Input
11989
12031
  }], interactive: [{
@@ -13672,14 +13714,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
13672
13714
  }, template: "<bizdoc-cube-item [template]=\"template\" [model]=\"model\"></bizdoc-cube-item>\r\n\r\n<!--<lottie name=\"4958-404-not-found\" *ngIf=\"problem\"></lottie>-->\r\n" }]
13673
13715
  }], ctorParameters: () => [{ type: PaneRef }] });
13674
13716
 
13675
- class NodeRef {
13676
- constructor(_node) {
13677
- this._node = _node;
13678
- }
13679
- get name() { return this._node.name; }
13680
- get arguments() { return this._node.arguments; }
13681
- }
13682
-
13683
13717
  class WorkflowNodeComponent {
13684
13718
  constructor(_session, _factoryResolver, _injector, _translate, _fb, _pane) {
13685
13719
  this._session = _session;
@@ -14365,13 +14399,13 @@ class WorkflowComponent {
14365
14399
  this._nodedestroy.complete();
14366
14400
  }
14367
14401
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WorkflowComponent, deps: [{ token: PromptService }, { token: SystemService }, { token: PaneRef }, { token: PanesRouter }, { token: SessionService }, { token: TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
14368
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--<ng-container *ngIf=\"connectors.length\">\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n <ng-container *ngIf=\"nodes[0].annotations.length\">\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n </ng-container>\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n </ng-container>-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i9$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
14402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], dependencies: [{ kind: "directive", type: i9$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
14369
14403
  }
14370
14404
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WorkflowComponent, decorators: [{
14371
14405
  type: Component,
14372
14406
  args: [{ selector: 'bizdoc-workflow', host: {
14373
14407
  class: 'pane'
14374
- }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--<ng-container *ngIf=\"connectors.length\">\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n <ng-container *ngIf=\"nodes[0].annotations.length\">\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n </ng-container>\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n </ng-container>-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
14408
+ }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\n <button mat-icon-button (click)=\"diagram.remove()\" [bizdocTooltip]=\"'Remove' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>delete</mat-icon></button>\n <span class=\"tools-divider\"></span>\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #lineMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\n </button>\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\n </button>\n <!--@if(connectors.length){\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n @if(nodes[0].annotations.length){\n < bizdoc-color-picker (valueChanges)='colorChange($event)' [label]=\"'Color'|translate\"></ bizdoc-color-picker>\n }\n < bizdoc-color-picker (valueChanges)='bgChange($event)' [label]=\"'Background'|translate\"></ bizdoc-color-picker>\n < bizdoc-color-picker (valueChanges)='strokeChange($event)' [label]=\"'Stroke'|translate\"></ bizdoc-color-picker>\n }-->\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\n </mat-menu>\n &nbsp;\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\n 'sf-icon-left': alignment === 'Left',\n 'sf-icon-center': alignment === 'Center',\n 'sf-icon-bottom': alignment === 'Bottom',\n 'sf-icon-right': alignment === 'Right'}\"></span>\n <mat-icon>arrow_drop_down</mat-icon>\n </button>\n <mat-menu #alignMenu overlayPanelClass=\"icon-menu-panel\">\n <button mat-menu-item (click)=\"align('Top')\">\n <span class=\"e-icons sf-icon-top\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Left')\">\n <span class=\"e-icons sf-icon-left\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Center')\">\n <span class=\"e-icons sf-icon-center\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Right')\">\n <span class=\"e-icons sf-icon-right\"></span>\n </button>\n <button mat-menu-item (click)=\"align('Bottom')\">\n <span class=\"e-icons sf-icon-bottom\"></span>\n </button>\n </mat-menu>\n <button mat-icon-button (click)=\"boldChange()\" [bizdocTooltip]=\"'Bold' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_bold</mat-icon></button>\n <button mat-icon-button (click)=\"italicChange()\" [bizdocTooltip]=\"'Italic' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>format_italic</mat-icon></button>\n <button mat-icon-button [matMenuTriggerFor]=\"sizeMenu\"\n [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\"\n [bizdocTooltip]=\"'FontSize'|translate\">\n <mat-icon>format_size</mat-icon>\n </button>\n <mat-menu #sizeMenu overlayPanelClass=\"icon-menu-panel\">\n @for (size of fontSizes; track size) {\n <button mat-menu-item (click)=\"fontSizeChange(size)\">\n {{size}}\n </button>\n }\n </mat-menu>\n <span class=\"divider\"></span>\n</mat-toolbar>\n<div class=\"row container\">\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\n <div dir=\"ltr\" #symbolPaletteEl>\n </div>\n </div>\n <div #diagramEl id=\"diagram\" class=\"flex\" dir=\"ltr\">\n </div>\n</div>\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;flex-grow:1;height:100%}.container{-webkit-flex-grow:1;flex-grow:1;overflow-y:auto}#diagram{-webkit-flex-grow:1;flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .mat-mdc-menu-panel{min-width:0!important}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
14375
14409
  }], ctorParameters: () => [{ type: PromptService }, { type: SystemService }, { type: PaneRef }, { type: PanesRouter }, { type: SessionService }, { type: TranslateService }], propDecorators: { symbolPaletteEl: [{
14376
14410
  type: ViewChild,
14377
14411
  args: ['symbolPaletteEl', { static: true }]
@@ -15582,11 +15616,11 @@ class TraceViewComponent extends TraceBase {
15582
15616
  this.versionSelected.emit(log.time);
15583
15617
  }
15584
15618
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TraceViewComponent, deps: [{ token: SessionService }, { token: TranslateService }, { token: AccountService }, { token: ChatInfo }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
15585
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-mdc-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i9$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i9$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
15619
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span>&nbsp;{{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
15586
15620
  }
15587
15621
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TraceViewComponent, decorators: [{
15588
15622
  type: Component,
15589
- args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n <tr class=\"mat-mdc-row\" *ngFor=\"let l of data\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n <span *ngIf=l.role>{{'JoinComma'|translate}}{{l.role}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <ng-container [ngSwitch]=\"l.type\">\r\n <ng-container *ngSwitchCase=\"'ActionTaken'\">\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n </ng-container>\r\n <span *ngSwitchCase=\"'Submit'\">{{'Issued' | translate}}</span>\r\n <span *ngSwitchCase=\"'Pending'\">{{'IsPending' | translate}}</span>\r\n <span *ngSwitchCase=\"'CheckOut'\">{{'CheckedIn' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'CheckIn'\">{{'CheckedOut' | translate : l.fileName}}</span>\r\n <span *ngSwitchCase=\"'Estimate'\">{{'Estimate' | translate}}</span>\r\n <span *ngSwitchCase=\"'ModelChange'\">{{'Changed' | translate}}</span>\r\n </ng-container>\r\n <span *ngIf=\"l.fyi\">&nbsp;{{'FYI'|translate}}</span>\r\n </td>\r\n <td class=\"mat-mdc-cell\" [ngSwitch]=\"l.estimate\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <span *ngIf=\"l.durationMax && l.durationMax === l.durationMin\" [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n <span *ngIf=\"l.durationMax && l.durationMax !== l.durationMin\"\r\n [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n <span *ngIf=\"l.duration\" [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>\r\n </ng-container>\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n <span *ngIf=\"l.note\">{{l.note}}</span>\r\n <button mat-icon-button *ngIf=\"l.type==='ModelChange'\" (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
15623
+ args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span>&nbsp;{{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\">&nbsp;({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
15590
15624
  }], ctorParameters: () => [{ type: SessionService }, { type: TranslateService }, { type: AccountService }, { type: ChatInfo }, { type: HubService }], propDecorators: { model: [{
15591
15625
  type: Input
15592
15626
  }], versionSelected: [{
@@ -15865,7 +15899,7 @@ class ScheduleViewComponent {
15865
15899
  };
15866
15900
  this._currentView = localStorage.getItem('scheduleView') || 'WorkWeek';
15867
15901
  this.holidays = session.profile.holidays &&
15868
- session.profile.holidays.map(h => ({ from: h.startDate, to: h.fromDate, label: h.title }));
15902
+ session.profile.holidays.map(h => ({ from: h.fromDate, to: h.toDate, label: h.title }));
15869
15903
  }
15870
15904
  ngOnChanges(_changes) {
15871
15905
  this._populate();
@@ -20770,11 +20804,11 @@ class CopyDialog {
20770
20804
  this._subscription.unsubscribe();
20771
20805
  }
20772
20806
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CopyDialog, deps: [{ token: MailboxService }, { token: i2$6.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
20773
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: CopyDialog, selector: "bizdoc-copy", ngImport: i0, template: "<h2 mat-dialog-title>{{'Copy' | translate}}</h2>\n<mat-dialog-content>\n <form>\n <mat-form-field>\n <input matInput type=\"search\" [matAutocomplete]=\"index\" placeholder=\"{{'Number' | translate}}\" [formControl]=\"search\" required />\n <mat-icon matSuffix>search</mat-icon>\n <!--<button mat-button *ngIf=\"search.value\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>-->\n <mat-autocomplete #index=\"matAutocomplete\" [displayWith]=\"display\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"select($event)\">\n @for (m of results$ | async; track m) {\n <mat-option [value]=\"m\">\n <span>{{m.number}} | {{m.subject}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!selectedItem\" [mat-dialog-close]=\"selectedItem\" color=\"primary\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n</mat-dialog-actions>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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$3.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
20807
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: CopyDialog, selector: "bizdoc-copy", ngImport: i0, template: "<h2 mat-dialog-title>{{'Copy' | translate}}</h2>\n<mat-dialog-content>\n <form>\n <mat-form-field>\n <input matInput type=\"search\" [matAutocomplete]=\"index\" placeholder=\"{{'Number' | translate}}\" [formControl]=\"search\" required />\n <mat-icon matSuffix>search</mat-icon>\n <!--@if(search.value){<button mat-button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>}-->\n <mat-autocomplete #index=\"matAutocomplete\" [displayWith]=\"display\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"select($event)\">\n @for (m of results$ | async; track m) {\n <mat-option [value]=\"m\">\n <span>{{m.number}} | {{m.subject}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!selectedItem\" [mat-dialog-close]=\"selectedItem\" color=\"primary\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n</mat-dialog-actions>\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2$6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2$6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2$6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { 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$3.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9$1.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
20774
20808
  }
20775
20809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CopyDialog, decorators: [{
20776
20810
  type: Component,
20777
- args: [{ selector: 'bizdoc-copy', template: "<h2 mat-dialog-title>{{'Copy' | translate}}</h2>\n<mat-dialog-content>\n <form>\n <mat-form-field>\n <input matInput type=\"search\" [matAutocomplete]=\"index\" placeholder=\"{{'Number' | translate}}\" [formControl]=\"search\" required />\n <mat-icon matSuffix>search</mat-icon>\n <!--<button mat-button *ngIf=\"search.value\" matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>-->\n <mat-autocomplete #index=\"matAutocomplete\" [displayWith]=\"display\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"select($event)\">\n @for (m of results$ | async; track m) {\n <mat-option [value]=\"m\">\n <span>{{m.number}} | {{m.subject}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!selectedItem\" [mat-dialog-close]=\"selectedItem\" color=\"primary\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n</mat-dialog-actions>\n" }]
20811
+ args: [{ selector: 'bizdoc-copy', template: "<h2 mat-dialog-title>{{'Copy' | translate}}</h2>\n<mat-dialog-content>\n <form>\n <mat-form-field>\n <input matInput type=\"search\" [matAutocomplete]=\"index\" placeholder=\"{{'Number' | translate}}\" [formControl]=\"search\" required />\n <mat-icon matSuffix>search</mat-icon>\n <!--@if(search.value){<button mat-button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"search.setValue('')\">\n <mat-icon>close</mat-icon>\n </button>}-->\n <mat-autocomplete #index=\"matAutocomplete\" [displayWith]=\"display\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"select($event)\">\n @for (m of results$ | async; track m) {\n <mat-option [value]=\"m\">\n <span>{{m.number}} | {{m.subject}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n </mat-form-field>\n</form>\n</mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button type=\"submit\" [disabled]=\"!selectedItem\" [mat-dialog-close]=\"selectedItem\" color=\"primary\">{{'OK' | translate}}</button>\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\n</mat-dialog-actions>\n" }]
20778
20812
  }], ctorParameters: () => [{ type: MailboxService }, { type: i2$6.MatDialogRef }] });
20779
20813
 
20780
20814
  /** form selector component */
@@ -23162,14 +23196,14 @@ let YesNoField = class YesNoField {
23162
23196
  this.required && this.control.addValidators(Validators.requiredTrue);
23163
23197
  }
23164
23198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: YesNoField, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23165
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: YesNoField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\n <div>\n <!-- <mat-label *ngIf=label>{{label|localizedString}}</mat-label>-->\n @if (hint) {\n <mat-hint> {{ hint |localizedString}}</mat-hint>\n }\n <mat-radio-group [formControl]=control>\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\n </mat-radio-group>\n @if (control.hasError('requiredTrue')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\n }\n </div>\n} @else {\n {{(control.value?'Yes':'No')|translate}}\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$a.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$a.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: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
23199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: YesNoField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], ngImport: i0, template: "@if (mode==='compose') {\n <div>\n <!-- @if (label)<mat-label>{{label|localizedString}}</mat-label>}-->\n @if (hint) {\n <mat-hint> {{ hint |localizedString}}</mat-hint>\n }\n <mat-radio-group [formControl]=control>\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\n </mat-radio-group>\n @if (control.hasError('requiredTrue')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\n }\n </div>\n} @else {\n {{(control.value?'Yes':'No')|translate}}\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$a.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$a.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: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
23166
23200
  };
23167
23201
  YesNoField = __decorate([
23168
23202
  BizDoc({ selector: 'yesno-control' })
23169
23203
  ], YesNoField);
23170
23204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: YesNoField, decorators: [{
23171
23205
  type: Component,
23172
- args: [{ host: { class: 'field' }, template: "@if (mode==='compose') {\n <div>\n <!-- <mat-label *ngIf=label>{{label|localizedString}}</mat-label>-->\n @if (hint) {\n <mat-hint> {{ hint |localizedString}}</mat-hint>\n }\n <mat-radio-group [formControl]=control>\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\n </mat-radio-group>\n @if (control.hasError('requiredTrue')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\n }\n </div>\n} @else {\n {{(control.value?'Yes':'No')|translate}}\n}\n" }]
23206
+ args: [{ host: { class: 'field' }, template: "@if (mode==='compose') {\n <div>\n <!-- @if (label)<mat-label>{{label|localizedString}}</mat-label>}-->\n @if (hint) {\n <mat-hint> {{ hint |localizedString}}</mat-hint>\n }\n <mat-radio-group [formControl]=control>\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\n </mat-radio-group>\n @if (control.hasError('requiredTrue')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\n }\n </div>\n} @else {\n {{(control.value?'Yes':'No')|translate}}\n}\n" }]
23173
23207
  }], propDecorators: { input: [{
23174
23208
  type: ViewChild,
23175
23209
  args: [MatRadioButton]
@@ -27858,8 +27892,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
27858
27892
 
27859
27893
  let TimelineViewComponent = class TimelineViewComponent {
27860
27894
  /** timeline-view ctor */
27861
- constructor(_ps, viewRef, config, _users, _session, _translate, _router, _element) {
27862
- this._ps = _ps;
27895
+ constructor(viewRef, config, _users, _session, _translate, _router, _element) {
27863
27896
  this._users = _users;
27864
27897
  this._session = _session;
27865
27898
  this._translate = _translate;
@@ -27908,7 +27941,7 @@ let TimelineViewComponent = class TimelineViewComponent {
27908
27941
  ];
27909
27942
  this.dateFormat = config && config.formats && config.formats.dateTime || 'MMMM d, yyyy hh:mm';
27910
27943
  this.holidays = _session.profile.holidays &&
27911
- _session.profile.holidays.map(h => ({ from: h.startDate, to: h.fromDate, label: h.title }));
27944
+ _session.profile.holidays.map(h => ({ from: h.fromDate, to: h.toDate, label: h.title }));
27912
27945
  viewRef.resize.subscribe(d => {
27913
27946
  this.width = d.width - 16;
27914
27947
  if (this.gantt) {
@@ -28152,7 +28185,7 @@ let TimelineViewComponent = class TimelineViewComponent {
28152
28185
  _compare(task) {
28153
28186
  this._router.navigate(['mailbox/d', this.model.documentId.encodeId(), 'version', task.time.valueOf().encodeId()], { state: { item: this.model } });
28154
28187
  }
28155
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TimelineViewComponent, deps: [{ token: PromptService }, { token: DocumentViewRef }, { token: BIZDOC_CONFIG }, { token: AccountService }, { token: SessionService }, { token: TranslateService }, { token: RouterImpl }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
28188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TimelineViewComponent, deps: [{ token: DocumentViewRef }, { token: BIZDOC_CONFIG }, { token: AccountService }, { token: SessionService }, { token: TranslateService }, { token: RouterImpl }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
28156
28189
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: TimelineViewComponent, selector: "bizdoc-timeline", host: { attributes: { "id": "doc-timeline" }, properties: { "dir": "this.dir" }, classAttribute: "view" }, providers: [SelectionService$3, DayMarkersService], ngImport: i0, template: '', isInline: true, styles: [":host{padding:8px}:host ::ng-deep .e-split-bar{display:none!important}\n"] }); }
28157
28190
  };
28158
28191
  TimelineViewComponent = __decorate([
@@ -28165,7 +28198,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
28165
28198
  class: 'view',
28166
28199
  id: 'doc-timeline'
28167
28200
  }, providers: [SelectionService$3, DayMarkersService], styles: [":host{padding:8px}:host ::ng-deep .e-split-bar{display:none!important}\n"] }]
28168
- }], ctorParameters: () => [{ type: PromptService }, { type: DocumentViewRef }, { type: undefined, decorators: [{
28201
+ }], ctorParameters: () => [{ type: DocumentViewRef }, { type: undefined, decorators: [{
28169
28202
  type: Inject,
28170
28203
  args: [BIZDOC_CONFIG]
28171
28204
  }] }, { type: AccountService }, { type: SessionService }, { type: TranslateService }, { type: RouterImpl }, { type: i0.ElementRef }], propDecorators: { dir: [{
@@ -29670,7 +29703,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
29670
29703
 
29671
29704
  class SpContainer {
29672
29705
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SpContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29673
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SpContainer, isStandalone: true, selector: "bizdoc-sp-container", ngImport: i0, template: `<ejs-spreadsheet/>`, isInline: true, dependencies: [{ kind: "ngmodule", type: SyncfusionSpreadsheetModule }, { kind: "component", type: i9$3.SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: ["activeSheetIndex", "allowAutoFill", "allowCellFormatting", "allowChart", "allowConditionalFormat", "allowDataValidation", "allowDelete", "allowEditing", "allowFiltering", "allowFindAndReplace", "allowFreezePane", "allowHyperlink", "allowImage", "allowInsert", "allowMerge", "allowNumberFormatting", "allowOpen", "allowResizing", "allowSave", "allowScrolling", "allowSorting", "allowUndoRedo", "allowWrap", "autoFillSettings", "cellStyle", "cssClass", "currencyCode", "definedNames", "enableClipboard", "enableContextMenu", "enableKeyboardNavigation", "enableKeyboardShortcut", "enablePersistence", "enableRtl", "height", "isProtected", "locale", "openUrl", "password", "saveUrl", "scrollSettings", "selectionSettings", "sheets", "showAggregate", "showFormulaBar", "showRibbon", "showSheetTabs", "width"], outputs: ["actionBegin", "actionComplete", "afterHyperlinkClick", "afterHyperlinkCreate", "beforeCellFormat", "beforeCellRender", "beforeCellSave", "beforeCellUpdate", "beforeConditionalFormat", "beforeDataBound", "beforeHyperlinkClick", "beforeHyperlinkCreate", "beforeOpen", "beforeSave", "beforeSelect", "beforeSort", "cellEdit", "cellEditing", "cellSave", "contextMenuBeforeClose", "contextMenuBeforeOpen", "contextMenuItemSelect", "created", "dataBound", "dataSourceChanged", "dialogBeforeOpen", "fileMenuBeforeClose", "fileMenuBeforeOpen", "fileMenuItemSelect", "openComplete", "openFailure", "queryCellInfo", "saveComplete", "select", "sortComplete"] }] }); }
29706
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SpContainer, isStandalone: true, selector: "bizdoc-sp-container", ngImport: i0, template: `<ejs-spreadsheet/>`, isInline: true, dependencies: [{ kind: "ngmodule", type: SyncfusionSpreadsheetModule }, { kind: "component", type: i9$3.SpreadsheetComponent, selector: "ejs-spreadsheet", inputs: ["activeSheetIndex", "allowAutoFill", "allowCellFormatting", "allowChart", "allowConditionalFormat", "allowDataValidation", "allowDelete", "allowEditing", "allowFiltering", "allowFindAndReplace", "allowFreezePane", "allowHyperlink", "allowImage", "allowInsert", "allowMerge", "allowNumberFormatting", "allowOpen", "allowResizing", "allowSave", "allowScrolling", "allowSorting", "allowUndoRedo", "allowWrap", "autoFillSettings", "cellStyle", "cssClass", "currencyCode", "definedNames", "enableClipboard", "enableContextMenu", "enableKeyboardNavigation", "enableKeyboardShortcut", "enablePersistence", "enableRtl", "height", "isProtected", "locale", "openUrl", "password", "saveUrl", "scrollSettings", "selectionSettings", "sheets", "showAggregate", "showFormulaBar", "showRibbon", "showSheetTabs", "width"], outputs: ["actionBegin", "actionComplete", "afterHyperlinkClick", "afterHyperlinkCreate", "beforeCellFormat", "beforeCellRender", "beforeCellSave", "beforeCellUpdate", "beforeConditionalFormat", "beforeDataBound", "beforeHyperlinkClick", "beforeHyperlinkCreate", "beforeOpen", "beforeSave", "beforeSelect", "beforeSort", "cellEdit", "cellEdited", "cellEditing", "cellSave", "contextMenuBeforeClose", "contextMenuBeforeOpen", "contextMenuItemSelect", "created", "dataBound", "dataSourceChanged", "dialogBeforeOpen", "fileMenuBeforeClose", "fileMenuBeforeOpen", "fileMenuItemSelect", "openComplete", "openFailure", "queryCellInfo", "saveComplete", "select", "sortComplete"] }] }); }
29674
29707
  }
29675
29708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SpContainer, decorators: [{
29676
29709
  type: Component,
@@ -29740,7 +29773,7 @@ class SharedModule {
29740
29773
  JoinPipe,
29741
29774
  TypeValuePipe,
29742
29775
  L18nPipe, TranslatePipe, IdentityName, SanitizeHtmlPipe,
29743
- StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, UserNamePipe,
29776
+ StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, JsonPipe, UserNamePipe,
29744
29777
  TaggingPipe,
29745
29778
  TypeSelect, TypeAutocomplete, Signature,
29746
29779
  AceInput, TimespanInput, AddressInput,
@@ -29846,7 +29879,7 @@ class SharedModule {
29846
29879
  DateRangePipe,
29847
29880
  TypeValuePipe,
29848
29881
  JoinPipe,
29849
- StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, UserNamePipe, SanitizeHtmlPipe,
29882
+ StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, JsonPipe, ArraySortPipe, UserNamePipe, SanitizeHtmlPipe,
29850
29883
  L18nPipe, TranslatePipe, IdentityName,
29851
29884
  AvatarComponent, ReportArgumentsComponent,
29852
29885
  AttachmentPreview,
@@ -29920,7 +29953,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
29920
29953
  JoinPipe,
29921
29954
  TypeValuePipe,
29922
29955
  L18nPipe, TranslatePipe, IdentityName, SanitizeHtmlPipe,
29923
- StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, UserNamePipe,
29956
+ StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, JsonPipe, UserNamePipe,
29924
29957
  TaggingPipe,
29925
29958
  TypeSelect, TypeAutocomplete, Signature,
29926
29959
  AceInput, TimespanInput, AddressInput,
@@ -30047,7 +30080,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
30047
30080
  DateRangePipe,
30048
30081
  TypeValuePipe,
30049
30082
  JoinPipe,
30050
- StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, ArraySortPipe, UserNamePipe, SanitizeHtmlPipe,
30083
+ StatePipe, ActionPipe, RolePipe, FormPipe, FilterPipe, JsonPipe, ArraySortPipe, UserNamePipe, SanitizeHtmlPipe,
30051
30084
  L18nPipe, TranslatePipe, IdentityName,
30052
30085
  AvatarComponent, ReportArgumentsComponent,
30053
30086
  AttachmentPreview,
@@ -32833,11 +32866,11 @@ class IconPickerComponent {
32833
32866
  this.close();
32834
32867
  }
32835
32868
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IconPickerComponent, deps: [{ token: i1$1.NgControl, optional: true, self: true }, { token: i1$2.Overlay }, { token: i1.HttpClient }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i1$3.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
32836
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: { value: "value", required: "required", disabled: "disabled" }, outputs: { valueChanges: "valueChanges" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--; trackBy: _trackBy-->\n <!--<div *cdkVirtualFor=\"let c of categories; trackBy: _trackBy\">\n <mat-icon *ngFor=\"let i of c.items; trackBy: _trackBy\" (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"], dependencies: [{ kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5$4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5$4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
32869
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: { value: "value", required: "required", disabled: "disabled" }, outputs: { valueChanges: "valueChanges" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, viewQueries: [{ propertyName: "panel", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i.name) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--<div *cdkVirtualFor=\"let c of categories; track: _trackBy\">\n @for(i of c.items; track: _trackBy)){<mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>}\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"], dependencies: [{ kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5$4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i5$4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
32837
32870
  }
32838
32871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IconPickerComponent, decorators: [{
32839
32872
  type: Component,
32840
- args: [{ selector: 'bizdoc-icon-picker', template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--; trackBy: _trackBy-->\n <!--<div *cdkVirtualFor=\"let c of categories; trackBy: _trackBy\">\n <mat-icon *ngFor=\"let i of c.items; trackBy: _trackBy\" (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"] }]
32873
+ args: [{ selector: 'bizdoc-icon-picker', template: "<button mat-button (click)=\"open()\" [disabled]=\"disabled\" type=\"button\">\n <mat-icon>{{value}}</mat-icon>\n <mat-icon>arrow_drop_down</mat-icon>\n</button>\n<ng-template>\n <div class=\"icon-palette\">\n <input matInput [formControl]=\"filter\" (keydown.escape)=\"_clear()\" autocomplete=\"off\"/>\n <cdk-virtual-scroll-viewport itemSize=\"100\" class=\"categories\" templateCacheSize=\"0\">\n @for (i of items; track i.name) {\n <mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>\n }\n <!--<div *cdkVirtualFor=\"let c of categories; track: _trackBy\">\n @for(i of c.items; track: _trackBy)){<mat-icon (click)=\"_pick(i)\">{{i.name}}</mat-icon>}\n </div>-->\n </cdk-virtual-scroll-viewport>\n</div>\n</ng-template>\n", styles: [".icon-palette{max-height:400px;overflow-y:auto;max-width:450px}.categories{height:300px;width:300px}\n"] }]
32841
32874
  }], ctorParameters: () => [{ type: i1$1.NgControl, decorators: [{
32842
32875
  type: Optional
32843
32876
  }, {
@@ -32919,8 +32952,6 @@ class DesignerItemComponent {
32919
32952
  this._ref = _ref;
32920
32953
  this._cfr = _cfr;
32921
32954
  this.SVG = FAMILY_SVG;
32922
- this.onContinue = new EventEmitter();
32923
- this.onViewClosed = new EventEmitter();
32924
32955
  this.onSave = new EventEmitter();
32925
32956
  this._destroy = new Subject();
32926
32957
  this.mode = _ref.mode;
@@ -32928,62 +32959,54 @@ class DesignerItemComponent {
32928
32959
  }
32929
32960
  ngOnChanges(changes) {
32930
32961
  if (changes['context'] && changes['context'].currentValue)
32931
- this.view = this.customContents.find(v => v.name == changes['context'].currentValue.name).templateRef;
32962
+ this.customView = this.customContents.find(v => v.name == changes['context'].currentValue.name).templateRef;
32932
32963
  }
32933
32964
  resource(image) {
32934
32965
  return this._sanitizer.bypassSecurityTrustResourceUrl(`/assets/system/${image}`);
32935
32966
  }
32967
+ ngOnInit() {
32968
+ if (this.model.template) {
32969
+ const comp = this._cfr.component(this.model.template);
32970
+ this.options = new ComponentPortal(comp);
32971
+ }
32972
+ else if (this.mode !== 'widget' && this.model.arguments?.length)
32973
+ this.arguments = new ComponentPortal(LayoutComponent);
32974
+ else if (this.mode === 'add' && !this.addContent)
32975
+ this.mode = 'edit';
32976
+ if (this.mode === 'add' && this.model.copyOf && !this.addContent)
32977
+ this.mode = 'edit';
32978
+ this.mode === 'edit' && this._commonForm();
32979
+ if (!this.model.template && !this.model.arguments?.length)
32980
+ this._patch();
32981
+ this.model.copyOf && this.form.markAsDirty();
32982
+ }
32983
+ _patch() {
32984
+ this.form.patchValue(this.model, { emitEvent: false });
32985
+ }
32936
32986
  optionsAttached(componentRef) {
32937
32987
  const { instance } = componentRef;
32938
- this._customDesignerInstance = instance;
32988
+ this._elementDesigner = instance;
32939
32989
  instance.model = this.model;
32940
- if (this.mode === 'add' && !instance.onContinue) {
32941
- this.onContinue.emit();
32990
+ if (this.mode === 'add' && !this.addContent && !instance.onContinue) {
32942
32991
  this.mode = 'edit';
32943
- this._form();
32992
+ this._commonForm();
32944
32993
  }
32945
32994
  instance.mode = this.mode;
32946
- if (this.mode !== 'widget') {
32947
- this.form.addControl('options', instance.form, { emitEvent: false });
32948
- instance.form.patchValue(this.model.options, { emitEvent: false });
32949
- }
32950
- this._bind(instance.form);
32995
+ this.mode !== 'widget' && this._bindOptionsForm(instance.form);
32951
32996
  }
32952
- _bind(form) {
32953
- form.statusChanges.pipe(takeUntil(this._destroy)).subscribe(() => {
32954
- this.invalid = form.invalid;
32955
- this.form.markAsDirty();
32956
- });
32957
- this.invalid = form.invalid;
32958
- }
32959
- argumentsattached(componentRef) {
32997
+ argumentsAttached(componentRef) {
32960
32998
  const { instance } = componentRef;
32961
32999
  instance.fields = this.model.arguments;
32962
33000
  instance.model = this.model.options;
32963
33001
  instance.layout();
32964
- if (this.mode !== 'widget') {
32965
- this.form.addControl('options', instance.form, { emitEvent: false });
32966
- this._bind(instance.form);
32967
- }
33002
+ this._bindOptionsForm(instance.form);
32968
33003
  }
32969
- ngOnInit() {
32970
- if (this.mode == 'add') {
32971
- this.form.markAsDirty();
32972
- this.form.patchValue({});
32973
- if (this.model.copyOf)
32974
- this.mode = 'edit';
32975
- }
32976
- if (this.model.template) {
32977
- const comp = this._cfr.component(this.model.template);
32978
- this.options = new ComponentPortal(comp);
32979
- }
32980
- else if (this.mode !== 'widget' && this.model.arguments?.length)
32981
- this.arguments = new ComponentPortal(LayoutComponent);
32982
- else if (this.mode === 'add')
32983
- this.mode = 'edit';
32984
- this.mode === 'edit' && this._form();
33004
+ _bindOptionsForm(form) {
33005
+ // get here more than once, use set not add
33006
+ this.form.setControl('options', form, { emitEvent: false });
33007
+ this._patch();
32985
33008
  }
32986
- _form() {
33009
+ _commonForm() {
32987
33010
  const name = this._fb.control(null, Validators.required), title = this._fb.control(null, Validators.required);
32988
33011
  this.model.resourceType && title.disable();
32989
33012
  if (this.model.draft) {
@@ -33006,7 +33029,6 @@ class DesignerItemComponent {
33006
33029
  rule: null,
33007
33030
  roles: []
33008
33031
  }));
33009
- this.form.patchValue(this.model, { emitEvent: false });
33010
33032
  }
33011
33033
  ngAfterViewInit() {
33012
33034
  (this.mode === 'edit' || (this.mode === 'add' && !this.options)) &&
@@ -33021,28 +33043,26 @@ class DesignerItemComponent {
33021
33043
  this._ref._unlock$.next(false);
33022
33044
  }
33023
33045
  continue() {
33024
- if (this._customDesignerInstance?.onContinue) {
33025
- this._customDesignerInstance.onContinue();
33026
- Object.assign(this.options, this._customDesignerInstance.form.getRawValue());
33027
- }
33028
- this.onContinue.emit();
33029
- if (this._customDesignerInstance)
33030
- this._customDesignerInstance.mode = 'edit';
33046
+ Object.assign(this.model, this.form.value);
33047
+ this._elementDesigner?.onContinue &&
33048
+ this._elementDesigner.onContinue();
33031
33049
  this.mode = 'edit';
33032
- this._form();
33050
+ if (this._elementDesigner)
33051
+ this._elementDesigner.mode = 'edit';
33052
+ this._commonForm();
33053
+ this._patch();
33033
33054
  this.form.markAsTouched();
33034
33055
  }
33035
33056
  save() {
33036
33057
  Object.assign(this.model, this.form.getRawValue());
33037
- this._customDesignerInstance?.onFinish && this._customDesignerInstance.onFinish();
33058
+ this._elementDesigner?.onFinish && this._elementDesigner.onFinish();
33038
33059
  this.onSave.emit(this.model);
33039
33060
  }
33040
33061
  closeView(val) {
33041
- this.view = null;
33062
+ this.customView = null;
33042
33063
  this.context.active = false;
33043
33064
  if (val && this.context.mode === 'add')
33044
33065
  this.context.collection.push(this.context.form);
33045
- this.onViewClosed.emit(val);
33046
33066
  }
33047
33067
  /**
33048
33068
  * Ctrl-s save
@@ -33057,9 +33077,9 @@ class DesignerItemComponent {
33057
33077
  }
33058
33078
  handleViewKeyboardEvent(event) {
33059
33079
  if (event.ctrlKey && (event.key === 's' || event.key === 'S')) {
33080
+ this.context.form.valid && this.closeView(true);
33060
33081
  event.preventDefault();
33061
33082
  event.stopPropagation();
33062
- this.context.form.valid && this.closeView(true);
33063
33083
  }
33064
33084
  else if (event.key === 'Escape') {
33065
33085
  event.preventDefault();
@@ -33072,11 +33092,11 @@ class DesignerItemComponent {
33072
33092
  this._destroy?.complete();
33073
33093
  }
33074
33094
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.FormBuilder }, { token: i2$1.DomSanitizer }, { token: DesignerRef }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
33075
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onContinue: "continue", onViewClosed: "viewClosed", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, 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 @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<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\n}\n<!--edit mode -->\n@case ('edit') {\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)=\"handleViewKeyboardEvent($event)\">\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</form>\n}\n@else {\n<mat-toolbar bizdoc-sticky>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || 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 }\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 <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\n <!--arguments-->\n @if (arguments) {\n <ng-container (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n }\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 <!--options-->\n @if (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 || 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$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.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$1.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: i9.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" }] }); }
33095
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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)=\"handleViewKeyboardEvent($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$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.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$1.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: i9.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" }] }); }
33076
33096
  }
33077
33097
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DesignerItemComponent, decorators: [{
33078
33098
  type: Component,
33079
- args: [{ selector: 'bizdoc-designer-element', template: "@switch (mode) {\n<!--widget mode -->\n@case ('widget') {\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<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\n}\n<!--edit mode -->\n@case ('edit') {\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)=\"handleViewKeyboardEvent($event)\">\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\n</form>\n}\n@else {\n<mat-toolbar bizdoc-sticky>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || 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 }\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 <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\n <!--arguments-->\n @if (arguments) {\n <ng-container (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\n }\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 <!--options-->\n @if (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 || 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"] }]
33099
+ args: [{ selector: 'bizdoc-designer-element', 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)=\"handleViewKeyboardEvent($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"] }]
33080
33100
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$1.FormBuilder }, { type: i2$1.DomSanitizer }, { type: DesignerRef, decorators: [{
33081
33101
  type: Inject,
33082
33102
  args: [DesignerRef]
@@ -33088,18 +33108,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
33088
33108
  type: Input
33089
33109
  }], context: [{
33090
33110
  type: Input
33091
- }], onContinue: [{
33092
- type: Output,
33093
- args: ['continue']
33094
- }], onViewClosed: [{
33095
- type: Output,
33096
- args: ['viewClosed']
33097
33111
  }], onSave: [{
33098
33112
  type: Output,
33099
33113
  args: ['save']
33100
33114
  }], editContent: [{
33101
33115
  type: ContentChild,
33102
33116
  args: [EditContentDirective]
33117
+ }], addContent: [{
33118
+ type: ContentChild,
33119
+ args: [AddContentDirective]
33103
33120
  }], customContents: [{
33104
33121
  type: ContentChildren,
33105
33122
  args: [CustomContentDirective]
@@ -33269,7 +33286,7 @@ class ActionDesignerComponent extends DesignerTypeElementComponent {
33269
33286
  super.ngOnInit();
33270
33287
  }
33271
33288
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ActionDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33272
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$4.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33289
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$4.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" }] }); }
33273
33290
  }
33274
33291
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ActionDesignerComponent, decorators: [{
33275
33292
  type: Component,
@@ -33289,16 +33306,16 @@ class AttributeDesignComponent extends DesignerTypeElementComponent {
33289
33306
  super.ngOnInit();
33290
33307
  }
33291
33308
  onContinue() {
33292
- const { dataType: name } = this.form.value, datatype = this._ref.designer.types.find(t => t.name === name);
33309
+ const { dataType: name } = this.form.value, dataType = this._ref.designer.types.find(t => t.name === name);
33293
33310
  this._ref.model.name = name;
33294
- this._ref.model.title = datatype.title;
33311
+ this._ref.model.title = dataType.title;
33295
33312
  }
33296
33313
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttributeDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33297
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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 @if (form.controls.dataType.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n }\n </mat-form-field>\n </ng-container>\n </ng-template>\n</bizdoc-designer-element>\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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" }] }); }
33298
33315
  }
33299
33316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AttributeDesignComponent, decorators: [{
33300
33317
  type: Component,
33301
- args: [{ 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 @if (form.controls.dataType.hasError('required')) {\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\n }\n </mat-form-field>\n </ng-container>\n </ng-template>\n</bizdoc-designer-element>\n" }]
33318
+ args: [{ 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" }]
33302
33319
  }] });
33303
33320
 
33304
33321
  class ControlDesignComponent extends DesignerTypeElementComponent {
@@ -33312,7 +33329,7 @@ class ControlDesignComponent extends DesignerTypeElementComponent {
33312
33329
  super.ngOnInit();
33313
33330
  }
33314
33331
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ControlDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33315
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$4.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: ["continue", "viewClosed", "save"] }] }); }
33332
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$4.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"] }] }); }
33316
33333
  }
33317
33334
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ControlDesignComponent, decorators: [{
33318
33335
  type: Component,
@@ -33399,8 +33416,6 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
33399
33416
  if (!this.model.privileges)
33400
33417
  this.model.privileges = {};
33401
33418
  }
33402
- complete() {
33403
- }
33404
33419
  nameOf(axis) { return this.model.axes.filter(a => isArray(axis) ? axis.indexOf(a.name) > -1 : a.name === axis).join(', '); }
33405
33420
  newView(model) {
33406
33421
  const name = this._fb.control(model?.name, Validators.required), title = this._fb.control(model?.title, Validators.required), xAxis = this._fb.control(model?.xAxis, Validators.required), chartType = this._fb.control(model?.chartType || null), indicesChartType = this._fb.control(model?.indicesChartType || null), series = this._fb.control(model?.series), indices = this._fb.control(model?.indices), guide = this._fb.control(model?.guide), type = this._fb.control(model?.type || 'Chart');
@@ -33518,11 +33533,11 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
33518
33533
  });
33519
33534
  }
33520
33535
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CubeDesignComponent, deps: [{ token: i1$1.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
33521
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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\" (continue)=\"complete()\" [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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4$2.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$2.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$a.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$a.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$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.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$4.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$1.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: i9.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: ["continue", "viewClosed", "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" }] }); }
33536
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4$2.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$2.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$a.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$a.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$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.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$4.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$1.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: i9.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" }] }); }
33522
33537
  }
33523
33538
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CubeDesignComponent, decorators: [{
33524
33539
  type: Component,
33525
- args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" (continue)=\"complete()\" [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"] }]
33540
+ 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"] }]
33526
33541
  }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: SystemService }, { type: PromptService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
33527
33542
  type: Inject,
33528
33543
  args: [DesignerRef]
@@ -33564,7 +33579,7 @@ class FolderDesignComponent extends DesignerTypeElementComponent {
33564
33579
  this.cube = this.cubes.find(c => c.name === evt.value);
33565
33580
  }
33566
33581
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FolderDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33567
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.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$3.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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$1.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: i9.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33582
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.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$3.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.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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$1.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: i9.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" }] }); }
33568
33583
  }
33569
33584
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FolderDesignComponent, decorators: [{
33570
33585
  type: Component,
@@ -33792,7 +33807,7 @@ class FormDesignComponent extends DesignerTypeElementComponent {
33792
33807
  this._destroy.complete();
33793
33808
  }
33794
33809
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1$1.FormBuilder }, { token: PanesRouter }, { token: SystemService }, { token: SessionService }, { token: i0.Injector }, { token: TranslateService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
33795
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i11$1.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$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33810
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i11$1.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$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.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" }] }); }
33796
33811
  }
33797
33812
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: FormDesignComponent, decorators: [{
33798
33813
  type: Component,
@@ -33833,7 +33848,7 @@ class GuideDesignComponent extends DesignerTypeElementComponent {
33833
33848
  });
33834
33849
  }
33835
33850
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: GuideDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33836
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$4.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$1.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: i9.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33851
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$4.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$1.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: i9.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" }] }); }
33837
33852
  }
33838
33853
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: GuideDesignComponent, decorators: [{
33839
33854
  type: Component,
@@ -33846,7 +33861,7 @@ class NodeDesignerComponent extends DesignerTypeElementComponent {
33846
33861
  this.form = this._fb.group({});
33847
33862
  }
33848
33863
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33849
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: ["continue", "viewClosed", "save"] }] }); }
33864
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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"] }] }); }
33850
33865
  }
33851
33866
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeDesignerComponent, decorators: [{
33852
33867
  type: Component,
@@ -33859,7 +33874,7 @@ class PolicyDesignComponent extends DesignerTypeElementComponent {
33859
33874
  this.form = this._fb.group({});
33860
33875
  }
33861
33876
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PolicyDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33862
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: ["continue", "viewClosed", "save"] }] }); }
33877
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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"] }] }); }
33863
33878
  }
33864
33879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PolicyDesignComponent, decorators: [{
33865
33880
  type: Component,
@@ -33879,7 +33894,7 @@ class ReportDesignerComponent extends DesignerTypeElementComponent {
33879
33894
  super.ngOnInit();
33880
33895
  }
33881
33896
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReportDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33882
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33897
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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" }] }); }
33883
33898
  }
33884
33899
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReportDesignerComponent, decorators: [{
33885
33900
  type: Component,
@@ -33908,7 +33923,7 @@ class RoleDesignComponent extends DesignerTypeElementComponent {
33908
33923
  this.form.controls.dataType.enable({ emitEvent: false });
33909
33924
  }
33910
33925
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RoleDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33911
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.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$1.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33926
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$3.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.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$1.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" }] }); }
33912
33927
  }
33913
33928
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RoleDesignComponent, decorators: [{
33914
33929
  type: Component,
@@ -33921,7 +33936,7 @@ class RuleDesignComponent extends DesignerTypeElementComponent {
33921
33936
  this.form = this._fb.group({});
33922
33937
  }
33923
33938
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RuleDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33924
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: ["continue", "viewClosed", "save"] }] }); }
33939
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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"] }] }); }
33925
33940
  }
33926
33941
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: RuleDesignComponent, decorators: [{
33927
33942
  type: Component,
@@ -33950,7 +33965,7 @@ class StateDesignComponent extends DesignerTypeElementComponent {
33950
33965
  super.ngOnInit();
33951
33966
  }
33952
33967
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StateDesignComponent, deps: [{ token: i1$1.FormBuilder }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
33953
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
33968
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.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" }] }); }
33954
33969
  }
33955
33970
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: StateDesignComponent, decorators: [{
33956
33971
  type: Component,
@@ -33987,7 +34002,10 @@ class TypeDesignComponent extends DesignerTypeElementComponent {
33987
34002
  super.ngOnInit();
33988
34003
  }
33989
34004
  test() {
33990
- this._source.map(this.model.name).subscribe(() => this._ps.toast(this._translate.get('OK')), () => this._ps.error());
34005
+ this._source.map(this.model.name).subscribe({
34006
+ next: () => this._ps.toast(this._translate.get('OK')),
34007
+ error: () => this._ps.error()
34008
+ });
33991
34009
  }
33992
34010
  newPattern(model) {
33993
34011
  const name = this._fb.control(model?.name, Validators.required), title = this._fb.control(model?.title, Validators.required);
@@ -34008,11 +34026,11 @@ class TypeDesignComponent extends DesignerTypeElementComponent {
34008
34026
  });
34009
34027
  }
34010
34028
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TypeDesignComponent, deps: [{ token: i1$1.FormBuilder }, { token: DatasourceService }, { token: TranslateService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
34011
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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 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\n <!--<mat-select-trigger>\n {{group.value.items ? group.value.items[0] : ''}}\n <span *ngIf=\"form.value.items?.length > 1\">\n (+{{form.value.items.length - 1}} {{(form.value.items?.length === 2 ? 'Other' : 'Others')|translate}})\n </span>\n </mat-select-trigger>-->\n <!--<mat-option *ngFor=\"let v of source\" [value]=\"v.key\">\n <span *ngIf=\"!type.columns\">{{v.value}}</span>\n <span *ngIf=\"type.columns\"><span *ngFor=\"let c of type.columns\">{{v.value[c.name]}}</span></span>\n </mat-option>-->\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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.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: 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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34029
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i2$2.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$2.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$2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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$4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.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" }] }); }
34012
34030
  }
34013
34031
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: TypeDesignComponent, decorators: [{
34014
34032
  type: Component,
34015
- args: [{ 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 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\n <!--<mat-select-trigger>\n {{group.value.items ? group.value.items[0] : ''}}\n <span *ngIf=\"form.value.items?.length > 1\">\n (+{{form.value.items.length - 1}} {{(form.value.items?.length === 2 ? 'Other' : 'Others')|translate}})\n </span>\n </mat-select-trigger>-->\n <!--<mat-option *ngFor=\"let v of source\" [value]=\"v.key\">\n <span *ngIf=\"!type.columns\">{{v.value}}</span>\n <span *ngIf=\"type.columns\"><span *ngFor=\"let c of type.columns\">{{v.value[c.name]}}</span></span>\n </mat-option>-->\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" }]
34033
+ args: [{ 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" }]
34016
34034
  }], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: DatasourceService }, { type: TranslateService }, { type: PromptService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
34017
34035
  type: Inject,
34018
34036
  args: [DesignerRef]
@@ -34024,7 +34042,7 @@ class UtilityDesignComponent extends DesignerTypeElementComponent {
34024
34042
  this.form = this._fb.group({});
34025
34043
  }
34026
34044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UtilityDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34027
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: ["continue", "viewClosed", "save"] }] }); }
34045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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"] }] }); }
34028
34046
  }
34029
34047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UtilityDesignComponent, decorators: [{
34030
34048
  type: Component,
@@ -34037,7 +34055,7 @@ class ViewDesignComponent extends DesignerTypeElementComponent {
34037
34055
  this.form = this._fb.group({});
34038
34056
  }
34039
34057
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34040
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: ["continue", "viewClosed", "save"] }] }); }
34058
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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"] }] }); }
34041
34059
  }
34042
34060
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ViewDesignComponent, decorators: [{
34043
34061
  type: Component,
@@ -34057,7 +34075,7 @@ class WidgetDesignComponent extends DesignerTypeElementComponent {
34057
34075
  super.ngOnInit();
34058
34076
  }
34059
34077
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34060
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34078
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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" }] }); }
34061
34079
  }
34062
34080
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: WidgetDesignComponent, decorators: [{
34063
34081
  type: Component,
@@ -34072,13 +34090,14 @@ class SourceDesignComponent extends DesignerTypeElementComponent {
34072
34090
  });
34073
34091
  }
34074
34092
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SourceDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34075
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34093
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.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" }] }); }
34076
34094
  }
34077
34095
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SourceDesignComponent, decorators: [{
34078
34096
  type: Component,
34079
34097
  args: [{ 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" }]
34080
34098
  }] });
34081
34099
 
34100
+ const SEARCH_DEBOUNCE = 200;
34082
34101
  /** */
34083
34102
  let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34084
34103
  constructor(_panes, _fb, _translate, _ps, _session, _element, _injector, _popup, _ref) {
@@ -34107,24 +34126,24 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34107
34126
  this.model = r;
34108
34127
  this.sections = [
34109
34128
  { elements: r.forms, type: 'Forms', comp: FormDesignComponent, templates: r.tForms },
34110
- { elements: r.actions, type: 'Actions', comp: ActionDesignerComponent, templates: r.tActions },
34111
- { elements: r.reports, type: 'Reports', comp: ReportDesignerComponent, templates: r.tReports },
34112
- { elements: r.widgets, type: 'Widgets', comp: WidgetDesignComponent, templates: r.tWidgets },
34113
34129
  { elements: r.views, type: 'Views', comp: ViewDesignComponent, templates: r.tViews },
34114
- { elements: r.guides, type: 'Guides', comp: GuideDesignComponent, templates: [{ title: this._translate.get('Guide') }] },
34130
+ { elements: r.widgets, type: 'Widgets', comp: WidgetDesignComponent, templates: r.tWidgets },
34131
+ { elements: r.reports, type: 'Reports', comp: ReportDesignerComponent, templates: r.tReports },
34132
+ { elements: r.utilities, type: 'Tools', comp: UtilityDesignComponent, templates: r.tUtilities },
34115
34133
  { elements: r.cubes, type: 'Cubes', comp: CubeDesignComponent, templates: r.tCubes },
34116
- //{ elements: r.jobs, type: 'Jobs', comp: JobDesignComponent },
34134
+ { elements: r.types, type: 'Types', comp: TypeDesignComponent, templates: r.tTypes },
34117
34135
  { elements: r.sources, type: 'Sources', comp: SourceDesignComponent },
34136
+ { elements: r.actions, type: 'Actions', comp: ActionDesignerComponent, templates: r.tActions },
34137
+ { elements: r.guides, type: 'Guides', comp: GuideDesignComponent, templates: [{ title: this._translate.get('Guide') }] },
34138
+ //{ elements: r.jobs, type: 'Jobs', comp: JobDesignComponent },
34118
34139
  { elements: r.folders, type: 'Folders', comp: FolderDesignComponent, templates: [{ title: this._translate.get('Folder') }] },
34119
34140
  { elements: r.roles, type: 'Roles', comp: RoleDesignComponent, templates: [{ title: this._translate.get('Role') }] },
34120
34141
  { elements: r.states, type: 'States', comp: StateDesignComponent, templates: [{ title: this._translate.get('State') }] },
34121
- { elements: r.utilities, type: 'Tools', comp: UtilityDesignComponent, templates: r.tUtilities },
34122
- { elements: r.types, type: 'Types', comp: TypeDesignComponent, templates: r.tTypes },
34123
34142
  { elements: r.nodes, type: 'Nodes', comp: NodeDesignerComponent, templates: r.tNodes },
34124
34143
  { elements: r.attributes, type: 'Attributes', comp: AttributeDesignComponent, templates: r.tAttributes },
34125
- { elements: r.policies, type: 'Policies', comp: PolicyDesignComponent, templates: r.tPolicies },
34126
- { elements: r.controls, type: 'Controls', comp: ControlDesignComponent },
34127
34144
  { elements: r.rules, type: 'Rules', comp: RuleDesignComponent, templates: r.tRules },
34145
+ { elements: r.controls, type: 'Controls', comp: ControlDesignComponent },
34146
+ { elements: r.policies, type: 'Policies', comp: PolicyDesignComponent, templates: r.tPolicies },
34128
34147
  ];
34129
34148
  const families = [];
34130
34149
  for (const s of this.sections) {
@@ -34181,10 +34200,10 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34181
34200
  clearSearch() {
34182
34201
  clearTimeout(this._typingTimer);
34183
34202
  this.sections.forEach(s => {
34184
- s.hide = false;
34185
34203
  s.elements.forEach(e => e.hide = false);
34204
+ s.hide = false;
34186
34205
  });
34187
- this.form.setValue({}, { emitEvent: false });
34206
+ this.form.reset({}, { emitEvent: false });
34188
34207
  this.searchBy = 0;
34189
34208
  }
34190
34209
  /**
@@ -34192,7 +34211,7 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34192
34211
  * @param evt
34193
34212
  */
34194
34213
  filter(evt) {
34195
- const subscribe = this.form.valueChanges.pipe(debounceTime$1(150)).
34214
+ const subscribe = this.form.valueChanges.pipe(debounceTime$1(SEARCH_DEBOUNCE)).
34196
34215
  subscribe(e => {
34197
34216
  const { contains, sections, family } = e;
34198
34217
  this.sections.forEach(s => {
@@ -34200,32 +34219,42 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34200
34219
  s.hide = true;
34201
34220
  return;
34202
34221
  }
34203
- let none = true;
34222
+ if (contains &&
34223
+ s.title.toLowerCase().indexOf(contains) > 0 && !family) {
34224
+ s.hide = false;
34225
+ s.elements.
34226
+ forEach(e => e.hide = false);
34227
+ return;
34228
+ }
34229
+ let any = false;
34204
34230
  s.elements.
34205
34231
  forEach(e => {
34206
- if ((!contains || (extractString(e.title) || e.name).toLowerCase().
34207
- indexOf(contains) > -1)
34232
+ if ((!contains || (extractString(e.title) || e.name).toLowerCase().indexOf(contains) > -1)
34208
34233
  && (!family || e.family === family)) {
34209
34234
  e.hide = false;
34210
- none = false;
34235
+ any = true;
34211
34236
  }
34212
34237
  else
34213
34238
  e.hide = true;
34214
34239
  });
34215
- if (none)
34216
- s.hide = (!s.templates || !s.templates.length ||
34217
- !s.templates.find(t => (!contains ||
34218
- t.title.toLowerCase().indexOf(contains) > -1) &&
34219
- (!family || t.family === family)));
34220
- else
34240
+ if (any) {
34221
34241
  s.hide = false;
34242
+ return;
34243
+ }
34244
+ if (!s.templates || (!family && !contains)) {
34245
+ s.hide = true;
34246
+ return;
34247
+ }
34248
+ s.hide = !s.templates.find(t => (!contains ||
34249
+ t.title.toLowerCase().indexOf(contains) > -1) &&
34250
+ (!family || t.family === family));
34222
34251
  });
34223
34252
  this.searchBy += 1;
34224
34253
  });
34225
34254
  const pop = this._popup.open(this.filters, evt.target, {
34226
34255
  data: this.form
34227
34256
  });
34228
- pop.opened().subscribe(() => this.search?.focus());
34257
+ pop.opened().subscribe(() => document.querySelector('.popup-panel input')?.focus());
34229
34258
  pop.
34230
34259
  closed().
34231
34260
  subscribe(subscribe.unsubscribe);
@@ -34251,11 +34280,17 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34251
34280
  this._open(element, section, 'add').then(() => {
34252
34281
  // add to array
34253
34282
  section.elements.splice(position + 1, 0, element);
34254
- // force render on search more
34255
- if (this.searchBy)
34256
- this.searchBy += 1;
34283
+ // force render
34284
+ this.searchBy += 1;
34257
34285
  });
34258
34286
  }
34287
+ /**
34288
+ *
34289
+ * @param element
34290
+ * @param section
34291
+ * @param mode
34292
+ * @returns
34293
+ */
34259
34294
  _open(element, section, mode) {
34260
34295
  let eclone = { ...element };
34261
34296
  delete eclone.injector;
@@ -34267,20 +34302,24 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34267
34302
  group: this._translate.get(section.title),
34268
34303
  //title,
34269
34304
  injector: injector
34270
- }).then(pane => {
34271
- pane.instance.designer.onSave.subscribe(el => {
34272
- if (el) {
34273
- Object.assign(element, el);
34274
- this.dirty = true;
34275
- resolve(el);
34276
- }
34277
- else
34278
- reject();
34279
- pane.close();
34280
- });
34281
- pane.closed().subscribe(() => this._element.nativeElement.focus());
34282
- }));
34305
+ }).then(pane => pane.instance.designer.onSave.subscribe(el => {
34306
+ if (el) {
34307
+ Object.assign(element, el);
34308
+ this.dirty = true;
34309
+ resolve(el);
34310
+ }
34311
+ else
34312
+ reject();
34313
+ pane.close();
34314
+ })));
34283
34315
  }
34316
+ /**
34317
+ *
34318
+ * @param element
34319
+ * @param collection
34320
+ * @param mode
34321
+ * @returns
34322
+ */
34284
34323
  _createInjector(element, collection, mode) {
34285
34324
  const ref = new DesignerRef(this.model, element, collection, mode);
34286
34325
  const injector = Injector.create({
@@ -34376,31 +34415,21 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
34376
34415
  }
34377
34416
  }
34378
34417
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ConfigurationDesignerComponent, deps: [{ token: PanesRouter }, { token: i1$1.FormBuilder }, { token: TranslateService }, { token: PromptService }, { token: SessionService }, { token: i0.ElementRef }, { token: i0.Injector }, { token: Popup }, { token: UtilityRef }], target: i0.ɵɵFactoryTarget.Component }); }
34379
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ConfigurationDesignerComponent, selector: "ng-component", host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "filters", first: true, predicate: ["filters"], descendants: true, read: TemplateRef }, { propertyName: "search", first: true, predicate: ["search"], descendants: true, read: MatInput }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"filter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar [mode]=\"loading ? 'buffer' : 'indeterminate'\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n@if (loading) {\n <bizdoc-none title=\"SettingThingsUp\" subtitle=\"PleaseWait\" icon=\"architecture\"></bizdoc-none>\n}\n<div>\n @for (s of sections | filterBy:'hide': false: searchBy; track s) {\n <section>\n <h2 class=\"mat-h1\">{{s.title}}</h2>\n <!--<hr />-->\n <div class=\"elements\" cdkDropList cdkDropListOrientation=\"horizontal\" [cdkDropListData]=\"s.elements\" (cdkDropListDropped)=\"drop($event)\">\n @for (e of s.elements | filterBy:'hide': false: searchBy; track e) {\n <mat-card [class.disabled]=\"e.disabled\" cdkDrag cdkDragRootElement=\".mat-mdc-card-title\">\n <!-- @item-->\n <mat-card-header>\n <mat-card-title>\n {{e.title|localizedString}}\n <span class=\"divider\"></span>\n @if (e.help) {\n <mat-icon [bizdocTooltip]=\"e.help\" [bizdocTooltipDuration]=\"6000\">help_outline</mat-icon>\n }\n </mat-card-title>\n <mat-card-subtitle>\n {{e.name}}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <ng-container *ngComponentOutlet=\"s.comp; injector: e.injector\"></ng-container>\n </mat-card-content>\n <mat-card-actions class=\"row\">\n @if (!e.copyOf) {\n <button mat-icon-button (click)=\"copy(s, e)\" [bizdocTooltip]=\"'Copy'|translate\"><mat-icon>file_copy</mat-icon></button>\n }\n @if (e.draft || e.empty) {\n <button mat-icon-button (click)=\"remove(s, e)\" [bizdocTooltip]=\"'Discard'|translate\"><mat-icon>delete</mat-icon></button>\n }\n <button mat-icon-button (click)=\"toggleDisabled(e)\" [bizdocTooltip]=\"(e.disabled ? 'Enable' : 'Disable')|translate\"><mat-icon>{{e.disabled ? 'visibility' : 'visibility_off'}}</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"edit(s, e)\" [bizdocTooltip]=\"'Settings'|translate\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n }\n @if (s.templates?.length) {\n <div class=\"add-element\" matRipple (click)=\"add(s, menuTrigger, $event)\">\n <span [matMenuTriggerFor]=\"templateMenu\" #menuTrigger=\"matMenuTrigger\"></span>\n <button mat-icon-button><mat-icon [bizdocTooltip]=\"'New'|translate\" disableRipple=\"true\">add</mat-icon></button>\n <mat-menu #templateMenu>\n @for (t of s.templates; track t) {\n <button mat-menu-item (click)=\"create(s, t)\">\n @if (t.family) {\n <span>\n {{t.family}}\n &nbsp;-&nbsp;\n </span>\n }\n <span>\n {{t.title}}\n </span>\n </button>\n }\n </mat-menu>\n </div>\n }\n </div>\n </section>\n }\n</div>\n<!-- search filters -->\n<ng-template #filters>\n <form autocomplete=\"off\" class=\"column gap\" [formGroup]=\"form\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" #search autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Categories'|translate}}</mat-label>\n <mat-select formControlName=\"sections\" multiple>\n @for (c of sections; track c) {\n <mat-option [value]=\"c.type\">{{c.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if(families.length) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Families'|translate}}</mat-label>\n <mat-select formControlName=\"family\">\n <mat-option>{{'All'|translate}}</mat-option>\n @for (f of families; track f) {\n <mat-option [value]=\"f\">{{f}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </form>\n</ng-template>\n", styles: [":host{outline:none}section h2{margin:10px}section .elements{display:flex;flex-wrap:wrap}section .elements .disabled{opacity:.5;background-color:transparent}section .add-element{border:2px dashed gray;min-width:126px;min-height:126px;border-radius:3px;margin:1px 0 6px;text-align:center}section .add-element button{top:50%;transform:translateY(-50%)}:host ::ng-deep .mat-mdc-card{margin:6px;display:flex;flex-direction:column}:host ::ng-deep .mat-mdc-card button{opacity:.1}:host ::ng-deep .mat-mdc-card:hover button{opacity:1}:host ::ng-deep .mat-mdc-card-header-text{width:100%}:host ::ng-deep .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;align-items:center}.divider{min-width:3px}:host ::ng-deep .mat-mdc-card-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i9$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "directive", type: i2$2.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$2.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: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i11.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i11.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i2$3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [itemAnimation] }); }
34418
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ConfigurationDesignerComponent, selector: "ng-component", host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "filters", first: true, predicate: ["filters"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"filter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar [mode]=\"loading ? 'buffer' : 'indeterminate'\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n@if (loading) {\n <bizdoc-none title=\"SettingThingsUp\" subtitle=\"PleaseWait\" icon=\"architecture\"></bizdoc-none>\n}\n<div>\n @for (s of sections | filterBy:'hide': false: searchBy; track s) {\n <section>\n <h2 class=\"mat-h1\">{{s.title}}</h2>\n <!--<hr />-->\n <div class=\"elements\" cdkDropList cdkDropListOrientation=\"horizontal\" [cdkDropListData]=\"s.elements\" (cdkDropListDropped)=\"drop($event)\">\n @for (e of s.elements | filterBy:'hide': false: searchBy; track e) {\n <mat-card [class.disabled]=\"e.disabled\" cdkDrag cdkDragRootElement=\".mat-mdc-card-title\">\n <!-- @item-->\n <mat-card-header>\n <mat-card-title>\n {{e.title|localizedString}}\n <span class=\"divider\"></span>\n @if (e.help) {\n <mat-icon [bizdocTooltip]=\"e.help\" [bizdocTooltipDuration]=\"6000\">help_outline</mat-icon>\n }\n </mat-card-title>\n <mat-card-subtitle>\n {{e.name}}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <ng-container *ngComponentOutlet=\"s.comp; injector: e.injector\"></ng-container>\n </mat-card-content>\n <mat-card-actions class=\"row\">\n @if (!e.copyOf) {\n <button mat-icon-button (click)=\"copy(s, e)\" [bizdocTooltip]=\"'Copy'|translate\"><mat-icon>file_copy</mat-icon></button>\n }\n @if (e.draft || e.empty) {\n <button mat-icon-button (click)=\"remove(s, e)\" [bizdocTooltip]=\"'Discard'|translate\"><mat-icon>delete</mat-icon></button>\n }\n <button mat-icon-button (click)=\"toggleDisabled(e)\" [bizdocTooltip]=\"(e.disabled ? 'Enable' : 'Disable')|translate\"><mat-icon>{{e.disabled ? 'visibility' : 'visibility_off'}}</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"edit(s, e)\" [bizdocTooltip]=\"'Settings'|translate\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n }\n @if (s.templates?.length) {\n <div class=\"add-element\" matRipple (click)=\"add(s, menuTrigger, $event)\">\n <span [matMenuTriggerFor]=\"templateMenu\" #menuTrigger=\"matMenuTrigger\"></span>\n <button mat-icon-button><mat-icon [bizdocTooltip]=\"'New'|translate\" disableRipple=\"true\">add</mat-icon></button>\n <mat-menu #templateMenu>\n @for (t of s.templates; track t) {\n <button mat-menu-item (click)=\"create(s, t)\">\n @if (t.family) {\n <span>\n {{t.family}}\n &nbsp;-&nbsp;\n </span>\n }\n <span>\n {{t.title}}\n </span>\n </button>\n }\n </mat-menu>\n </div>\n }\n </div>\n </section>\n }\n</div>\n<!-- search filters -->\n<ng-template #filters>\n <form autocomplete=\"off\" class=\"column gap\" [formGroup]=\"form\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Categories'|translate}}</mat-label>\n <mat-select formControlName=\"sections\" multiple>\n @for (c of sections; track c) {\n <mat-option [value]=\"c.type\">{{c.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if(families.length) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Families'|translate}}</mat-label>\n <mat-select formControlName=\"family\">\n <mat-option>{{'All'|translate}}</mat-option>\n @for (f of families; track f) {\n <mat-option [value]=\"f\">{{f}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </form>\n</ng-template>\n", styles: [":host{outline:none}section h2{margin:10px}section .elements{display:flex;flex-wrap:wrap}section .elements .disabled{opacity:.5;background-color:transparent}section .add-element{border:2px dashed gray;min-width:126px;min-height:126px;border-radius:3px;margin:1px 0 6px;text-align:center}section .add-element button{top:50%;transform:translateY(-50%)}:host ::ng-deep .mat-mdc-card{margin:6px;display:flex;flex-direction:column}:host ::ng-deep .mat-mdc-card button{opacity:.1}:host ::ng-deep .mat-mdc-card:hover button{opacity:1}:host ::ng-deep .mat-mdc-card-header-text{width:100%}:host ::ng-deep .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;align-items:center}.divider{min-width:3px}:host ::ng-deep .mat-mdc-card-content{flex:1}\n"], dependencies: [{ kind: "directive", type: i9$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: NoneComponent, selector: "bizdoc-none", inputs: ["title", "subtitle", "icon"] }, { kind: "directive", type: i2$2.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$2.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: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i11.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i11.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i11.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i2$3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.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$1.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: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: FilterPipe, name: "filterBy" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [itemAnimation] }); }
34380
34419
  };
34381
34420
  ConfigurationDesignerComponent = __decorate([
34382
34421
  BizDoc({ selector: 'bizdoc-configuration-designer' })
34383
34422
  ], ConfigurationDesignerComponent);
34384
34423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ConfigurationDesignerComponent, decorators: [{
34385
34424
  type: Component,
34386
- args: [{ animations: [itemAnimation], host: { tabindex: '0' }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"filter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar [mode]=\"loading ? 'buffer' : 'indeterminate'\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n@if (loading) {\n <bizdoc-none title=\"SettingThingsUp\" subtitle=\"PleaseWait\" icon=\"architecture\"></bizdoc-none>\n}\n<div>\n @for (s of sections | filterBy:'hide': false: searchBy; track s) {\n <section>\n <h2 class=\"mat-h1\">{{s.title}}</h2>\n <!--<hr />-->\n <div class=\"elements\" cdkDropList cdkDropListOrientation=\"horizontal\" [cdkDropListData]=\"s.elements\" (cdkDropListDropped)=\"drop($event)\">\n @for (e of s.elements | filterBy:'hide': false: searchBy; track e) {\n <mat-card [class.disabled]=\"e.disabled\" cdkDrag cdkDragRootElement=\".mat-mdc-card-title\">\n <!-- @item-->\n <mat-card-header>\n <mat-card-title>\n {{e.title|localizedString}}\n <span class=\"divider\"></span>\n @if (e.help) {\n <mat-icon [bizdocTooltip]=\"e.help\" [bizdocTooltipDuration]=\"6000\">help_outline</mat-icon>\n }\n </mat-card-title>\n <mat-card-subtitle>\n {{e.name}}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <ng-container *ngComponentOutlet=\"s.comp; injector: e.injector\"></ng-container>\n </mat-card-content>\n <mat-card-actions class=\"row\">\n @if (!e.copyOf) {\n <button mat-icon-button (click)=\"copy(s, e)\" [bizdocTooltip]=\"'Copy'|translate\"><mat-icon>file_copy</mat-icon></button>\n }\n @if (e.draft || e.empty) {\n <button mat-icon-button (click)=\"remove(s, e)\" [bizdocTooltip]=\"'Discard'|translate\"><mat-icon>delete</mat-icon></button>\n }\n <button mat-icon-button (click)=\"toggleDisabled(e)\" [bizdocTooltip]=\"(e.disabled ? 'Enable' : 'Disable')|translate\"><mat-icon>{{e.disabled ? 'visibility' : 'visibility_off'}}</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"edit(s, e)\" [bizdocTooltip]=\"'Settings'|translate\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n }\n @if (s.templates?.length) {\n <div class=\"add-element\" matRipple (click)=\"add(s, menuTrigger, $event)\">\n <span [matMenuTriggerFor]=\"templateMenu\" #menuTrigger=\"matMenuTrigger\"></span>\n <button mat-icon-button><mat-icon [bizdocTooltip]=\"'New'|translate\" disableRipple=\"true\">add</mat-icon></button>\n <mat-menu #templateMenu>\n @for (t of s.templates; track t) {\n <button mat-menu-item (click)=\"create(s, t)\">\n @if (t.family) {\n <span>\n {{t.family}}\n &nbsp;-&nbsp;\n </span>\n }\n <span>\n {{t.title}}\n </span>\n </button>\n }\n </mat-menu>\n </div>\n }\n </div>\n </section>\n }\n</div>\n<!-- search filters -->\n<ng-template #filters>\n <form autocomplete=\"off\" class=\"column gap\" [formGroup]=\"form\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" #search autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Categories'|translate}}</mat-label>\n <mat-select formControlName=\"sections\" multiple>\n @for (c of sections; track c) {\n <mat-option [value]=\"c.type\">{{c.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if(families.length) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Families'|translate}}</mat-label>\n <mat-select formControlName=\"family\">\n <mat-option>{{'All'|translate}}</mat-option>\n @for (f of families; track f) {\n <mat-option [value]=\"f\">{{f}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </form>\n</ng-template>\n", styles: [":host{outline:none}section h2{margin:10px}section .elements{display:flex;flex-wrap:wrap}section .elements .disabled{opacity:.5;background-color:transparent}section .add-element{border:2px dashed gray;min-width:126px;min-height:126px;border-radius:3px;margin:1px 0 6px;text-align:center}section .add-element button{top:50%;transform:translateY(-50%)}:host ::ng-deep .mat-mdc-card{margin:6px;display:flex;flex-direction:column}:host ::ng-deep .mat-mdc-card button{opacity:.1}:host ::ng-deep .mat-mdc-card:hover button{opacity:1}:host ::ng-deep .mat-mdc-card-header-text{width:100%}:host ::ng-deep .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;align-items:center}.divider{min-width:3px}:host ::ng-deep .mat-mdc-card-content{flex:1}\n"] }]
34425
+ args: [{ animations: [itemAnimation], host: { tabindex: '0' }, template: "<mat-toolbar>\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!dirty || loading || saving\" [bizdocTooltip]=\"'Save'|translate\"><mat-icon>save</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"filter($event)\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n</mat-toolbar>\n<mat-progress-bar [mode]=\"loading ? 'buffer' : 'indeterminate'\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\n@if (loading) {\n <bizdoc-none title=\"SettingThingsUp\" subtitle=\"PleaseWait\" icon=\"architecture\"></bizdoc-none>\n}\n<div>\n @for (s of sections | filterBy:'hide': false: searchBy; track s) {\n <section>\n <h2 class=\"mat-h1\">{{s.title}}</h2>\n <!--<hr />-->\n <div class=\"elements\" cdkDropList cdkDropListOrientation=\"horizontal\" [cdkDropListData]=\"s.elements\" (cdkDropListDropped)=\"drop($event)\">\n @for (e of s.elements | filterBy:'hide': false: searchBy; track e) {\n <mat-card [class.disabled]=\"e.disabled\" cdkDrag cdkDragRootElement=\".mat-mdc-card-title\">\n <!-- @item-->\n <mat-card-header>\n <mat-card-title>\n {{e.title|localizedString}}\n <span class=\"divider\"></span>\n @if (e.help) {\n <mat-icon [bizdocTooltip]=\"e.help\" [bizdocTooltipDuration]=\"6000\">help_outline</mat-icon>\n }\n </mat-card-title>\n <mat-card-subtitle>\n {{e.name}}\n </mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <ng-container *ngComponentOutlet=\"s.comp; injector: e.injector\"></ng-container>\n </mat-card-content>\n <mat-card-actions class=\"row\">\n @if (!e.copyOf) {\n <button mat-icon-button (click)=\"copy(s, e)\" [bizdocTooltip]=\"'Copy'|translate\"><mat-icon>file_copy</mat-icon></button>\n }\n @if (e.draft || e.empty) {\n <button mat-icon-button (click)=\"remove(s, e)\" [bizdocTooltip]=\"'Discard'|translate\"><mat-icon>delete</mat-icon></button>\n }\n <button mat-icon-button (click)=\"toggleDisabled(e)\" [bizdocTooltip]=\"(e.disabled ? 'Enable' : 'Disable')|translate\"><mat-icon>{{e.disabled ? 'visibility' : 'visibility_off'}}</mat-icon></button>\n <span class=\"divider\"></span>\n <button mat-icon-button (click)=\"edit(s, e)\" [bizdocTooltip]=\"'Settings'|translate\"><mat-icon>settings</mat-icon></button>\n </mat-card-actions>\n </mat-card>\n }\n @if (s.templates?.length) {\n <div class=\"add-element\" matRipple (click)=\"add(s, menuTrigger, $event)\">\n <span [matMenuTriggerFor]=\"templateMenu\" #menuTrigger=\"matMenuTrigger\"></span>\n <button mat-icon-button><mat-icon [bizdocTooltip]=\"'New'|translate\" disableRipple=\"true\">add</mat-icon></button>\n <mat-menu #templateMenu>\n @for (t of s.templates; track t) {\n <button mat-menu-item (click)=\"create(s, t)\">\n @if (t.family) {\n <span>\n {{t.family}}\n &nbsp;-&nbsp;\n </span>\n }\n <span>\n {{t.title}}\n </span>\n </button>\n }\n </mat-menu>\n </div>\n }\n </div>\n </section>\n }\n</div>\n<!-- search filters -->\n<ng-template #filters>\n <form autocomplete=\"off\" class=\"column gap\" [formGroup]=\"form\">\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Categories'|translate}}</mat-label>\n <mat-select formControlName=\"sections\" multiple>\n @for (c of sections; track c) {\n <mat-option [value]=\"c.type\">{{c.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if(families.length) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{'Families'|translate}}</mat-label>\n <mat-select formControlName=\"family\">\n <mat-option>{{'All'|translate}}</mat-option>\n @for (f of families; track f) {\n <mat-option [value]=\"f\">{{f}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n </form>\n</ng-template>\n", styles: [":host{outline:none}section h2{margin:10px}section .elements{display:flex;flex-wrap:wrap}section .elements .disabled{opacity:.5;background-color:transparent}section .add-element{border:2px dashed gray;min-width:126px;min-height:126px;border-radius:3px;margin:1px 0 6px;text-align:center}section .add-element button{top:50%;transform:translateY(-50%)}:host ::ng-deep .mat-mdc-card{margin:6px;display:flex;flex-direction:column}:host ::ng-deep .mat-mdc-card button{opacity:.1}:host ::ng-deep .mat-mdc-card:hover button{opacity:1}:host ::ng-deep .mat-mdc-card-header-text{width:100%}:host ::ng-deep .mat-mdc-card-title{display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;align-items:center}.divider{min-width:3px}:host ::ng-deep .mat-mdc-card-content{flex:1}\n"] }]
34387
34426
  }], ctorParameters: () => [{ type: PanesRouter }, { type: i1$1.FormBuilder }, { type: TranslateService }, { type: PromptService }, { type: SessionService }, { type: i0.ElementRef }, { type: i0.Injector }, { type: Popup }, { type: UtilityRef }], propDecorators: { filters: [{
34388
34427
  type: ViewChild,
34389
34428
  args: ['filters', { read: TemplateRef }]
34390
- }], search: [{
34391
- type: ViewChild,
34392
- args: ['search', { read: MatInput, }]
34393
34429
  }], handleKeyboardEvent: [{
34394
34430
  type: HostListener,
34395
34431
  args: ['keydown', ['$event']]
34396
34432
  }] } });
34397
- function extractString(str) {
34398
- if (isString(str))
34399
- return str;
34400
- else
34401
- for (var p in str)
34402
- return str[p];
34403
- }
34404
34433
 
34405
34434
  const NAME_PATTERN = /^[A-Za-z]+\w*$/;
34406
34435
 
@@ -34834,14 +34863,14 @@ let ParallelViewDesignComponent = class ParallelViewDesignComponent extends Desi
34834
34863
  });
34835
34864
  }
34836
34865
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ParallelViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34837
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ParallelViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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\" required multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title || x.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value?.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n</ng-container>\n<!--<div>\n <bizdoc-cube-parallel *ngIf=\"options.xAxis\" [cube]=\"options.cube\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [scope]=\"options.scope\"\n [size]=\"250\"></bizdoc-cube-parallel>\n</div>-->\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34866
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ParallelViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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\" required multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title || x.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value?.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n</ng-container>\n<!--@if(options.xAxis){<div>\n <bizdoc-cube-parallel [cube]=\"options.cube\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [scope]=\"options.scope\"\n [size]=\"250\"></bizdoc-cube-parallel>\n</div>}-->\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34838
34867
  };
34839
34868
  ParallelViewDesignComponent = __decorate([
34840
34869
  BizDoc({ selector: 'parallel-view-designer' })
34841
34870
  ], ParallelViewDesignComponent);
34842
34871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ParallelViewDesignComponent, decorators: [{
34843
34872
  type: Component,
34844
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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\" required multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title || x.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value?.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n</ng-container>\n<!--<div>\n <bizdoc-cube-parallel *ngIf=\"options.xAxis\" [cube]=\"options.cube\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [scope]=\"options.scope\"\n [size]=\"250\"></bizdoc-cube-parallel>\n</div>-->\n}\n" }]
34873
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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\" required multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title || x.name}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value!==a.name && form.controls.series.value !== a.name && (!form.controls.filters.value || form.controls.filters.value?.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n</ng-container>\n<!--@if(options.xAxis){<div>\n <bizdoc-cube-parallel [cube]=\"options.cube\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [scope]=\"options.scope\"\n [size]=\"250\"></bizdoc-cube-parallel>\n</div>}-->\n}\n" }]
34845
34874
  }] });
34846
34875
 
34847
34876
  let SumViewDesignComponent = class SumViewDesignComponent extends DesignerCubeElementComponent {
@@ -34858,14 +34887,14 @@ let SumViewDesignComponent = class SumViewDesignComponent extends DesignerCubeEl
34858
34887
  });
34859
34888
  }
34860
34889
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SumViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34861
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SumViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\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</form>\n<div>\n <!--<bizdoc-cube-sum *ngIf=\"options.xAxis\" [xAxis]=\"options.xAxis\"\n [filters]=\"options.filters || {}\"\n [parentAxis]=\"options.series\"\n [scope]=\"options.scope\"\n [periodPolicy]=\"options.periodPolicy\"\n [indices]=\"options.indices\"\n [cube]=\"cube.name\"></bizdoc-cube-sum>-->\n</div>\n}\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34890
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: SumViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\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</form>\n<div>\n <!--@if(options.xAxis) <bizdoc-cube-sum [xAxis]=\"options.xAxis\"\n [filters]=\"options.filters || {}\"\n [parentAxis]=\"options.series\"\n [scope]=\"options.scope\"\n [periodPolicy]=\"options.periodPolicy\"\n [indices]=\"options.indices\"\n [cube]=\"cube.name\"></bizdoc-cube-sum>-->\n</div>\n}\n", dependencies: [{ kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34862
34891
  };
34863
34892
  SumViewDesignComponent = __decorate([
34864
34893
  BizDoc({ selector: 'period-view-designer' })
34865
34894
  ], SumViewDesignComponent);
34866
34895
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SumViewDesignComponent, decorators: [{
34867
34896
  type: Component,
34868
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\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</form>\n<div>\n <!--<bizdoc-cube-sum *ngIf=\"options.xAxis\" [xAxis]=\"options.xAxis\"\n [filters]=\"options.filters || {}\"\n [parentAxis]=\"options.series\"\n [scope]=\"options.scope\"\n [periodPolicy]=\"options.periodPolicy\"\n [indices]=\"options.indices\"\n [cube]=\"cube.name\"></bizdoc-cube-sum>-->\n</div>\n}\n" }]
34897
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required>\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (x of cube.indices; track x) {\n <mat-option [value]=\"x.name\">{{x.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value !== a.name && form.controls.series.value !== a.name) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\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</form>\n<div>\n <!--@if(options.xAxis) <bizdoc-cube-sum [xAxis]=\"options.xAxis\"\n [filters]=\"options.filters || {}\"\n [parentAxis]=\"options.series\"\n [scope]=\"options.scope\"\n [periodPolicy]=\"options.periodPolicy\"\n [indices]=\"options.indices\"\n [cube]=\"cube.name\"></bizdoc-cube-sum>-->\n</div>\n}\n" }]
34869
34898
  }] });
34870
34899
 
34871
34900
  let MatrixViewDesignComponent = class MatrixViewDesignComponent extends DesignerCubeElementComponent {
@@ -34970,14 +34999,14 @@ let ChartViewDesignComponent = class ChartViewDesignComponent extends DesignerCu
34970
34999
  });
34971
35000
  }
34972
35001
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChartViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34973
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ChartViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0 && (!form.controls.series.value || form.controls.series.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\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<!--<button mat-stroked-button (click)=\"showPreview = true\">{{'Preview'|translate}}</button>-->\n<!--<div *ngIf=\"options.xAxis\">\n <ng-container [ngSwitch]=\"isAccum\">\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\n [chartType]=\"options.chartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"\n [cube]=\"selectedCube.name\"\n [filters]=\"options.filters\"\n [xAxis]=\"options.xAxis\"></bizdoc-cube-accum>\n <bizdoc-cube-chart *ngSwitchDefault\n [cube]=\"cube.name\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [indicesChartType]=\"options.indicesChartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"></bizdoc-cube-chart>\n </ng-container>\n</div>-->\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35002
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: ChartViewDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0 && (!form.controls.series.value || form.controls.series.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\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}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
34974
35003
  };
34975
35004
  ChartViewDesignComponent = __decorate([
34976
35005
  BizDoc({ selector: 'analysis-view-designer' })
34977
35006
  ], ChartViewDesignComponent);
34978
35007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ChartViewDesignComponent, decorators: [{
34979
35008
  type: Component,
34980
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0 && (!form.controls.series.value || form.controls.series.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\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<!--<button mat-stroked-button (click)=\"showPreview = true\">{{'Preview'|translate}}</button>-->\n<!--<div *ngIf=\"options.xAxis\">\n <ng-container [ngSwitch]=\"isAccum\">\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\n [chartType]=\"options.chartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"\n [cube]=\"selectedCube.name\"\n [filters]=\"options.filters\"\n [xAxis]=\"options.xAxis\"></bizdoc-cube-accum>\n <bizdoc-cube-chart *ngSwitchDefault\n [cube]=\"cube.name\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [indicesChartType]=\"options.indicesChartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"></bizdoc-cube-chart>\n </ng-container>\n</div>-->\n}\n" }]
35009
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row gap\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n <mat-form-field>\n <mat-label>{{'Aggregate'|translate}}</mat-label>\n <mat-select formControlName=\"aggregate\" multiple>\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value?.indexOf(a.name) < 0 && (!form.controls.series.value || form.controls.series.value.indexOf(a.name) < 0)) {\n <mat-option [value]=\"a.name\">{{a.title }}</mat-option>\n }\n }\n </mat-select>\n <mat-hint></mat-hint>\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}\n" }]
34981
35010
  }] });
34982
35011
 
34983
35012
  let AnalysisWidgetDesignComponent = class AnalysisWidgetDesignComponent extends DesignerCubeElementComponent {
@@ -35004,14 +35033,14 @@ let AnalysisWidgetDesignComponent = class AnalysisWidgetDesignComponent extends
35004
35033
  });
35005
35034
  }
35006
35035
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AnalysisWidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35007
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AnalysisWidgetDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value && form.controls.xAxis.value.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube?.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option>{{'Default'|translate}}</mat-option>\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\n <mat-option>{{'Default'|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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n<!--<div *ngIf=\"options.xAxis\">\n <ng-container [ngSwitch]=\"isAccum\">\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\n [chartType]=\"options.chartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"\n [cube]=\"cube.name\"\n [filters]=\"options.filters\"\n [xAxis]=\"options.xAxis\"></bizdoc-cube-accum>\n <bizdoc-cube-chart *ngSwitchDefault\n [cube]=\"cube.name\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [indicesChartType]=\"options.indicesChartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"></bizdoc-cube-chart>\n </ng-container>\n</div>-->\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35036
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: AnalysisWidgetDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value && form.controls.xAxis.value.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube?.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option>{{'Default'|translate}}</mat-option>\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\n <mat-option>{{'Default'|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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35008
35037
  };
35009
35038
  AnalysisWidgetDesignComponent = __decorate([
35010
35039
  BizDoc({ selector: 'analysis-widget-designer' })
35011
35040
  ], AnalysisWidgetDesignComponent);
35012
35041
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AnalysisWidgetDesignComponent, decorators: [{
35013
35042
  type: Component,
35014
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value && form.controls.xAxis.value.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube?.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option>{{'Default'|translate}}</mat-option>\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\n <mat-option>{{'Default'|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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n<!--<div *ngIf=\"options.xAxis\">\n <ng-container [ngSwitch]=\"isAccum\">\n <bizdoc-cube-accum *ngSwitchCase=\"true\"\n [chartType]=\"options.chartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"\n [cube]=\"cube.name\"\n [filters]=\"options.filters\"\n [xAxis]=\"options.xAxis\"></bizdoc-cube-accum>\n <bizdoc-cube-chart *ngSwitchDefault\n [cube]=\"cube.name\"\n [xAxis]=\"options.xAxis\"\n [series]=\"options.series\"\n [indices]=\"options.indices\"\n [filters]=\"options.filters\"\n [chartType]=\"options.chartType\"\n [indicesChartType]=\"options.indicesChartType\"\n [width]=\"200\"\n [scope]=\"options.scope\"></bizdoc-cube-chart>\n </ng-container>\n</div>-->\n}\n" }]
35043
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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 <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'XAxis'|translate}}</mat-label>\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n <mat-option [value]=\"a.name\">{{a.title }}</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 &nbsp;\n <mat-form-field class=\"flex\">\n <mat-label>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\n @for (a of cube?.axes; track a) {\n @if (form.controls.xAxis.value && form.controls.xAxis.value.indexOf(a.name) < 0) {\n <mat-option [value]=\"a.name\">{{a.title}}</mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (cube?.indices?.length) {\n <mat-form-field>\n <mat-label>{{'Indices'|translate}}</mat-label>\n <mat-select formControlName=\"indices\" multiple>\n @for (i of cube?.indices; track i) {\n <mat-option [value]=\"i.name\">{{i.title }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n }\n <div class=\"row\">\n <mat-form-field class=\"flex\">\n <mat-label>{{'ChartType'|translate}}</mat-label>\n <mat-select formControlName=\"chartType\">\n <mat-option>{{'Default'|translate}}</mat-option>\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Pie'|translate}}</mat-option>\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Doughnut'|translate}}</mat-option>\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'HalfDoughnut'|translate}}</mat-option>\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'Funnel'|translate}}</mat-option>\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value || form.controls.indices.value\">{{'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\">{{'StackingBar'|translate}}</mat-option>\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value\">{{'StackingBar100'|translate}}</mat-option>\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value\">{{'StackingArea'|translate}}</mat-option>\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value\">{{'StackingArea100'|translate}}</mat-option>\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn'|translate}}</mat-option>\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value\">{{'StackingColumn100'|translate}}</mat-option>\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value\">{{'StackingStepArea'|translate}}</mat-option>\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value\">{{'StackingLine'|translate}}</mat-option>\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value\">{{'StackingLine100'|translate}}</mat-option>\n </mat-select>\n </mat-form-field>\n &nbsp;\n @if (cube?.indices?.length) {\n <mat-form-field class=\"flex\">\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\n <mat-select formControlName=\"indicesChartType\">\n <mat-option>{{'Default'|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=\"SplineArea\">{{'SplineArea'|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-select>\n </mat-form-field>\n }\n </div>\n @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35015
35044
  }] });
35016
35045
 
35017
35046
  let ExploreViewDesignComponent = class ExploreViewDesignComponent extends DesignerCubeElementComponent {
@@ -35073,14 +35102,14 @@ let DocumentsReportDesignComponent = class DocumentsReportDesignComponent extend
35073
35102
  });
35074
35103
  }
35075
35104
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentsReportDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35076
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DocumentsReportDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n <ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cube\">\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 *ngIf=\"cube\">\n <mat-label>{{'Group'|translate}}</mat-label>\n <mat-select formControlName=\"group\">\n <mat-option *ngFor=\"let a of cube.axes\" [value]=\"a\">{{a.title|localizedString}}</mat-option>\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}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DocumentsReportDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cube\">\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35077
35106
  };
35078
35107
  DocumentsReportDesignComponent = __decorate([
35079
35108
  BizDoc({ selector: 'documents-report-designer' })
35080
35109
  ], DocumentsReportDesignComponent);
35081
35110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DocumentsReportDesignComponent, decorators: [{
35082
35111
  type: Component,
35083
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n <ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cube\">\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 *ngIf=\"cube\">\n <mat-label>{{'Group'|translate}}</mat-label>\n <mat-select formControlName=\"group\">\n <mat-option *ngFor=\"let a of cube.axes\" [value]=\"a\">{{a.title|localizedString}}</mat-option>\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}\n" }]
35112
+ args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select formControlName=\"cube\">\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35084
35113
  }] });
35085
35114
 
35086
35115
  let PerformanceWidgetDesignComponent = class PerformanceWidgetDesignComponent extends DesignerCubeElementComponent {
@@ -35094,14 +35123,14 @@ let PerformanceWidgetDesignComponent = class PerformanceWidgetDesignComponent ex
35094
35123
  });
35095
35124
  }
35096
35125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PerformanceWidgetDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
35097
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PerformanceWidgetDesignComponent, selector: "ng-component", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35126
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PerformanceWidgetDesignComponent, selector: "bizdoc-performance-widget-designer", host: { classAttribute: "column" }, usesInheritance: true, ngImport: i0, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n", dependencies: [{ kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i2$3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.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: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35098
35127
  };
35099
35128
  PerformanceWidgetDesignComponent = __decorate([
35100
35129
  BizDoc({ selector: 'performance-widget-designer' })
35101
35130
  ], PerformanceWidgetDesignComponent);
35102
35131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PerformanceWidgetDesignComponent, decorators: [{
35103
35132
  type: Component,
35104
- args: [{ host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35133
+ args: [{ selector: 'bizdoc-performance-widget-designer', host: { class: 'column' }, template: "@if (mode !== 'widget') {\n<ng-container [formGroup]=\"form\">\n @if (cubes.length > 1) {\n <mat-form-field>\n <mat-label>{{'Cube'|translate}}</mat-label>\n <mat-select required formControlName=\"cube\" (selectionChange)=\"cubeSelected($event)\">\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>{{'Series'|translate}}</mat-label>\n <mat-select formControlName=\"series\" required>\n @for (x of cube?.axes; track x) {\n <mat-option [value]=\"x.name\">{{x.title||x.name}}</mat-option>\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 @if (cube) {\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\n }\n</ng-container>\n}\n" }]
35105
35134
  }] });
35106
35135
 
35107
35136
  let DocumentsWidgetDesignComponent = class DocumentsWidgetDesignComponent extends DesignerCubeElementComponent {
@@ -35523,7 +35552,7 @@ class JobDesignComponent extends DesignerTypeElementComponent {
35523
35552
  });
35524
35553
  }
35525
35554
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: JobDesignComponent, deps: [{ token: i1$1.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
35526
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: i9.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: ["continue", "viewClosed", "save"] }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
35555
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.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$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.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: i9.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" }] }); }
35527
35556
  }
35528
35557
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: JobDesignComponent, decorators: [{
35529
35558
  type: Component,
@@ -36223,5 +36252,5 @@ function withRoute(routes) {
36223
36252
  * Generated bundle index. Do not edit.
36224
36253
  */
36225
36254
 
36226
- export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
36255
+ export { AccountService, AceInput, ActionDialog, ActionPicker, ActionPipe, ActionRef, ActionsWidget, AddressControlDesigner, AddressInput, AgoPipe, ArraySortPipe, AssignActionComponent, AttachmentInfo, AttachmentPreview, AuthenticationImpl, AutocompleteControlDesigner, AvatarComponent, BIZDOC_CONFIG, BackNavigation, BizDoc, BizDocApp, BizDocComponentFactoryResolver, BizDocModule, BrokenPage, BrowseFilterComponent, BrowseItemsComponent, CalendarPipe, ChatInfo, CheckboxComponent, CheckboxControlDesigner, ChecklistControlDesigner, CollapseNavigation, ColorPicker, CombinationPicker, CombinationPickerBody, CombinationPool, CommentsComponent, CompareContextDirective, CompareGroupDirective, CompareGroupsWidget, CompareNameDirective, ComposeFormComponent, ContactsComponent, ConversationComponent, CubeAccumAnalysisWidget, CubeAccumulationChartComponent, CubeAnalysisWidget, CubeChartAnalysisWidget, CubeChartComponent, CubeDocumentsGridComponent, CubeDocumentsTableComponent, CubeDocumentsWidget, CubeFilterComponent, CubeGridComponent, CubeInfo, CubeItemResolveService, CubeMatrixComponent, CubeParallelComponent, CubePerformanceWidget, CubePivotComponent, CubeService, CubeSpreadsheetComponent, CubeSumComponent, CubeViewComponent, CubeWidgetFilterComponent, DEFAULT_POLICY, DRAFT, DashboardComponent, DatasourceService, DateControlDesigner, DateFormatPipe, DateRangeControlDesigner, DateRangePipe, DesignerCubeFilterComponent, DesignerModule, DesignerRef, DifferencePipe, DocumentInfo, DocumentInfoComponent, DocumentResolveService, DocumentViewRef, DocumentViewsComponent, DurationFormatPipe, DurationPipe, EnterExitLeft, EnterExitRight, EnterExitTop, ExploreDocumentComponent, ExploreItemImplComponent, ExploreItemsComponent, ExpressionFieldDesigner, FONT_FAMILY, FadeSlideInOut, FieldKind, FileControlDesigner, FileInput, FilterPipe, FilterTagsComponent, FlowViewComponent, FormPipe, FormRef, GuideRef, GuideService, HelpTipComponent, HtmlFieldDesigner, INBOX, IdentityName, InputFieldDesigner, JoinPipe, JsonPipe, L18nPipe, LayoutComponent, ListingRef, LocalizedStringComponent, LocalizedStringControlDesigner, LocalizedStringPipe, LottieAnimation, MailboxService, MapInfo, MatIconAnimate, MaterialModule, NavigationBase, NavigationClose, NavigationEnd, NavigationExpand, NavigationFocus, NavigationMode, NavigationPaneBase, NavigationResize, NavigationStart, NodeRef, NoneComponent, NotificationsTableComponent, NumberControlDesigner, OpenPolicy, POPUP_DATA, PaneRef, PanesRouter, ParamNavigation, PeersPerformanceWidget, PendingResultsWidget, PersonalActivityWidget, PersonalScoreWidget, Popup, PopupRef, PrivilegeDisabledDirective, PrivilegeHiddenDirective, PulseAnimation, QueryParamNavigation, QuickCommentComponent, RadioButtonControlDesigner, RecentsWidget, RecipientResolveService, ReportArgumentsComponent, ReportRef, ReportViewerComponent, ReturnActionComponent, RolePipe, RouterImpl, SanitizeHtmlPipe, SaveChangesDialog, ScheduleViewComponent, SearchInput, SelectControlDesigner, SessionService, ShakeAnimation, SharedModule, SignatureControlDesigner, SlotRouterDirective, SpContainer, StateDirective, StatePipe, StickyToolbar, SubstitutionComponent, SwapAnimation, TagsComponent, TagsControlDesigner, TasksComponent, TextAreaFieldDesigner, TimeAgoPipe, TimeControlDesigner, TimePicker, TimespanControlDesigner, TimespanInput, ToNowPipe, TooltipDirective, TraceViewComponent, TranslatePipe, TranslateService, TypeAutocomplete, TypeSelect, TypeValuePipe, UsageChartComponent, UsagePivotComponent, UsageReportArgs, UserNamePipe, UtilityRef, VersionCompareComponent, WidgetItemComponent, WidgetRef, YesNoControlDesigner, cleanup, getMonthList, isArray, isBoolean, isDate, isFunction, isImage, isMobile, isObject, isPrimitive, isPromise, isString, modelize, programName, registerComponents };
36227
36256
  //# sourceMappingURL=bizdoc-core.mjs.map