@bizdoc/core 1.15.4 → 1.15.7

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 (114) hide show
  1. package/assets/bizdoc-schema.json +6 -8
  2. package/assets/system/icons.json +1 -0
  3. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  4. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +2 -2
  5. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +55 -11
  6. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +90 -44
  7. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +12 -18
  8. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -6
  9. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +7 -6
  10. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +8 -11
  11. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +13 -14
  12. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +61 -0
  13. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +47 -29
  14. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +15 -32
  15. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +15 -14
  16. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +16 -17
  17. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +50 -21
  18. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +34 -19
  19. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +41 -9
  20. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +5 -4
  21. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +14 -26
  22. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +5 -4
  23. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +12 -18
  24. package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +3 -4
  25. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +18 -18
  26. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +9 -18
  27. package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +16 -18
  28. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +6 -4
  29. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +15 -19
  30. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +35 -8
  31. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +12 -16
  32. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +13 -12
  33. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +10 -19
  34. package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +162 -0
  35. package/esm2020/lib/admin/configuration-designer/privileges.component.mjs +25 -17
  36. package/esm2020/lib/admin/core/ace.input.mjs +14 -16
  37. package/esm2020/lib/admin/core/color-picker.input.mjs +10 -33
  38. package/esm2020/lib/admin/form/designer/designer.component.mjs +192 -22
  39. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +6 -6
  40. package/esm2020/lib/admin/system.service.mjs +7 -1
  41. package/esm2020/lib/compose/box/box.component.mjs +44 -0
  42. package/esm2020/lib/compose/document.component.mjs +2 -2
  43. package/esm2020/lib/compose/form-ref.mjs +7 -2
  44. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  45. package/esm2020/lib/compose/form.component.mjs +2 -2
  46. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  47. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +2 -2
  48. package/esm2020/lib/core/functions.mjs +14 -2
  49. package/esm2020/lib/core/models.mjs +1 -1
  50. package/esm2020/lib/core/translations.mjs +4 -1
  51. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  52. package/esm2020/lib/cube/matrix/table.component.mjs +1 -1
  53. package/esm2020/lib/dashboard/cube/compare.widget.mjs +1 -1
  54. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +1 -1
  55. package/esm2020/lib/reports/cube/documents.component.mjs +1 -1
  56. package/esm2020/lib/reports/cube/grid-documents.component.mjs +1 -1
  57. package/esm2020/lib/reports/cube/table-documents.component.mjs +1 -1
  58. package/esm2020/lib/reports/cube/usage-base.mjs +1 -1
  59. package/esm2020/lib/shared.module.mjs +7 -7
  60. package/esm2020/lib/system.module.mjs +11 -6
  61. package/esm2020/lib/views/cube/chart.component.mjs +1 -1
  62. package/esm2020/public-api.mjs +1 -2
  63. package/fesm2015/bizdoc-core.mjs +1453 -945
  64. package/fesm2015/bizdoc-core.mjs.map +1 -1
  65. package/fesm2020/bizdoc-core.mjs +1436 -946
  66. package/fesm2020/bizdoc-core.mjs.map +1 -1
  67. package/lib/admin/configuration-designer/designer.base.d.ts +83 -29
  68. package/lib/admin/configuration-designer/designer.component.d.ts +14 -3
  69. package/lib/admin/configuration-designer/elements/action.component.d.ts +2 -13
  70. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +0 -5
  71. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +3 -13
  72. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts +26 -0
  73. package/lib/admin/configuration-designer/elements/cube.component.d.ts +12 -13
  74. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +3 -27
  75. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +3 -2
  76. package/lib/admin/configuration-designer/elements/folder.component.d.ts +2 -12
  77. package/lib/admin/configuration-designer/elements/form.component.d.ts +6 -12
  78. package/lib/admin/configuration-designer/elements/guide.component.d.ts +7 -12
  79. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +7 -1
  80. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +3 -21
  81. package/lib/admin/configuration-designer/elements/report.component.d.ts +2 -15
  82. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts +1 -2
  83. package/lib/admin/configuration-designer/elements/role.component.d.ts +3 -15
  84. package/lib/admin/configuration-designer/elements/rule.component.d.ts +2 -13
  85. package/lib/admin/configuration-designer/elements/state.component.d.ts +2 -14
  86. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +1 -0
  87. package/lib/admin/configuration-designer/elements/type.component.d.ts +2 -15
  88. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +7 -1
  89. package/lib/admin/configuration-designer/elements/utility.component.d.ts +2 -12
  90. package/lib/admin/configuration-designer/elements/view.component.d.ts +5 -10
  91. package/lib/admin/configuration-designer/elements/widget.component.d.ts +2 -13
  92. package/lib/admin/configuration-designer/icon-picker.component.d.ts +67 -0
  93. package/lib/admin/configuration-designer/privileges.component.d.ts +3 -4
  94. package/lib/admin/core/ace.input.d.ts +4 -4
  95. package/lib/admin/core/color-picker.input.d.ts +4 -6
  96. package/lib/admin/form/designer/designer.component.d.ts +68 -20
  97. package/lib/admin/form/workflow/workflow.component.d.ts +2 -2
  98. package/lib/admin/system.service.d.ts +7 -0
  99. package/lib/compose/box/box.component.d.ts +17 -0
  100. package/lib/compose/form-ref.d.ts +6 -2
  101. package/lib/core/models.d.ts +4 -1
  102. package/lib/core/translations.d.ts +3 -0
  103. package/lib/cube/matrix/table.component.d.ts +0 -1
  104. package/lib/dashboard/cube/compare.widget.d.ts +7 -1
  105. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -0
  106. package/lib/reports/cube/documents.component.d.ts +2 -3
  107. package/lib/reports/cube/grid-documents.component.d.ts +2 -2
  108. package/lib/reports/cube/table-documents.component.d.ts +2 -2
  109. package/lib/reports/cube/usage-base.d.ts +2 -1
  110. package/lib/shared.module.d.ts +33 -33
  111. package/lib/system.module.d.ts +62 -59
  112. package/lib/views/cube/chart.component.d.ts +2 -1
  113. package/package.json +1 -1
  114. package/public-api.d.ts +0 -1
@@ -1,30 +1,29 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { Component } from "@angular/core";
3
3
  import { BizDoc } from "../../../core/decorators";
4
- import { DesignerElementComponent } from "../designer.base";
4
+ import { DesignerTypeElementComponent } from "../designer.base";
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "../../../core/session.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "../privileges.component";
10
- let FolderDesignComponent = class FolderDesignComponent extends DesignerElementComponent {
11
- constructor(_fb, _session) {
12
- super();
13
- this._fb = _fb;
14
- this._session = _session;
15
- this.form = this._fb.group({});
16
- }
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@angular/material/form-field";
9
+ import * as i4 from "@angular/material/input";
10
+ import * as i5 from "../icon-picker.component";
11
+ import * as i6 from "../privileges.component";
12
+ import * as i7 from "../../../core/pipes/translate.pipe";
13
+ let FolderDesignComponent = class FolderDesignComponent extends DesignerTypeElementComponent {
17
14
  ngOnInit() {
15
+ this.form.addControl('icon', this._fb.control(this.model.icon), { emitEvent: false });
16
+ super.ngOnInit();
18
17
  }
19
18
  };
20
- FolderDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FolderDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
21
- FolderDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }] });
19
+ FolderDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FolderDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
20
+ FolderDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: FolderDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <div>\r\n <!--<mat-label>{{'Icon'|translate}}</mat-label>-->\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </div>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: i5.IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: i6.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
22
21
  FolderDesignComponent = __decorate([
23
22
  BizDoc({ selector: 'folder-designer' })
24
23
  ], FolderDesignComponent);
25
24
  export { FolderDesignComponent };
