ngx-histaff-alpha 4.1.0 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Component, Input, EventEmitter, Output, ViewContainerRef, ViewChild, } from '@angular/core';
1
+ import { Component, Input, EventEmitter, Output, ViewContainerRef, ViewChildren, } from '@angular/core';
2
2
  import { CoreFormControlBaseComponent } from '../../core-form-control-base/core-form-control-base.component';
3
3
  import { NgStyle } from '@angular/common';
4
4
  import { FormsModule } from '@angular/forms';
@@ -49,37 +49,45 @@ export class CoreHeaderParamsComponent extends CoreFormControlBaseComponent {
49
49
  this.onButtonClick.emit();
50
50
  }
51
51
  loadDynamicComponents() {
52
- // Ensure dynamicComponentContainer is defined
53
- if (this.dynamicComponentContainer) {
54
- this.dynamicComponentContainer.clear();
55
- this.rows.forEach(row => {
56
- row.forEach(col => {
57
- if (!col.hidden) {
58
- // Dynamically import CoreParamControlComponent
59
- import('../../core-param-control/core-param-control/core-param-control.component')
60
- .then(({ CoreParamControlComponent }) => {
61
- const componentRef = this.dynamicComponentContainer.createComponent(CoreParamControlComponent);
62
- componentRef.instance.control = col;
63
- componentRef.instance.enableTimeZoneConverterForDateTimePeriodParameters = this.enableTimeZoneConverterForDateTimePeriodParameters;
64
- });
52
+ if (!!this.dynamicComponentContainers) {
53
+ this.dynamicComponentContainers.forEach((container, index) => {
54
+ // Clear the container first
55
+ container.clear();
56
+ // Dynamically load CoreParamControlComponent
57
+ import('../../core-param-control/core-param-control/core-param-control.component').then(({ CoreParamControlComponent }) => {
58
+ const componentRef = container.createComponent(CoreParamControlComponent);
59
+ // Pass inputs dynamically
60
+ const control = this.findParamItemByIndex(index);
61
+ if (control) {
62
+ componentRef.instance.control = control;
63
+ componentRef.instance.enableTimeZoneConverterForDateTimePeriodParameters = this.enableTimeZoneConverterForDateTimePeriodParameters;
65
64
  }
66
65
  });
67
66
  });
68
67
  }
69
68
  }
69
+ findParamItemByIndex(index) {
70
+ let i = -1;
71
+ for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex++) {
72
+ for (let colIndex = 0; colIndex < this.rows[rowIndex].length; colIndex++) {
73
+ i++;
74
+ if (i === index) {
75
+ return this.rows[rowIndex][colIndex];
76
+ }
77
+ }
78
+ }
79
+ return undefined;
80
+ }
70
81
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, deps: [{ token: i1.MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n <!-- <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control> -->\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type:
72
- //CoreParamControlComponent,
73
- TranslatePipe, name: "translate" }] }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, viewQueries: [{ propertyName: "dynamicComponentContainers", predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
74
83
  }
75
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, decorators: [{
76
85
  type: Component,
77
86
  args: [{ selector: 'core-header-params', standalone: true, imports: [
78
87
  NgStyle,
79
88
  FormsModule,
80
- //CoreParamControlComponent,
81
89
  TranslatePipe
82
- ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n <!-- <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control> -->\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
90
+ ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
83
91
  }], ctorParameters: () => [{ type: i1.MultiLanguageService }], propDecorators: { showButton: [{
84
92
  type: Input
85
93
  }], buttonCaptionCode: [{
@@ -92,8 +100,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
92
100
  type: Input
93
101
  }], onButtonClick: [{
94
102
  type: Output
95
- }], dynamicComponentContainer: [{
96
- type: ViewChild,
97
- args: ['dynamicComponentContainer', { read: ViewContainerRef, static: false }]
103
+ }], dynamicComponentContainers: [{
104
+ type: ViewChildren,
105
+ args: ['dynamicComponentContainer', { read: ViewContainerRef }]
98
106
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBR0wsWUFBWSxFQUNaLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBSzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFjbEUsTUFBTSxPQUFPLHlCQUNYLFNBQVEsNEJBQTRCO0lBZ0JwQyxZQUNVLEdBQXlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFSekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzdDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQVFuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lB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QkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBSzRFLHlCQUF5QjtzQkFBM0csU0FBUzt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBBZnRlclZpZXdJbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1mb3JtLWNvbnRyb2wtYmFzZS9jb3JlLWZvcm0tY29udHJvbC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSUNvcmVQYXJhbUNvbnRyb2wgfSBmcm9tICcuLi9lbnVtLWFuZC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlUGFyYW1Db250cm9sQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYXJhbS1jb250cm9sL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtaGVhZGVyLXBhcmFtcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICAvL0NvcmVQYXJhbUNvbnRyb2xDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVQaXBlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnRcclxuICBleHRlbmRzIENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIEBJbnB1dCgpIHNob3dCdXR0b24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGJ1dHRvbkNhcHRpb25Db2RlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSByb3dzITogSUNvcmVQYXJhbUNvbnRyb2xbXVtdO1xyXG4gIEBJbnB1dCgpIHRvZ2dsZUFsbFZhbHVlITogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZHluYW1pY0NvbXBvbmVudENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KSBkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Jvd3MnXSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcIkNvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgY2hhbmdlc1sncm93cyddXCIsXHJcbiAgICAgICAgY2hhbmdlc1sncm93cyddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmxvYWREeW5hbWljQ29tcG9uZW50cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoKHgpID0+ICh0aGlzLmxhbmcgPSB4KSkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmxvYWREeW5hbWljQ29tcG9uZW50cygpKVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKCh4KSA9PiB4Py51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIG9uRnJvbURhdGVDaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgLi4udGhpcy52YWx1ZSxcclxuICAgICAgZnJvbURhdGU6IGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVG9EYXRlQ2hhbmdlKGU6IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSh7XHJcbiAgICAgIC4uLnRoaXMudmFsdWUsXHJcbiAgICAgIHRvRGF0ZTogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25JbmNsdXNpb25DaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgLi4udGhpcy52YWx1ZSxcclxuICAgICAgaW5jbHVzaW9uOiBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrTG9jYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkRHluYW1pY0NvbXBvbmVudHMoKTogdm9pZCB7XHJcbiAgICAvLyBFbnN1cmUgZHluYW1pY0NvbXBvbmVudENvbnRhaW5lciBpcyBkZWZpbmVkXHJcbiAgICBpZiAodGhpcy5keW5hbWljQ29tcG9uZW50Q29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudENvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgXHJcbiAgICAgIHRoaXMucm93cy5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgICAgcm93LmZvckVhY2goY29sID0+IHtcclxuICAgICAgICAgIGlmICghY29sLmhpZGRlbikge1xyXG4gICAgICAgICAgICAvLyBEeW5hbWljYWxseSBpbXBvcnQgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudFxyXG4gICAgICAgICAgICBpbXBvcnQoJy4uLy4uL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wvY29yZS1wYXJhbS1jb250cm9sLmNvbXBvbmVudCcpXHJcbiAgICAgICAgICAgICAgLnRoZW4oKHsgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmR5bmFtaWNDb21wb25lbnRDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KENvcmVQYXJhbUNvbnRyb2xDb21wb25lbnQpO1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRyb2wgPSBjb2w7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnMgPSB0aGlzLmVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzO1xyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICBcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtaGVhZGVyLXBhcmFtcy1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXIgY29udGFpbmVyLWZsdWlkIG5vLXBhZGRpbmcgbm8tbWFyZ2luXCI+XHJcbiAgICAgICAgQGZvciAocm93IG9mIHJvd3M7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbWIxNVwiPlxyXG4gICAgICAgICAgICBAZm9yIChjb2wgb2Ygcm93OyB0cmFjayBjb2wpIHtcclxuICAgICAgICAgICAgQGlmICghY29sLmhpZGRlbikge1xyXG4gICAgICAgICAgICA8ZGl2IFtjbGFzc109XCIhY29sLndpZHRoID8gJ2NvbC1tZC0nICsgY29sLmZsZXhTaXplIDogJydcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogISFjb2wud2lkdGggPyBjb2wud2lkdGggKyAncHgnIDogJydcclxuICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAjZHluYW1pY0NvbXBvbmVudENvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGNvcmUtcGFyYW0tY29udHJvbCBbY29udHJvbF09XCJjb2xcIiBbZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNdPVwiZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNcIj48L2NvcmUtcGFyYW0tY29udHJvbD4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChzaG93QnV0dG9uKSB7XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1mbGV4LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWZvci1mb3JtXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrTG9jYWwoKVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChidXR0b25DYXB0aW9uQ29kZSB8fCAnVUlfQ09SRV9GSUxURVJfSFVCX0JVVFRPTl9TRUFSQ0gnKSB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy9jb3JlLWhlYWRlci1wYXJhbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxLQUFLLEVBR0wsWUFBWSxFQUNaLE1BQU0sRUFDTixnQkFBZ0IsRUFJaEIsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBSzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFhbEUsTUFBTSxPQUFPLHlCQUNYLFNBQVEsNEJBQTRCO0lBa0JwQyxZQUNVLEdBQXlCO1FBRWpDLEtBQUssRUFBRSxDQUFDO1FBRkEsUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFWekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRzdDLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztJQVVuQyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lB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QUNmLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDdEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0ExR1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsMGNBZ0JpQixnQkFBZ0IseUVDckR2RSxvaENBd0JNLHFMRE1GLE9BQU8sMEVBQ1AsV0FBVywwQkFDWCxhQUFhOzsyRkFLSix5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsYUFBYTtxQkFDZDt5RkFRUSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrREFBa0Q7c0JBQTFELEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFPTCwwQkFBMEI7c0JBRHpCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vZW51bS1hbmQtaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wvY29yZS1wYXJhbS1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWhlYWRlci1wYXJhbXMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdTdHlsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS1oZWFkZXItcGFyYW1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlSGVhZGVyUGFyYW1zQ29tcG9uZW50XHJcbiAgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XHJcbntcclxuICBASW5wdXQoKSBzaG93QnV0dG9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBidXR0b25DYXB0aW9uQ29kZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVycyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcm93cyE6IElDb3JlUGFyYW1Db250cm9sW11bXTtcclxuICBASW5wdXQoKSB0b2dnbGVBbGxWYWx1ZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBsYW5nITogc3RyaW5nO1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgLy8gVGhpcyB0cmFja3MgYWxsIG5nLWNvbnRhaW5lcnNcclxuICAgIEBWaWV3Q2hpbGRyZW4oJ2R5bmFtaWNDb21wb25lbnRDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICAgIGR5bmFtaWNDb21wb25lbnRDb250YWluZXJzITogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sncm93cyddKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgIFwiQ29yZUhlYWRlclBhcmFtc0NvbXBvbmVudCBjaGFuZ2VzWydyb3dzJ11cIixcclxuICAgICAgICBjaGFuZ2VzWydyb3dzJ10uY3VycmVudFZhbHVlXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubG9hZER5bmFtaWNDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubG9hZER5bmFtaWNDb21wb25lbnRzKCkpXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5tYXAoKHgpID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25Gcm9tRGF0ZUNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAuLi50aGlzLnZhbHVlLFxyXG4gICAgICBmcm9tRGF0ZTogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Ub0RhdGVDaGFuZ2UoZTogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHtcclxuICAgICAgLi4udGhpcy52YWx1ZSxcclxuICAgICAgdG9EYXRlOiBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvbkluY2x1c2lvbkNoYW5nZShlOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2Uoe1xyXG4gICAgICAuLi50aGlzLnZhbHVlLFxyXG4gICAgICBpbmNsdXNpb246IGUsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2tMb2NhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25CdXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWREeW5hbWljQ29tcG9uZW50cygpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoISF0aGlzLmR5bmFtaWNDb21wb25lbnRDb250YWluZXJzKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0NvbXBvbmVudENvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgLy8gQ2xlYXIgdGhlIGNvbnRhaW5lciBmaXJzdFxyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gIFxyXG4gICAgICAgIC8vIER5bmFtaWNhbGx5IGxvYWQgQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudFxyXG4gICAgICAgIGltcG9ydCgnLi4vLi4vY29yZS1wYXJhbS1jb250cm9sL2NvcmUtcGFyYW0tY29udHJvbC9jb3JlLXBhcmFtLWNvbnRyb2wuY29tcG9uZW50JykudGhlbigoeyBDb3JlUGFyYW1Db250cm9sQ29tcG9uZW50IH0pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoQ29yZVBhcmFtQ29udHJvbENvbXBvbmVudCk7XHJcbiAgXHJcbiAgICAgICAgICAvLyBQYXNzIGlucHV0cyBkeW5hbWljYWxseVxyXG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZmluZFBhcmFtSXRlbUJ5SW5kZXgoaW5kZXgpO1xyXG4gICAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnMgPSB0aGlzLmVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRQYXJhbUl0ZW1CeUluZGV4KGluZGV4OiBudW1iZXIpOiBJQ29yZVBhcmFtQ29udHJvbCB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaSA9IC0xO1xyXG4gICAgZm9yIChsZXQgcm93SW5kZXg9MDsgcm93SW5kZXggPCB0aGlzLnJvd3MubGVuZ3RoOyByb3dJbmRleCsrKSB7XHJcbiAgICAgIGZvciAobGV0IGNvbEluZGV4PTA7IGNvbEluZGV4IDwgdGhpcy5yb3dzW3Jvd0luZGV4XS5sZW5ndGg7IGNvbEluZGV4KyspIHtcclxuICAgICAgICBpKys7XHJcbiAgICAgICAgaWYgKGkgPT09IGluZGV4KSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5yb3dzW3Jvd0luZGV4XVtjb2xJbmRleF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1oZWFkZXItcGFyYW1zLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBjb250YWluZXItZmx1aWQgbm8tcGFkZGluZyBuby1tYXJnaW5cIj5cclxuICAgICAgICBAZm9yIChyb3cgb2Ygcm93czsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtYjE1XCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGNvbCBvZiByb3c7IHRyYWNrIGNvbCkge1xyXG4gICAgICAgICAgICBAaWYgKCFjb2wuaGlkZGVuKSB7XHJcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIiFjb2wud2lkdGggPyAnY29sLW1kLScgKyBjb2wuZmxleFNpemUgOiAnJ1wiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAhIWNvbC53aWR0aCA/IGNvbC53aWR0aCArICdweCcgOiAnJ1xyXG4gICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoc2hvd0J1dHRvbikge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGQtZmxleC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1mb3ItZm9ybVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25CdXR0b25DbGlja0xvY2FsKClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2FwdGlvbkNvZGUgfHwgJ1VJX0NPUkVfRklMVEVSX0hVQl9CVVRUT05fU0VBUkNIJykgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -1,15 +1,27 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { EnumFormBaseContolType } from '../enum/EnumFormBaseContolType';
3
3
  import { EnumCoreOrgTreeaAccessorMode } from '../libraries/core-org-tree/core-org-tree/core-org-tree.component';
4
+ import { BehaviorSubject } from 'rxjs';
4
5
  import * as i0 from "@angular/core";
5
- export var EnumSSRSExportFormat;
6
- (function (EnumSSRSExportFormat) {
7
- EnumSSRSExportFormat["PDF"] = "PDF";
8
- EnumSSRSExportFormat["EXCEL"] = "EXCEL";
9
- EnumSSRSExportFormat["WORD"] = "WORD";
10
- })(EnumSSRSExportFormat || (EnumSSRSExportFormat = {}));
6
+ export var EnumSsrsExpressFileExtension;
7
+ (function (EnumSsrsExpressFileExtension) {
8
+ EnumSsrsExpressFileExtension["pdf"] = "pdf";
9
+ EnumSsrsExpressFileExtension["docx"] = "docx";
10
+ EnumSsrsExpressFileExtension["xlsx"] = "xlsx";
11
+ })(EnumSsrsExpressFileExtension || (EnumSsrsExpressFileExtension = {}));
12
+ export var EnumSsrsExpressExportFormat;
13
+ (function (EnumSsrsExpressExportFormat) {
14
+ EnumSsrsExpressExportFormat["PDF"] = "PDF";
15
+ EnumSsrsExpressExportFormat["EXCEL"] = "EXCEL";
16
+ EnumSsrsExpressExportFormat["WORD"] = "WORD";
17
+ })(EnumSsrsExpressExportFormat || (EnumSsrsExpressExportFormat = {}));
11
18
  export class SsrsExpressService {
12
19
  constructor() {
20
+ this.ssrsExpressExtensionMap = new Map([
21
+ ['PDF', '.pdf'],
22
+ ['WORD', '.doc'],
23
+ ['EXCEL', '.xls']
24
+ ]);
13
25
  this.onNgModelChange = (ngModel, value) => {
14
26
  console.log(ngModel, value);
15
27
  };
@@ -42,10 +54,14 @@ export class SsrsExpressService {
42
54
  const [promptTranslationCode, typeInfo] = (inputItem.prompt || '').split('|');
43
55
  let controlType = this.getControlType(typeInfo || '', inputItem.multiValue);
44
56
  let subType;
45
- if (typeInfo && typeInfo.includes('::')) {
46
- const [mainControlType, subControlType] = typeInfo.split('::');
57
+ let seekerTextShownFrom;
58
+ // The convention to bind a seeker control
59
+ // For example: SSRS_PROMT.SELECT_A_CONTACT|SEEKER::CONTRACT_SEEK::contractNo
60
+ if (typeInfo && typeInfo.includes('::') && typeInfo.includes('::')) {
61
+ const [mainControlType, subControlType, shownFrom] = typeInfo.split('::');
47
62
  controlType = mainControlType;
48
63
  subType = subControlType; // Now we have both controlType and subType
64
+ seekerTextShownFrom = shownFrom;
49
65
  }
50
66
  let accessorMode = EnumCoreOrgTreeaAccessorMode.CHECKED; // default
51
67
  if (controlType === EnumFormBaseContolType.ORG_PARAM_DROPDOWN) {
@@ -62,20 +78,59 @@ export class SsrsExpressService {
62
78
  controlType: controlType,
63
79
  seekerSourceType: subType,
64
80
  accessorMode: accessorMode,
81
+ multiMode: !!inputItem.multiValue,
82
+ boundFrom: 'id',
83
+ shownFrom: seekerTextShownFrom,
84
+ objectList$: new BehaviorSubject([])
65
85
  }]);
66
86
  });
87
+ paramRows.push([{
88
+ flexSize: 12,
89
+ name: 'fileFormat',
90
+ ngModel: 'PDF',
91
+ ngModelChange: this.onNgModelChange,
92
+ value: null,
93
+ label: "SSRS_EXPRESS_FILE_FORMAT",
94
+ controlType: EnumFormBaseContolType.DROPDOWN,
95
+ dropdownOptions$: new BehaviorSubject([
96
+ {
97
+ value: 'PDF',
98
+ text: 'PDF'
99
+ },
100
+ {
101
+ value: 'WORD',
102
+ text: 'WORD'
103
+ },
104
+ {
105
+ value: 'EXCEL',
106
+ text: 'EXCEL'
107
+ },
108
+ ])
109
+ }]);
67
110
  return paramRows;
68
111
  }
69
112
  convertToSSRSString(value) {
70
113
  if (Array.isArray(value)) {
71
114
  // Handle arrays (e.g., string[], boolean[], number[])
72
- return value.map(v => v.toString()).join(',');
115
+ return value.map(v => v.toString()).join('::');
73
116
  }
74
117
  else {
75
118
  // Handle single values (string, boolean, number)
76
119
  return value.toString();
77
120
  }
78
121
  }
122
+ toSsrsParameterValues(input) {
123
+ const result = [];
124
+ input.forEach(row => {
125
+ row.forEach(col => {
126
+ result.push({
127
+ name: col.name,
128
+ value: this.convertToSSRSString(col.ngModel)
129
+ });
130
+ });
131
+ });
132
+ return result;
133
+ }
79
134
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SsrsExpressService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
80
135
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SsrsExpressService, providedIn: 'root' }); }
81
136
  }
@@ -85,4 +140,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
85
140
  providedIn: 'root'
86
141
  }]
87
142
  }], ctorParameters: () => [] });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Nycy1leHByZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9zc3JzLWV4cHJlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDOztBQXdCaEgsTUFBTSxDQUFOLElBQVksb0JBSVg7QUFKRCxXQUFZLG9CQUFvQjtJQUM5QixtQ0FBVyxDQUFBO0lBQ1gsdUNBQWUsQ0FBQTtJQUNmLHFDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUkvQjtBQWlCRCxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCO1FBRVEsb0JBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxLQUFVLEVBQUUsRUFBRTtZQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUM7SUFKYyxDQUFDO0lBTVQsY0FBYyxDQUFDLG9CQUE0QixFQUFFLFVBQW1CO1FBQ3RFLFFBQVEsb0JBQW9CLEVBQUU7WUFDNUIsS0FBSyxzQkFBc0IsQ0FBQyxRQUFRO2dCQUNsQyxPQUFPLHNCQUFzQixDQUFDLFFBQVEsQ0FBQztZQUN6QyxLQUFLLHNCQUFzQixDQUFDLFVBQVU7Z0JBQ3BDLE9BQU8sc0JBQXNCLENBQUMsVUFBVSxDQUFDO1lBQzNDLEtBQUssc0JBQXNCLENBQUMsUUFBUTtnQkFDbEMsT0FBTyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7WUFDekMsS0FBSyxzQkFBc0IsQ0FBQyxTQUFTO2dCQUNuQyxPQUFPLHNCQUFzQixDQUFD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ZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vbGlicmFyaWVzL2NvcmUtaGVhZGVyLXBhcmFtcy9lbnVtLWFuZC1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRW51bUZvcm1CYXNlQ29udG9sVHlwZSB9IGZyb20gJy4uL2VudW0vRW51bUZvcm1CYXNlQ29udG9sVHlwZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgfSBmcm9tICcuLi9saWJyYXJpZXMvY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvYXBQYXJhbWV0ZXJJdGVtIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgcGFyYW1ldGVyVHlwZU5hbWU6IHN0cmluZyxcclxuICBwcm9tcHQ6IHN0cmluZywgLy8gbXVzdCBmb2xsb3cgdGhlIGRlc2lnbmVkIHBhdHRlcm4sIGUuZy4sIFwiU1NSU19QUk9NVC5TRUxFQ1RfT1JHX1VOSVRTfE9SR19QQVJBTV9EUk9QRE9XTlwiXHJcbiAgbnVsbGFibGU6IGJvb2xlYW4sXHJcbiAgYWxsb3dCbGFuazogYm9vbGVhbixcclxuICBtdWx0aVZhbHVlOiBib29sZWFuLFxyXG4gIHF1ZXJ5UGFyYW1ldGVyOiBib29sZWFuLFxyXG4gIHZhbGlkVmFsdWVzUXVlcnlCYXNlZDogYm9vbGVhbixcclxuICBkZWZhdWx0VmFsdWVzUXVlcnlCYXNlZDogYm9vbGVhbixcclxuICB2YWxpZFZhbHVlcz86IElWYWxpZFZhbHVlcyxcclxufVxyXG5cclxuaW50ZXJmYWNlIElWYWxpZFZhbHVlcyB7XHJcbiAgdmFsaWRWYWx1ZTogSVZhbGlkVmFsdWVbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIElWYWxpZFZhbHVlIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVudW1TU1JTRXhwb3J0Rm9ybWF0IHtcclxuICBQREYgPSAnUERGJyxcclxuICBFWENFTCA9ICdFWENFTCcsXHJcbiAgV09SRCA9ICdXT1JEJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHZW5lcmF0ZVJlcG9ydFJlcXVlc3Qge1xyXG4gIHJlcG9ydFBhdGg6IHN0cmluZztcclxuICBwYXJhbWV0ZXJWYWx1ZXM6IElQYXJhbWV0ZXJWYWx1ZVtdO1xyXG4gIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgZm9ybWF0OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJUGFyYW1ldGVyVmFsdWUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTc3JzRXhwcmVzc1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwcml2YXRlIG9uTmdNb2RlbENoYW5nZSA9IChuZ01vZGVsOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcclxuICAgIGNvbnNvbGUubG9nKG5nTW9kZWwsIHZhbHVlKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGdldENvbnRyb2xUeXBlKHByZWZlcnJlZENvbnRyb2xUeXBlOiBzdHJpbmcsIG11bHRpVmFsdWU6IGJvb2xlYW4pOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlIHtcclxuICAgIHN3aXRjaCAocHJlZmVycmVkQ29udHJvbFR5cGUpIHtcclxuICAgICAgY2FzZSBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLQk9YOlxyXG4gICAgICAgIHJldHVybiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLQk9YO1xyXG4gICAgICBjYXNlIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUjpcclxuICAgICAgICByZXR1cm4gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSO1xyXG4gICAgICBjYXNlIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuRFJPUERPV046XHJcbiAgICAgICAgcmV0dXJuIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuRFJPUERPV047XHJcbiAgICAgIGNhc2UgRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0xJU1Q6XHJcbiAgICAgICAgcmV0dXJuIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNUO1xyXG4gICAgICBjYXNlIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuT1JHX1BBUkFNX0RST1BET1dOOlxyXG4gICAgICAgIHJldHVybiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTjtcclxuICAgICAgY2FzZSBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk1PTlRIU0VMRUNUT1I6XHJcbiAgICAgICAgcmV0dXJuIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuTU9OVEhTRUxFQ1RPUjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5URVhUQk9YOyAvLyBEZWZhdWx0IHRvIFRFWFRCT1hcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1aWxkUGFyYW1Sb3dzKGlucHV0OiBJU29hcFBhcmFtZXRlckl0ZW1bXSk6IElDb3JlUGFyYW1Db250cm9sW11bXSB7XHJcbiAgICBjb25zdCBwYXJhbVJvd3M6IElDb3JlUGFyYW1Db250cm9sW11bXSA9IFtdO1xyXG5cclxuICAgIGlucHV0LmZvckVhY2goaW5wdXRJdGVtID0+IHtcclxuXHJcbiAgICAgIGlmIChpbnB1dEl0ZW0ubmFtZSA9PSBcIkNvbm5lY3Rpb25TdHJpbmdcIiB8fCBpbnB1dEl0ZW0ubmFtZSA9PSBcIkxhbmdcIikge1xyXG4gICAgICAgIHJldHVybjsgLy8gU2tpcHMgdGhpcyBpdGVyYXRpb24sIGJ1dCB0aGUgbG9vcCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dCBpdGVtXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNwbGl0IHByb21wdCwgZW5zdXJlIGl0IGhhcyB0aGUgY29ycmVjdCBmb3JtYXRcclxuICAgICAgY29uc3QgW3Byb21wdFRyYW5zbGF0aW9uQ29kZSwgdHlwZUluZm9dID0gKGlucHV0SXRlbS5wcm9tcHQgfHwgJycpLnNwbGl0KCd8Jyk7XHJcbiAgICAgIGxldCBjb250cm9sVHlwZTogc3RyaW5nID0gdGhpcy5nZXRDb250cm9sVHlwZSh0eXBlSW5mbyB8fCAnJywgaW5wdXRJdGVtLm11bHRpVmFsdWUpO1xyXG4gICAgICBsZXQgc3ViVHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgICAgaWYgKHR5cGVJbmZvICYmIHR5cGVJbmZvLmluY2x1ZGVzKCc6OicpKSB7XHJcbiAgICAgICAgY29uc3QgW21haW5Db250cm9sVHlwZSwgc3ViQ29udHJvbFR5cGVdID0gdHlwZUluZm8uc3BsaXQoJzo6Jyk7XHJcbiAgICAgICAgY29udHJvbFR5cGUgPSBtYWluQ29udHJvbFR5cGU7XHJcbiAgICAgICAgc3ViVHlwZSA9IHN1YkNvbnRyb2xUeXBlOyAgLy8gTm93IHdlIGhhdmUgYm90aCBjb250cm9sVHlwZSBhbmQgc3ViVHlwZVxyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYWNjZXNzb3JNb2RlOiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlID0gRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZS5DSEVDS0VEOyAvLyBkZWZhdWx0XHJcbiAgICAgIGlmIChjb250cm9sVHlwZSA9PT0gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5PUkdfUEFSQU1fRFJPUERPV04pIHtcclxuICAgICAgICBhY2Nlc3Nvck1vZGUgPSBpbnB1dEl0ZW0ubXVsdGlWYWx1ZSA/IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQUNUSVZBVEVEX1NJTkdMRTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQnVpbGQgdGhlIHBhcmFtIHJvd1xyXG4gICAgICBwYXJhbVJvd3MucHVzaChbe1xyXG4gICAgICAgIGZsZXhTaXplOiAxMiwgLy8gQ2FuIGJlIGR5bmFtaWNhbGx5IGFkanVzdGVkXHJcbiAgICAgICAgbmFtZTogaW5wdXRJdGVtLm5hbWUsXHJcbiAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICBsYWJlbDogcHJvbXB0VHJhbnNsYXRpb25Db2RlIHx8IGlucHV0SXRlbS5uYW1lLCAvLyBGYWxsYmFjayB0byBpdGVtIG5hbWUgaWYgcHJvbXB0IGlzIGVtcHR5XHJcbiAgICAgICAgY29udHJvbFR5cGU6IGNvbnRyb2xUeXBlLFxyXG4gICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IHN1YlR5cGUsXHJcbiAgICAgICAgYWNjZXNzb3JNb2RlOiBhY2Nlc3Nvck1vZGUsXHJcbiAgICAgIH1dKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBwYXJhbVJvd3M7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9TU1JTU3RyaW5nKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIC8vIEhhbmRsZSBhcnJheXMgKGUuZy4sIHN0cmluZ1tdLCBib29sZWFuW10sIG51bWJlcltdKVxyXG4gICAgICByZXR1cm4gdmFsdWUubWFwKHYgPT4gdi50b1N0cmluZygpKS5qb2luKCcsJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBIYW5kbGUgc2luZ2xlIHZhbHVlcyAoc3RyaW5nLCBib29sZWFuLCBudW1iZXIpXHJcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Nycy1leHByZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9zc3JzLWV4cHJlc3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3ZDLE1BQU0sQ0FBTixJQUFZLDRCQUlYO0FBSkQsV0FBWSw0QkFBNEI7SUFDdEMsMkNBQVcsQ0FBQTtJQUNYLDZDQUFhLENBQUE7SUFDYiw2Q0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUpXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFJdkM7QUF3QkQsTUFBTSxDQUFOLElBQVksMkJBSVg7QUFKRCxXQUFZLDJCQUEyQjtJQUNyQywwQ0FBVyxDQUFBO0lBQ1gsOENBQWUsQ0FBQTtJQUNmLDRDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUl0QztBQWlCRCxNQUFNLE9BQU8sa0JBQWtCO0lBUTdCO1FBTkEsNEJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQWlCO1lBQ2hELENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUNmLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztZQUNoQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7U0FDbEIsQ0FBQyxDQUFDO1FBSUssb0JBQWUsR0FBRyxDQUFDLE9BQWUsRUFBRSxLQUFVLEVBQUUsRUFBRTtZQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM5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c0IsRUFBRSxDQUFDO1FBRXJDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDVixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7b0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO2lCQUM3QyxDQUFDLENBQUE7WUFDSixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0FwSVUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUNvcmVQYXJhbUNvbnRyb2wgfSBmcm9tICcuLi9saWJyYXJpZXMvY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZSB9IGZyb20gJy4uL2xpYnJhcmllcy9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUNvcmVEcm9wZG93bk9wdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvSUNvcmVEcm9wZG93bk9wdGlvbic7XHJcblxyXG5leHBvcnQgZW51bSBFbnVtU3Nyc0V4cHJlc3NGaWxlRXh0ZW5zaW9uIHtcclxuICBwZGYgPSAncGRmJyxcclxuICBkb2N4ID0gJ2RvY3gnLFxyXG4gIHhsc3ggPSAneGxzeCcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNvYXBQYXJhbWV0ZXJJdGVtIHtcclxuICBuYW1lOiBzdHJpbmcsXHJcbiAgcGFyYW1ldGVyVHlwZU5hbWU6IHN0cmluZyxcclxuICBwcm9tcHQ6IHN0cmluZywgLy8gbXVzdCBmb2xsb3cgdGhlIGRlc2lnbmVkIHBhdHRlcm4sIGUuZy4sIFwiU1NSU19QUk9NVC5TRUxFQ1RfT1JHX1VOSVRTfE9SR19QQVJBTV9EUk9QRE9XTlwiXHJcbiAgbnVsbGFibGU6IGJvb2xlYW4sXHJcbiAgYWxsb3dCbGFuazogYm9vbGVhbixcclxuICBtdWx0aVZhbHVlOiBib29sZWFuLFxyXG4gIHF1ZXJ5UGFyYW1ldGVyOiBib29sZWFuLFxyXG4gIHZhbGlkVmFsdWVzUXVlcnlCYXNlZDogYm9vbGVhbixcclxuICBkZWZhdWx0VmFsdWVzUXVlcnlCYXNlZDogYm9vbGVhbixcclxuICB2YWxpZFZhbHVlcz86IElWYWxpZFZhbHVlcyxcclxufVxyXG5cclxuaW50ZXJmYWNlIElWYWxpZFZhbHVlcyB7XHJcbiAgdmFsaWRWYWx1ZTogSVZhbGlkVmFsdWVbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIElWYWxpZFZhbHVlIHtcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEVudW1Tc3JzRXhwcmVzc0V4cG9ydEZvcm1hdCB7XHJcbiAgUERGID0gJ1BERicsXHJcbiAgRVhDRUwgPSAnRVhDRUwnLFxyXG4gIFdPUkQgPSAnV09SRCdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJR2VuZXJhdGVSZXBvcnRSZXF1ZXN0IHtcclxuICByZXBvcnRQYXRoOiBzdHJpbmc7XHJcbiAgcGFyYW1ldGVyVmFsdWVzOiBJUGFyYW1ldGVyVmFsdWVbXTtcclxuICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIGZvcm1hdDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQYXJhbWV0ZXJWYWx1ZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Nyc0V4cHJlc3NTZXJ2aWNlIHtcclxuXHJcbiAgc3Nyc0V4cHJlc3NFeHRlbnNpb25NYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbXHJcbiAgICBbJ1BERicsICcucGRmJ10sXHJcbiAgICBbJ1dPUkQnLCAnLmRvYyddLFxyXG4gICAgWydFWENFTCcsICcueGxzJ11cclxuICBdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBvbk5nTW9kZWxDaGFuZ2UgPSAobmdNb2RlbDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZyhuZ01vZGVsLCB2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRDb250cm9sVHlwZShwcmVmZXJyZWRDb250cm9sVHlwZTogc3RyaW5nLCBtdWx0aVZhbHVlOiBib29sZWFuKTogRW51bUZvcm1CYXNlQ29udG9sVHlwZSB7XHJcbiAgICBzd2l0Y2ggKHByZWZlcnJlZENvbnRyb2xUeXBlKSB7XHJcbiAgICAgIGNhc2UgRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0JPWDpcclxuICAgICAgICByZXR1cm4gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0JPWDtcclxuICAgICAgY2FzZSBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVI6XHJcbiAgICAgICAgcmV0dXJuIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUjtcclxuICAgICAgY2FzZSBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRST1BET1dOOlxyXG4gICAgICAgIHJldHVybiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRST1BET1dOO1xyXG4gICAgICBjYXNlIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNUOlxyXG4gICAgICAgIHJldHVybiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkNIRUNLTElTVDtcclxuICAgICAgY2FzZSBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTjpcclxuICAgICAgICByZXR1cm4gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5PUkdfUEFSQU1fRFJPUERPV047XHJcbiAgICAgIGNhc2UgRW51bUZvcm1CYXNlQ29udG9sVHlwZS5NT05USFNFTEVDVE9SOlxyXG4gICAgICAgIHJldHVybiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk1PTlRIU0VMRUNUT1I7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuVEVYVEJPWDsgLy8gRGVmYXVsdCB0byBURVhUQk9YXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBidWlsZFBhcmFtUm93cyhpbnB1dDogSVNvYXBQYXJhbWV0ZXJJdGVtW10pOiBJQ29yZVBhcmFtQ29udHJvbFtdW10ge1xyXG4gICAgY29uc3QgcGFyYW1Sb3dzOiBJQ29yZVBhcmFtQ29udHJvbFtdW10gPSBbXTtcclxuXHJcbiAgICBpbnB1dC5mb3JFYWNoKGlucHV0SXRlbSA9PiB7XHJcblxyXG4gICAgICBpZiAoaW5wdXRJdGVtLm5hbWUgPT0gXCJDb25uZWN0aW9uU3RyaW5nXCIgfHwgaW5wdXRJdGVtLm5hbWUgPT0gXCJMYW5nXCIpIHtcclxuICAgICAgICByZXR1cm47IC8vIFNraXBzIHRoaXMgaXRlcmF0aW9uLCBidXQgdGhlIGxvb3AgY29udGludWVzIHdpdGggdGhlIG5leHQgaXRlbVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTcGxpdCBwcm9tcHQsIGVuc3VyZSBpdCBoYXMgdGhlIGNvcnJlY3QgZm9ybWF0XHJcbiAgICAgIGNvbnN0IFtwcm9tcHRUcmFuc2xhdGlvbkNvZGUsIHR5cGVJbmZvXSA9IChpbnB1dEl0ZW0ucHJvbXB0IHx8ICcnKS5zcGxpdCgnfCcpO1xyXG4gICAgICBsZXQgY29udHJvbFR5cGU6IHN0cmluZyA9IHRoaXMuZ2V0Q29udHJvbFR5cGUodHlwZUluZm8gfHwgJycsIGlucHV0SXRlbS5tdWx0aVZhbHVlKTtcclxuICAgICAgbGV0IHN1YlR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICAgbGV0IHNlZWtlclRleHRTaG93bkZyb206IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIC8vIFRoZSBjb252ZW50aW9uIHRvIGJpbmQgYSBzZWVrZXIgY29udHJvbFxyXG4gICAgICAvLyBGb3IgZXhhbXBsZTogU1NSU19QUk9NVC5TRUxFQ1RfQV9DT05UQUNUfFNFRUtFUjo6Q09OVFJBQ1RfU0VFSzo6Y29udHJhY3ROb1xyXG4gICAgICBpZiAodHlwZUluZm8gJiYgdHlwZUluZm8uaW5jbHVkZXMoJzo6JykgJiYgdHlwZUluZm8uaW5jbHVkZXMoJzo6JykpIHtcclxuICAgICAgICBjb25zdCBbbWFpbkNvbnRyb2xUeXBlLCBzdWJDb250cm9sVHlwZSwgc2hvd25Gcm9tXSA9IHR5cGVJbmZvLnNwbGl0KCc6OicpO1xyXG4gICAgICAgIGNvbnRyb2xUeXBlID0gbWFpbkNvbnRyb2xUeXBlO1xyXG4gICAgICAgIHN1YlR5cGUgPSBzdWJDb250cm9sVHlwZTsgIC8vIE5vdyB3ZSBoYXZlIGJvdGggY29udHJvbFR5cGUgYW5kIHN1YlR5cGVcclxuICAgICAgICBzZWVrZXJUZXh0U2hvd25Gcm9tID0gc2hvd25Gcm9tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgYWNjZXNzb3JNb2RlOiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlID0gRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZS5DSEVDS0VEOyAvLyBkZWZhdWx0XHJcbiAgICAgIGlmIChjb250cm9sVHlwZSA9PT0gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5PUkdfUEFSQU1fRFJPUERPV04pIHtcclxuICAgICAgICBhY2Nlc3Nvck1vZGUgPSBpbnB1dEl0ZW0ubXVsdGlWYWx1ZSA/IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQUNUSVZBVEVEX1NJTkdMRTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQnVpbGQgdGhlIHBhcmFtIHJvd1xyXG4gICAgICBwYXJhbVJvd3MucHVzaChbe1xyXG4gICAgICAgIGZsZXhTaXplOiAxMiwgLy8gQ2FuIGJlIGR5bmFtaWNhbGx5IGFkanVzdGVkXHJcbiAgICAgICAgbmFtZTogaW5wdXRJdGVtLm5hbWUsXHJcbiAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICBsYWJlbDogcHJvbXB0VHJhbnNsYXRpb25Db2RlIHx8IGlucHV0SXRlbS5uYW1lLCAvLyBGYWxsYmFjayB0byBpdGVtIG5hbWUgaWYgcHJvbXB0IGlzIGVtcHR5XHJcbiAgICAgICAgY29udHJvbFR5cGU6IGNvbnRyb2xUeXBlLFxyXG4gICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IHN1YlR5cGUsXHJcbiAgICAgICAgYWNjZXNzb3JNb2RlOiBhY2Nlc3Nvck1vZGUsXHJcbiAgICAgICAgbXVsdGlNb2RlOiAhIWlucHV0SXRlbS5tdWx0aVZhbHVlLFxyXG4gICAgICAgIGJvdW5kRnJvbTogJ2lkJywgLy8gdGhlIHN0YW5kYXJkIGJpbmRpbmcgZm9yIHNlZWtlclxyXG4gICAgICAgIHNob3duRnJvbTogc2Vla2VyVGV4dFNob3duRnJvbSxcclxuICAgICAgICBvYmplY3RMaXN0JDogbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pXHJcbiAgICAgIH1dKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHBhcmFtUm93cy5wdXNoKFt7XHJcbiAgICAgIGZsZXhTaXplOiAxMiwgLy8gQ2FuIGJlIGR5bmFtaWNhbGx5IGFkanVzdGVkXHJcbiAgICAgIG5hbWU6ICdmaWxlRm9ybWF0JyxcclxuICAgICAgbmdNb2RlbDogJ1BERicsIC8vIGRlZmF1bHRcclxuICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICBsYWJlbDogXCJTU1JTX0VYUFJFU1NfRklMRV9GT1JNQVRcIixcclxuICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuRFJPUERPV04sXHJcbiAgICAgIGRyb3Bkb3duT3B0aW9ucyQ6IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNvcmVEcm9wZG93bk9wdGlvbltdPihcclxuICAgICAgICBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnUERGJyxcclxuICAgICAgICAgICAgdGV4dDogJ1BERidcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHZhbHVlOiAnV09SRCcsXHJcbiAgICAgICAgICAgIHRleHQ6ICdXT1JEJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdmFsdWU6ICdFWENFTCcsXHJcbiAgICAgICAgICAgIHRleHQ6ICdFWENFTCdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXVxyXG4gICAgICApXHJcbiAgICB9XSk7XHJcblxyXG4gICAgcmV0dXJuIHBhcmFtUm93cztcclxuICB9XHJcblxyXG4gIGNvbnZlcnRUb1NTUlNTdHJpbmcodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgLy8gSGFuZGxlIGFycmF5cyAoZS5nLiwgc3RyaW5nW10sIGJvb2xlYW5bXSwgbnVtYmVyW10pXHJcbiAgICAgIHJldHVybiB2YWx1ZS5tYXAodiA9PiB2LnRvU3RyaW5nKCkpLmpvaW4oJzo6Jyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBIYW5kbGUgc2luZ2xlIHZhbHVlcyAoc3RyaW5nLCBib29sZWFuLCBudW1iZXIpXHJcbiAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9Tc3JzUGFyYW1ldGVyVmFsdWVzKGlucHV0OiBJQ29yZVBhcmFtQ29udHJvbFtdW10pOiBJUGFyYW1ldGVyVmFsdWVbXSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IElQYXJhbWV0ZXJWYWx1ZVtdID0gW107XHJcblxyXG4gICAgaW5wdXQuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgICByb3cuZm9yRWFjaChjb2wgPT4ge1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IGNvbC5uYW1lLFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuY29udmVydFRvU1NSU1N0cmluZyhjb2wubmdNb2RlbClcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -6093,14 +6093,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
6093
6093
  args: ['reducedIconWrapper']
6094
6094
  }] } });