26
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FolderDesignComponent, decorators: [{
27
26
  type: Component,
28
- args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n" }]
29
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.SessionService }]; } });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9mb2xkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2ZvbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztJQUkvQyxxQkFBcUIsU0FBckIscUJBQXNCLFNBQVEsd0JBQStCO0lBR3hFLFlBQW9CLEdBQWdCLEVBQVUsUUFBd0I7UUFDcEUsS0FBSyxFQUFFLENBQUE7UUFEVyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFGN0QsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQzlCLENBQUMsQ0FBQztJQUdILENBQUM7SUFDRCxRQUFRO0lBQ1IsQ0FBQztDQUNGLENBQUE7a0hBUlkscUJBQXFCO3NHQUFyQixxQkFBcUIsMkVDUmxDLDBUQVVBO0FERmEscUJBQXFCO0lBRGpDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0dBQzNCLHFCQUFxQixDQVFqQztTQVJZLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUZqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdmb2xkZXIuY29tcG9uZW50Lmh0bWwnIH0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2ZvbGRlci1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEZvbGRlckRlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIE1vZGVsIHtcclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdE1vZGU7IGVsc2UgaW5mb1wiPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDwvZm9ybT5cclxuICAgIDxiaXpkb2MtcHJpdmlsZWdlcyAoY2hhbmdlKT1cImNoYW5nZS5lbWl0KClcIiBbbW9kZWxdPVwibW9kZWwucHJpdmlsZWdlc1wiPjwvYml6ZG9jLXByaXZpbGVnZXM+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz5cclxuICA8ZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
27
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <div>\r\n <!--<mat-label>{{'Icon'|translate}}</mat-label>-->\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </div>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n" }]
28
+ }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9mb2xkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2ZvbGRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7OztJQUluRCxxQkFBcUIsU0FBckIscUJBQXNCLFNBQVEsNEJBQTRCO0lBQ3JFLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0NBQ0YsQ0FBQTtrSEFMWSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwyRUNQbEMsK3pCQXNCQTtBRGZhLHFCQUFxQjtJQURqQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztHQUMzQixxQkFBcUIsQ0FLakM7U0FMWSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFGakMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2ZvbGRlci5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZm9sZGVyLWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgRm9sZGVyRGVzaWduQ29tcG9uZW50IGV4dGVuZHMgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnaWNvbicgYXMgYW55LCB0aGlzLl9mYi5jb250cm9sKHRoaXMubW9kZWwuaWNvbiksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0TW9kZTsgZWxzZSBpbmZvXCI+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxkaXY+XHJcbiAgICAgIDwhLS08bWF0LWxhYmVsPnt7J0ljb24nfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+LS0+XHJcbiAgICAgIDxiaXpkb2MtaWNvbi1waWNrZXIgZm9ybUNvbnRyb2xOYW1lPVwiaWNvblwiIHJlcXVpcmVkPjwvYml6ZG9jLWljb24tcGlja2VyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG4gIDxiaXpkb2MtcHJpdmlsZWdlcyAoY2hhbmdlKT1cImNoYW5nZS5lbWl0KClcIiBbbW9kZWxdPVwibW9kZWwucHJpdmlsZWdlc1wiPjwvYml6ZG9jLXByaXZpbGVnZXM+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz5cclxuICA8ZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,30 +1,31 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component } from "@angular/core";
2
+ import { Component, Inject } from "@angular/core";
3
3
  import { Subject, takeUntil } from "rxjs";
4
4
  import { BizDoc } from "../../../core/decorators";
5
- import { DesignerElementComponent } from "../designer.base";
5
+ import { DesignerTypeElementComponent, DesignerRef } from "../designer.base";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/forms";
8
- import * as i2 from "../../../core/router";
8
+ import * as i2 from "../../../core/slots/router.service";
9
9
  import * as i3 from "../../system.service";
10
10
  import * as i4 from "../../../core/session.service";
11
11
  import * as i5 from "@angular/common";
12
12
  import * as i6 from "@syncfusion/ej2-angular-charts";
13
- import * as i7 from "@angular/material/button";
14
- import * as i8 from "@angular/material/icon";
15
- import * as i9 from "../../../core/popup/tooltip.directive";
16
- import * as i10 from "../privileges.component";
17
- import * as i11 from "../../../core/pipes/translate.pipe";
18
- let FormDesignComponent = class FormDesignComponent extends DesignerElementComponent {
19
- constructor(_fb, _router, _service, _session) {
20
- super();
21
- this._fb = _fb;
13
+ import * as i7 from "@angular/material/form-field";
14
+ import * as i8 from "@angular/material/button";
15
+ import * as i9 from "@angular/material/input";
16
+ import * as i10 from "@angular/material/icon";
17
+ import * as i11 from "../../../core/popup/tooltip.directive";
18
+ import * as i12 from "../icon-picker.component";
19
+ import * as i13 from "../privileges.component";
20
+ import * as i14 from "../../../core/pipes/translate.pipe";
21
+ import * as i15 from "../designer.base";
22
+ let FormDesignComponent = class FormDesignComponent extends DesignerTypeElementComponent {
23
+ constructor(fb, _router, _service, _session, ref) {
24
+ super(fb, ref);
22
25
  this._router = _router;
23
26
  this._service = _service;
24
27
  this._session = _session;
25
- this.form = this._fb.group({
26
- rules: this._fb.array([])
27
- });
28
+ this.rules = this._fb.array([]);
28
29
  this.theme = this._session.theme.dark ? 'MaterialDark' : 'Material';
29
30
  this.axisSettings = {
30
31
  lineSettings: {},
@@ -51,10 +52,32 @@ let FormDesignComponent = class FormDesignComponent extends DesignerElementCompo
51
52
  });
52
53
  }
53
54
  ngOnInit() {
55
+ this.form.addControl('rules', this._fb.control(null), { emitEvent: false });
56
+ this.form.addControl('icon', this._fb.control(this.model.icon), { emitEvent: false });
57
+ this.form.addControl('_rules', this.rules, { emitEvent: false });
54
58
  if (!this.model.privileges)
55
59
  this.model.privileges = {};
56
60
  this._service.range(this.model.name).subscribe(r => this.usage = r);
57
- this.rules = Object.keys(this.model.rules).map(r => { });
61
+ this.model.rules && this.rules.setValue(Object.keys(this.model.rules).
62
+ map(r => {
63
+ const rule = this.model.rules[r];
64
+ return {
65
+ name: r,
66
+ value: rule.roles || [],
67
+ rule: rule.rule,
68
+ title: rule.title
69
+ };
70
+ }));
71
+ this.rules.valueChanges.pipe().subscribe(v => {
72
+ const rules = {};
73
+ v.forEach((r) => rules[r.name] = {
74
+ title: r.title,
75
+ roles: r.roles,
76
+ rule: r.rule,
77
+ });
78
+ this.form.get('rules').setValue(rules);
79
+ });
80
+ super.ngOnInit();
58
81
  }
59
82
  _formrule(name, permission) {
60
83
  return this._fb.group({
@@ -65,19 +88,25 @@ let FormDesignComponent = class FormDesignComponent extends DesignerElementCompo
65
88
  diagram() {
66
89
  this._router.navigate(['admin/forms', this.model.name]);
67
90
  }
91
+ design() {
92
+ this._router.navigate(['admin/utilities/form-designer'], { queryParams: { formId: this.model.name } });
93
+ }
68
94
  ngOnDestroy() {
69
95
  this._destroy.next();
70
96
  this._destroy.complete();
71
97
  }
72
98
  };
73
- FormDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RouterImpl }, { token: i3.SystemService }, { token: i4.SessionService }], target: i0.ɵɵFactoryTarget.Component });
74
- FormDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <!--\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n -->\r\n\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Route'|translate\"><mat-icon>schema</mat-icon></button>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6.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: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i10.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }] });
99
+ FormDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FormDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.PanesRouter }, { token: i3.SystemService }, { token: i4.SessionService }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
100
+ FormDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: FormDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <div>\r\n <!--<mat-label>{{'Icon'|translate}}</mat-label>-->\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </div>\r\n </form>\r\n <bizdoc-layout *ngIf=\"model.arguments\" [fields]=\"model.arguments\" [model]=\"args\" (modelChange)=\"assignargs($event)\"></bizdoc-layout>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <!--\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n -->\r\n\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"design()\" [bizdocTooltip]=\"'Designer'|translate\" [disabled]=\"model.draft\" *ngIf=\"model.type==='BizDoc.Configuration.Forms.Box'\"><mat-icon>design_services</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.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: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i12.IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "component", type: i13.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
75
101
  FormDesignComponent = __decorate([
76
102
  BizDoc({ selector: 'form-designer' })
77
103
  ], FormDesignComponent);
78
104
  export { FormDesignComponent };
79
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: FormDesignComponent, decorators: [{
80
106
  type: Component,
81
- args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <!--\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n -->\r\n\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Route'|translate\"><mat-icon>schema</mat-icon></button>\r\n</ng-template>\r\n" }]
82
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.RouterImpl }, { type: i3.SystemService }, { type: i4.SessionService }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFJbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFtQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7Ozs7O0lBSWhFLG1CQUFtQixTQUFuQixtQkFBb0IsU0FBUSx3QkFBK0I7SUEwQnRFLFlBQW9CLEdBQWdCLEVBQzFCLE9BQW1CLEVBQ25CLFFBQXVCLEVBQ3ZCLFFBQXdCO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBSlUsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUE1QnpCLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQzFCLENBQUMsQ0FBQztRQUNILFVBQUssR0FBZ0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUNuRixpQkFBWSxHQUFHO1lBQ3RCLFlBQVksRUFBRSxFQUNRO1NBQ0YsQ0FBQztRQUNkLG1CQUFjLEdBQUc7WUFDeEIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2hCLElBQUksRUFBRSxHQUFHO1lBQ1QsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1NBQ0EsQ0FBQztRQUN6QixvQkFBZSxHQUFHO1lBQ3pCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsTUFBTSxFQUFFLFNBQVM7WUFDakIsaUJBQWlCLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJO2FBQ2Q7U0FDK0IsQ0FBQztRQUVuQyxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDMUIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ08sU0FBUyxDQUFDLElBQVksRUFBRSxVQUEyQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3BCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YsQ0FBQTtnSEF4RFksbUJBQW1CO29HQUFuQixtQkFBbUIsMkVDWmhDLG9rQ0EyQkE7QURmYSxtQkFBbUI7SUFEL0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxDQUFDO0dBQ3pCLG1CQUFtQixDQXdEL0I7U0F4RFksbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRi9CLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEF4aXNTZXR0aW5nc01vZGVsLCBJUG9pbnRSZWdpb25FdmVudEFyZ3MsIExpbmVTZXR0aW5nc01vZGVsLCBTcGFya2xpbmVNYXJrZXJTZXR0aW5nc01vZGVsLCBTcGFya2xpbmVUb29sdGlwU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVHlwZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlLCBSYW5nZUluZm8gfSBmcm9tIFwiLi4vLi4vc3lzdGVtLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50LCBQZXJtaXNzaW9uTW9kZWwgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnZm9ybS5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZm9ybS1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8TW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgcnVsZXM6IHRoaXMuX2ZiLmFycmF5KFtdKVxyXG4gIH0pO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgcmVhZG9ubHkgYXhpc1NldHRpbmdzID0ge1xyXG4gICAgbGluZVNldHRpbmdzOiB7XHJcbiAgICB9IGFzIExpbmVTZXR0aW5nc01vZGVsLFxyXG4gIH0gYXMgQXhpc1NldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyU2V0dGluZ3MgPSB7XHJcbiAgICB2aXNpYmxlOiBbJ0FsbCddLFxyXG4gICAgc2l6ZTogMS41LFxyXG4gICAgZmlsbDogdGhpcy5fc2Vzc2lvbi5nZXRBY2NlbnQoKSxcclxuICB9IGFzIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWw7XHJcbiAgcmVhZG9ubHkgdG9vbHRpcFNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIGZvcm1hdDogJyR7ZGF0ZX0nLFxyXG4gICAgdHJhY2tMaW5lU2V0dGluZ3M6IHtcclxuICAgICAgdmlzaWJsZTogdHJ1ZVxyXG4gICAgfVxyXG4gIH0gYXMgU3BhcmtsaW5lVG9vbHRpcFNldHRpbmdzTW9kZWw7XHJcbiAgdXNhZ2U6IFJhbmdlSW5mb1tdO1xyXG4gIHByaW1hcnkgPSB0aGlzLl9zZXNzaW9uLmdldFByaW1lcnkoKTtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcnVsZXM6IHZvaWRbXTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlckltcGwsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgICAgdGhpcy5wcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbC5wcml2aWxlZ2VzKSB0aGlzLm1vZGVsLnByaXZpbGVnZXMgPSB7fTtcclxuICAgIHRoaXMuX3NlcnZpY2UucmFuZ2UodGhpcy5tb2RlbC5uYW1lKS5zdWJzY3JpYmUociA9PlxyXG4gICAgICB0aGlzLnVzYWdlID0gcik7XHJcbiAgICB0aGlzLnJ1bGVzID0gT2JqZWN0LmtleXModGhpcy5tb2RlbC5ydWxlcykubWFwKHIgPT4geyB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybXJ1bGUobmFtZTogc3RyaW5nLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IG51bGwsXHJcbiAgICAgIHRpdGxlOiBudWxsLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGRpYWdyYW0oKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydhZG1pbi9mb3JtcycsIHRoaXMubW9kZWwubmFtZV0pO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgTW9kZWwge1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0TW9kZTsgZWxzZSBpbmZvXCI+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPC9mb3JtPlxyXG4gIDxiaXpkb2MtcHJpdmlsZWdlcyAoY2hhbmdlKT1cImNoYW5nZS5lbWl0KClcIiBbbW9kZWxdPVwibW9kZWwucHJpdmlsZWdlc1wiPjwvYml6ZG9jLXByaXZpbGVnZXM+XHJcbjwvbmctY29udGFpbmVyPlxyXG48IS0tLS0+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz5cclxuICAgIDwhLS1cclxuICAgICAgICAgICAgICAgICAgIFt0aGVtZV09XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbYXhpc1NldHRpbmdzXT1cImF4aXNTZXR0aW5nc1wiXHJcbiAgICAgIC0tPlxyXG5cclxuICA8ZWpzLXNwYXJrbGluZSAqbmdJZj1cInVzYWdlXCIgd2lkdGg9JzI1MHB4JyBoZWlnaHQ9JzIwMHB4J1xyXG4gICAgICAgICAgICAgICAgIHR5cGU9XCJMaW5lXCJcclxuICAgICAgICAgICAgICAgICBbaWRdPVwibW9kZWwubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgW2ZpbGxdPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwidXNhZ2VcIlxyXG4gICAgICAgICAgICAgICAgIHhOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgeU5hbWU9XCJjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgbGluZVdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiRGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJtYXJrZXJTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgW3Rvb2x0aXBTZXR0aW5nc109XCJ0b29sdGlwU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgIFtlbmFibGVSdGxdPVwiZW5hYmxlUnRsXCI+XHJcbiAgPC9lanMtc3BhcmtsaW5lPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUm91dGUnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zY2hlbWE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
107
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <div>\r\n <!--<mat-label>{{'Icon'|translate}}</mat-label>-->\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n </div>\r\n </form>\r\n <bizdoc-layout *ngIf=\"model.arguments\" [fields]=\"model.arguments\" [model]=\"args\" (modelChange)=\"assignargs($event)\"></bizdoc-layout>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <!--\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n -->\r\n\r\n <ejs-sparkline *ngIf=\"usage\" width='250px' height='200px'\r\n type=\"Line\"\r\n [id]=\"model.name\"\r\n [fill]=\"primary\"\r\n [dataSource]=\"usage\"\r\n xName=\"date\"\r\n yName=\"count\"\r\n lineWidth=\"2\"\r\n valueType=\"DateTime\"\r\n [markerSettings]=\"markerSettings\"\r\n [tooltipSettings]=\"tooltipSettings\"\r\n [enableRtl]=\"enableRtl\">\r\n </ejs-sparkline>\r\n <div class=\"row\">\r\n <button mat-icon-button (click)=\"diagram()\" [bizdocTooltip]=\"'Workflow'|translate\" [disabled]=\"model.draft\"><mat-icon>schema</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"design()\" [bizdocTooltip]=\"'Designer'|translate\" [disabled]=\"model.draft\" *ngIf=\"model.type==='BizDoc.Configuration.Forms.Box'\"><mat-icon>design_services</mat-icon></button>\r\n </div>\r\n</ng-template>\r\n" }]
108
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.PanesRouter }, { type: i3.SystemService }, { type: i4.SessionService }, { type: i15.DesignerRef, decorators: [{
109
+ type: Inject,
110
+ args: [DesignerRef]
111
+ }] }]; } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZWxlbWVudHMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBS2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSWpGLG1CQUFtQixTQUFuQixtQkFBb0IsU0FBUSw0QkFBNEI7SUF1Qm5FLFlBQVksRUFBZSxFQUNqQixPQUFvQixFQUNwQixRQUF1QixFQUN2QixRQUF3QixFQUNYLEdBQWdCO1FBQ3JDLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFKUCxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUF6QnpCLFVBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQWdDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDbkYsaUJBQVksR0FBRztZQUN0QixZQUFZLEVBQUUsRUFDUTtTQUNGLENBQUM7UUFDZCxtQkFBYyxHQUFHO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixJQUFJLEVBQUUsR0FBRztZQUNULElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtTQUNBLENBQUM7UUFDekIsb0JBQWUsR0FBRztZQUN6QixPQUFPLEVBQUUsSUFBSTtZQUNiLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLGlCQUFpQixFQUFFO2dCQUNqQixPQUFPLEVBQUUsSUFBSTthQUNkO1NBQytCLENBQUM7UUFFbkMsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzFCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTzlDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQWUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbkUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsT0FBTztnQkFDTCxJQUFJLEVBQUUsQ0FBQztnQkFDUCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ2xCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUNwQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2dCQUNkLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTthQUNiLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ08sU0FBUyxDQUFDLElBQVksRUFBRSxVQUEyQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQ3BCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsK0JBQStCLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YsQ0FBQTtnSEEvRVksbUJBQW1CLG1JQTJCcEIsV0FBVztvR0EzQlYsbUJBQW1CLDJFQ2JoQyw4Z0VBNENBO0FEL0JhLG1CQUFtQjtJQUQvQixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLENBQUM7R0FDekIsbUJBQW1CLENBK0UvQjtTQS9FWSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFGL0IsU0FBUzs7OzBCQTZCTCxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQXhpc1NldHRpbmdzTW9kZWwsIElQb2ludFJlZ2lvbkV2ZW50QXJncywgTGluZVNldHRpbmdzTW9kZWwsIFNwYXJrbGluZU1hcmtlclNldHRpbmdzTW9kZWwsIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsLCBTcGFya2xpbmVUeXBlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZSwgUmFuZ2VJbmZvIH0gZnJvbSBcIi4uLy4uL3N5c3RlbS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQsIERlc2lnbmVyUmVmLCBQZXJtaXNzaW9uTW9kZWwgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnZm9ybS5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZm9ybS1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1EZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lclR5cGVFbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBydWxlcyA9IHRoaXMuX2ZiLmFycmF5KFtdKTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHJlYWRvbmx5IGF4aXNTZXR0aW5ncyA9IHtcclxuICAgIGxpbmVTZXR0aW5nczoge1xyXG4gICAgfSBhcyBMaW5lU2V0dGluZ3NNb2RlbCxcclxuICB9IGFzIEF4aXNTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IG1hcmtlclNldHRpbmdzID0ge1xyXG4gICAgdmlzaWJsZTogWydBbGwnXSxcclxuICAgIHNpemU6IDEuNSxcclxuICAgIGZpbGw6IHRoaXMuX3Nlc3Npb24uZ2V0QWNjZW50KCksXHJcbiAgfSBhcyBTcGFya2xpbmVNYXJrZXJTZXR0aW5nc01vZGVsO1xyXG4gIHJlYWRvbmx5IHRvb2x0aXBTZXR0aW5ncyA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICcke2RhdGV9JyxcclxuICAgIHRyYWNrTGluZVNldHRpbmdzOiB7XHJcbiAgICAgIHZpc2libGU6IHRydWVcclxuICAgIH1cclxuICB9IGFzIFNwYXJrbGluZVRvb2x0aXBTZXR0aW5nc01vZGVsO1xyXG4gIHVzYWdlOiBSYW5nZUluZm9bXTtcclxuICBwcmltYXJ5ID0gdGhpcy5fc2Vzc2lvbi5nZXRQcmltZXJ5KCk7XHJcbiAgcmVhZG9ubHkgZW5hYmxlUnRsID0gdGhpcy5fc2Vzc2lvbi5pbnZlcnNlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSByZWY6IERlc2lnbmVyUmVmKSB7XHJcbiAgICBzdXBlcihmYiwgcmVmKTtcclxuICAgIHRoaXMuX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgICB0aGlzLnByaW1hcnkgPSB0aGlzLl9zZXNzaW9uLmdldFByaW1lcnkoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3J1bGVzJyBhcyBhbnksIHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdpY29uJyBhcyBhbnksIHRoaXMuX2ZiLmNvbnRyb2wodGhpcy5tb2RlbC5pY29uKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ19ydWxlcycgYXMgYW55LCB0aGlzLnJ1bGVzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwucHJpdmlsZWdlcykgdGhpcy5tb2RlbC5wcml2aWxlZ2VzID0ge307XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnJhbmdlKHRoaXMubW9kZWwubmFtZSkuc3Vic2NyaWJlKHIgPT5cclxuICAgICAgdGhpcy51c2FnZSA9IHIpO1xyXG4gICAgdGhpcy5tb2RlbC5ydWxlcyAmJiB0aGlzLnJ1bGVzLnNldFZhbHVlKE9iamVjdC5rZXlzKHRoaXMubW9kZWwucnVsZXMpLlxyXG4gICAgICBtYXAociA9PiB7XHJcbiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMubW9kZWwucnVsZXNbcl07XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIG5hbWU6IHIsXHJcbiAgICAgICAgICB2YWx1ZTogcnVsZS5yb2xlcyB8fCBbXSxcclxuICAgICAgICAgIHJ1bGU6IHJ1bGUucnVsZSxcclxuICAgICAgICAgIHRpdGxlOiBydWxlLnRpdGxlXHJcbiAgICAgICAgfTtcclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5ydWxlcy52YWx1ZUNoYW5nZXMucGlwZSgpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgY29uc3QgcnVsZXMgPSB7fTtcclxuICAgICAgdi5mb3JFYWNoKChyOiBhbnkpID0+IHJ1bGVzW3IubmFtZV0gPSB7XHJcbiAgICAgICAgdGl0bGU6IHIudGl0bGUsXHJcbiAgICAgICAgcm9sZXM6IHIucm9sZXMsXHJcbiAgICAgICAgcnVsZTogci5ydWxlLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5mb3JtLmdldDxhbnk+KCdydWxlcycpLnNldFZhbHVlKHJ1bGVzKTtcclxuICAgIH0pO1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZm9ybXJ1bGUobmFtZTogc3RyaW5nLCBwZXJtaXNzaW9uOiBQZXJtaXNzaW9uTW9kZWwpIHtcclxuICAgIHJldHVybiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IG51bGwsXHJcbiAgICAgIHRpdGxlOiBudWxsLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGRpYWdyYW0oKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydhZG1pbi9mb3JtcycsIHRoaXMubW9kZWwubmFtZV0pO1xyXG4gIH1cclxuICBkZXNpZ24oKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydhZG1pbi91dGlsaXRpZXMvZm9ybS1kZXNpZ25lciddLCB7IHF1ZXJ5UGFyYW1zOiB7IGZvcm1JZDogdGhpcy5tb2RlbC5uYW1lIH0gfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBNb2RlbCB7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRNb2RlOyBlbHNlIGluZm9cIj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxkaXY+XHJcbiAgICAgIDwhLS08bWF0LWxhYmVsPnt7J0ljb24nfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+LS0+XHJcbiAgICAgIDxiaXpkb2MtaWNvbi1waWNrZXIgZm9ybUNvbnRyb2xOYW1lPVwiaWNvblwiIHJlcXVpcmVkPjwvYml6ZG9jLWljb24tcGlja2VyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG4gIDxiaXpkb2MtbGF5b3V0ICpuZ0lmPVwibW9kZWwuYXJndW1lbnRzXCIgW2ZpZWxkc109XCJtb2RlbC5hcmd1bWVudHNcIiBbbW9kZWxdPVwiYXJnc1wiIChtb2RlbENoYW5nZSk9XCJhc3NpZ25hcmdzKCRldmVudClcIj48L2JpemRvYy1sYXlvdXQ+XHJcbiAgPGJpemRvYy1wcml2aWxlZ2VzIChjaGFuZ2UpPVwiY2hhbmdlLmVtaXQoKVwiIFttb2RlbF09XCJtb2RlbC5wcml2aWxlZ2VzXCI+PC9iaXpkb2MtcHJpdmlsZWdlcz5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0tLT5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDwhLS1cclxuICAgICAgICAgICAgICAgICBbdGhlbWVdPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgIFtheGlzU2V0dGluZ3NdPVwiYXhpc1NldHRpbmdzXCJcclxuICAgIC0tPlxyXG5cclxuICA8ZWpzLXNwYXJrbGluZSAqbmdJZj1cInVzYWdlXCIgd2lkdGg9JzI1MHB4JyBoZWlnaHQ9JzIwMHB4J1xyXG4gICAgICAgICAgICAgICAgIHR5cGU9XCJMaW5lXCJcclxuICAgICAgICAgICAgICAgICBbaWRdPVwibW9kZWwubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgW2ZpbGxdPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwidXNhZ2VcIlxyXG4gICAgICAgICAgICAgICAgIHhOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgeU5hbWU9XCJjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgbGluZVdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiRGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJtYXJrZXJTZXR0aW5nc1wiXHJcbiAgICAgICAgICAgICAgICAgW3Rvb2x0aXBTZXR0aW5nc109XCJ0b29sdGlwU2V0dGluZ3NcIlxyXG4gICAgICAgICAgICAgICAgIFtlbmFibGVSdGxdPVwiZW5hYmxlUnRsXCI+XHJcbiAgPC9lanMtc3BhcmtsaW5lPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtKClcIiBbYml6ZG9jVG9vbHRpcF09XCInV29ya2Zsb3cnfHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJtb2RlbC5kcmFmdFwiPjxtYXQtaWNvbj5zY2hlbWE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRlc2lnbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0Rlc2lnbmVyJ3x0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwibW9kZWwuZHJhZnRcIiAqbmdJZj1cIm1vZGVsLnR5cGU9PT0nQml6RG9jLkNvbmZpZ3VyYXRpb24uRm9ybXMuQm94J1wiPjxtYXQtaWNvbj5kZXNpZ25fc2VydmljZXM8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,36 +1,51 @@
1
1
  import { __decorate } from "tslib";