6095
6095
 
6096
- var EnumSSRSExportFormat;
6097
- (function (EnumSSRSExportFormat) {
6098
- EnumSSRSExportFormat["PDF"] = "PDF";
6099
- EnumSSRSExportFormat["EXCEL"] = "EXCEL";
6100
- EnumSSRSExportFormat["WORD"] = "WORD";
6101
- })(EnumSSRSExportFormat || (EnumSSRSExportFormat = {}));
6096
+ var EnumSsrsExpressFileExtension;
6097
+ (function (EnumSsrsExpressFileExtension) {
6098
+ EnumSsrsExpressFileExtension["pdf"] = "pdf";
6099
+ EnumSsrsExpressFileExtension["docx"] = "docx";
6100
+ EnumSsrsExpressFileExtension["xlsx"] = "xlsx";
6101
+ })(EnumSsrsExpressFileExtension || (EnumSsrsExpressFileExtension = {}));
6102
+ var EnumSsrsExpressExportFormat;
6103
+ (function (EnumSsrsExpressExportFormat) {
6104
+ EnumSsrsExpressExportFormat["PDF"] = "PDF";
6105
+ EnumSsrsExpressExportFormat["EXCEL"] = "EXCEL";
6106
+ EnumSsrsExpressExportFormat["WORD"] = "WORD";
6107
+ })(EnumSsrsExpressExportFormat || (EnumSsrsExpressExportFormat = {}));
6102
6108
  class SsrsExpressService {
6103
6109
  constructor() {
6110
+ this.ssrsExpressExtensionMap = new Map([
6111
+ ['PDF', '.pdf'],
6112
+ ['WORD', '.doc'],
6113
+ ['EXCEL', '.xls']
6114
+ ]);
6104
6115
  this.onNgModelChange = (ngModel, value) => {
6105
6116
  console.log(ngModel, value);
6106
6117
  };
@@ -6133,10 +6144,14 @@ class SsrsExpressService {
6133
6144
  const [promptTranslationCode, typeInfo] = (inputItem.prompt || '').split('|');
6134
6145
  let controlType = this.getControlType(typeInfo || '', inputItem.multiValue);
6135
6146
  let subType;
6136
- if (typeInfo && typeInfo.includes('::')) {
6137
- const [mainControlType, subControlType] = typeInfo.split('::');
6147
+ let seekerTextShownFrom;
6148
+ // The convention to bind a seeker control
6149
+ // For example: SSRS_PROMT.SELECT_A_CONTACT|SEEKER::CONTRACT_SEEK::contractNo
6150
+ if (typeInfo && typeInfo.includes('::') && typeInfo.includes('::')) {
6151
+ const [mainControlType, subControlType, shownFrom] = typeInfo.split('::');
6138
6152
  controlType = mainControlType;
6139
6153
  subType = subControlType; // Now we have both controlType and subType
6154
+ seekerTextShownFrom = shownFrom;
6140
6155
  }
6141
6156
  let accessorMode = EnumCoreOrgTreeaAccessorMode.CHECKED; // default
6142
6157
  if (controlType === EnumFormBaseContolType.ORG_PARAM_DROPDOWN) {
@@ -6153,20 +6168,59 @@ class SsrsExpressService {
6153
6168
  controlType: controlType,
6154
6169
  seekerSourceType: subType,
6155
6170
  accessorMode: accessorMode,
6171
+ multiMode: !!inputItem.multiValue,
6172
+ boundFrom: 'id',
6173
+ shownFrom: seekerTextShownFrom,
6174
+ objectList$: new BehaviorSubject([])
6156
6175
  }]);
6157
6176
  });
6177
+ paramRows.push([{
6178
+ flexSize: 12,
6179
+ name: 'fileFormat',
6180
+ ngModel: 'PDF',
6181
+ ngModelChange: this.onNgModelChange,
6182
+ value: null,
6183
+ label: "SSRS_EXPRESS_FILE_FORMAT",
6184
+ controlType: EnumFormBaseContolType.DROPDOWN,
6185
+ dropdownOptions$: new BehaviorSubject([
6186
+ {
6187
+ value: 'PDF',
6188
+ text: 'PDF'
6189
+ },
6190
+ {
6191
+ value: 'WORD',
6192
+ text: 'WORD'
6193
+ },
6194
+ {
6195
+ value: 'EXCEL',
6196
+ text: 'EXCEL'
6197
+ },
6198
+ ])
6199
+ }]);
6158
6200
  return paramRows;
6159
6201
  }