2
+ import { moveItemInArray } from "@angular/cdk/drag-drop";
2
3
  import { Component } from "@angular/core";
3
4
  import { BizDoc } from "../../../core/decorators";
4
- import { DesignerElementComponent } from "../designer.base";
5
+ import { DesignerTypeElementComponent } from "../designer.base";
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- import * as i2 from "../../../core/router";
8
- import * as i3 from "../../../core/session.service";
9
- import * as i4 from "@angular/common";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/material/form-field";
10
+ import * as i4 from "@angular/material/input";
10
11
  import * as i5 from "../privileges.component";
11
- let GuideDesignComponent = class GuideDesignComponent extends DesignerElementComponent {
12
- constructor(_fb, _router, _session) {
13
- super();
14
- this._fb = _fb;
15
- this._router = _router;
16
- this._session = _session;
17
- this.form = this._fb.group({
18
- steps: this._fb.array([])
19
- });
12
+ import * as i6 from "../../../core/pipes/translate.pipe";
13
+ let GuideDesignComponent = class GuideDesignComponent extends DesignerTypeElementComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.steps = this._fb.array([]);
20
17
  }
21
18
  ngOnInit() {
19
+ super.ngOnInit();
20
+ this.form.addControl('steps', this.steps);
22
21
  if (!this.model.privileges)
23
22
  this.model.privileges = {};
23
+ if (!this.model.steps)
24
+ this.model.steps = [];
25
+ else
26
+ this.model.steps.forEach(s => this.steps.push(this._stepform(s), { emitEvent: false }));
27
+ }
28
+ drop(event) {
29
+ moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);
30
+ }
31
+ add() {
32
+ this.steps.push(this._stepform({}));
33
+ }
34
+ _stepform(step) {
35
+ return this._fb.group({
36
+ content: step.content,
37
+ title: step.title,
38
+ });
24
39
  }
25
40
  };
26
- GuideDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: GuideDesignComponent, deps: [{ token: i1.FormBuilder }, { token: i2.RouterImpl }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
27
- GuideDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: GuideDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }] });
41
+ GuideDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: GuideDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
+ GuideDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: GuideDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <h2 class=\"mat-title\">{{'Steps'|translate}}</h2>\r\n </mat-form-field>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <dl>\r\n <dt></dt>\r\n <dd></dd>\r\n <dt></dt>\r\n <dd></dd>\r\n <dt></dt>\r\n <dd></dd>\r\n </dl>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.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: i5.PrivilegesDesignComponent, selector: "bizdoc-privileges", inputs: ["model"], outputs: ["change"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
28
43
  GuideDesignComponent = __decorate([
29
44
  BizDoc({ selector: 'guide-designer' })
30
45
  ], GuideDesignComponent);
31
46
  export { GuideDesignComponent };
32
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: GuideDesignComponent, decorators: [{
33
48
  type: Component,
34
- args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <div>\r\n </div>\r\n</ng-template>\r\n" }]
35
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.RouterImpl }, { type: i3.SessionService }]; } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2d1aWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9ndWlkZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbEQsT0FBTyxFQUFFLHdCQUF3QixFQUFnQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0lBSTdELG9CQUFvQixTQUFwQixvQkFBcUIsU0FBUSx3QkFBc0M7SUFJOUUsWUFBb0IsR0FBZ0IsRUFDMUIsT0FBbUIsRUFDbkIsUUFBd0I7UUFDaEMsS0FBSyxFQUFFLENBQUE7UUFIVyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFMekIsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDMUIsQ0FBQyxDQUFDO0lBS0gsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO1lBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3pELENBQUM7Q0FDRixDQUFBO2lIQVpZLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDJFQ1RqQyx3VEFVQTtBRERhLG9CQUFvQjtJQUQ5QixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztHQUM1QixvQkFBb0IsQ0FZaEM7U0FaWSxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFGaEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBSb3V0ZXJJbXBsIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvcm91dGVyXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyRWxlbWVudENvbXBvbmVudCwgRWxlbWVudE1vZGVsIH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ2d1aWRlLmNvbXBvbmVudC5odG1sJyB9KVxyXG4gIEBCaXpEb2MoeyBzZWxlY3RvcjogJ2d1aWRlLWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgR3VpZGVEZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8RWxlbWVudE1vZGVsPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIHN0ZXBzOiB0aGlzLl9mYi5hcnJheShbXSlcclxuICB9KTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlckltcGwsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbC5wcml2aWxlZ2VzKSB0aGlzLm1vZGVsLnByaXZpbGVnZXMgPSB7fTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRNb2RlOyBlbHNlIGluZm9cIj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICA8L2Zvcm0+XHJcbiAgPGJpemRvYy1wcml2aWxlZ2VzIChjaGFuZ2UpPVwiY2hhbmdlLmVtaXQoKVwiIFttb2RlbF09XCJtb2RlbC5wcml2aWxlZ2VzXCI+PC9iaXpkb2MtcHJpdmlsZWdlcz5cclxuPC9uZy1jb250YWluZXI+XHJcbjwhLS0tLT5cclxuPG5nLXRlbXBsYXRlICNpbmZvPlxyXG4gIDxkaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
49
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <h2 class=\"mat-title\">{{'Steps'|translate}}</h2>\r\n </mat-form-field>\r\n </form>\r\n <bizdoc-privileges (change)=\"change.emit()\" [model]=\"model.privileges\"></bizdoc-privileges>\r\n</ng-container>\r\n<!---->\r\n<ng-template #info>\r\n <dl>\r\n <dt></dt>\r\n <dd></dd>\r\n <dt></dt>\r\n <dd></dd>\r\n <dt></dt>\r\n <dd></dd>\r\n </dl>\r\n</ng-template>\r\n" }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL2d1aWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9ndWlkZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7SUFJakUsb0JBQW9CLFNBQXBCLG9CQUFxQixTQUFRLDRCQUE0Qjs7O1FBQzNELFVBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztLQW9CckM7SUFuQkMsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQzs7WUFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNELElBQUksQ0FBQyxLQUE0QjtRQUMvQixlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNELEdBQUc7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNPLFNBQVMsQ0FBQyxJQUFlO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YsQ0FBQTtpSEFyQlksb0JBQW9CO3FHQUFwQixvQkFBb0IsMkVDVGpDLGkxQkF5QkE7QURoQmEsb0JBQW9CO0lBRGhDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO0dBQzFCLG9CQUFvQixDQXFCaEM7U0FyQlksb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRmhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2RlY29yYXRvcnNcIjtcclxuaW1wb3J0IHsgR3VpZGVTdGVwIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQsIEVsZW1lbnRNb2RlbCB9IGZyb20gXCIuLi9kZXNpZ25lci5iYXNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdndWlkZS5jb21wb25lbnQuaHRtbCcgfSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnZ3VpZGUtZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBHdWlkZURlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHN0ZXBzID0gdGhpcy5fZmIuYXJyYXkoW10pO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdzdGVwcycgYXMgYW55LCB0aGlzLnN0ZXBzKTtcclxuICAgIGlmICghdGhpcy5tb2RlbC5wcml2aWxlZ2VzKSB0aGlzLm1vZGVsLnByaXZpbGVnZXMgPSB7fTtcclxuICAgIGlmICghdGhpcy5tb2RlbC5zdGVwcykgdGhpcy5tb2RlbC5zdGVwcyA9IFtdO1xyXG4gICAgZWxzZSB0aGlzLm1vZGVsLnN0ZXBzLmZvckVhY2gocyA9PiB0aGlzLnN0ZXBzLnB1c2godGhpcy5fc3RlcGZvcm0ocyksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgfVxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLnN0ZXBzLnB1c2godGhpcy5fc3RlcGZvcm0oe30gYXMgYW55KSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0ZXBmb3JtKHN0ZXA6IEd1aWRlU3RlcCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBjb250ZW50OiBzdGVwLmNvbnRlbnQsXHJcbiAgICAgIHRpdGxlOiBzdGVwLnRpdGxlLFxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRNb2RlOyBlbHNlIGluZm9cIj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAvPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydOYW1lJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7J1N0ZXBzJ3x0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZm9ybT5cclxuICA8Yml6ZG9jLXByaXZpbGVnZXMgKGNoYW5nZSk9XCJjaGFuZ2UuZW1pdCgpXCIgW21vZGVsXT1cIm1vZGVsLnByaXZpbGVnZXNcIj48L2JpemRvYy1wcml2aWxlZ2VzPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPCEtLS0tPlxyXG48bmctdGVtcGxhdGUgI2luZm8+XHJcbiAgPGRsPlxyXG4gICAgPGR0PjwvZHQ+XHJcbiAgICA8ZGQ+PC9kZD5cclxuICAgIDxkdD48L2R0PlxyXG4gICAgPGRkPjwvZGQ+XHJcbiAgICA8ZHQ+PC9kdD5cclxuICAgIDxkZD48L2RkPlxyXG4gIDwvZGw+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,37 +1,69 @@
1
1
  import { __decorate } from "tslib";