6160
6202
  convertToSSRSString(value) {
6161
6203
  if (Array.isArray(value)) {
6162
6204
  // Handle arrays (e.g., string[], boolean[], number[])
6163
- return value.map(v => v.toString()).join(',');
6205
+ return value.map(v => v.toString()).join('::');
6164
6206
  }
6165
6207
  else {
6166
6208
  // Handle single values (string, boolean, number)
6167
6209
  return value.toString();
6168
6210
  }
6169
6211
  }
6212
+ toSsrsParameterValues(input) {
6213
+ const result = [];
6214
+ input.forEach(row => {
6215
+ row.forEach(col => {
6216
+ result.push({
6217
+ name: col.name,
6218
+ value: this.convertToSSRSString(col.ngModel)
6219
+ });
6220
+ });
6221
+ });
6222
+ return result;
6223
+ }
6170
6224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SsrsExpressService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6171
6225
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SsrsExpressService, providedIn: 'root' }); }
6172
6226
  }
@@ -8162,37 +8216,45 @@ class CoreHeaderParamsComponent extends CoreFormControlBaseComponent {
8162
8216
  this.onButtonClick.emit();
8163
8217
  }
8164
8218
  loadDynamicComponents() {
8165
- // Ensure dynamicComponentContainer is defined
8166
- if (this.dynamicComponentContainer) {
8167
- this.dynamicComponentContainer.clear();
8168
- this.rows.forEach(row => {
8169
- row.forEach(col => {
8170
- if (!col.hidden) {
8171
- // Dynamically import CoreParamControlComponent
8172
- Promise.resolve().then(function () { return coreParamControl_component; })
8173
- .then(({ CoreParamControlComponent }) => {
8174
- const componentRef = this.dynamicComponentContainer.createComponent(CoreParamControlComponent);
8175
- componentRef.instance.control = col;
8176
- componentRef.instance.enableTimeZoneConverterForDateTimePeriodParameters = this.enableTimeZoneConverterForDateTimePeriodParameters;
8177
- });
8219
+ if (!!this.dynamicComponentContainers) {
8220
+ this.dynamicComponentContainers.forEach((container, index) => {
8221
+ // Clear the container first
8222
+ container.clear();
8223
+ // Dynamically load CoreParamControlComponent
8224
+ Promise.resolve().then(function () { return coreParamControl_component; }).then(({ CoreParamControlComponent }) => {
8225
+ const componentRef = container.createComponent(CoreParamControlComponent);
8226
+ // Pass inputs dynamically
8227
+ const control = this.findParamItemByIndex(index);
8228
+ if (control) {
8229
+ componentRef.instance.control = control;
8230
+ componentRef.instance.enableTimeZoneConverterForDateTimePeriodParameters = this.enableTimeZoneConverterForDateTimePeriodParameters;
8178
8231
  }
8179
8232
  });
8180
8233
  });
8181
8234
  }
8182
8235
  }
8236
+ findParamItemByIndex(index) {
8237
+ let i = -1;
8238
+ for (let rowIndex = 0; rowIndex < this.rows.length; rowIndex++) {
8239
+ for (let colIndex = 0; colIndex < this.rows[rowIndex].length; colIndex++) {
8240
+ i++;
8241
+ if (i === index) {
8242
+ return this.rows[rowIndex][colIndex];
8243
+ }
8244
+ }
8245
+ }
8246
+ return undefined;
8247
+ }
8183
8248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, deps: [{ token: MultiLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
8184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n <!-- <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control> -->\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type:
8185
- //CoreParamControlComponent,
8186
- TranslatePipe, name: "translate" }] }); }
8249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreHeaderParamsComponent, isStandalone: true, selector: "core-header-params", inputs: { showButton: "showButton", buttonCaptionCode: "buttonCaptionCode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", rows: "rows", toggleAllValue: "toggleAllValue" }, outputs: { onButtonClick: "onButtonClick" }, viewQueries: [{ propertyName: "dynamicComponentContainers", predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
8187
8250
  }
8188
8251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreHeaderParamsComponent, decorators: [{
8189
8252
  type: Component,
8190
8253
  args: [{ selector: 'core-header-params', standalone: true, imports: [
8191
8254
  NgStyle,
8192
8255
  FormsModule,
8193
- //CoreParamControlComponent,
8194
8256
  TranslatePipe
8195
- ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n <!-- <core-param-control [control]=\"col\" [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"></core-param-control> -->\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
8257
+ ], template: "<div class=\"core-header-params-container\">\r\n <div class=\"container container-fluid no-padding no-margin\">\r\n @for (row of rows; track $index) {\r\n <div class=\"row mb15\">\r\n @for (col of row; track col) {\r\n @if (!col.hidden) {\r\n <div [class]=\"!col.width ? 'col-md-' + col.flexSize : ''\" [ngStyle]=\"{\r\n width: !!col.width ? col.width + 'px' : ''\r\n }\">\r\n <ng-container #dynamicComponentContainer></ng-container>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n @if (showButton) {\r\n <div class=\"footer\">\r\n <div class=\"d-flex d-flex-end\">\r\n <button class=\"btn btn-for-form\" type=\"button\" (click)=\"onButtonClickLocal()\">{{\r\n (buttonCaptionCode || 'UI_CORE_FILTER_HUB_BUTTON_SEARCH') | translate: lang }}</button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</div>", styles: [".core-header-params-container .btn-for-form{border:none;border-radius:0;background-color:#000;color:#fff;min-width:120px}\n"] }]
8196
8258
  }], ctorParameters: () => [{ type: MultiLanguageService }], propDecorators: { showButton: [{
8197
8259
  type: Input
8198
8260
  }], buttonCaptionCode: [{
@@ -8205,9 +8267,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
8205
8267
  type: Input
8206
8268
  }], onButtonClick: [{
8207
8269
  type: Output
8208
- }], dynamicComponentContainer: [{
8209
- type: ViewChild,
8210
- args: ['dynamicComponentContainer', { read: ViewContainerRef, static: false }]
8270
+ }], dynamicComponentContainers: [{
8271
+ type: ViewChildren,
8272
+ args: ['dynamicComponentContainer', { read: ViewContainerRef }]
8211
8273
  }] } });
8212
8274
 
8213
8275
  var EnumCoreFormControlSeekerSourceType;
@@ -29795,5 +29857,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
29795
29857
  * Generated bundle index. Do not edit.
29796
29858
  */
29797
29859
 
29798
- export { ActionService, ActionSvgEditComponent, AlertComponent, AlertService, AnimatedTextComponent, AnimatedTextService, AppConfigService, AppInitializationService, AppService, ApplicationHelpService, AuthService, BaseComponent, BaseDropdownComponent, BaseEditComponent, ButtonGroupComponent, ButtonGroupModule, ButtonGroupService, CORE_VNS_BUTTONS, CacheService, CanActivateFunctionUrlMapperGuard, CanDeactivateGuard, CheckForUpdateService, ClientService, CommonHttpRequestService, ConfigService, ConfirmDialogStateComponent, ControlBase, CoreAccordionComponent, CoreAccordionService, CoreActiveUserCountComponent, CoreApiProgressComponent, CoreAttachmentComponent, CoreButtonComponent, CoreButtonGroupComponent, CoreButtonGroupService, CoreButtonGroupVnsComponent, CoreButtonVnsComponent, CoreCheckboxComponent, CoreChecklistComponent, CoreCommonParamKitComponent, CoreCompositionComponent, CoreCompositionService, CoreCompositionState, CoreConfirmDialogComponent, CoreContractSeekerComponent, CoreControlComponent, CoreControlNoGridBufferComponent, CoreControlNoSeekerComponent, CoreControlService, CoreCurrencyInputComponent, CoreDatePickerComponent, CoreDatetimeService, CoreDropdownComponent, CoreEmployeeScheduleComponent, CoreEmployeeSeekerComponent, CoreFileUploaderComponent, CoreFilterHubComponent, CoreFilterHubService, CoreFormComponent, CoreFormControlBaseComponent, CoreFormControlSeekerComponent, CoreFormLiteComponent, CoreFormService, CoreFormTabComponent, CoreGridBufferComponent, CoreHeaderParamsComponent, CoreHelperComponent, CoreIosSwitcherComponent, CoreLineComponent, CoreListComponent, CoreListLazyComponent, CoreLoadingSurfaceComponent, CoreMccComponent, CoreMonthPickerComponent, CoreMonthSelectorComponent, CoreNavigationTrackerComponent, CoreOauthCallbackComponent, CoreOrgParamComponent, CoreOrgTreeComponent, CoreOrgTreeService, CoreOrgTreeState, CoreOrgUnitSeekerComponent, CoreOrgchartflexComponent, CorePageEditComponent, CorePageEditLiteComponent, CorePageEditService, CorePageEditTabComponent, CorePageHeaderComponent, CorePageListComponent, CorePageListContentComponent, CorePageListService, CorePageListState, CorePageViewComponent, CorePaginationComponent, CorePaginationFullComponent, CorePaginationFullService, CoreParamControlComponent, CorePermissionActionsComponent, CorePermissionComponent, CorePermissionService, CorePositionConcurrentSeekerComponent, CorePositionSeekerComponent, CoreQrcodeComponent, CoreQueryBuilderComponent, CoreRadioGroupComponent, CoreReducerIconComponent, CoreRootMenuItemPickerComponent, CoreRotatingTextComponent, CoreRoutingHistoryComponent, CoreScrollComponent, CoreScrollLazyComponent, CoreSeenByComponent, CoreShiftCardComponent, CoreShiftCellComponent, CoreShiftCollectionComponent, CoreShiftStickerComponent, CoreStatisticWidgetComponent, CoreStatusStickerComponent, CoreSubFormGroupComponent, CoreTabListComponent, CoreTableComponent, CoreTableService, CoreTabsComponent, CoreTagsComponent, CoreTopicPickerComponent, CoreTopicTreeComponent, CoreTreeComponent, CoreTreeGridComponent, CoreWageSeekerComponent, CoreWorkingSeekerComponent, CoreYearPickerComponent, CustomValidators, DATE_VALUE_ACCESSOR, DEFAULT_SVG, DESKTOP_SCREEN_HEDER_HEIGHT, DateValueAccessor, DecisionComponent, DialogService, DialogStateComponent, DndService, DomService, ECoreTableToolClass, ECoreTableToolCode, EnumAlertType, EnumBrowserType, EnumButtonCaptionCode, EnumCoreArticleCategoryTreeaAccessorMode, EnumCoreButtonCode, EnumCoreButtonVNSCode, EnumCoreFileUploaderType, EnumCoreFormControlSeekerSourceType, EnumCoreOrgTreeaAccessorMode, EnumCoreOrgTreeaSearchMode, EnumCorePageEditBootstrapClass, EnumCorePageEditFieldType, EnumCorePageEditMode, EnumCoreSeekerColumnContract, EnumCoreSeekerColumnJob, EnumCoreSeekerColumnPosition, EnumCoreSeekerColumnPositionConcurrent, EnumCoreSeekerColumnStaffProfile, EnumCoreSeekerColumnWage, EnumCoreSeekerColumnWorking, EnumCoreTablePipeType, EnumCoreTreeGridEditMode, EnumCoreViewItemType, EnumDeviceType, EnumDragType, EnumErrorType, EnumExType, EnumFilterOperator, EnumFormBaseContolType, EnumHrComparisonCode, EnumICoreStatisticWidgetDataType, EnumIconClass, EnumImageResolverType, EnumNotificationDir, EnumOparator, EnumOsType, EnumPermissionObjectType, EnumProfileInfoSector, EnumRecursiveFields, EnumSSRSExportFormat, EnumSignalRType, EnumSortDirection, EnumStyleButtonClass, EnumSwUpdateVersionUpdatesEventType, EnumWorkScheduleViewMode, EvaluateDialogComponent, EvaluateDialogService, FileService, FilterKitService, FilterPipe, FooterComponent, FullscreenModalLoaderComponent, FunctionComponent, FunctionEditComponent, FunctionEditService, FunctionIgnoreComponent, FunctionIgnoreEditComponent, GroupFunctionComponent, GroupFunctionEditComponent, GrpcService, HeaderService, HistoryService, HotKeysDirective, HttpErrorHandler, HubConnectionService, HuconcurrentlyComponent, IAlertOptions, ImageErrorResolverDirective, InMemoryComponent, InitializationCanActivateFn, InitializationCanMatchFn, InterceptorSkipHeader, IpServiceService, ItemComponent, JobComponent, JsonService, LanguageChangerComponent, LanguageComponent, LanguageEditComponent, LayoutService, LongTaskService, MOBILE_SCREEN_HEDER_HEIGHT, MapAppdemoToServerPipePipe, MapAttachmentToServerPipe, MapAvatarToServerPipe, MapNewsfeedMediaToServerPipe, MapService, MenuComponent, MenuEditComponent, MenuService, MessageService, ModalService, MultiLanguageService, MutationLogComponent, MutationViewComponent, NavigatorComponent, NavigatorService, NewlyCreatedTokenService, NormalizeHumanNamePipe, NotificationActionType, OnlineUsersComponent, OrganizationService, OtpInputComponent, OtpInputService, PageTitleComponent, PaginationComponent, PortalRouteComponent, PortalRouteEditComponent, PositionComponent, PositionEditService, PositionTransferService, PushNotificationService, RandomAvatarService, RecursiveService, RequestCache, RequestCacheWithMap, ResponseService, RightchatComponent, RoutingService, STICKER_COLOR_SCHEMA, SeekerService, SocketService, SsrsExpressService, StaffProfileComponent, StatisticAuthService, StatisticService, StringHtmlPipe, StringService, SysActionComponent, SysActionEditComponent, SysFunctionActionComponent, SysFunctionActionEditComponent, SysFunctionActionMapperComponent, SysFunctionUrlMapperComponent, SysMenuService, SysModuleComponent, SysModuleEditComponent, TLA_CONFIG, TableCellPipe, Textbox, ThreedotsComponent, TimeSheetService, TooltipComponent, TooltipDirective, TopicPermissionService, TopicTreeService, TranslatePipe, UnicodeService, UploadedFileService, UploadedFilenameCutoffPipe, UrlService, UserActivityComponent, UserActivityService, WageComponent, WaittingScreenComponent, WorkShiftDndService, alertOptions, attachmentOptions, authInterceptor, baseUrlInterceptor, blob_to_base64_script, cachingInterceptor, defaultPaging, httpInterceptorProviders, langInterceptor, liner_to_nested_array_script, longAlertOptions, noneAutoClosedAlertOptions, normalizeHumanName, responseInterceptor, themeBlue, timeZoneInterceptor, tokenInterceptor };
29860
+ export { ActionService, ActionSvgEditComponent, AlertComponent, AlertService, AnimatedTextComponent, AnimatedTextService, AppConfigService, AppInitializationService, AppService, ApplicationHelpService, AuthService, BaseComponent, BaseDropdownComponent, BaseEditComponent, ButtonGroupComponent, ButtonGroupModule, ButtonGroupService, CORE_VNS_BUTTONS, CacheService, CanActivateFunctionUrlMapperGuard, CanDeactivateGuard, CheckForUpdateService, ClientService, CommonHttpRequestService, ConfigService, ConfirmDialogStateComponent, ControlBase, CoreAccordionComponent, CoreAccordionService, CoreActiveUserCountComponent, CoreApiProgressComponent, CoreAttachmentComponent, CoreButtonComponent, CoreButtonGroupComponent, CoreButtonGroupService, CoreButtonGroupVnsComponent, CoreButtonVnsComponent, CoreCheckboxComponent, CoreChecklistComponent, CoreCommonParamKitComponent, CoreCompositionComponent, CoreCompositionService, CoreCompositionState, CoreConfirmDialogComponent, CoreContractSeekerComponent, CoreControlComponent, CoreControlNoGridBufferComponent, CoreControlNoSeekerComponent, CoreControlService, CoreCurrencyInputComponent, CoreDatePickerComponent, CoreDatetimeService, CoreDropdownComponent, CoreEmployeeScheduleComponent, CoreEmployeeSeekerComponent, CoreFileUploaderComponent, CoreFilterHubComponent, CoreFilterHubService, CoreFormComponent, CoreFormControlBaseComponent, CoreFormControlSeekerComponent, CoreFormLiteComponent, CoreFormService, CoreFormTabComponent, CoreGridBufferComponent, CoreHeaderParamsComponent, CoreHelperComponent, CoreIosSwitcherComponent, CoreLineComponent, CoreListComponent, CoreListLazyComponent, CoreLoadingSurfaceComponent, CoreMccComponent, CoreMonthPickerComponent, CoreMonthSelectorComponent, CoreNavigationTrackerComponent, CoreOauthCallbackComponent, CoreOrgParamComponent, CoreOrgTreeComponent, CoreOrgTreeService, CoreOrgTreeState, CoreOrgUnitSeekerComponent, CoreOrgchartflexComponent, CorePageEditComponent, CorePageEditLiteComponent, CorePageEditService, CorePageEditTabComponent, CorePageHeaderComponent, CorePageListComponent, CorePageListContentComponent, CorePageListService, CorePageListState, CorePageViewComponent, CorePaginationComponent, CorePaginationFullComponent, CorePaginationFullService, CoreParamControlComponent, CorePermissionActionsComponent, CorePermissionComponent, CorePermissionService, CorePositionConcurrentSeekerComponent, CorePositionSeekerComponent, CoreQrcodeComponent, CoreQueryBuilderComponent, CoreRadioGroupComponent, CoreReducerIconComponent, CoreRootMenuItemPickerComponent, CoreRotatingTextComponent, CoreRoutingHistoryComponent, CoreScrollComponent, CoreScrollLazyComponent, CoreSeenByComponent, CoreShiftCardComponent, CoreShiftCellComponent, CoreShiftCollectionComponent, CoreShiftStickerComponent, CoreStatisticWidgetComponent, CoreStatusStickerComponent, CoreSubFormGroupComponent, CoreTabListComponent, CoreTableComponent, CoreTableService, CoreTabsComponent, CoreTagsComponent, CoreTopicPickerComponent, CoreTopicTreeComponent, CoreTreeComponent, CoreTreeGridComponent, CoreWageSeekerComponent, CoreWorkingSeekerComponent, CoreYearPickerComponent, CustomValidators, DATE_VALUE_ACCESSOR, DEFAULT_SVG, DESKTOP_SCREEN_HEDER_HEIGHT, DateValueAccessor, DecisionComponent, DialogService, DialogStateComponent, DndService, DomService, ECoreTableToolClass, ECoreTableToolCode, EnumAlertType, EnumBrowserType, EnumButtonCaptionCode, EnumCoreArticleCategoryTreeaAccessorMode, EnumCoreButtonCode, EnumCoreButtonVNSCode, EnumCoreFileUploaderType, EnumCoreFormControlSeekerSourceType, EnumCoreOrgTreeaAccessorMode, EnumCoreOrgTreeaSearchMode, EnumCorePageEditBootstrapClass, EnumCorePageEditFieldType, EnumCorePageEditMode, EnumCoreSeekerColumnContract, EnumCoreSeekerColumnJob, EnumCoreSeekerColumnPosition, EnumCoreSeekerColumnPositionConcurrent, EnumCoreSeekerColumnStaffProfile, EnumCoreSeekerColumnWage, EnumCoreSeekerColumnWorking, EnumCoreTablePipeType, EnumCoreTreeGridEditMode, EnumCoreViewItemType, EnumDeviceType, EnumDragType, EnumErrorType, EnumExType, EnumFilterOperator, EnumFormBaseContolType, EnumHrComparisonCode, EnumICoreStatisticWidgetDataType, EnumIconClass, EnumImageResolverType, EnumNotificationDir, EnumOparator, EnumOsType, EnumPermissionObjectType, EnumProfileInfoSector, EnumRecursiveFields, EnumSignalRType, EnumSortDirection, EnumSsrsExpressExportFormat, EnumSsrsExpressFileExtension, EnumStyleButtonClass, EnumSwUpdateVersionUpdatesEventType, EnumWorkScheduleViewMode, EvaluateDialogComponent, EvaluateDialogService, FileService, FilterKitService, FilterPipe, FooterComponent, FullscreenModalLoaderComponent, FunctionComponent, FunctionEditComponent, FunctionEditService, FunctionIgnoreComponent, FunctionIgnoreEditComponent, GroupFunctionComponent, GroupFunctionEditComponent, GrpcService, HeaderService, HistoryService, HotKeysDirective, HttpErrorHandler, HubConnectionService, HuconcurrentlyComponent, IAlertOptions, ImageErrorResolverDirective, InMemoryComponent, InitializationCanActivateFn, InitializationCanMatchFn, InterceptorSkipHeader, IpServiceService, ItemComponent, JobComponent, JsonService, LanguageChangerComponent, LanguageComponent, LanguageEditComponent, LayoutService, LongTaskService, MOBILE_SCREEN_HEDER_HEIGHT, MapAppdemoToServerPipePipe, MapAttachmentToServerPipe, MapAvatarToServerPipe, MapNewsfeedMediaToServerPipe, MapService, MenuComponent, MenuEditComponent, MenuService, MessageService, ModalService, MultiLanguageService, MutationLogComponent, MutationViewComponent, NavigatorComponent, NavigatorService, NewlyCreatedTokenService, NormalizeHumanNamePipe, NotificationActionType, OnlineUsersComponent, OrganizationService, OtpInputComponent, OtpInputService, PageTitleComponent, PaginationComponent, PortalRouteComponent, PortalRouteEditComponent, PositionComponent, PositionEditService, PositionTransferService, PushNotificationService, RandomAvatarService, RecursiveService, RequestCache, RequestCacheWithMap, ResponseService, RightchatComponent, RoutingService, STICKER_COLOR_SCHEMA, SeekerService, SocketService, SsrsExpressService, StaffProfileComponent, StatisticAuthService, StatisticService, StringHtmlPipe, StringService, SysActionComponent, SysActionEditComponent, SysFunctionActionComponent, SysFunctionActionEditComponent, SysFunctionActionMapperComponent, SysFunctionUrlMapperComponent, SysMenuService, SysModuleComponent, SysModuleEditComponent, TLA_CONFIG, TableCellPipe, Textbox, ThreedotsComponent, TimeSheetService, TooltipComponent, TooltipDirective, TopicPermissionService, TopicTreeService, TranslatePipe, UnicodeService, UploadedFileService, UploadedFilenameCutoffPipe, UrlService, UserActivityComponent, UserActivityService, WageComponent, WaittingScreenComponent, WorkShiftDndService, alertOptions, attachmentOptions, authInterceptor, baseUrlInterceptor, blob_to_base64_script, cachingInterceptor, defaultPaging, httpInterceptorProviders, langInterceptor, liner_to_nested_array_script, longAlertOptions, noneAutoClosedAlertOptions, normalizeHumanName, responseInterceptor, themeBlue, timeZoneInterceptor, tokenInterceptor };
29799
29861
  //# sourceMappingURL=ngx-histaff-alpha.mjs.map