2
+ import { moveItemInArray } from "@angular/cdk/drag-drop";
2
3
  import { Component } from "@angular/core";
3
4
  import { Validators } from "@angular/forms";
4
5
  import { BizDoc } from "../../../core/decorators";
6
+ import { isArray } from "../../../core/functions";
5
7
  import { DesignerCubeElementComponent } from "../designer.base";
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "@angular/common";
8
10
  import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/core";
10
- import * as i4 from "@angular/material/form-field";
11
- import * as i5 from "@angular/material/select";
12
- import * as i6 from "../../../core/pipes/translate.pipe";
11
+ import * as i3 from "@angular/cdk/drag-drop";
12
+ import * as i4 from "@angular/material/radio";
13
+ import * as i5 from "@angular/material/core";
14
+ import * as i6 from "@angular/material/form-field";
15
+ import * as i7 from "@angular/material/select";
16
+ import * as i8 from "@angular/material/button";
17
+ import * as i9 from "@angular/material/input";
18
+ import * as i10 from "@angular/material/icon";
19
+ import * as i11 from "../../../core/popup/tooltip.directive";
20
+ import * as i12 from "../../../core/pipes/translate.pipe";
13
21
  let MatrixViewDesignComponent = class MatrixViewDesignComponent extends DesignerCubeElementComponent {
14
22
  constructor() {
15
23
  super(...arguments);
24
+ this.sum = this._fb.array([]);
16
25
  this.form = this._fb.group({
17
26
  cube: null,
18
27
  xAxis: this._fb.control(null, Validators.required),
19
28
  series: this._fb.control(null, Validators.required),
20
- sum: this._fb.array([]),
21
29
  indices: null,
22
30
  aggregate: null,
23
- filters: null
31
+ sum: this.sum,
32
+ filters: null,
24
33
  });
25
34
  }
35
+ ngOnInit() {
36
+ if (this.args.sum) {
37
+ if (isArray(this.args.sum))
38
+ this.args.sum.forEach(s => this.add(s));
39
+ else
40
+ this.add(this.args.sum);
41
+ }
42
+ super.ngOnInit();
43
+ }
44
+ add(sum) {
45
+ this.sum.push(this._fb.group({
46
+ axis: sum?.axis || 'series',
47
+ title: this._fb.control(sum?.title, Validators.required),
48
+ value: sum?.value,
49
+ format: sum?.format,
50
+ precision: sum?.precision,
51
+ explorable: sum?.explorable,
52
+ calculate: sum?.calculate
53
+ }));
54
+ }
55
+ drop(event) {
56
+ moveItemInArray(this.model.axes, event.previousIndex, event.currentIndex);
57
+ }
26
58
  };
27
59
  MatrixViewDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: MatrixViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
- MatrixViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: MatrixViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" *ngIf=\"editMode\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required (selectionChange)=\"seriesSelected($event)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"forthSelected($event)\">\r\n <mat-option *ngFor=\"let x of thirdAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple [disabled]=\"!forthAxes || !forthAxes.length\">\r\n <mat-option *ngFor=\"let x of forthAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
60
+ MatrixViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: MatrixViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required (selectionChange)=\"seriesSelected($event)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"forthSelected($event)\">\r\n <mat-option *ngFor=\"let x of thirdAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple [disabled]=\"!forthAxes || forthAxes?.length\">\r\n <mat-option *ngFor=\"let x of forthAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n <h2 class=\"mat-title\">{{'Summary'|translate}}</h2>\r\n <div formArrayName=\"sum\" class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"row\" *ngFor=\"let s of sum.controls; index as index\" [formGroup]=\"s\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-label>{{'Axis'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"axis\">\r\n <mat-radio-button value=\"xAxis\">{{'X'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"series\">{{'Y'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Calculate'|translate}}</mat-label>\r\n <mat-select formControlName=\"calculate\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"quarter\">{{'Quarter'|translate}}</mat-option>\r\n <mat-option value=\"year\">{{'Year'|translate}}</mat-option>\r\n <mat-option value=\"month\">{{'Month'|translate}}</mat-option>\r\n <mat-option value=\"accumulate\">{{'Accumulate'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n </form>\r\n <!--<ng-container *ngIf=\"cube\">\r\n <h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n <bizdoc-cube-filter [cube]=\"cube.name\" [(axes)]=\"form.controls.filters.value\"></bizdoc-cube-filter>\r\n </ng-container>\r\n --> \r\n</ng-container>\r\n<ng-template #info></ng-template>\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.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: i3.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: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }] });
29
61
  MatrixViewDesignComponent = __decorate([
30
62
  BizDoc({ selector: 'matrix-view-designer' })
31
63
  ], MatrixViewDesignComponent);
32
64
  export { MatrixViewDesignComponent };
33
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: MatrixViewDesignComponent, decorators: [{
34
66
  type: Component,
35
- args: [{ template: "<form autocomplete=\"off\" *ngIf=\"editMode\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option>{{'Default'|translate}}</mat-option>\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required (selectionChange)=\"seriesSelected($event)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"forthSelected($event)\">\r\n <mat-option *ngFor=\"let x of thirdAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple [disabled]=\"!forthAxes || !forthAxes.length\">\r\n <mat-option *ngFor=\"let x of forthAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n</form>\r\n" }]
67
+ args: [{ template: "<ng-container *ngIf=\"editMode; else info\">\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required (selectionChange)=\"xAxisSelected($event)\">\r\n <mat-option *ngFor=\"let x of cube?.axes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required (selectionChange)=\"seriesSelected($event)\">\r\n <mat-option *ngFor=\"let x of secondaryAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple (selectionChange)=\"forthSelected($event)\">\r\n <mat-option *ngFor=\"let x of thirdAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple [disabled]=\"!forthAxes || forthAxes?.length\">\r\n <mat-option *ngFor=\"let x of forthAxes\" [value]=\"x.name\">{{x.title || x.name}}</mat-option>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n <h2 class=\"mat-title\">{{'Summary'|translate}}</h2>\r\n <div formArrayName=\"sum\" class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div class=\"row\" *ngFor=\"let s of sum.controls; index as index\" [formGroup]=\"s\" cdkDrag cdkDragRootElement=\".drag\">\r\n <mat-icon class=\"drag\">drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-label>{{'Axis'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"axis\">\r\n <mat-radio-button value=\"xAxis\">{{'X'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"series\">{{'Y'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n &nbsp;\r\n <mat-form-field>\r\n <mat-label>{{'Calculate'|translate}}</mat-label>\r\n <mat-select formControlName=\"calculate\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"quarter\">{{'Quarter'|translate}}</mat-option>\r\n <mat-option value=\"year\">{{'Year'|translate}}</mat-option>\r\n <mat-option value=\"month\">{{'Month'|translate}}</mat-option>\r\n <mat-option value=\"accumulate\">{{'Accumulate'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <button mat-icon-button (click)=\"sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n </div>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add</mat-icon></button>\r\n </form>\r\n <!--<ng-container *ngIf=\"cube\">\r\n <h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n <bizdoc-cube-filter [cube]=\"cube.name\" [(axes)]=\"form.controls.filters.value\"></bizdoc-cube-filter>\r\n </ng-container>\r\n --> \r\n</ng-container>\r\n<ng-template #info></ng-template>\r\n" }]
36
68
  }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL21hdHJpeC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9tYXRyaXgtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWxELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7OztJQUluRCx5QkFBeUIsU0FBekIseUJBQTBCLFNBQVEsNEJBQWlEOzs7UUFDckYsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuRCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztLQUNKO0NBQUEsQ0FBQTtzSEFWWSx5QkFBeUI7MEdBQXpCLHlCQUF5QiwyRUNSdEMsZ2xFQXdDQTtBRGhDYSx5QkFBeUI7SUFEckMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUM7R0FDaEMseUJBQXlCLENBVXJDO1NBVlkseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRnJDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBNYXRyaXhTZXR0aW5nc01vZGVsIH0gZnJvbSBcIi4uLy4uLy4uL3ZpZXdzL2N1YmUvbWF0cml4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50IH0gZnJvbSBcIi4uL2Rlc2lnbmVyLmJhc2VcIjtcclxuXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZVVybDogJ21hdHJpeC12aWV3LmNvbXBvbmVudC5odG1sJyB9KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdtYXRyaXgtdmlldy1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIE1hdHJpeFZpZXdEZXNpZ25Db21wb25lbnQgZXh0ZW5kcyBEZXNpZ25lckN1YmVFbGVtZW50Q29tcG9uZW50PE1hdHJpeFNldHRpbmdzTW9kZWw+IGltcGxlbWVudHMgT25Jbml0IHtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIHhBeGlzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgc2VyaWVzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgc3VtOiB0aGlzLl9mYi5hcnJheShbXSksXHJcbiAgICBpbmRpY2VzOiBudWxsLFxyXG4gICAgYWdncmVnYXRlOiBudWxsLFxyXG4gICAgZmlsdGVyczogbnVsbFxyXG4gIH0pO1xyXG59XHJcbiIsIjxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiICpuZ0lmPVwiZWRpdE1vZGVcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImN1YmVzLmxlbmd0aD4xXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7J0N1YmUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cImN1YmVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uPnt7J0RlZmF1bHQnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlc1wiIFt2YWx1ZV09XCJjXCI+e3tjLnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1sYWJlbD57eydYQXhpcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInhBeGlzXCIgcmVxdWlyZWQgKHNlbGVjdGlvbkNoYW5nZSk9XCJ4QXhpc1NlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2YgY3ViZT8uYXhlc1wiIFt2YWx1ZV09XCJ4Lm5hbWVcIj57e3gudGl0bGUgfHwgeC5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWxhYmVsPnt7J1Nlcmllcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNlcmllc1wiIHJlcXVpcmVkIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VyaWVzU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBzZWNvbmRhcnlBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtbGFiZWw+e3snRmlsdGVycyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImZpbHRlcnNcIiBtdWx0aXBsZSAoc2VsZWN0aW9uQ2hhbmdlKT1cImZvcnRoU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiB0aGlyZEF4ZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiY3ViZT8uaW5kaWNlcz8ubGVuZ3RoXCI+XHJcbiAgICA8bWF0LWxhYmVsPnt7J0luZGljZXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmRpY2VzXCIgbXVsdGlwbGU+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB4IG9mIGN1YmU/LmluZGljZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1sYWJlbD57eydBZ2dyZWdhdGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJhZ2dyZWdhdGVcIiBtdWx0aXBsZSAgW2Rpc2FibGVkXT1cIiFmb3J0aEF4ZXMgfHwgIWZvcnRoQXhlcy5sZW5ndGhcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2YgZm9ydGhBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDxtYXQtaGludD48L21hdC1oaW50PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZm9ybT5cclxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2VsZW1lbnRzL21hdHJpeC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9lbGVtZW50cy9tYXRyaXgtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lBSW5ELHlCQUF5QixTQUF6Qix5QkFBMEIsU0FBUSw0QkFBaUQ7OztRQUNyRixRQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzdCLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ2xELE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNuRCxPQUFPLEVBQUUsSUFBSTtZQUNiLFNBQVMsRUFBRSxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDLENBQUM7S0F3Qko7SUF2QkMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Z0JBRXhDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMzQjtRQUNELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsR0FBRyxDQUFDLEdBQWlCO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxJQUFJLFFBQVE7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUs7WUFDakIsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNO1lBQ25CLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUztZQUN6QixVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVU7WUFDM0IsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTO1NBQzFCLENBQVEsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFpQztRQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGLENBQUE7c0hBbENZLHlCQUF5QjswR0FBekIseUJBQXlCLDJFQ1h0Qyw0cElBNEVBO0FEakVhLHlCQUF5QjtJQURyQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztHQUNoQyx5QkFBeUIsQ0FrQ3JDO1NBbENZLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUZyQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGlzQXJyYXkgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgU3VtU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vLi4vY3ViZS9tYXRyaXgvdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hdHJpeFNldHRpbmdzTW9kZWwgfSBmcm9tIFwiLi4vLi4vLi4vdmlld3MvY3ViZS9tYXRyaXguY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi4vZGVzaWduZXIuYmFzZVwiO1xyXG5cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlVXJsOiAnbWF0cml4LXZpZXcuY29tcG9uZW50Lmh0bWwnIH0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ21hdHJpeC12aWV3LWRlc2lnbmVyJyB9KVxyXG5leHBvcnQgY2xhc3MgTWF0cml4Vmlld0Rlc2lnbkNvbXBvbmVudCBleHRlbmRzIERlc2lnbmVyQ3ViZUVsZW1lbnRDb21wb25lbnQ8TWF0cml4U2V0dGluZ3NNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5IHN1bSA9IHRoaXMuX2ZiLmFycmF5KFtdKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgY3ViZTogbnVsbCxcclxuICAgIHhBeGlzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgc2VyaWVzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgaW5kaWNlczogbnVsbCxcclxuICAgIGFnZ3JlZ2F0ZTogbnVsbCxcclxuICAgIHN1bTogdGhpcy5zdW0sXHJcbiAgICBmaWx0ZXJzOiBudWxsLFxyXG4gIH0pO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXJncy5zdW0pIHtcclxuICAgICAgaWYgKGlzQXJyYXkodGhpcy5hcmdzLnN1bSkpXHJcbiAgICAgICAgdGhpcy5hcmdzLnN1bS5mb3JFYWNoKHMgPT4gdGhpcy5hZGQocykpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5hZGQodGhpcy5hcmdzLnN1bSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuICBhZGQoc3VtPzogU3VtU2V0dGluZ3MpOiB2b2lkIHtcclxuICAgIHRoaXMuc3VtLnB1c2godGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBheGlzOiBzdW0/LmF4aXMgfHwgJ3NlcmllcycsXHJcbiAgICAgIHRpdGxlOiB0aGlzLl9mYi5jb250cm9sKHN1bT8udGl0bGUsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB2YWx1ZTogc3VtPy52YWx1ZSxcclxuICAgICAgZm9ybWF0OiBzdW0/LmZvcm1hdCxcclxuICAgICAgcHJlY2lzaW9uOiBzdW0/LnByZWNpc2lvbixcclxuICAgICAgZXhwbG9yYWJsZTogc3VtPy5leHBsb3JhYmxlLFxyXG4gICAgICBjYWxjdWxhdGU6IHN1bT8uY2FsY3VsYXRlXHJcbiAgICB9KSBhcyBhbnkpO1xyXG4gIH1cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxTdW1TZXR0aW5nc1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMubW9kZWwuYXhlcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRNb2RlOyBlbHNlIGluZm9cIj5cclxuICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiY3ViZXMubGVuZ3RoPjFcIj5cclxuICAgICAgPG1hdC1sYWJlbD57eydDdWJlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdCByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cImN1YmVTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY3ViZXNcIiBbdmFsdWVdPVwiY1wiPnt7Yy50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydYQXhpcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwieEF4aXNcIiByZXF1aXJlZCAoc2VsZWN0aW9uQ2hhbmdlKT1cInhBeGlzU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB4IG9mIGN1YmU/LmF4ZXNcIiBbdmFsdWVdPVwieC5uYW1lXCI+e3t4LnRpdGxlIHx8IHgubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J1Nlcmllcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VyaWVzXCIgcmVxdWlyZWQgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZXJpZXNTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2Ygc2Vjb25kYXJ5QXhlc1wiIFt2YWx1ZV09XCJ4Lm5hbWVcIj57e3gudGl0bGUgfHwgeC5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3snRmlsdGVycyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiZmlsdGVyc1wiIG11bHRpcGxlIChzZWxlY3Rpb25DaGFuZ2UpPVwiZm9ydGhTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2YgdGhpcmRBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImN1YmU/LmluZGljZXM/Lmxlbmd0aFwiPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7J0luZGljZXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluZGljZXNcIiBtdWx0aXBsZT5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgeCBvZiBjdWJlPy5pbmRpY2VzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eydBZ2dyZWdhdGUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImFnZ3JlZ2F0ZVwiIG11bHRpcGxlIFtkaXNhYmxlZF09XCIhZm9ydGhBeGVzIHx8IGZvcnRoQXhlcz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHggb2YgZm9ydGhBeGVzXCIgW3ZhbHVlXT1cIngubmFtZVwiPnt7eC50aXRsZSB8fCB4Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8bWF0LWhpbnQ+PC9tYXQtaGludD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8aDIgY2xhc3M9XCJtYXQtdGl0bGVcIj57eydTdW1tYXJ5J3x0cmFuc2xhdGV9fTwvaDI+XHJcbiAgICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJzdW1cIiBjbGFzcz1cImNvbHVtblwiIGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgcyBvZiBzdW0uY29udHJvbHM7IGluZGV4IGFzIGluZGV4XCIgW2Zvcm1Hcm91cF09XCJzXCIgY2RrRHJhZyBjZGtEcmFnUm9vdEVsZW1lbnQ9XCIuZHJhZ1wiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRyYWdcIj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eyd0aXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWxhYmVsPnt7J0F4aXMnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJheGlzXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cInhBeGlzXCI+e3snWCd8dHJhbnNsYXRlfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cInNlcmllc1wiPnt7J1knfHRyYW5zbGF0ZX19PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3snQ2FsY3VsYXRlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2FsY3VsYXRlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uPnt7J05vbmUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cInF1YXJ0ZXJcIj57eydRdWFydGVyJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ5ZWFyXCI+e3snWWVhcid8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwibW9udGhcIj57eydNb250aCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiYWNjdW11bGF0ZVwiPnt7J0FjY3VtdWxhdGUnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInN1bS5yZW1vdmVBdChpbmRleClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVtb3ZlJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJhZGQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidBZGQnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDwvZm9ybT5cclxuICA8IS0tPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1YmVcIj5cclxuICAgIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7J0ZpbHRlcnMnfHRyYW5zbGF0ZX19PC9oMj5cclxuICAgIDxiaXpkb2MtY3ViZS1maWx0ZXIgW2N1YmVdPVwiY3ViZS5uYW1lXCIgWyhheGVzKV09XCJmb3JtLmNvbnRyb2xzLmZpbHRlcnMudmFsdWVcIj48L2JpemRvYy1jdWJlLWZpbHRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICAgIC0tPiBcclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjaW5mbz48L25nLXRlbXBsYXRlPlxyXG4iXX0=