nuxeo-development-framework 5.4.5 → 5.4.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 (80) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +688 -384
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +2 -2
  4. package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +2 -2
  5. package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +3 -17
  6. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +62 -16
  7. package/esm2015/lib/components/ndf-filters/custom-components/index.js +2 -1
  8. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
  9. package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +8 -9
  10. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +3 -3
  11. package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +6 -1
  12. package/esm2015/lib/components/ndf-tabs/component/ndf-tabs.component.js +2 -2
  13. package/esm2015/lib/components/reports/ndf-reports/base/base-custom-report.js +41 -0
  14. package/esm2015/lib/components/reports/ndf-reports/base/base-report.js +3 -2
  15. package/esm2015/lib/components/reports/ndf-reports/base/index.js +5 -0
  16. package/esm2015/lib/components/reports/ndf-reports/charts-components/graph-chart/graph-chart.component.js +1 -1
  17. package/esm2015/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.js +49 -0
  18. package/esm2015/lib/components/reports/ndf-reports/components/digit-report/digit-report.component.js +1 -1
  19. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  20. package/esm2015/lib/components/reports/ndf-reports/components/graph-report/graph-report.component.js +2 -2
  21. package/esm2015/lib/components/reports/ndf-reports/components/index.js +2 -1
  22. package/esm2015/lib/components/reports/ndf-reports/constants/charts-types.js +2 -1
  23. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.js +1 -1
  24. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +5 -2
  25. package/esm2015/lib/components/reports/ndf-reports/models/base.js +1 -1
  26. package/esm2015/lib/components/reports/ndf-reports/models/custom-definition.js +2 -0
  27. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  28. package/esm2015/lib/components/reports/ndf-reports/models/dialog-data.js +1 -1
  29. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  30. package/esm2015/lib/components/reports/ndf-reports/models/graph-definition.js +2 -0
  31. package/esm2015/lib/components/reports/ndf-reports/models/index.js +3 -2
  32. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  33. package/esm2015/lib/components/reports/ndf-reports/models/report-config.js +1 -1
  34. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +4 -3
  35. package/esm2015/lib/components/reports/ndf-reports/services/custom-reports-registry.service.js +132 -0
  36. package/esm2015/lib/components/reports/ndf-reports/services/index.js +2 -1
  37. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +8 -1
  38. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +4 -3
  39. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  40. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +32 -8
  41. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +2 -2
  42. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +1 -1
  43. package/esm2015/lib/shared/components/nuxeo-dialog/nuxeo.dialog.js +7 -6
  44. package/esm2015/lib/shared/evaluator/evaluator.js +3 -2
  45. package/esm2015/lib/shared/evaluator/types.js +1 -1
  46. package/fesm2015/nuxeo-development-framework.js +644 -358
  47. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  48. package/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.d.ts +0 -7
  49. package/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.d.ts +10 -3
  50. package/lib/components/ndf-filters/custom-components/index.d.ts +1 -0
  51. package/lib/components/ndf-filters/models/base-field-config.d.ts +2 -2
  52. package/lib/components/ndf-filters/ndf-filters-panel.module.d.ts +60 -60
  53. package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts +1 -1
  54. package/lib/components/ndf-filters/services/dynamic-component-loader.service.d.ts +1 -0
  55. package/lib/components/reports/ndf-reports/base/base-custom-report.d.ts +38 -0
  56. package/lib/components/reports/ndf-reports/base/index.d.ts +4 -0
  57. package/lib/components/reports/ndf-reports/components/_parts/report-actions/report-actions.component.d.ts +1 -0
  58. package/lib/components/reports/ndf-reports/components/custom-report/custom-report.component.d.ts +14 -0
  59. package/lib/components/reports/ndf-reports/components/index.d.ts +1 -0
  60. package/lib/components/reports/ndf-reports/constants/charts-types.d.ts +1 -0
  61. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +1 -0
  62. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +1 -0
  63. package/lib/components/reports/ndf-reports/models/base.d.ts +6 -4
  64. package/lib/components/reports/ndf-reports/models/custom-definition.d.ts +11 -0
  65. package/lib/components/reports/ndf-reports/models/details.d.ts +6 -1
  66. package/lib/components/reports/ndf-reports/models/dialog-data.d.ts +1 -1
  67. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +1 -1
  68. package/lib/components/reports/ndf-reports/models/index.d.ts +2 -1
  69. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +3 -0
  70. package/lib/components/reports/ndf-reports/models/report-config.d.ts +3 -2
  71. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +21 -20
  72. package/lib/components/reports/ndf-reports/services/custom-reports-registry.service.d.ts +83 -0
  73. package/lib/components/reports/ndf-reports/services/index.d.ts +1 -0
  74. package/lib/components/reports/ndf-reports/services/report-config-mapper.service.d.ts +6 -1
  75. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +5 -1
  76. package/lib/components/tables/ndf-table/models/table-config.d.ts +5 -0
  77. package/lib/shared/evaluator/types.d.ts +3 -1
  78. package/package.json +1 -1
  79. package/esm2015/lib/components/reports/ndf-reports/models/graph.js +0 -2
  80. /package/lib/components/reports/ndf-reports/models/{graph.d.ts → graph-definition.d.ts} +0 -0
@@ -2477,11 +2477,12 @@
2477
2477
  }
2478
2478
  };
2479
2479
  NdfNuxeoDialog.prototype.isArrowFunction = function (fn) {
2480
- var strFn = fn.toString();
2481
- var firstIndex = strFn.indexOf(')');
2482
- var lastIndex = strFn.indexOf('{') + 1;
2483
- var target = strFn.substring(firstIndex, lastIndex).replace(' ', '');
2484
- return lastIndex == 0 || target.includes('=>');
2480
+ // const strFn = fn.toString();
2481
+ // const firstIndex = strFn.indexOf(')');
2482
+ // const lastIndex = strFn.indexOf('{') + 1;
2483
+ // const target = strFn.substring(firstIndex, lastIndex).replace(' ', '');
2484
+ // return lastIndex == 0 || target.includes('=>');
2485
+ return true;
2485
2486
  };
2486
2487
  NdfNuxeoDialog.prototype.onClose = function () {
2487
2488
  this.dialogRef.close();
@@ -17917,6 +17918,13 @@
17917
17918
  DynamicComponentLoaderService.prototype.registerComponent = function (key, component) {
17918
17919
  this._components.set(key, component);
17919
17920
  };
17921
+ DynamicComponentLoaderService.prototype.registerComponents = function (components) {
17922
+ var _this = this;
17923
+ Object.entries(components).forEach(function (_a) {
17924
+ var _b = __read(_a, 2), key = _b[0], component = _b[1];
17925
+ _this.registerComponent(key, component);
17926
+ });
17927
+ };
17920
17928
  DynamicComponentLoaderService.prototype.renderComponent = function (key, vcr) {
17921
17929
  if (!this._components.has(key)) {
17922
17930
  throw 'unknown component ';
@@ -19889,328 +19897,6 @@
19889
19897
  type: i0.Input
19890
19898
  }] } });
19891
19899
 
19892
- var BaseField = /** @class */ (function (_super) {
19893
- __extends(BaseField, _super);
19894
- function BaseField() {
19895
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
19896
- _this.dynamicComponent = _this.injector.get(DynamicComponentLoaderService);
19897
- return _this;
19898
- }
19899
- BaseField.prototype.writeValue = function (obj) {
19900
- var _a, _b, _c, _d;
19901
- this.internalValue = obj;
19902
- if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.writeValue) {
19903
- (_d = (_c = this._componentRef) === null || _c === void 0 ? void 0 : _c.instance) === null || _d === void 0 ? void 0 : _d.writeValue(obj);
19904
- }
19905
- };
19906
- BaseField.prototype.validate = function (control) {
19907
- var _a, _b;
19908
- if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.validate) {
19909
- return this._componentRef.instance.validate(control);
19910
- }
19911
- else {
19912
- return null;
19913
- }
19914
- };
19915
- BaseField.prototype.registerOnValidatorChange = function (fn) {
19916
- var _a, _b;
19917
- if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.registerOnValidatorChange) {
19918
- this._componentRef.instance.registerOnValidatorChange(fn);
19919
- }
19920
- };
19921
- BaseField.prototype.ngOnChanges = function (changes) {
19922
- var _this = this;
19923
- if (!this._componentRef) {
19924
- return;
19925
- }
19926
- Object.keys(changes).forEach(function (key) {
19927
- _this._componentRef.instance[key] = changes[key].currentValue;
19928
- });
19929
- this._componentRef.changeDetectorRef.markForCheck();
19930
- };
19931
- BaseField.prototype.ngOnDestroy = function () {
19932
- if (this._componentRef) {
19933
- this._componentRef.destroy();
19934
- }
19935
- };
19936
- BaseField.prototype._prepareValueAccessor = function () {
19937
- var ngControl = this.injector.get(i2.NgControl);
19938
- ngControl.valueAccessor = this._componentRef.instance;
19939
- };
19940
- return BaseField;
19941
- }(BaseCustomValueAccessor));
19942
- BaseField.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseField, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
19943
- BaseField.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseField, inputs: { fieldConfig: "fieldConfig" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: i0.ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
19944
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseField, decorators: [{
19945
- type: i0.Directive
19946
- }], propDecorators: { container: [{
19947
- type: i0.ViewChild,
19948
- args: ['dynamicContainer', { read: i0.ViewContainerRef, static: true }]
19949
- }], fieldConfig: [{
19950
- type: i0.Input
19951
- }] } });
19952
-
19953
- var PredicateFieldComponent = /** @class */ (function (_super) {
19954
- __extends(PredicateFieldComponent, _super);
19955
- function PredicateFieldComponent() {
19956
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
19957
- _this.handlers = {
19958
- input: _this._prepareField.bind(_this),
19959
- date: _this._prepareField.bind(_this)
19960
- };
19961
- return _this;
19962
- }
19963
- PredicateFieldComponent.prototype.ngOnInit = function () {
19964
- var _a, _b;
19965
- var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
19966
- if (componentType) {
19967
- this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
19968
- this._prepareValueAccessor();
19969
- this._prepareComponent(componentType);
19970
- }
19971
- };
19972
- PredicateFieldComponent.prototype._prepareComponent = function (type) {
19973
- var _a, _b;
19974
- (_b = (_a = this.handlers)[type]) === null || _b === void 0 ? void 0 : _b.call(_a);
19975
- };
19976
- PredicateFieldComponent.prototype._prepareField = function () {
19977
- var instance = this._componentRef.instance;
19978
- instance.field = this.fieldConfig;
19979
- };
19980
- return PredicateFieldComponent;
19981
- }(BaseField));
19982
- PredicateFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PredicateFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
19983
- PredicateFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PredicateFieldComponent, selector: "app-predicate-field", host: { properties: { "class": "'predicate-field' + ' predicate-field__fieldConfig?.render?.type' " } }, providers: [
19984
- {
19985
- provide: i2.NG_VALUE_ACCESSOR,
19986
- useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
19987
- multi: true
19988
- },
19989
- {
19990
- provide: i2.NG_VALIDATORS,
19991
- useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
19992
- multi: true
19993
- }
19994
- ], usesInheritance: true, ngImport: i0__namespace, template: "<field-header *ngIf=\"fieldConfig.label && !fieldConfig.render?.options?.hideLabel\" class=\"predicate-field__label\">{{\r\n\tfieldConfig.label | translate\r\n}}</field-header>\r\n\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [".predicate-field{display:var(--pf-display, block);padding-inline:var(--pf-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--pf-padding-block, var(--ff-padding-block, 0));max-width:100%}\n"], components: [{ type: FieldHeaderComponent, selector: "field-header" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
19995
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PredicateFieldComponent, decorators: [{
19996
- type: i0.Component,
19997
- args: [{
19998
- selector: 'app-predicate-field',
19999
- templateUrl: './predicate-field.component.html',
20000
- styleUrls: ['./predicate-field.component.scss'],
20001
- encapsulation: i0.ViewEncapsulation.None,
20002
- providers: [
20003
- {
20004
- provide: i2.NG_VALUE_ACCESSOR,
20005
- useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20006
- multi: true
20007
- },
20008
- {
20009
- provide: i2.NG_VALIDATORS,
20010
- useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20011
- multi: true
20012
- }
20013
- ],
20014
- host: {
20015
- '[class]': "'predicate-field' + ' predicate-field__fieldConfig?.render?.type' "
20016
- }
20017
- }]
20018
- }] });
20019
-
20020
- var AggregationFieldComponent = /** @class */ (function (_super) {
20021
- __extends(AggregationFieldComponent, _super);
20022
- function AggregationFieldComponent() {
20023
- var _e;
20024
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20025
- _this.handlers = (_e = {},
20026
- _e[AGGREGATION_FIELD_TYPES.dropdown] = _this._prepareField.bind(_this),
20027
- _e[AGGREGATION_FIELD_TYPES.checkbox] = _this._prepareField.bind(_this),
20028
- _e[AGGREGATION_FIELD_TYPES.radio] = _this._prepareField.bind(_this),
20029
- _e[AGGREGATION_FIELD_TYPES.switch] = _this._prepareField.bind(_this),
20030
- _e[AGGREGATION_FIELD_TYPES.autocomplete] = _this._prepareField.bind(_this),
20031
- _e[AGGREGATION_FIELD_TYPES.dateList] = _this._prepareField.bind(_this),
20032
- _e[AGGREGATION_FIELD_TYPES.custom] = _this._prepareField.bind(_this),
20033
- _e);
20034
- return _this;
20035
- }
20036
- AggregationFieldComponent.prototype.ngOnInit = function () {
20037
- var _a, _b, _c, _d;
20038
- var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
20039
- if (componentType) {
20040
- this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
20041
- this._prepareValueAccessor();
20042
- (_d = (_c = this.handlers)[componentType]) === null || _d === void 0 ? void 0 : _d.call(_c);
20043
- }
20044
- };
20045
- AggregationFieldComponent.prototype._prepareField = function () {
20046
- var instance = this._componentRef
20047
- .instance;
20048
- instance.aggregation = this.aggregation;
20049
- instance.fieldConfig = this.fieldConfig;
20050
- if (this.contentTemplate) {
20051
- instance.contentTemplate = this.contentTemplate;
20052
- }
20053
- };
20054
- return AggregationFieldComponent;
20055
- }(BaseField));
20056
- AggregationFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
20057
- AggregationFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationFieldComponent, selector: "app-aggregation-field", inputs: { aggregation: "aggregation", contentTemplate: "contentTemplate" }, host: { properties: { "class": "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' " } }, providers: [
20058
- {
20059
- provide: i2.NG_VALUE_ACCESSOR,
20060
- useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20061
- multi: true,
20062
- },
20063
- {
20064
- provide: i2.NG_VALIDATORS,
20065
- useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20066
- multi: true,
20067
- },
20068
- ], usesInheritance: true, ngImport: i0__namespace, template: '<ng-container #dynamicContainer></ng-container>', isInline: true, styles: [""], encapsulation: i0__namespace.ViewEncapsulation.None });
20069
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldComponent, decorators: [{
20070
- type: i0.Component,
20071
- args: [{
20072
- selector: 'app-aggregation-field',
20073
- template: '<ng-container #dynamicContainer></ng-container>',
20074
- styles: [''],
20075
- encapsulation: i0.ViewEncapsulation.None,
20076
- providers: [
20077
- {
20078
- provide: i2.NG_VALUE_ACCESSOR,
20079
- useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20080
- multi: true,
20081
- },
20082
- {
20083
- provide: i2.NG_VALIDATORS,
20084
- useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20085
- multi: true,
20086
- },
20087
- ],
20088
- host: {
20089
- '[class]': "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' ",
20090
- },
20091
- }]
20092
- }], propDecorators: { aggregation: [{
20093
- type: i0.Input
20094
- }], contentTemplate: [{
20095
- type: i0.Input
20096
- }] } });
20097
- var AggregationFieldModule = /** @class */ (function () {
20098
- function AggregationFieldModule() {
20099
- }
20100
- return AggregationFieldModule;
20101
- }());
20102
- AggregationFieldModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
20103
- AggregationFieldModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldModule, declarations: [AggregationFieldComponent], imports: [i4.CommonModule, i2.FormsModule, i2.ReactiveFormsModule], exports: [AggregationFieldComponent] });
20104
- AggregationFieldModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldModule, imports: [[i4.CommonModule, i2.FormsModule, i2.ReactiveFormsModule]] });
20105
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldModule, decorators: [{
20106
- type: i0.NgModule,
20107
- args: [{
20108
- declarations: [AggregationFieldComponent],
20109
- exports: [AggregationFieldComponent],
20110
- imports: [i4.CommonModule, i2.FormsModule, i2.ReactiveFormsModule],
20111
- }]
20112
- }] });
20113
-
20114
- var CustomFieldComponent = /** @class */ (function (_super) {
20115
- __extends(CustomFieldComponent, _super);
20116
- function CustomFieldComponent() {
20117
- var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20118
- _this.handlers = {
20119
- activeUser: _this._prepareField.bind(_this),
20120
- aggregationGroup: _this._prepareField.bind(_this)
20121
- };
20122
- return _this;
20123
- }
20124
- CustomFieldComponent.prototype.ngOnInit = function () {
20125
- var _a, _b;
20126
- var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
20127
- if (componentType) {
20128
- this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
20129
- this._prepareValueAccessor();
20130
- this._prepareComponent(componentType);
20131
- }
20132
- };
20133
- CustomFieldComponent.prototype._prepareComponent = function (type) {
20134
- var _a, _b;
20135
- (_b = (_a = this.handlers)[type]) === null || _b === void 0 ? void 0 : _b.call(_a);
20136
- };
20137
- CustomFieldComponent.prototype._prepareField = function () {
20138
- var instance = this._componentRef.instance;
20139
- instance.field = this.fieldConfig;
20140
- instance.aggregations = this.aggregations;
20141
- };
20142
- return CustomFieldComponent;
20143
- }(BaseField));
20144
- CustomFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
20145
- CustomFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomFieldComponent, selector: "app-custom-field", inputs: { aggregations: "aggregations" }, host: { properties: { "class": "'custom-field' + ' custom-field__fieldConfig?.render?.type' " } }, providers: [
20146
- {
20147
- provide: i2.NG_VALUE_ACCESSOR,
20148
- useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20149
- multi: true
20150
- },
20151
- {
20152
- provide: i2.NG_VALIDATORS,
20153
- useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20154
- multi: true
20155
- }
20156
- ], usesInheritance: true, ngImport: i0__namespace, template: "<field-header *ngIf=\"fieldConfig.label && !fieldConfig.render?.options?.hideLabel\" class=\"predicate-field__label\">{{\r\n\tfieldConfig.label | translate\r\n}}</field-header>\r\n\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [".custom-field{display:var(--cf-display, block);padding-inline:var(--cf-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--cf-padding-block, var(--ff-padding-block, 0));max-width:100%}\n"], components: [{ type: FieldHeaderComponent, selector: "field-header" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
20157
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomFieldComponent, decorators: [{
20158
- type: i0.Component,
20159
- args: [{
20160
- selector: 'app-custom-field',
20161
- templateUrl: './custom-field.component.html',
20162
- styleUrls: ['./custom-field.component.scss'],
20163
- encapsulation: i0.ViewEncapsulation.None,
20164
- providers: [
20165
- {
20166
- provide: i2.NG_VALUE_ACCESSOR,
20167
- useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20168
- multi: true
20169
- },
20170
- {
20171
- provide: i2.NG_VALIDATORS,
20172
- useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20173
- multi: true
20174
- }
20175
- ],
20176
- host: {
20177
- '[class]': "'custom-field' + ' custom-field__fieldConfig?.render?.type' "
20178
- }
20179
- }]
20180
- }], propDecorators: { aggregations: [{
20181
- type: i0.Input
20182
- }] } });
20183
-
20184
- var FiltersByRolesPipe = /** @class */ (function () {
20185
- function FiltersByRolesPipe(_nuxeoService, _rolesService) {
20186
- this._nuxeoService = _nuxeoService;
20187
- this._rolesService = _rolesService;
20188
- }
20189
- FiltersByRolesPipe.prototype.transform = function (items) {
20190
- var _this = this;
20191
- if (!items) {
20192
- return items;
20193
- }
20194
- return items.filter(function (item) {
20195
- var _a, _b, _c, _d, _e;
20196
- if (!Array.isArray((_a = item.config) === null || _a === void 0 ? void 0 : _a.roles) || ((_b = item.config) === null || _b === void 0 ? void 0 : _b.roles.length) === 0) {
20197
- return true;
20198
- }
20199
- var user = (_d = (_c = _this._nuxeoService) === null || _c === void 0 ? void 0 : _c.nuxeoClient) === null || _d === void 0 ? void 0 : _d.user;
20200
- return _this._rolesService.isUserInRole(user, (_e = item.config) === null || _e === void 0 ? void 0 : _e.roles);
20201
- });
20202
- };
20203
- return FiltersByRolesPipe;
20204
- }());
20205
- FiltersByRolesPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, deps: [{ token: NuxeoService }, { token: RolesService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
20206
- FiltersByRolesPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, name: "filterByRoles" });
20207
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, decorators: [{
20208
- type: i0.Pipe,
20209
- args: [{
20210
- name: 'filterByRoles'
20211
- }]
20212
- }], ctorParameters: function () { return [{ type: NuxeoService }, { type: RolesService }]; } });
20213
-
20214
19900
  /**
20215
19901
  * Creates a secure context for function evaluation that prevents access to the window object.
20216
19902
  * @returns {Record<string, any>} A secure context object with safe properties.
@@ -20236,7 +19922,8 @@
20236
19922
  // Prevent access to window
20237
19923
  window: undefined,
20238
19924
  self: undefined,
20239
- globalThis: undefined
19925
+ globalThis: undefined,
19926
+ _: ___default["default"] // Include lodash if needed, but ensure it's used safely
20240
19927
  };
20241
19928
  }
20242
19929
  /**
@@ -20552,39 +20239,318 @@
20552
20239
  escape: /\{\{\{([\s\S]+?)\}\}\}/g
20553
20240
  };
20554
20241
 
20555
- var CheckConditionPipe = /** @class */ (function () {
20556
- function CheckConditionPipe(nuxeoService) {
20557
- this.nuxeoService = nuxeoService;
20558
- this.user = nuxeoService.nuxeoClient.user;
20242
+ var BaseField = /** @class */ (function (_super) {
20243
+ __extends(BaseField, _super);
20244
+ function BaseField() {
20245
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20246
+ _this.dynamicComponent = _this.injector.get(DynamicComponentLoaderService);
20247
+ return _this;
20559
20248
  }
20560
- CheckConditionPipe.prototype.transform = function (condition, aggregations, language) {
20561
- if (!condition) {
20562
- return true;
20249
+ BaseField.prototype.writeValue = function (obj) {
20250
+ var _a, _b, _c, _d;
20251
+ this.internalValue = obj;
20252
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.writeValue) {
20253
+ (_d = (_c = this._componentRef) === null || _c === void 0 ? void 0 : _c.instance) === null || _d === void 0 ? void 0 : _d.writeValue(obj);
20563
20254
  }
20564
- try {
20565
- return Evaluator.evaluate(condition, ___default["default"].cloneDeep({ aggregations: aggregations, language: language, user: this.user }));
20255
+ };
20256
+ BaseField.prototype.validate = function (control) {
20257
+ var _a, _b;
20258
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.validate) {
20259
+ return this._componentRef.instance.validate(control);
20566
20260
  }
20567
- catch (error) {
20568
- console.error({ error: error });
20569
- return false;
20261
+ else {
20262
+ return null;
20570
20263
  }
20571
20264
  };
20572
- return CheckConditionPipe;
20265
+ BaseField.prototype.registerOnValidatorChange = function (fn) {
20266
+ var _a, _b;
20267
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.registerOnValidatorChange) {
20268
+ this._componentRef.instance.registerOnValidatorChange(fn);
20269
+ }
20270
+ };
20271
+ BaseField.prototype.ngOnChanges = function (changes) {
20272
+ var _this = this;
20273
+ if (!this._componentRef) {
20274
+ return;
20275
+ }
20276
+ Object.keys(changes).forEach(function (key) {
20277
+ _this._componentRef.instance[key] = changes[key].currentValue;
20278
+ });
20279
+ this._componentRef.changeDetectorRef.markForCheck();
20280
+ };
20281
+ BaseField.prototype.ngOnDestroy = function () {
20282
+ if (this._componentRef) {
20283
+ this._componentRef.destroy();
20284
+ }
20285
+ };
20286
+ BaseField.prototype._prepareValueAccessor = function () {
20287
+ var ngControl = this.injector.get(i2.NgControl);
20288
+ ngControl.valueAccessor = this._componentRef.instance;
20289
+ };
20290
+ return BaseField;
20291
+ }(BaseCustomValueAccessor));
20292
+ BaseField.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseField, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
20293
+ BaseField.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseField, inputs: { fieldConfig: "fieldConfig" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: i0.ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
20294
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseField, decorators: [{
20295
+ type: i0.Directive
20296
+ }], propDecorators: { container: [{
20297
+ type: i0.ViewChild,
20298
+ args: ['dynamicContainer', { read: i0.ViewContainerRef, static: true }]
20299
+ }], fieldConfig: [{
20300
+ type: i0.Input
20301
+ }] } });
20302
+
20303
+ var PredicateFieldComponent = /** @class */ (function (_super) {
20304
+ __extends(PredicateFieldComponent, _super);
20305
+ function PredicateFieldComponent() {
20306
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20307
+ _this.handlers = {
20308
+ input: _this._prepareField.bind(_this),
20309
+ date: _this._prepareField.bind(_this)
20310
+ };
20311
+ return _this;
20312
+ }
20313
+ PredicateFieldComponent.prototype.ngOnInit = function () {
20314
+ var _a, _b;
20315
+ var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
20316
+ if (componentType) {
20317
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
20318
+ this._prepareValueAccessor();
20319
+ this._prepareComponent(componentType);
20320
+ }
20321
+ };
20322
+ PredicateFieldComponent.prototype._prepareComponent = function (type) {
20323
+ var _a, _b;
20324
+ (_b = (_a = this.handlers)[type]) === null || _b === void 0 ? void 0 : _b.call(_a);
20325
+ };
20326
+ PredicateFieldComponent.prototype._prepareField = function () {
20327
+ var instance = this._componentRef.instance;
20328
+ instance.field = this.fieldConfig;
20329
+ };
20330
+ return PredicateFieldComponent;
20331
+ }(BaseField));
20332
+ PredicateFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PredicateFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
20333
+ PredicateFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PredicateFieldComponent, selector: "app-predicate-field", host: { properties: { "class": "'predicate-field' + ' predicate-field__fieldConfig?.render?.type' " } }, providers: [
20334
+ {
20335
+ provide: i2.NG_VALUE_ACCESSOR,
20336
+ useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20337
+ multi: true
20338
+ },
20339
+ {
20340
+ provide: i2.NG_VALIDATORS,
20341
+ useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20342
+ multi: true
20343
+ }
20344
+ ], usesInheritance: true, ngImport: i0__namespace, template: "<field-header *ngIf=\"fieldConfig.label && !fieldConfig.render?.options?.hideLabel\" class=\"predicate-field__label\">{{\r\n\tfieldConfig.label | translate\r\n}}</field-header>\r\n\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [".predicate-field{display:var(--pf-display, block);padding-inline:var(--pf-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--pf-padding-block, var(--ff-padding-block, 0));max-width:100%}\n"], components: [{ type: FieldHeaderComponent, selector: "field-header" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
20345
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: PredicateFieldComponent, decorators: [{
20346
+ type: i0.Component,
20347
+ args: [{
20348
+ selector: 'app-predicate-field',
20349
+ templateUrl: './predicate-field.component.html',
20350
+ styleUrls: ['./predicate-field.component.scss'],
20351
+ encapsulation: i0.ViewEncapsulation.None,
20352
+ providers: [
20353
+ {
20354
+ provide: i2.NG_VALUE_ACCESSOR,
20355
+ useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20356
+ multi: true
20357
+ },
20358
+ {
20359
+ provide: i2.NG_VALIDATORS,
20360
+ useExisting: i0.forwardRef(function () { return PredicateFieldComponent; }),
20361
+ multi: true
20362
+ }
20363
+ ],
20364
+ host: {
20365
+ '[class]': "'predicate-field' + ' predicate-field__fieldConfig?.render?.type' "
20366
+ }
20367
+ }]
20368
+ }] });
20369
+
20370
+ var AggregationFieldComponent = /** @class */ (function (_super) {
20371
+ __extends(AggregationFieldComponent, _super);
20372
+ function AggregationFieldComponent() {
20373
+ var _e;
20374
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20375
+ _this.handlers = (_e = {},
20376
+ _e[AGGREGATION_FIELD_TYPES.dropdown] = _this._prepareField.bind(_this),
20377
+ _e[AGGREGATION_FIELD_TYPES.checkbox] = _this._prepareField.bind(_this),
20378
+ _e[AGGREGATION_FIELD_TYPES.radio] = _this._prepareField.bind(_this),
20379
+ _e[AGGREGATION_FIELD_TYPES.switch] = _this._prepareField.bind(_this),
20380
+ _e[AGGREGATION_FIELD_TYPES.autocomplete] = _this._prepareField.bind(_this),
20381
+ _e[AGGREGATION_FIELD_TYPES.dateList] = _this._prepareField.bind(_this),
20382
+ _e[AGGREGATION_FIELD_TYPES.custom] = _this._prepareField.bind(_this),
20383
+ _e);
20384
+ return _this;
20385
+ }
20386
+ AggregationFieldComponent.prototype.ngOnInit = function () {
20387
+ var _a, _b, _c, _d;
20388
+ var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
20389
+ if (componentType) {
20390
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
20391
+ this._prepareValueAccessor();
20392
+ (_d = (_c = this.handlers)[componentType]) === null || _d === void 0 ? void 0 : _d.call(_c);
20393
+ }
20394
+ };
20395
+ AggregationFieldComponent.prototype._prepareField = function () {
20396
+ var instance = this._componentRef
20397
+ .instance;
20398
+ instance.aggregation = this.aggregation;
20399
+ instance.fieldConfig = this.fieldConfig;
20400
+ if (this.contentTemplate) {
20401
+ instance.contentTemplate = this.contentTemplate;
20402
+ }
20403
+ };
20404
+ return AggregationFieldComponent;
20405
+ }(BaseField));
20406
+ AggregationFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
20407
+ AggregationFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationFieldComponent, selector: "app-aggregation-field", inputs: { aggregation: "aggregation", contentTemplate: "contentTemplate" }, host: { properties: { "class": "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' " } }, providers: [
20408
+ {
20409
+ provide: i2.NG_VALUE_ACCESSOR,
20410
+ useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20411
+ multi: true,
20412
+ },
20413
+ {
20414
+ provide: i2.NG_VALIDATORS,
20415
+ useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20416
+ multi: true,
20417
+ },
20418
+ ], usesInheritance: true, ngImport: i0__namespace, template: '<ng-container #dynamicContainer></ng-container>', isInline: true, styles: [""], encapsulation: i0__namespace.ViewEncapsulation.None });
20419
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: AggregationFieldComponent, decorators: [{
20420
+ type: i0.Component,
20421
+ args: [{
20422
+ selector: 'app-aggregation-field',
20423
+ template: '<ng-container #dynamicContainer></ng-container>',
20424
+ styles: [''],
20425
+ encapsulation: i0.ViewEncapsulation.None,
20426
+ providers: [
20427
+ {
20428
+ provide: i2.NG_VALUE_ACCESSOR,
20429
+ useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20430
+ multi: true,
20431
+ },
20432
+ {
20433
+ provide: i2.NG_VALIDATORS,
20434
+ useExisting: i0.forwardRef(function () { return AggregationFieldComponent; }),
20435
+ multi: true,
20436
+ },
20437
+ ],
20438
+ host: {
20439
+ '[class]': "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' ",
20440
+ },
20441
+ }]
20442
+ }], propDecorators: { aggregation: [{
20443
+ type: i0.Input
20444
+ }], contentTemplate: [{
20445
+ type: i0.Input
20446
+ }] } });
20447
+
20448
+ var CustomFieldComponent = /** @class */ (function (_super) {
20449
+ __extends(CustomFieldComponent, _super);
20450
+ function CustomFieldComponent() {
20451
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
20452
+ _this.handlers = {
20453
+ activeUser: _this._prepareField.bind(_this),
20454
+ aggregationGroup: _this._prepareField.bind(_this)
20455
+ };
20456
+ return _this;
20457
+ }
20458
+ CustomFieldComponent.prototype.ngOnInit = function () {
20459
+ var _a, _b;
20460
+ var componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
20461
+ if (componentType) {
20462
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
20463
+ this._prepareValueAccessor();
20464
+ this._prepareComponent(componentType);
20465
+ }
20466
+ };
20467
+ CustomFieldComponent.prototype._prepareComponent = function (type) {
20468
+ var _a, _b;
20469
+ (_b = (_a = this.handlers)[type]) === null || _b === void 0 ? void 0 : _b.call(_a);
20470
+ };
20471
+ CustomFieldComponent.prototype._prepareField = function () {
20472
+ var instance = this._componentRef.instance;
20473
+ instance.field = this.fieldConfig;
20474
+ instance.aggregations = this.aggregations;
20475
+ };
20476
+ return CustomFieldComponent;
20477
+ }(BaseField));
20478
+ CustomFieldComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomFieldComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
20479
+ CustomFieldComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomFieldComponent, selector: "app-custom-field", inputs: { aggregations: "aggregations" }, host: { properties: { "class": "'custom-field' + ' custom-field__fieldConfig?.render?.type' " } }, providers: [
20480
+ {
20481
+ provide: i2.NG_VALUE_ACCESSOR,
20482
+ useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20483
+ multi: true
20484
+ },
20485
+ {
20486
+ provide: i2.NG_VALIDATORS,
20487
+ useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20488
+ multi: true
20489
+ }
20490
+ ], usesInheritance: true, ngImport: i0__namespace, template: "<field-header *ngIf=\"fieldConfig.label && !fieldConfig.render?.options?.hideLabel\" class=\"predicate-field__label\">{{\r\n\tfieldConfig.label | translate\r\n}}</field-header>\r\n\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [".custom-field{display:var(--cf-display, block);padding-inline:var(--cf-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--cf-padding-block, var(--ff-padding-block, 0));max-width:100%}\n"], components: [{ type: FieldHeaderComponent, selector: "field-header" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
20491
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomFieldComponent, decorators: [{
20492
+ type: i0.Component,
20493
+ args: [{
20494
+ selector: 'app-custom-field',
20495
+ templateUrl: './custom-field.component.html',
20496
+ styleUrls: ['./custom-field.component.scss'],
20497
+ encapsulation: i0.ViewEncapsulation.None,
20498
+ providers: [
20499
+ {
20500
+ provide: i2.NG_VALUE_ACCESSOR,
20501
+ useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20502
+ multi: true
20503
+ },
20504
+ {
20505
+ provide: i2.NG_VALIDATORS,
20506
+ useExisting: i0.forwardRef(function () { return CustomFieldComponent; }),
20507
+ multi: true
20508
+ }
20509
+ ],
20510
+ host: {
20511
+ '[class]': "'custom-field' + ' custom-field__fieldConfig?.render?.type' "
20512
+ }
20513
+ }]
20514
+ }], propDecorators: { aggregations: [{
20515
+ type: i0.Input
20516
+ }] } });
20517
+
20518
+ var FiltersByRolesPipe = /** @class */ (function () {
20519
+ function FiltersByRolesPipe(_nuxeoService, _rolesService) {
20520
+ this._nuxeoService = _nuxeoService;
20521
+ this._rolesService = _rolesService;
20522
+ }
20523
+ FiltersByRolesPipe.prototype.transform = function (items) {
20524
+ var _this = this;
20525
+ if (!items) {
20526
+ return items;
20527
+ }
20528
+ return items.filter(function (item) {
20529
+ var _a, _b, _c, _d, _e;
20530
+ if (!Array.isArray((_a = item.config) === null || _a === void 0 ? void 0 : _a.roles) || ((_b = item.config) === null || _b === void 0 ? void 0 : _b.roles.length) === 0) {
20531
+ return true;
20532
+ }
20533
+ var user = (_d = (_c = _this._nuxeoService) === null || _c === void 0 ? void 0 : _c.nuxeoClient) === null || _d === void 0 ? void 0 : _d.user;
20534
+ return _this._rolesService.isUserInRole(user, (_e = item.config) === null || _e === void 0 ? void 0 : _e.roles);
20535
+ });
20536
+ };
20537
+ return FiltersByRolesPipe;
20573
20538
  }());
20574
- CheckConditionPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, deps: [{ token: NuxeoService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
20575
- CheckConditionPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, name: "checkCondition" });
20576
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, decorators: [{
20539
+ FiltersByRolesPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, deps: [{ token: NuxeoService }, { token: RolesService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
20540
+ FiltersByRolesPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, name: "filterByRoles" });
20541
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersByRolesPipe, decorators: [{
20577
20542
  type: i0.Pipe,
20578
20543
  args: [{
20579
- name: 'checkCondition'
20544
+ name: 'filterByRoles'
20580
20545
  }]
20581
- }], ctorParameters: function () { return [{ type: NuxeoService }]; } });
20546
+ }], ctorParameters: function () { return [{ type: NuxeoService }, { type: RolesService }]; } });
20582
20547
 
20583
20548
  var FiltersPanelComponent = /** @class */ (function (_super) {
20584
20549
  __extends(FiltersPanelComponent, _super);
20585
- function FiltersPanelComponent(_translateService) {
20550
+ function FiltersPanelComponent(_translateService, nuxeoService) {
20586
20551
  var _this = _super.call(this) || this;
20587
20552
  _this._translateService = _translateService;
20553
+ _this.nuxeoService = nuxeoService;
20588
20554
  _this.currentLang = _this._translateService.currentLang;
20589
20555
  _this.direction$ = _this._translateService.onLangChange.pipe(operators.startWith({ lang: _this._translateService.currentLang }), operators.map(function (lang) {
20590
20556
  _this.currentLang = lang.lang;
@@ -20595,6 +20561,7 @@
20595
20561
  _this.filterChanged = new i0.EventEmitter();
20596
20562
  _this.fieldTypes = FIELD_TYPE;
20597
20563
  _this.FieldRenderType = AGGREGATION_FIELD_TYPES;
20564
+ _this.visibleFields = {};
20598
20565
  _this.formGroup = new i2.FormGroup({});
20599
20566
  return _this;
20600
20567
  }
@@ -20614,6 +20581,9 @@
20614
20581
  Object.defineProperty(FiltersPanelComponent.prototype, "activeQuery", {
20615
20582
  set: function (obj) {
20616
20583
  this._activeQuerySub.next(obj);
20584
+ if (obj) {
20585
+ this._evaluateConditions();
20586
+ }
20617
20587
  },
20618
20588
  enumerable: false,
20619
20589
  configurable: true
@@ -20633,19 +20603,27 @@
20633
20603
  FiltersPanelComponent.prototype.ngOnInit = function () {
20634
20604
  this._handleFormGroupChanges();
20635
20605
  this._handelActiveQueryChange();
20606
+ this._evaluateConditions();
20607
+ };
20608
+ FiltersPanelComponent.prototype.ngOnChanges = function (changes) {
20609
+ var _a, _b;
20610
+ if (!((_a = changes === null || changes === void 0 ? void 0 : changes.fields) === null || _a === void 0 ? void 0 : _a.firstChange) || !((_b = changes === null || changes === void 0 ? void 0 : changes.aggregations) === null || _b === void 0 ? void 0 : _b.firstChange)) {
20611
+ this._evaluateConditions();
20612
+ }
20636
20613
  };
20637
20614
  FiltersPanelComponent.prototype.resetFilters = function () {
20638
20615
  this.formGroup.reset({});
20639
20616
  };
20640
20617
  FiltersPanelComponent.prototype._sortItems = function (items) {
20641
20618
  var _defaultOrder = 0;
20642
- return items.sort(function (_b, _c) {
20643
- var o1 = _b.config.order;
20644
- var o2 = _c.config.order;
20619
+ return items.sort(function (_c, _d) {
20620
+ var o1 = _c.config.order;
20621
+ var o2 = _d.config.order;
20645
20622
  return (o1 !== null && o1 !== void 0 ? o1 : _defaultOrder) - (o2 !== null && o2 !== void 0 ? o2 : _defaultOrder);
20646
20623
  });
20647
20624
  };
20648
20625
  FiltersPanelComponent.prototype._initFormGroup = function () {
20626
+ this.visibleFields = {};
20649
20627
  this._removeControls();
20650
20628
  this._prepareFiltersForm();
20651
20629
  };
@@ -20657,13 +20635,13 @@
20657
20635
  });
20658
20636
  };
20659
20637
  FiltersPanelComponent.prototype._prepareFiltersForm = function () {
20660
- var e_1, _b;
20638
+ var e_1, _c;
20661
20639
  if (!this.fields) {
20662
20640
  return;
20663
20641
  }
20664
20642
  try {
20665
- for (var _c = __values(this.fields), _d = _c.next(); !_d.done; _d = _c.next()) {
20666
- var field = _d.value;
20643
+ for (var _d = __values(this.fields), _e = _d.next(); !_e.done; _e = _d.next()) {
20644
+ var field = _e.value;
20667
20645
  var key = field.config.fieldKey;
20668
20646
  if (!this.formGroup.contains(key)) {
20669
20647
  this.formGroup.addControl(key, new i2.FormControl(field.config.values));
@@ -20673,7 +20651,7 @@
20673
20651
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
20674
20652
  finally {
20675
20653
  try {
20676
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
20654
+ if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
20677
20655
  }
20678
20656
  finally { if (e_1) throw e_1.error; }
20679
20657
  }
@@ -20681,7 +20659,10 @@
20681
20659
  FiltersPanelComponent.prototype._handleFormGroupChanges = function () {
20682
20660
  var _this = this;
20683
20661
  this.formGroup.valueChanges
20684
- .pipe(operators.debounceTime(300), operators.map(function (data) { return removeEmptyKeys(data); }), operators.distinctUntilChanged(function (a, b) { return ___default["default"].isEqual(a, b); }), operators.takeUntil(this.destroy$))
20662
+ .pipe(operators.debounceTime(300), operators.map(function (formValue) {
20663
+ var data = _this._evaluateConditions(formValue);
20664
+ return removeEmptyKeys(data);
20665
+ }), operators.distinctUntilChanged(function (a, b) { return ___default["default"].isEqual(a, b); }), operators.takeUntil(this.destroy$))
20685
20666
  .subscribe(function (res) {
20686
20667
  _this.filterChanged.emit(res);
20687
20668
  });
@@ -20700,10 +20681,41 @@
20700
20681
  _this._patchActiveQuery(res);
20701
20682
  });
20702
20683
  };
20684
+ FiltersPanelComponent.prototype._evaluateConditions = function (values) {
20685
+ var _this = this;
20686
+ if (values === void 0) { values = this.formGroup.getRawValue(); }
20687
+ this.visibleFields = {};
20688
+ this.fields.forEach(function (field) {
20689
+ var _a;
20690
+ var fieldKey = field.config.fieldKey;
20691
+ var condition = (_a = field.config) === null || _a === void 0 ? void 0 : _a.condition;
20692
+ try {
20693
+ var isVisible = !condition ||
20694
+ Evaluator.evaluate(condition, ___default["default"].cloneDeep({
20695
+ aggregations: _this.aggregations,
20696
+ language: _this.currentLang,
20697
+ user: _this.nuxeoService.nuxeoClient.user,
20698
+ values: _this.formGroup.getRawValue()
20699
+ }));
20700
+ _this.visibleFields[fieldKey] = isVisible;
20701
+ if (!isVisible) {
20702
+ var control = _this.formGroup.get(fieldKey);
20703
+ if (!!(control === null || control === void 0 ? void 0 : control.value)) {
20704
+ control.reset();
20705
+ control.updateValueAndValidity({ emitEvent: false });
20706
+ }
20707
+ }
20708
+ }
20709
+ catch (e) {
20710
+ console.error("Error evaluating condition for field " + field.config.fieldKey + ":", e);
20711
+ }
20712
+ });
20713
+ return this.formGroup.value;
20714
+ };
20703
20715
  return FiltersPanelComponent;
20704
20716
  }(BaseFiltersPanel));
20705
- FiltersPanelComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersPanelComponent, deps: [{ token: i1__namespace.TranslateService }], target: i0__namespace.ɵɵFactoryTarget.Component });
20706
- FiltersPanelComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: { aggregations: "aggregations", fields: "fields", activeQuery: "activeQuery" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, ngImport: i0__namespace, template: "<div [formGroup]=\"formGroup\" class=\"filters-panel\" [dir]=\"direction$ | async\">\r\n\t<div class=\"reset-filter flex reset-container\">\r\n\t\t<button mat-stroked-button class=\"w-full\" (click)=\"resetFilters()\" [disabled]=\"!hasValues\">\r\n\t\t\t{{ 'BUTTONS.clearFilter' | translate }}\r\n\t\t</button>\r\n\t</div>\r\n\t<ng-container *ngFor=\"let field of fields | filterByRoles; trackBy: trackByFieldKey\">\r\n\t\t<ng-container *permission=\"{ name: field.config?.permission }\">\r\n\t\t\t<ng-container *ngIf=\"field.config?.condition | checkCondition: aggregations : currentLang \">\r\n\t\t\t\t<app-predicate-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.predicate\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t></app-predicate-field>\r\n\t\t\t\t<app-aggregation-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.aggregation && !!aggregations\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[aggregation]=\"aggregations[field.config.aggregation]\"\r\n\t\t\t\t\t[contentTemplate]=\"getContentTemplate(field.config.render.type)\"\r\n\t\t\t\t></app-aggregation-field>\r\n\t\t\t\t<app-custom-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.custom\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t\t></app-custom-field>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".filters-panel{display:var(--filters-panel-display, flex);flex-direction:var(--filters-panel-direction, column);grid-gap:var(--filters-panel-gap, .5rem);gap:var(--filters-panel-gap, .5rem);flex-wrap:var(--filters-panel-wrap, wrap);max-width:100%;box-sizing:border-box}.aggregation-field{padding-inline:var(--af-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--af-padding-block, var(--ff-padding-block, 0));max-width:100%}.reset-container{padding:.5rem;position:sticky;top:-8px;z-index:4;background:var(--reset-filter-panel-bg, #fff)}.reset-container button.mat-button-base{background-color:var(--reset-filter-panel-btn-bg, transparent);border-color:var(--reset-filter-panel-btn-bg, #e2e8f0);color:var(--reset-filter-panel-btn-color, currentColor)}\n"], components: [{ type: i1__namespace$c.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"] }, { type: PredicateFieldComponent, selector: "app-predicate-field" }, { type: AggregationFieldComponent, selector: "app-aggregation-field", inputs: ["aggregation", "contentTemplate"] }, { type: CustomFieldComponent, selector: "app-custom-field", inputs: ["aggregations"] }], directives: [{ type: i2__namespace$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe, "filterByRoles": FiltersByRolesPipe, "checkCondition": CheckConditionPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
20717
+ FiltersPanelComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersPanelComponent, deps: [{ token: i1__namespace.TranslateService }, { token: NuxeoService }], target: i0__namespace.ɵɵFactoryTarget.Component });
20718
+ FiltersPanelComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: { aggregations: "aggregations", fields: "fields", activeQuery: "activeQuery" }, outputs: { filterChanged: "filterChanged" }, usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, template: "<div [formGroup]=\"formGroup\" class=\"filters-panel\" [dir]=\"direction$ | async\">\r\n\t<div class=\"reset-filter flex reset-container\">\r\n\t\t<button mat-stroked-button class=\"w-full\" (click)=\"resetFilters()\" [disabled]=\"!hasValues\">\r\n\t\t\t{{ 'BUTTONS.clearFilter' | translate }}\r\n\t\t</button>\r\n\t</div>\r\n\t<ng-container *ngFor=\"let field of fields | filterByRoles; trackBy: trackByFieldKey\">\r\n\t\t<ng-container *permission=\"{ name: field.config?.permission }\">\r\n\t\t\t<ng-container *ngIf=\"visibleFields[field.config.fieldKey]\">\r\n\t\t\t\t<app-predicate-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.predicate\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t></app-predicate-field>\r\n\t\t\t\t<app-aggregation-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.aggregation && !!aggregations\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[aggregation]=\"aggregations[field.config.aggregation]\"\r\n\t\t\t\t\t[contentTemplate]=\"getContentTemplate(field.config.render.type)\"\r\n\t\t\t\t></app-aggregation-field>\r\n\t\t\t\t<app-custom-field\r\n\t\t\t\t\t*ngIf=\"field.type == fieldTypes.custom\"\r\n\t\t\t\t\t[fieldConfig]=\"field.config\"\r\n\t\t\t\t\t[formControlName]=\"field.config.fieldKey\"\r\n\t\t\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t\t></app-custom-field>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n</div>\r\n", styles: [".filters-panel{display:var(--filters-panel-display, flex);flex-direction:var(--filters-panel-direction, column);grid-gap:var(--filters-panel-gap, .5rem);gap:var(--filters-panel-gap, .5rem);flex-wrap:var(--filters-panel-wrap, wrap);max-width:100%;box-sizing:border-box}.aggregation-field{padding-inline:var(--af-padding-inline, var(--ff-padding-inline, .5rem));padding-block:var(--af-padding-block, var(--ff-padding-block, 0));max-width:100%}.reset-container{padding:.5rem;position:sticky;top:-8px;z-index:4;background:var(--reset-filter-panel-bg, #fff)}.reset-container button.mat-button-base{background-color:var(--reset-filter-panel-btn-bg, transparent);border-color:var(--reset-filter-panel-btn-bg, #e2e8f0);color:var(--reset-filter-panel-btn-color, currentColor)}\n"], components: [{ type: i1__namespace$c.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"] }, { type: PredicateFieldComponent, selector: "app-predicate-field" }, { type: AggregationFieldComponent, selector: "app-aggregation-field", inputs: ["aggregation", "contentTemplate"] }, { type: CustomFieldComponent, selector: "app-custom-field", inputs: ["aggregations"] }], directives: [{ type: i2__namespace$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe, "filterByRoles": FiltersByRolesPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
20707
20719
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: FiltersPanelComponent, decorators: [{
20708
20720
  type: i0.Component,
20709
20721
  args: [{
@@ -20712,7 +20724,7 @@
20712
20724
  styleUrls: ['./filters-panel.component.scss'],
20713
20725
  changeDetection: i0.ChangeDetectionStrategy.OnPush
20714
20726
  }]
20715
- }], ctorParameters: function () { return [{ type: i1__namespace.TranslateService }]; }, propDecorators: { aggregations: [{
20727
+ }], ctorParameters: function () { return [{ type: i1__namespace.TranslateService }, { type: NuxeoService }]; }, propDecorators: { aggregations: [{
20716
20728
  type: i0.Input
20717
20729
  }], fields: [{
20718
20730
  type: i0.Input
@@ -20812,6 +20824,34 @@
20812
20824
  }]
20813
20825
  }] });
20814
20826
 
20827
+ var CheckConditionPipe = /** @class */ (function () {
20828
+ function CheckConditionPipe(nuxeoService) {
20829
+ this.nuxeoService = nuxeoService;
20830
+ this.user = nuxeoService.nuxeoClient.user;
20831
+ }
20832
+ CheckConditionPipe.prototype.transform = function (condition, aggregations, language, filterValues) {
20833
+ if (!condition) {
20834
+ return true;
20835
+ }
20836
+ try {
20837
+ return Evaluator.evaluate(condition, ___default["default"].cloneDeep({ aggregations: aggregations, language: language, user: this.user, values: filterValues }));
20838
+ }
20839
+ catch (error) {
20840
+ console.error({ error: error });
20841
+ return false;
20842
+ }
20843
+ };
20844
+ return CheckConditionPipe;
20845
+ }());
20846
+ CheckConditionPipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, deps: [{ token: NuxeoService }], target: i0__namespace.ɵɵFactoryTarget.Pipe });
20847
+ CheckConditionPipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, name: "checkCondition" });
20848
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CheckConditionPipe, decorators: [{
20849
+ type: i0.Pipe,
20850
+ args: [{
20851
+ name: 'checkCondition'
20852
+ }]
20853
+ }], ctorParameters: function () { return [{ type: NuxeoService }]; } });
20854
+
20815
20855
  var AggregationGroupComponent = /** @class */ (function (_super) {
20816
20856
  __extends(AggregationGroupComponent, _super);
20817
20857
  function AggregationGroupComponent() {
@@ -20957,6 +20997,7 @@
20957
20997
  var CONTAINERS$1 = [
20958
20998
  FiltersPanelComponent,
20959
20999
  PredicateFieldComponent,
21000
+ AggregationFieldComponent,
20960
21001
  CustomFieldComponent,
20961
21002
  ];
20962
21003
  var COMPONENTS$4 = [
@@ -21050,6 +21091,7 @@
21050
21091
  NdfFiltersPanelModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfFiltersPanelModule, deps: [{ token: DynamicComponentLoaderService }], target: i0__namespace.ɵɵFactoryTarget.NgModule });
21051
21092
  NdfFiltersPanelModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfFiltersPanelModule, declarations: [FiltersPanelComponent,
21052
21093
  PredicateFieldComponent,
21094
+ AggregationFieldComponent,
21053
21095
  CustomFieldComponent, AggregationAutocompleteComponent,
21054
21096
  AggregationSelectComponent,
21055
21097
  AggregationCheckboxComponent,
@@ -21103,9 +21145,9 @@
21103
21145
  DynamicFormModule,
21104
21146
  NuxeoDialogModule,
21105
21147
  DirectiveModule,
21106
- NdfDatepickerModule,
21107
- AggregationFieldModule, i5__namespace$4.NgxMaskModule], exports: [FiltersPanelComponent,
21148
+ NdfDatepickerModule, i5__namespace$4.NgxMaskModule], exports: [FiltersPanelComponent,
21108
21149
  PredicateFieldComponent,
21150
+ AggregationFieldComponent,
21109
21151
  CustomFieldComponent, AggregationAutocompleteComponent,
21110
21152
  AggregationSelectComponent,
21111
21153
  AggregationCheckboxComponent,
@@ -21146,7 +21188,6 @@
21146
21188
  NuxeoDialogModule,
21147
21189
  DirectiveModule,
21148
21190
  NdfDatepickerModule,
21149
- AggregationFieldModule,
21150
21191
  i5$4.NgxMaskModule.forRoot({
21151
21192
  validation: true,
21152
21193
  }),
@@ -21191,7 +21232,6 @@
21191
21232
  NuxeoDialogModule,
21192
21233
  DirectiveModule,
21193
21234
  NdfDatepickerModule,
21194
- AggregationFieldModule,
21195
21235
  i5$4.NgxMaskModule.forRoot({
21196
21236
  validation: true,
21197
21237
  }),
@@ -21795,7 +21835,7 @@
21795
21835
  var _this = this;
21796
21836
  if (payload === void 0) { payload = {}; }
21797
21837
  if (headers === void 0) { headers = {}; }
21798
- var _a, _b, _c, _d;
21838
+ var _a, _b, _c, _d, _e, _f, _g, _h;
21799
21839
  this.loading = true; // internal loading
21800
21840
  this.onLoading.emit(true); // external loading
21801
21841
  var params = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (this.range ? { dublincore_created_agg: this.range } : {})), this.filterParams), this.queryParam), this.quickFilter), (Object.keys(this.sortingBy || {}).length
@@ -21810,13 +21850,34 @@
21810
21850
  this.rows = []; // used to refresh table to feel changes in actions when perform action and need to refresh actions
21811
21851
  }
21812
21852
  this.sorting = false; // reset sorting status to false and for next sorting func sorting set it to true again
21813
- var _query = Object.assign({ pageProvider: this.pageProvider }, params);
21814
- var _options = {
21815
- headers: Object.assign(Object.assign({}, this.headers), headers)
21853
+ var _headers = Object.assign(Object.assign({}, this.headers), headers);
21854
+ var _providerPayload = {
21855
+ query: Object.assign({ pageProvider: this.pageProvider }, params),
21856
+ options: {
21857
+ headers: _headers
21858
+ }
21816
21859
  };
21860
+ var _customPayload = {
21861
+ params: Object.assign(Object.assign({}, params), (((_c = this.customFilters) === null || _c === void 0 ? void 0 : _c.params) || {})),
21862
+ headers: _headers,
21863
+ payload: ((_d = this.customFilters) === null || _d === void 0 ? void 0 : _d.payload) || {}
21864
+ };
21865
+ if (((_e = this.requestActions) === null || _e === void 0 ? void 0 : _e.beforeSubmit) && typeof ((_f = this.requestActions) === null || _f === void 0 ? void 0 : _f.beforeSubmit) === 'string') {
21866
+ try {
21867
+ if (this.customUrl) {
21868
+ _customPayload = Evaluator.evaluate((_g = this.requestActions) === null || _g === void 0 ? void 0 : _g.beforeSubmit, { criteria: _customPayload }, 'payload');
21869
+ }
21870
+ else {
21871
+ _providerPayload = Evaluator.evaluate((_h = this.requestActions) === null || _h === void 0 ? void 0 : _h.beforeSubmit, { criteria: _providerPayload }, 'payload');
21872
+ }
21873
+ }
21874
+ catch (e) {
21875
+ console.error(e);
21876
+ }
21877
+ }
21817
21878
  var query$ = this.customUrl
21818
- ? this.callApi.customQuery(this.customUrl, Object.assign(Object.assign({}, params), (((_c = this.customFilters) === null || _c === void 0 ? void 0 : _c.params) || {})), _options.headers, ((_d = this.customFilters) === null || _d === void 0 ? void 0 : _d.payload) || {})
21819
- : this.callApi.query(_query, _options);
21879
+ ? this.callApi.customQuery(this.customUrl, _customPayload.params, _customPayload.headers, _customPayload.payload)
21880
+ : this.callApi.query(_providerPayload.query, _providerPayload.options);
21820
21881
  query$
21821
21882
  .pipe(operators.map(function (data) {
21822
21883
  data.entries.map(function (item) { return _this.adapter.adaptIn(item, _this.fields); });
@@ -21893,7 +21954,7 @@
21893
21954
  return DynamicTableComponent;
21894
21955
  }());
21895
21956
  DynamicTableComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTableComponent, deps: [{ token: AdapterService }, { token: CallApiService }, { token: DynamicTableService }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
21896
- DynamicTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", isLegacyMode: "isLegacyMode", showTotalRecord: "showTotalRecord", pageNumber: "pageNumber", sortingBy: "sortingBy", queryParam: "queryParam", customFilters: "customFilters", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", highlightSelectedCard: "highlightSelectedCard", showActionsAsMenu: "showActionsAsMenu", filterParams: "filterParams", skipAggregation: "skipAggregation", customUrl: "customUrl", format: "format", pageSizes: "pageSizes" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", sortChanged: "sortChanged", onPageChange: "onPageChange", onPage: "onPage", onLoad: "onLoad", onInitialize: "onInitialize" }, host: { properties: { "class.loading-results": "loading", "class.no-data": "rows.length <= 0" } }, queries: [{ propertyName: "emptyTemplate", first: true, predicate: EMPTY_TEMPLATE, descendants: true, read: i0.TemplateRef, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"wrapping table-wrapping\">\r\n\t<ng-container *ngIf=\"isLegacyMode\">\r\n\t\t<div class=\"table-reposition\">\r\n\t\t\t<ng-container *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t</div>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<cts-spinner></cts-spinner>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\r\n\t<div class=\"table-reposition\" *ngIf=\"!isLegacyMode\">\r\n\t\t<ng-container [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized\"\r\n\t\t\t[ngTemplateOutlet]=\"skeleton\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: 10 }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n\r\n\t<div\r\n\t\tclass=\"pagination-iner-wraper d-flex justify-content-center align-items-center my-3\"\r\n\t\t[ngClass]=\"{ relative: pageSizes?.length }\"\r\n\t\t*ngIf=\"rows.length && totalRecords > pageSize\"\r\n\t>\r\n\t\t<cts-pagination\r\n\t\t\t[page]=\"pageNum\"\r\n\t\t\t(change)=\"paginationChange($event)\"\r\n\t\t\t[size]=\"pageSize\"\r\n\t\t\t[count]=\"totalRecords\"\r\n\t\t></cts-pagination>\r\n\t\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t\t<ndf-page-sizes-list\r\n\t\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t\t>\r\n\t\t\t</ndf-page-sizes-list>\r\n\r\n\t\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<ng-container\r\n\t\t*ngIf=\"isLegacyMode\"\r\n\t\t[ngTemplateOutlet]=\"emptyTemplate || legacyDefaultEmptyState\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: loading, rows: rows, initialized: initialized }\"\r\n\t></ng-container>\r\n\r\n\t<ng-container\r\n\t\t*ngIf=\"!isLegacyMode\"\r\n\t\t[ngTemplateOutlet]=\"emptyTemplate || defaultEmptyState\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: loading, rows: rows, initialized: initialized }\"\r\n\t></ng-container>\r\n</div>\r\n\r\n<ng-template #table>\r\n\t<cts-table\r\n\t\t[rows]=\"rows\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[tableActions]=\"tableActions\"\r\n\t\t[showActionsAsMenu]=\"showActionsAsMenu\"\r\n\t\t[defultSort]=\"defultSort\"\r\n\t\t[format]=\"format\"\r\n\t\t[highlightSelectedCard]=\"highlightSelectedCard\"\r\n\t\t[customFirstRow]=\"customFirstRow\"\r\n\t\t(onRowSelected)=\"rowDetails($event)\"\r\n\t\t(onRowIndexSelected)=\"indexDetails($event)\"\r\n\t\t(onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n\t\t(actionOnRow)=\"performAction($event)\"\r\n\t\t(onSorting)=\"onSort($event)\"\r\n\t></cts-table>\r\n</ng-template>\r\n\r\n<ng-template #legacyDefaultEmptyState>\r\n\t<div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'noData' : 'noData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"empty-state\" *ngIf=\"loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'gettingData' : 'gettingData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyState>\r\n\t<div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'noData' : 'noData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\t<div *ngIf=\"loading && initialized\" class=\"loading-content\">\r\n\t\t<mat-spinner [diameter]=\"100\"></mat-spinner>\r\n\t</div>\r\n</ng-template>\r\n\r\n<ng-template #skeleton let-rows>\r\n\t<table class=\"w-full\">\r\n\t\t<thead *ngIf=\"false\">\r\n\t\t\t<tr class=\"border-b border-green-900\">\r\n\t\t\t\t<th *ngIf=\"multiSelectRows\" class=\"p-3 py-4\" style=\"width: 60px\">\r\n\t\t\t\t\t<app-skeleton width=\"60px\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</th>\r\n\t\t\t\t<th *ngFor=\"let num of [].constructor(columns?.length || 4); let i = index\" class=\"px-3 py-4\">\r\n\t\t\t\t\t<app-skeleton [randomWidth]=\"true\" height=\"1.7rem\"></app-skeleton>\r\n\t\t\t\t</th>\r\n\t\t\t</tr>\r\n\t\t</thead>\r\n\t\t<tbody>\r\n\t\t\t<tr *ngFor=\"let row of [].constructor(rows || 10); let index = index\" class=\"border-b border-gray-200\">\r\n\t\t\t\t<td *ngIf=\"multiSelectRows\" class=\"p-3 py-4\" style=\"width: 50px\">\r\n\t\t\t\t\t<app-skeleton width=\"50px\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</td>\r\n\t\t\t\t<td *ngFor=\"let col of [].constructor(columns?.length || 4); let i = index\" class=\"p-3 py-4\">\r\n\t\t\t\t\t<app-skeleton [randomWidth]=\"true\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</tbody>\r\n\t</table>\r\n</ng-template>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:var(--table-reposition-overflow-y, hidden);scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:hidden}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}.ndfPageSizes{right:0;left:unset}.rtl .ndfPageSizes{right:unset;left:0}.loading-content{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-content-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-content-backdrop-filter, blur(3px));backdrop-filter:var(--loading-content-backdrop-filter, blur(3px))}\n"], components: [{ type: SpinnerComponent, selector: "cts-spinner" }, { type: PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }, { type: TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
21957
+ DynamicTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", isLegacyMode: "isLegacyMode", showTotalRecord: "showTotalRecord", pageNumber: "pageNumber", sortingBy: "sortingBy", queryParam: "queryParam", customFilters: "customFilters", quickFilter: "quickFilter", report: "report", rowCursor: "rowCursor", fullWidth: "fullWidth", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", defultSort: "defultSort", range: "range", isSearchPage: "isSearchPage", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", highlightSelectedCard: "highlightSelectedCard", showActionsAsMenu: "showActionsAsMenu", filterParams: "filterParams", skipAggregation: "skipAggregation", customUrl: "customUrl", format: "format", requestActions: "requestActions", pageSizes: "pageSizes" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", sortChanged: "sortChanged", onPageChange: "onPageChange", onPage: "onPage", onLoad: "onLoad", onInitialize: "onInitialize" }, host: { properties: { "class.loading-results": "loading", "class.no-data": "rows.length <= 0" } }, queries: [{ propertyName: "emptyTemplate", first: true, predicate: EMPTY_TEMPLATE, descendants: true, read: i0.TemplateRef, static: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"wrapping table-wrapping\">\r\n\t<ng-container *ngIf=\"isLegacyMode\">\r\n\t\t<div class=\"table-reposition\">\r\n\t\t\t<ng-container *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t</div>\r\n\t\t<ng-container *ngIf=\"loading\">\r\n\t\t\t<cts-spinner></cts-spinner>\r\n\t\t</ng-container>\r\n\t</ng-container>\r\n\r\n\t<div class=\"table-reposition\" *ngIf=\"!isLegacyMode\">\r\n\t\t<ng-container [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized\"\r\n\t\t\t[ngTemplateOutlet]=\"skeleton\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: 10 }\"\r\n\t\t></ng-container>\r\n\t</div>\r\n\r\n\t<div\r\n\t\tclass=\"pagination-iner-wraper d-flex justify-content-center align-items-center my-3\"\r\n\t\t[ngClass]=\"{ relative: pageSizes?.length }\"\r\n\t\t*ngIf=\"rows.length && totalRecords > pageSize\"\r\n\t>\r\n\t\t<cts-pagination\r\n\t\t\t[page]=\"pageNum\"\r\n\t\t\t(change)=\"paginationChange($event)\"\r\n\t\t\t[size]=\"pageSize\"\r\n\t\t\t[count]=\"totalRecords\"\r\n\t\t></cts-pagination>\r\n\t\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t\t<ndf-page-sizes-list\r\n\t\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t\t>\r\n\t\t\t</ndf-page-sizes-list>\r\n\r\n\t\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<ng-container\r\n\t\t*ngIf=\"isLegacyMode\"\r\n\t\t[ngTemplateOutlet]=\"emptyTemplate || legacyDefaultEmptyState\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: loading, rows: rows, initialized: initialized }\"\r\n\t></ng-container>\r\n\r\n\t<ng-container\r\n\t\t*ngIf=\"!isLegacyMode\"\r\n\t\t[ngTemplateOutlet]=\"emptyTemplate || defaultEmptyState\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: loading, rows: rows, initialized: initialized }\"\r\n\t></ng-container>\r\n</div>\r\n\r\n<ng-template #table>\r\n\t<cts-table\r\n\t\t[rows]=\"rows\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[tableActions]=\"tableActions\"\r\n\t\t[showActionsAsMenu]=\"showActionsAsMenu\"\r\n\t\t[defultSort]=\"defultSort\"\r\n\t\t[format]=\"format\"\r\n\t\t[highlightSelectedCard]=\"highlightSelectedCard\"\r\n\t\t[customFirstRow]=\"customFirstRow\"\r\n\t\t(onRowSelected)=\"rowDetails($event)\"\r\n\t\t(onRowIndexSelected)=\"indexDetails($event)\"\r\n\t\t(onMultiRowSelected)=\"onMultiRowSelectValue($event)\"\r\n\t\t(actionOnRow)=\"performAction($event)\"\r\n\t\t(onSorting)=\"onSort($event)\"\r\n\t></cts-table>\r\n</ng-template>\r\n\r\n<ng-template #legacyDefaultEmptyState>\r\n\t<div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'noData' : 'noData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"empty-state\" *ngIf=\"loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'gettingData' : 'gettingData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyState>\r\n\t<div class=\"empty-state\" *ngIf=\"!loading && rows.length === 0\">\r\n\t\t<div class=\"text\">\r\n\t\t\t{{ (prefix ? prefix + 'noData' : 'noData') | translate }}\r\n\t\t</div>\r\n\t</div>\r\n\t<div *ngIf=\"loading && initialized\" class=\"loading-content\">\r\n\t\t<mat-spinner [diameter]=\"100\"></mat-spinner>\r\n\t</div>\r\n</ng-template>\r\n\r\n<ng-template #skeleton let-rows>\r\n\t<table class=\"w-full\">\r\n\t\t<thead *ngIf=\"false\">\r\n\t\t\t<tr class=\"border-b border-green-900\">\r\n\t\t\t\t<th *ngIf=\"multiSelectRows\" class=\"p-3 py-4\" style=\"width: 60px\">\r\n\t\t\t\t\t<app-skeleton width=\"60px\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</th>\r\n\t\t\t\t<th *ngFor=\"let num of [].constructor(columns?.length || 4); let i = index\" class=\"px-3 py-4\">\r\n\t\t\t\t\t<app-skeleton [randomWidth]=\"true\" height=\"1.7rem\"></app-skeleton>\r\n\t\t\t\t</th>\r\n\t\t\t</tr>\r\n\t\t</thead>\r\n\t\t<tbody>\r\n\t\t\t<tr *ngFor=\"let row of [].constructor(rows || 10); let index = index\" class=\"border-b border-gray-200\">\r\n\t\t\t\t<td *ngIf=\"multiSelectRows\" class=\"p-3 py-4\" style=\"width: 50px\">\r\n\t\t\t\t\t<app-skeleton width=\"50px\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</td>\r\n\t\t\t\t<td *ngFor=\"let col of [].constructor(columns?.length || 4); let i = index\" class=\"p-3 py-4\">\r\n\t\t\t\t\t<app-skeleton [randomWidth]=\"true\" height=\"1.3rem\"></app-skeleton>\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t</tbody>\r\n\t</table>\r\n</ng-template>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.wrapping{position:relative}.wrapping .table-reposition{overflow-y:var(--table-reposition-overflow-y, hidden);scrollbar-color:#b4bac6 transparent!important;scrollbar-width:thin!important;overflow-x:hidden}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:bold}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#b4bac6}.dark-scroll::-webkit-scrollbar-thumb{background:#8f98aa}.ndfPageSizes{right:0;left:unset}.rtl .ndfPageSizes{right:unset;left:0}.loading-content{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-content-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-content-backdrop-filter, blur(3px));backdrop-filter:var(--loading-content-backdrop-filter, blur(3px))}\n"], components: [{ type: SpinnerComponent, selector: "cts-spinner" }, { type: PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { type: PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }, { type: TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1__namespace.TranslatePipe }, encapsulation: i0__namespace.ViewEncapsulation.None });
21897
21958
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTableComponent, decorators: [{
21898
21959
  type: i0.Component,
21899
21960
  args: [{
@@ -21995,6 +22056,8 @@
21995
22056
  type: i0.Input
21996
22057
  }], format: [{
21997
22058
  type: i0.Input
22059
+ }], requestActions: [{
22060
+ type: i0.Input
21998
22061
  }], pageSizes: [{
21999
22062
  type: i0.Input
22000
22063
  }] } });
@@ -22695,7 +22758,7 @@
22695
22758
  return NdfTableComponent;
22696
22759
  }(DestroySubject));
22697
22760
  NdfTableComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfTableComponent, deps: [{ token: FiltersMapperService }, { token: DynamicTableService }, { token: i1__namespace.TranslateService }, { token: NdfTableService }, { token: CustomToastrService }, { token: NdfTableConfigurationService }, { token: i1__namespace$3.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
22698
- NdfTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: i0.TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: i0.TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: i0.TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"tableConfig\"\r\n\tclass=\"ndf-table__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n\tcssVar=\"--ndf-table-height\"\r\n\t[calculate]=\"autoCalculateHeight\"\r\n>\r\n\t<div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig.fields\"\r\n\t\t\t[aggregations]=\"aggregations$ | async\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeQuery\"\r\n\t\t\tclass=\"ndf-table__filters\"\r\n\t\t\t[customTemplateRef]=\"filterCustomTemplate\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\t<div class=\"ndf-table__content\">\r\n\t\t<div class=\"ndf-table__header flex\">\r\n\t\t\t<div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultActionTemplate>\r\n\t\t\t\t\t<button mat-stroked-button *ngIf=\"isPanelToggleAvailable\" class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<app-text-search\r\n\t\t\t\t\t\t*ngIf=\"textSearchConfig\"\r\n\t\t\t\t\t\t[searchConfig]=\"textSearchConfig\"\r\n\t\t\t\t\t\t(openModal)=\"openSearchModal()\"\r\n\t\t\t\t\t\t[search]=\"textSearch$ | async\"\r\n\t\t\t\t\t\t(searchChange)=\"onTextSearch($event)\"\r\n\t\t\t\t\t\t(clear)=\"onClearSearch()\"\r\n\t\t\t\t\t></app-text-search>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n\t\t\t\t<app-editor-button\r\n\t\t\t\t\t*ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n\t\t\t\t\t[key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n\t\t\t\t></app-editor-button>\r\n\t\t\t\t<ndf-table-export\r\n\t\t\t\t\t*ngIf=\"exportTableConfig?.enabled\"\r\n\t\t\t\t\t[config]=\"exportTableConfig\"\r\n\t\t\t\t\t(onExport)=\"exportTable($event)\"\r\n\t\t\t\t></ndf-table-export>\r\n\r\n\t\t\t\t<table-sorting-list\r\n\t\t\t\t\t*ngIf=\"!!sortList?.length\"\r\n\t\t\t\t\t[sortList]=\"sortList\"\r\n\t\t\t\t\t(sortChanged)=\"sortChanged($event)\"\r\n\t\t\t\t></table-sorting-list>\r\n\t\t\t\t<table-columns-toggler\r\n\t\t\t\t\t*ngIf=\"columnToggle\"\r\n\t\t\t\t\t[columns]=\"tableConfig.columns\"\r\n\t\t\t\t\t[prefix]=\"tableConfig.prefix\"\r\n\t\t\t\t\t[sortable]=\"columnsOptions?.sortable\"\r\n\t\t\t\t\t(columnsChanged)=\"columnsChanged($event)\"\r\n\t\t\t\t></table-columns-toggler>\r\n\t\t\t\t<mode-toggler\r\n\t\t\t\t\t*ngIf=\"tableMode?.toggleMode\"\r\n\t\t\t\t\t[mode]=\"tableMode.mode || 'list'\"\r\n\t\t\t\t\t[modesList]=\"tableMode?.availableMode\"\r\n\t\t\t\t\t(modeChanged)=\"modeChanged($event)\"\r\n\t\t\t\t></mode-toggler>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"actionsTableTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<cts-dynamic-table\r\n\t\t\t*ngIf=\"!tableConfig.isDataProvided\"\r\n\t\t\tclass=\"ndf-table__table table-style\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[pageSize]=\"tableConfig.pageSize || 10\"\r\n\t\t\t[pageNumber]=\"tableConfig.pageNumber || 1\"\r\n\t\t\t[pageProvider]=\"tableConfig.pageProvider\"\r\n\t\t\t[customUrl]=\"tableConfig.customUrl\"\r\n\t\t\t[quickFilter]=\"tableConfig.quickFilters ? { quickFilters: tableConfig.quickFilters } : undefined\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[sortingBy]=\"sortOption$ | async\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[fields]=\"tableConfig.fields\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[range]=\"tableConfig?.range\"\r\n\t\t\t[isSearchPage]=\"tableConfig?.isSearchPage\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[filterParams]=\"tableConfig?.filterParams\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[queryParam]=\"tableConfig.queryParam\"\r\n\t\t\t[customFilters]=\"searchAndFilters$ | async\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[headers]=\"tableConfig.headers\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onGettingData)=\"onGettingData.emit($event)\"\r\n\t\t\t(onLoad)=\"onLoad($event)\"\r\n\t\t\t(onInitialize)=\"onInitialize($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(onLoading)=\"onLoading.emit($event)\"\r\n\t\t\t(onPage)=\"onPageChanged($event)\"\r\n\t\t\t[isLegacyMode]=\"false\"\r\n\t\t\t[showTotalRecord]=\"true\"\r\n\t\t\t(sortChanged)=\"onSortChanged($event)\"\r\n\t\t>\r\n\t\t\t<ng-template emptyTemplate let-isLoading let-rows=\"rows\" let-initialized=\"initialized\">\r\n\t\t\t\t<div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n\t\t\t\t\t<mat-spinner></mat-spinner>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"flex items-center justify-center h-5/6\" *ngIf=\"!isLoading && !rows.length\">\r\n\t\t\t\t\t<app-no-data-found class=\"mt-4\" [message]=\"emptyMessage\"></app-no-data-found>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-template>\r\n\t\t</cts-dynamic-table>\r\n\r\n\t\t<cts-table\r\n\t\t\t*ngIf=\"tableConfig.isDataProvided\"\r\n\t\t\t[rows]=\"rows\"\r\n\t\t\t[totalRecords]=\"totalRecords\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onSorting)=\"onSortChanged($event)\"\r\n\t\t></cts-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - calc(var(--ndf-tbl-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-data-backdrop-filter, blur(3px));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe } });
22761
+ NdfTableComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTableComponent, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: i0.TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: i0.TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: i0.TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"tableConfig\"\r\n\tclass=\"ndf-table__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n\tcssVar=\"--ndf-table-height\"\r\n\t[calculate]=\"autoCalculateHeight\"\r\n>\r\n\t<div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig.fields\"\r\n\t\t\t[aggregations]=\"aggregations$ | async\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeQuery\"\r\n\t\t\tclass=\"ndf-table__filters\"\r\n\t\t\t[customTemplateRef]=\"filterCustomTemplate\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\t<div class=\"ndf-table__content\">\r\n\t\t<div class=\"ndf-table__header flex\">\r\n\t\t\t<div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultActionTemplate>\r\n\t\t\t\t\t<button mat-stroked-button *ngIf=\"isPanelToggleAvailable\" class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<app-text-search\r\n\t\t\t\t\t\t*ngIf=\"textSearchConfig\"\r\n\t\t\t\t\t\t[searchConfig]=\"textSearchConfig\"\r\n\t\t\t\t\t\t(openModal)=\"openSearchModal()\"\r\n\t\t\t\t\t\t[search]=\"textSearch$ | async\"\r\n\t\t\t\t\t\t(searchChange)=\"onTextSearch($event)\"\r\n\t\t\t\t\t\t(clear)=\"onClearSearch()\"\r\n\t\t\t\t\t></app-text-search>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"ndf-table__header__actions flex gap-x-4 items-center\">\r\n\t\t\t\t<app-editor-button\r\n\t\t\t\t\t*ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n\t\t\t\t\t[key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n\t\t\t\t></app-editor-button>\r\n\t\t\t\t<ndf-table-export\r\n\t\t\t\t\t*ngIf=\"exportTableConfig?.enabled\"\r\n\t\t\t\t\t[config]=\"exportTableConfig\"\r\n\t\t\t\t\t(onExport)=\"exportTable($event)\"\r\n\t\t\t\t></ndf-table-export>\r\n\r\n\t\t\t\t<table-sorting-list\r\n\t\t\t\t\t*ngIf=\"!!sortList?.length\"\r\n\t\t\t\t\t[sortList]=\"sortList\"\r\n\t\t\t\t\t(sortChanged)=\"sortChanged($event)\"\r\n\t\t\t\t></table-sorting-list>\r\n\t\t\t\t<table-columns-toggler\r\n\t\t\t\t\t*ngIf=\"columnToggle\"\r\n\t\t\t\t\t[columns]=\"tableConfig.columns\"\r\n\t\t\t\t\t[prefix]=\"tableConfig.prefix\"\r\n\t\t\t\t\t[sortable]=\"columnsOptions?.sortable\"\r\n\t\t\t\t\t(columnsChanged)=\"columnsChanged($event)\"\r\n\t\t\t\t></table-columns-toggler>\r\n\t\t\t\t<mode-toggler\r\n\t\t\t\t\t*ngIf=\"tableMode?.toggleMode\"\r\n\t\t\t\t\t[mode]=\"tableMode.mode || 'list'\"\r\n\t\t\t\t\t[modesList]=\"tableMode?.availableMode\"\r\n\t\t\t\t\t(modeChanged)=\"modeChanged($event)\"\r\n\t\t\t\t></mode-toggler>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"actionsTableTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: tableConfig,\r\n\t\t\t\t\t\tpanelOpened: isPanelOpened,\r\n\t\t\t\t\t\ttogglePanel: togglePanel,\r\n\t\t\t\t\t\topenModal: openSearchModal,\r\n\t\t\t\t\t\tsearch: onTextSearch,\r\n\t\t\t\t\t\tclear: onClearSearch\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<cts-dynamic-table\r\n\t\t\t*ngIf=\"!tableConfig.isDataProvided\"\r\n\t\t\tclass=\"ndf-table__table table-style\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[pageSize]=\"tableConfig.pageSize || 10\"\r\n\t\t\t[pageNumber]=\"tableConfig.pageNumber || 1\"\r\n\t\t\t[pageProvider]=\"tableConfig.pageProvider\"\r\n\t\t\t[customUrl]=\"tableConfig.customUrl\"\r\n\t\t\t[quickFilter]=\"tableConfig.quickFilters ? { quickFilters: tableConfig.quickFilters } : undefined\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[sortingBy]=\"sortOption$ | async\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[fields]=\"tableConfig.fields\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[range]=\"tableConfig?.range\"\r\n\t\t\t[isSearchPage]=\"tableConfig?.isSearchPage\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[filterParams]=\"tableConfig?.filterParams\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[queryParam]=\"tableConfig.queryParam\"\r\n\t\t\t[customFilters]=\"searchAndFilters$ | async\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n [requestActions]=\"tableConfig?.requestActions\"\r\n\t\t\t[headers]=\"tableConfig.headers\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onGettingData)=\"onGettingData.emit($event)\"\r\n\t\t\t(onLoad)=\"onLoad($event)\"\r\n\t\t\t(onInitialize)=\"onInitialize($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(onLoading)=\"onLoading.emit($event)\"\r\n\t\t\t(onPage)=\"onPageChanged($event)\"\r\n\t\t\t[isLegacyMode]=\"false\"\r\n\t\t\t[showTotalRecord]=\"true\"\r\n\t\t\t(sortChanged)=\"onSortChanged($event)\"\r\n\t\t>\r\n\t\t\t<ng-template emptyTemplate let-isLoading let-rows=\"rows\" let-initialized=\"initialized\">\r\n\t\t\t\t<div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n\t\t\t\t\t<mat-spinner></mat-spinner>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div class=\"flex items-center justify-center h-5/6\" *ngIf=\"!isLoading && !rows.length\">\r\n\t\t\t\t\t<app-no-data-found class=\"mt-4\" [message]=\"emptyMessage\"></app-no-data-found>\r\n\t\t\t\t</div>\r\n\t\t\t</ng-template>\r\n\t\t</cts-dynamic-table>\r\n\r\n\t\t<cts-table\r\n\t\t\t*ngIf=\"tableConfig.isDataProvided\"\r\n\t\t\t[rows]=\"rows\"\r\n\t\t\t[totalRecords]=\"totalRecords\"\r\n\t\t\t[columns]=\"displayedColumns$ | async\"\r\n\t\t\t[responsiveColumns]=\"displayedColumns$ | async\"\r\n\t\t\t[rowCursor]=\"true\"\r\n\t\t\t[fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n\t\t\t[entityType]=\"'all'\"\r\n\t\t\t[prefix]=\"tableConfig.prefix || ''\"\r\n\t\t\t[tableMode]=\"viewMode$ | async\"\r\n\t\t\t[componentName]=\"tableMode?.['componentName']\"\r\n\t\t\t[multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n\t\t\t[customFirstRow]=\"tableConfig?.customFirstRow\"\r\n\t\t\t[tableActions]=\"tableConfig.tableActions\"\r\n\t\t\t[showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n\t\t\t[defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n\t\t\t[format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n\t\t\t[highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n\t\t\t(onRowSelected)=\"onRowSelected.emit($event)\"\r\n\t\t\t(onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n\t\t\t(onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n\t\t\t(actionOnRow)=\"actionOnRow.emit($event)\"\r\n\t\t\t(onSorting)=\"onSortChanged($event)\"\r\n\t\t></cts-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - calc(var(--ndf-tbl-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:-moz-fit-content;height:fit-content}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:center;background:var(--loading-data-background, rgba(255, 255, 255, .2));-webkit-backdrop-filter:var(--loading-data-backdrop-filter, blur(3px));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { type: SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { type: TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { type: ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { type: TableComponent, selector: "cts-table", inputs: ["rows", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: EmptyTemplateDirective, selector: "[emptyTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe } });
22699
22762
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfTableComponent, decorators: [{
22700
22763
  type: i0.Component,
22701
22764
  args: [{
@@ -23147,7 +23210,7 @@
23147
23210
  return DynamicSearchComponent;
23148
23211
  }());
23149
23212
  DynamicSearchComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicSearchComponent, deps: [{ token: i1__namespace$5.ActivatedRoute }, { token: i1__namespace$5.Router }, { token: EvaluatorsService }, { token: NuxeoService }, { token: GlobalAdminService }, { token: 'environment' }, { token: i5__namespace$5.BreakpointObserver }], target: i0__namespace.ɵɵFactoryTarget.Component });
23150
- DynamicSearchComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicSearchComponent, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", suggesterApi: "suggesterApi", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: ["dynamicTable"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{'bg-accent-200': theme === 'dgda','bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'}\"\r\n [@collapse]=\"!openFilter\">\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div class=\"row wrapper\">\r\n <div class=\"wrapper-overlay\" *ngIf=\"loading\"></div>\r\n \r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete1\" [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete1=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{'no_result_found' | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete2\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \" [disableRipple]=\"true\" #matAutocomplete2=\"matAutocomplete\">\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{'no_result_found' | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate: { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <div>\r\n <form class=\"d-flex justify-between\" [formGroup]=\"searchForm\" (ngSubmit)=\"submitForm()\">\r\n <div *ngIf=\"useToggleFilters && !customResponsiveStyle\"></div>\r\n <div *ngIf=\"customResponsiveStyle\">\r\n <div class=\"search-form custom-responsive-search\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </div>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{no_result_found | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"useToggleFilters\">\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.PERSONAL_FILES'\"\r\n (onToggle)=\"submitForm()\" formControlName=\"personalFiles\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.DEP_FILES'\"\r\n formControlName=\"depFiles\" (onToggle)=\"submitForm()\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.WORKSPACE_FILES'\"\r\n formControlName=\"workSpaceFiles\" (onToggle)=\"submitForm()\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <cts-dynamic-table #dynamicTable [pageSize]=\"pageSize\" [columns]=\"columns\" [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\" [quickFilter]=\"filter\" [entityType]=\"entityType\" [fields]=\"fields\"\r\n [queryParam]=\"queryParams\" [headers]=\"headers\" [prefix]=\"prefix\" [sortingBy]=\"sortingBy\" [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\" (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.auto-complete-iner-wrapper{max-height:350px;border-radius:4px}.auto-complete-iner-wrapper .no-text{font-size:14px;color:#465573}.auto-complete-iner-wrapper .mat-option{text-align:start;color:#465573;font-weight:bold;font-size:14px}.auto-complete-iner-wrapper .mat-option .mat-option-text{text-align:flex-start}.search-form{display:flex;color:#6a768e;width:100%}.search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.small-font{font-size:14px}.custom-responsive-search{width:300px!important;margin:0 35px}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.wrapper .wrapper-overlay{position:absolute;top:0;bottom:0;right:0;left:0;z-index:9}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0px;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], components: [{ type: DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { type: i5__namespace$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i2__namespace$3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }, { type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5__namespace$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i2__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1__namespace.TranslatePipe }, animations: [
23213
+ DynamicSearchComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicSearchComponent, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", suggesterApi: "suggesterApi", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: ["dynamicTable"], descendants: true }], usesOnChanges: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{'bg-accent-200': theme === 'dgda','bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'}\"\r\n [@collapse]=\"!openFilter\">\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div class=\"row wrapper\">\r\n <div class=\"wrapper-overlay\" *ngIf=\"loading\"></div>\r\n \r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete1\" [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete1=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{'no_result_found' | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form [formGroup]=\"searchForm\" class=\"search-form\" (ngSubmit)=\"submitForm()\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete2\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \" [disableRipple]=\"true\" #matAutocomplete2=\"matAutocomplete\">\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{'no_result_found' | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter [entityType]=\"entityType\" [filters]=\"aggregation.buckets\" [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\" [title]=\"aggregation.field\" [prefix]=\"'search'\" [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \" [componentType]=\"aggregation.componentType ? aggregation.componentType : 'defult'\"\r\n [customPageProvider]=\"aggregation.customPageProvider ? aggregation.customPageProvider : ''\"\r\n [config]=\"aggregation.config ? aggregation.config : {}\" (onFilterSelected)=\"FilterSelected($event)\">\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate: { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <div>\r\n <form class=\"d-flex justify-between\" [formGroup]=\"searchForm\" (ngSubmit)=\"submitForm()\">\r\n <div *ngIf=\"useToggleFilters && !customResponsiveStyle\"></div>\r\n <div *ngIf=\"customResponsiveStyle\">\r\n <div class=\"search-form custom-responsive-search\">\r\n <input class=\"search-input\" type=\"text\" formControlName=\"text\" [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"'search.search' | translate\" />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </div>\r\n <mat-autocomplete\r\n class=\"\r\n auto-complete-iner-wrapper\r\n auto-complete-wrapper\r\n \"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{no_result_found | translate}}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span\r\n class=\"option-iner-text\"\r\n >{{ resultSet.label }}</span\r\n >\r\n </mat-option >\r\n </ng-container>\r\n </mat-autocomplete>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"useToggleFilters\">\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.PERSONAL_FILES'\"\r\n (onToggle)=\"submitForm()\" formControlName=\"personalFiles\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.DEP_FILES'\"\r\n formControlName=\"depFiles\" (onToggle)=\"submitForm()\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem class=\"mx-2 small-font\" [label]=\"'search.WORKSPACE_FILES'\"\r\n formControlName=\"workSpaceFiles\" (onToggle)=\"submitForm()\">\r\n </cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <cts-dynamic-table #dynamicTable [pageSize]=\"pageSize\" [columns]=\"columns\" [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\" [quickFilter]=\"filter\" [entityType]=\"entityType\" [fields]=\"fields\"\r\n [queryParam]=\"queryParams\" [headers]=\"headers\" [prefix]=\"prefix\" [sortingBy]=\"sortingBy\" [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\" (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.auto-complete-iner-wrapper{max-height:350px;border-radius:4px}.auto-complete-iner-wrapper .no-text{font-size:14px;color:#465573}.auto-complete-iner-wrapper .mat-option{text-align:start;color:#465573;font-weight:bold;font-size:14px}.auto-complete-iner-wrapper .mat-option .mat-option-text{text-align:flex-start}.search-form{display:flex;color:#6a768e;width:100%}.search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.small-font{font-size:14px}.custom-responsive-search{width:300px!important;margin:0 35px}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.wrapper .wrapper-overlay{position:absolute;top:0;bottom:0;right:0;left:0;z-index:9}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0px;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], components: [{ type: DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { type: i5__namespace$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i2__namespace$3.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: CardComponent, selector: "app-card", inputs: ["noBody", "dark"] }, { type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }, { type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "isLegacyMode", "showTotalRecord", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2__namespace$4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2__namespace$4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2__namespace$4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2__namespace$4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5__namespace$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i2__namespace$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2__namespace$4.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }], pipes: { "translate": i1__namespace.TranslatePipe }, animations: [
23151
23214
  animations.trigger('collapse', [
23152
23215
  animations.state('false', animations.style({ height: animations.AUTO_STYLE, visibility: animations.AUTO_STYLE })),
23153
23216
  animations.state('true', animations.style({ height: '0', visibility: 'hidden' })),
@@ -42982,7 +43045,7 @@
42982
43045
  return NdfTabsComponent;
42983
43046
  }(BaseComponent));
42984
43047
  NdfTabsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfTabsComponent, deps: [{ token: i0__namespace.Injector }, { token: EvaluatorsService }], target: i0__namespace.ɵɵFactoryTarget.Component });
42985
- NdfTabsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTabsComponent, selector: "ndf-tabs", inputs: { tabs: "tabs", showHeader: "showHeader", isAllowdTabFn: "isAllowdTabFn" }, outputs: { activeTabEmitter: "activeTabEmitter" }, host: { classAttribute: "w-full h-full" }, queries: [{ propertyName: "tabHeader", first: true, predicate: ["tabHeader"], descendants: true, read: i0.TemplateRef }, { propertyName: "headerOptions", first: true, predicate: ["headerOptions"], descendants: true, read: i0.TemplateRef }, { propertyName: "tabBody", first: true, predicate: ["tabBody"], descendants: true, read: i0.TemplateRef }], usesInheritance: true, ngImport: i0__namespace, template: "<div class=\"flex flex-col ndf-tabs-wrapper rounded-md overflow-auto px-0.5\" *ngIf=\"!checkingPermission\">\r\n\t<div\r\n\t\tclass=\"tabs-header flex justify-between items-center w-full border-b\"\r\n\t\t[@visibilitySlide]=\"showHeader\"\r\n\t\t[class.overflow-hidden]=\"!showHeader\"\r\n\t>\r\n\t\t<div class=\"tabs-wrapper flex justify-start items-center gap-2.5 self-stretch\">\r\n\t\t\t<ng-container *ngFor=\"let tab of tabs\">\r\n\t\t\t\t<ng-container *ngIf=\"isEnabledTab(tab) && isAllowdTabFn(tab)\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'selected-tab': activeTab === tab.id\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\tclass=\"tab-item flex p-4 justify-center items-center gap-2.5 rounded-t-md font-medium text-xl cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"activateTab(tab)\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tabHeader || defaultHeader\"\r\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: tab }\"\r\n\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-template\r\n\t\t\t[ngTemplateOutlet]=\"headerOptions\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t\t></ng-template>\r\n\t</div>\r\n\t<ng-template\r\n\t\t[ngTemplateOutlet]=\"tabBody || defaultBody\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t></ng-template>\r\n</div>\r\n\r\n<ng-template #defaultHeader let-tab>{{ tab.label | translate }}</ng-template>\r\n<ng-template #defaultBody>Default Body</ng-template>\r\n", styles: [":host{display:block}.ndf-tabs-wrapper{background-color:var(--ndf-tabs-body, #fff);border-radius:8px 8px 0 0;overflow:hidden!important;height:calc(100vh - 100px)}.ndf-tabs-wrapper .tabs-header{background-color:var(--ndf-tabs-header, #fff)}\n"], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace.TranslatePipe }, animations: [
43048
+ NdfTabsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfTabsComponent, selector: "ndf-tabs", inputs: { tabs: "tabs", showHeader: "showHeader", isAllowdTabFn: "isAllowdTabFn" }, outputs: { activeTabEmitter: "activeTabEmitter" }, host: { classAttribute: "w-full h-full" }, queries: [{ propertyName: "tabHeader", first: true, predicate: ["tabHeader"], descendants: true, read: i0.TemplateRef }, { propertyName: "headerOptions", first: true, predicate: ["headerOptions"], descendants: true, read: i0.TemplateRef }, { propertyName: "tabBody", first: true, predicate: ["tabBody"], descendants: true, read: i0.TemplateRef }], usesInheritance: true, ngImport: i0__namespace, template: "<div class=\"flex flex-col ndf-tabs-wrapper rounded-md px-0.5\" *ngIf=\"!checkingPermission\">\r\n\t<div\r\n\t\tclass=\"tabs-header flex justify-between items-center w-full border-b print:hidden\"\r\n\t\t[@visibilitySlide]=\"showHeader\"\r\n\t\t[class.overflow-hidden]=\"!showHeader\"\r\n\t>\r\n\t\t<div class=\"tabs-wrapper flex justify-start items-center gap-2.5 self-stretch\">\r\n\t\t\t<ng-container *ngFor=\"let tab of tabs\">\r\n\t\t\t\t<ng-container *ngIf=\"isEnabledTab(tab) && isAllowdTabFn(tab)\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'selected-tab': activeTab === tab.id\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\tclass=\"tab-item flex p-4 justify-center items-center gap-2.5 rounded-t-md font-medium text-xl cursor-pointer\"\r\n\t\t\t\t\t\t(click)=\"activateTab(tab)\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ng-template\r\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tabHeader || defaultHeader\"\r\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: tab }\"\r\n\t\t\t\t\t\t></ng-template>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</div>\r\n\t\t<ng-template\r\n\t\t\t[ngTemplateOutlet]=\"headerOptions\"\r\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t\t></ng-template>\r\n\t</div>\r\n\t<ng-template\r\n\t\t[ngTemplateOutlet]=\"tabBody || defaultBody\"\r\n\t\t[ngTemplateOutletContext]=\"{ $implicit: activatedTab }\"\r\n\t></ng-template>\r\n</div>\r\n\r\n<ng-template #defaultHeader let-tab>{{ tab.label | translate }}</ng-template>\r\n<ng-template #defaultBody>Default Body</ng-template>\r\n", styles: [":host{display:block}.ndf-tabs-wrapper{background-color:var(--ndf-tabs-body, #fff);border-radius:8px 8px 0 0;overflow:var(--ndf-tabs-wrapper-overflow, auto);height:calc(100vh - 100px)}.ndf-tabs-wrapper .tabs-header{background-color:var(--ndf-tabs-header, #fff)}@media print{.ndf-tabs-wrapper{--ndf-tabs-wrapper-overflow: visible}}\n"], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4__namespace$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i1__namespace.TranslatePipe }, animations: [
42986
43049
  animations.trigger('visibilitySlide', [
42987
43050
  animations.state('true', animations.style({ height: '*', visibility: '*' })),
42988
43051
  animations.state('false', animations.style({ height: '0', visibility: 'hidden' })),
@@ -45123,6 +45186,13 @@
45123
45186
  var _colors = __spreadArray(__spreadArray([], __read(((config === null || config === void 0 ? void 0 : config.colors) || []))), __read(getColors()));
45124
45187
  return Object.assign(Object.assign({}, config), { colors: _colors, chart: chart });
45125
45188
  };
45189
+ /**
45190
+ * Prepares a custom chart configuration
45191
+ * @param config
45192
+ */
45193
+ ReportConfigMapperService.prototype.prepareCustomConfig = function (config) {
45194
+ return config;
45195
+ };
45126
45196
  /**
45127
45197
  * Prepares a digit chart configuration
45128
45198
  * @param config The digit chart definition
@@ -45170,6 +45240,138 @@
45170
45240
  }]
45171
45241
  }], ctorParameters: function () { return [{ type: ChartPluginsRegistry }]; } });
45172
45242
 
45243
+ var CustomReportsRegistry = /** @class */ (function () {
45244
+ function CustomReportsRegistry(_factoryResolver) {
45245
+ this._factoryResolver = _factoryResolver;
45246
+ this._components = new Map();
45247
+ }
45248
+ /**
45249
+ * Register a component with the registry
45250
+ * @param config Component configuration
45251
+ */
45252
+ CustomReportsRegistry.prototype.registerComponent = function (config) {
45253
+ if (!config.type || !config.component) {
45254
+ throw new Error('Invalid component configuration: type and component are required');
45255
+ }
45256
+ if (this._components.has(config.type)) {
45257
+ console.warn("Component with type '" + config.type + "' is already registered. Overwriting...");
45258
+ }
45259
+ this._components.set(config.type, config);
45260
+ };
45261
+ /**
45262
+ * Register multiple components at once
45263
+ * @param configs Array of component configurations
45264
+ */
45265
+ CustomReportsRegistry.prototype.registerComponents = function (configs) {
45266
+ var _this = this;
45267
+ configs.forEach(function (config) { return _this.registerComponent(config); });
45268
+ };
45269
+ /**
45270
+ * Render a component by type into a ViewContainerRef
45271
+ * @param type Component type identifier
45272
+ * @param vcr ViewContainerRef to render into
45273
+ */
45274
+ CustomReportsRegistry.prototype.renderComponent = function (type, vcr) {
45275
+ if (!this._components.has(type)) {
45276
+ throw new Error("Unknown component with type: '" + type + "'");
45277
+ }
45278
+ var config = this._components.get(type);
45279
+ return this.loadComponent(config, vcr);
45280
+ };
45281
+ /**
45282
+ * Load a component into a ViewContainerRef
45283
+ * @param config Component configuration
45284
+ * @param vcr ViewContainerRef to render into
45285
+ */
45286
+ CustomReportsRegistry.prototype.loadComponent = function (config, vcr) {
45287
+ var componentFactory = this._factoryResolver.resolveComponentFactory(config.component);
45288
+ return vcr.createComponent(componentFactory);
45289
+ };
45290
+ /**
45291
+ * Check if a component is registered
45292
+ * @param type Component type identifier
45293
+ */
45294
+ CustomReportsRegistry.prototype.hasComponent = function (type) {
45295
+ return this._components.has(type);
45296
+ };
45297
+ /**
45298
+ * Get component configuration by type
45299
+ * @param type Component type identifier
45300
+ */
45301
+ CustomReportsRegistry.prototype.getComponent = function (type) {
45302
+ return this._components.get(type);
45303
+ };
45304
+ /**
45305
+ * Get all registered component types
45306
+ */
45307
+ CustomReportsRegistry.prototype.getComponentTypes = function () {
45308
+ return Array.from(this._components.keys());
45309
+ };
45310
+ /**
45311
+ * Get all registered components
45312
+ */
45313
+ CustomReportsRegistry.prototype.getAllComponents = function () {
45314
+ return Array.from(this._components.values());
45315
+ };
45316
+ /**
45317
+ * Get components by category
45318
+ * @param category Category to filter by
45319
+ */
45320
+ CustomReportsRegistry.prototype.getComponentsByCategory = function (category) {
45321
+ return Array.from(this._components.values()).filter(function (config) { return config.category === category; });
45322
+ };
45323
+ /**
45324
+ * Get all unique categories
45325
+ */
45326
+ CustomReportsRegistry.prototype.getCategories = function () {
45327
+ var categories = Array.from(this._components.values())
45328
+ .map(function (config) { return config.category; })
45329
+ .filter(function (category) { return !!category; });
45330
+ return __spreadArray([], __read(new Set(categories)));
45331
+ };
45332
+ /**
45333
+ * Unregister a component
45334
+ * @param type Component type identifier
45335
+ */
45336
+ CustomReportsRegistry.prototype.unregisterComponent = function (type) {
45337
+ return this._components.delete(type);
45338
+ };
45339
+ /**
45340
+ * Clear all registered components
45341
+ */
45342
+ CustomReportsRegistry.prototype.clearComponents = function () {
45343
+ this._components.clear();
45344
+ };
45345
+ /**
45346
+ * Get the total number of registered components
45347
+ */
45348
+ CustomReportsRegistry.prototype.getComponentCount = function () {
45349
+ return this._components.size;
45350
+ };
45351
+ /**
45352
+ * Search components by name or type
45353
+ * @param searchTerm Search term
45354
+ */
45355
+ CustomReportsRegistry.prototype.searchComponents = function (searchTerm) {
45356
+ var term = searchTerm.toLowerCase();
45357
+ return Array.from(this._components.values()).filter(function (config) {
45358
+ var _a, _b;
45359
+ return config.type.toLowerCase().includes(term) ||
45360
+ ((_a = config.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(term)) ||
45361
+ ((_b = config.description) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(term));
45362
+ });
45363
+ };
45364
+ return CustomReportsRegistry;
45365
+ }());
45366
+ CustomReportsRegistry.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomReportsRegistry, deps: [{ token: i0__namespace.ComponentFactoryResolver }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
45367
+ CustomReportsRegistry.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomReportsRegistry, providedIn: 'root' });
45368
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomReportsRegistry, decorators: [{
45369
+ type: i0.Injectable,
45370
+ args: [{
45371
+ providedIn: 'root'
45372
+ }]
45373
+ }], ctorParameters: function () { return [{ type: i0__namespace.ComponentFactoryResolver }]; } });
45374
+
45173
45375
  var DigitChartComponent = /** @class */ (function (_super) {
45174
45376
  __extends(DigitChartComponent, _super);
45175
45377
  function DigitChartComponent() {
@@ -45274,7 +45476,7 @@
45274
45476
  return GraphChartComponent;
45275
45477
  }(BaseChart));
45276
45478
  GraphChartComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphChartComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
45277
- GraphChartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphChartComponent, selector: "app-graph-chart", usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"report$ | async as report\">\r\n\t<div class=\"chart-legends\"></div>\r\n\t<app-chart\r\n\t\t[type]=\"report.config.type\"\r\n\t\t[data]=\"report.data\"\r\n\t\t[options]=\"report.config?.options\"\r\n\t\t[plugins]=\"report.config?.plugins\"\r\n\t\t[responsive]=\"true\"\r\n\t\t(onReady)=\"chartReady($event)\"\r\n\t\tclass=\"app-chart\"\r\n\t></app-chart>\r\n</ng-container>\r\n", styles: [":host{--chart-height: var(--graph-chart-height, 300px);display:var(--graph-chart-display, flex);flex-direction:var(--graph-chart-direction, row);justify-content:var(--graph-chart-justify-content, between);align-items:var(--graph-chart-align-items, center);grid-gap:var(--graph-chart-gap, .5rem);gap:var(--graph-chart-gap, .5rem)}.app-chart{min-width:var(--app-chart-min-width, 0);min-height:var(--app-chart-min-height, 0);height:var(--app-chart-height, auto);width:var(--app-chart-width, 100%);padding:var(--app-chart-padding, 1rem);display:flex;align-items:center;justify-content:center;align-self:stretch}@media print{.app-chart ::ng-deep canvas{max-width:100%!important}}::ng-deep .chart-legends{max-height:var(--chart-legends-height, var(--chart-height));min-width:var(--chart-legends-width, 0);overflow:auto;font-size:1rem;text-align:start;display:flex;flex-direction:column;grid-gap:.2rem;gap:.2rem;padding-block:.5rem}::ng-deep .chart-legends:empty{--chart-legends-width: 0;display:none}::ng-deep .chart-legends.has-items{--chart-legends-width: 200px}::ng-deep .chart-legends__legend{display:flex;align-items:baseline;-webkit-user-select:none;user-select:none;cursor:default}::ng-deep .chart-legends__box{width:var(--chart-legends-box-width, 8px);height:var(--chart-legends-box-height, 8px);border-radius:var(--chart-legends-radius, 50%);margin-inline:var(--chart-legends-box-inline, 0 .5rem);display:inline-block;flex-shrink:0}\n"], components: [{ type: ChartComponent, selector: "app-chart", inputs: ["data", "options"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4__namespace$1.AsyncPipe } });
45479
+ GraphChartComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphChartComponent, selector: "app-graph-chart", usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"report$ | async as report\">\r\n\t<div class=\"chart-legends\"></div>\r\n\t<app-chart\r\n\t\t[type]=\"report.config.type\"\r\n\t\t[data]=\"report.data\"\r\n\t\t[options]=\"report.config?.options\"\r\n\t\t[plugins]=\"report.config?.plugins\"\r\n\t\t[responsive]=\"true\"\r\n\t\t(onReady)=\"chartReady($event)\"\r\n\t\tclass=\"app-chart\"\r\n\t></app-chart>\r\n</ng-container>\r\n", styles: [":host{--chart-height: var(--graph-chart-height, 330px);display:var(--graph-chart-display, flex);flex-direction:var(--graph-chart-direction, row);justify-content:var(--graph-chart-justify-content, between);align-items:var(--graph-chart-align-items, center);grid-gap:var(--graph-chart-gap, .5rem);gap:var(--graph-chart-gap, .5rem)}.app-chart{min-width:var(--app-chart-min-width, 0);min-height:var(--app-chart-min-height, 0);height:var(--app-chart-height, auto);width:var(--app-chart-width, 100%);padding:var(--app-chart-padding, 1rem);display:flex;align-items:center;justify-content:center;align-self:stretch}@media print{.app-chart ::ng-deep canvas{max-width:100%!important}}::ng-deep .chart-legends{max-height:var(--chart-legends-height, var(--chart-height));min-width:var(--chart-legends-width, 0);overflow:auto;font-size:1rem;text-align:start;display:flex;flex-direction:column;grid-gap:.2rem;gap:.2rem;padding-block:.5rem}::ng-deep .chart-legends:empty{--chart-legends-width: 0;display:none}::ng-deep .chart-legends.has-items{--chart-legends-width: 200px}::ng-deep .chart-legends__legend{display:flex;align-items:baseline;-webkit-user-select:none;user-select:none;cursor:default}::ng-deep .chart-legends__box{width:var(--chart-legends-box-width, 8px);height:var(--chart-legends-box-height, 8px);border-radius:var(--chart-legends-radius, 50%);margin-inline:var(--chart-legends-box-inline, 0 .5rem);display:inline-block;flex-shrink:0}\n"], components: [{ type: ChartComponent, selector: "app-chart", inputs: ["data", "options"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4__namespace$1.AsyncPipe } });
45278
45480
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphChartComponent, decorators: [{
45279
45481
  type: i0.Component,
45280
45482
  args: [{
@@ -45295,6 +45497,7 @@
45295
45497
  graph: 'graph',
45296
45498
  digit: 'digit',
45297
45499
  dynamicLine: 'dynamicLine',
45500
+ custom: 'custom',
45298
45501
  };
45299
45502
 
45300
45503
  var TIME_GROUPS = {
@@ -45358,6 +45561,7 @@
45358
45561
  _a[REPORT_MODE.graph] = this._configMapperService.prepareGraphConfig,
45359
45562
  _a[REPORT_MODE.digit] = this._configMapperService.prepareDigitConfig,
45360
45563
  _a[REPORT_MODE.dynamicLine] = this._configMapperService.prepareGraphLineConfig,
45564
+ _a[REPORT_MODE.custom] = this._configMapperService.prepareCustomConfig,
45361
45565
  _a);
45362
45566
  return mappers[obj.mode].call(this._configMapperService, obj);
45363
45567
  };
@@ -45505,7 +45709,7 @@
45505
45709
  return DigitReportComponent;
45506
45710
  }(BaseReport));
45507
45711
  DigitReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DigitReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
45508
- DigitReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DigitReportComponent, selector: "app-digit-report", host: { classAttribute: "digit-report flex flex-col flex-grow" }, usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t{{ config.label | translate }}\r\n\t</chart-panel-header>\r\n\r\n\t<app-digit-chart class=\"ndf-report__content digit-chart\" [config]=\"config\" [data]=\"data\"></app-digit-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}.digit-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: DigitChartComponent, selector: "app-digit-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
45712
+ DigitReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DigitReportComponent, selector: "app-digit-report", host: { classAttribute: "digit-report flex flex-col flex-grow" }, usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t{{ config.label | translate }}\r\n\t</chart-panel-header>\r\n\r\n\t<app-digit-chart class=\"ndf-report__content digit-chart\" [config]=\"config\" [data]=\"data\"></app-digit-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}.digit-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: DigitChartComponent, selector: "app-digit-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
45509
45713
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DigitReportComponent, decorators: [{
45510
45714
  type: i0.Component,
45511
45715
  args: [{
@@ -45829,7 +46033,7 @@
45829
46033
  return GraphReportComponent;
45830
46034
  }(BaseGraphReport));
45831
46035
  GraphReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
45832
- GraphReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphReportComponent, selector: "app-graph-report", host: { classAttribute: "graph-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button\"\r\n\t\t\t(click)=\"openGraphDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\r\n\t\t<chart-type-selector\r\n [config]=\"config?.typeConfig\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t[type]=\"chartType$ | async\"\r\n\t\t\t(typeChange)=\"changeChartType($event)\"\r\n\t\t></chart-type-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}:host{min-width:0;max-width:100%}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }, { type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: ["direction", "config", "type"], outputs: ["typeChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
46036
+ GraphReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: GraphReportComponent, selector: "app-graph-report", host: { classAttribute: "graph-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"config$ | async as config\" class=\"ndf-report chart-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openGraphDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content graph-chart\"\r\n\t\t[config]=\"config\"\r\n\t\t[data]=\"data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer flex-wrap\">\r\n\t\t<app-report-actions\r\n\t\t\t[config]=\"config\"\r\n\t\t\t(print)=\"printChart()\"\r\n\t\t\t(navigate)=\"navigate()\"\r\n\t\t\t(open)=\"onOpen.emit(null)\"\r\n\t\t></app-report-actions>\r\n\r\n\t\t<chart-type-selector\r\n [config]=\"config?.typeConfig\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t[type]=\"chartType$ | async\"\r\n\t\t\t(typeChange)=\"changeChartType($event)\"\r\n\t\t></chart-type-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: ReportActionsComponent, selector: "app-report-actions", inputs: ["config"], outputs: ["navigate", "open", "print"] }, { type: ChartTypeSelectorComponent, selector: "chart-type-selector", inputs: ["direction", "config", "type"], outputs: ["typeChange"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe } });
45833
46037
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: GraphReportComponent, decorators: [{
45834
46038
  type: i0.Component,
45835
46039
  args: [{
@@ -45890,7 +46094,7 @@
45890
46094
  return DynamicTimelineReportComponent;
45891
46095
  }(BaseGraphReport));
45892
46096
  DynamicTimelineReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTimelineReportComponent, deps: [{ token: i0__namespace.Injector }], target: i0__namespace.ɵɵFactoryTarget.Component });
45893
- DynamicTimelineReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report", host: { classAttribute: "timeline-report flex flex-col flex-grow" }, providers: [DynamicTimelineReportService], viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"report$ | async as report; else noData\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button\"\r\n\t\t\t(click)=\"openTimelineDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t[config]=\"report.config\"\r\n\t\t[criteria]=\"filterCriteria$ | async\"\r\n\t\t[data]=\"report.data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer\">\r\n\t\t<div class=\"chart-actions flex items-center rounded-lg gap-2 flex-wrap p-1\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"print-button chart-actions__item\"\r\n\t\t\t\t(click)=\"printChart()\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.print' | translate\"\r\n\t\t\t\t*ngIf=\"config?.print\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>print</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"navigate()\"\r\n\t\t\t\t*ngIf=\"config?.navigate?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.enabled' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>send</mat-icon>\r\n\t\t\t</button>\r\n\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"openDetails()\"\r\n\t\t\t\t*ngIf=\"config?.details?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.details' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>info</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<time-group-selector\r\n\t\t\t*ngIf=\"config?.group?.active ?? true\"\r\n\t\t\t[group]=\"selectedGroup$ | async\"\r\n\t\t\t(groupChange)=\"changeGroup($event)\"\r\n\t\t></time-group-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n\r\n<ng-template #noData>\r\n\t<chart-panel class=\"ndf-report\">\r\n\t\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</chart-panel-header>\r\n\t\t<app-skeleton\r\n\t\t\tanimation=\"opacity\"\r\n\t\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t\theight=\"220px\"\r\n\t\t></app-skeleton>\r\n\t</chart-panel>\r\n</ng-template>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}:host{min-width:0;max-width:100%}.timeline-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: TimeGroupSelectorComponent, selector: "time-group-selector", inputs: ["direction", "group"], outputs: ["groupChange"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
46097
+ DynamicTimelineReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report", host: { classAttribute: "timeline-report flex flex-col flex-grow" }, providers: [DynamicTimelineReportService], viewQueries: [{ propertyName: "graphChartComponent", first: true, predicate: ["graphChart"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<chart-panel *ngIf=\"report$ | async as report; else noData\" class=\"ndf-report\">\r\n\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t<span>\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</span>\r\n\r\n\t\t<button\r\n\t\t\t*ngIf=\"config?.dialog?.active\"\r\n\t\t\tclass=\"dialog-button print:hidden\"\r\n\t\t\t(click)=\"openTimelineDialog()\"\r\n\t\t\t[matTooltip]=\"'REPORTS.fullscreen' | translate\"\r\n\t\t>\r\n\t\t\t<mat-icon>fullscreen</mat-icon>\r\n\t\t</button>\r\n\t</chart-panel-header>\r\n\r\n\t<app-graph-chart\r\n\t\t#graphChart\r\n\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t[config]=\"report.config\"\r\n\t\t[criteria]=\"filterCriteria$ | async\"\r\n\t\t[data]=\"report.data\"\r\n\t></app-graph-chart>\r\n\r\n\t<chart-panel-footer class=\"ndf-report__footer \">\r\n\t\t<div class=\"chart-actions flex items-center rounded-lg gap-2 flex-wrap p-1\">\r\n\t\t\t<button\r\n\t\t\t\tclass=\"print-button chart-actions__item\"\r\n\t\t\t\t(click)=\"printChart()\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.print' | translate\"\r\n\t\t\t\t*ngIf=\"config?.print\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>print</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"navigate()\"\r\n\t\t\t\t*ngIf=\"config?.navigate?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.enabled' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>send</mat-icon>\r\n\t\t\t</button>\r\n\r\n\t\t\t<button\r\n\t\t\t\tclass=\"navigate-button chart-actions__item\"\r\n\t\t\t\t(click)=\"openDetails()\"\r\n\t\t\t\t*ngIf=\"config?.details?.enabled\"\r\n\t\t\t\t[matTooltip]=\"'REPORTS.details' | translate\"\r\n\t\t\t>\r\n\t\t\t\t<mat-icon>info</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<time-group-selector\r\n\t\t\t*ngIf=\"config?.group?.active ?? true\"\r\n\t\t\t[group]=\"selectedGroup$ | async\"\r\n\t\t\t(groupChange)=\"changeGroup($event)\"\r\n\t\t></time-group-selector>\r\n\t</chart-panel-footer>\r\n</chart-panel>\r\n\r\n<ng-template #noData>\r\n\t<chart-panel class=\"ndf-report\">\r\n\t\t<chart-panel-header class=\"ndf-report__header mb-3\">\r\n\t\t\t{{ config.label | translate }}\r\n\t\t</chart-panel-header>\r\n\t\t<app-skeleton\r\n\t\t\tanimation=\"opacity\"\r\n\t\t\tclass=\"ndf-report__content ndf-report__content timeline-chart\"\r\n\t\t\theight=\"220px\"\r\n\t\t></app-skeleton>\r\n\t</chart-panel>\r\n</ng-template>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}:host{min-width:0;max-width:100%}.timeline-chart{display:var(--ndf-report-display, flex);flex-direction:var(--ndf-report-direction, column);justify-content:var(--ndf-report-justify-content, center);align-items:var(--ndf-report-align-items, center)}\n"], components: [{ type: ChartPanel, selector: "chart-panel" }, { type: ChartPanelHeaderComponent, selector: "chart-panel-header" }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: GraphChartComponent, selector: "app-graph-chart" }, { type: ChartPanelFooterComponent, selector: "chart-panel-footer" }, { type: TimeGroupSelectorComponent, selector: "time-group-selector", inputs: ["direction", "group"], outputs: ["groupChange"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7__namespace.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
45894
46098
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: DynamicTimelineReportComponent, decorators: [{
45895
46099
  type: i0.Component,
45896
46100
  args: [{
@@ -45908,8 +46112,104 @@
45908
46112
  args: ['graphChart']
45909
46113
  }] } });
45910
46114
 
46115
+ var BaseCustomReport = /** @class */ (function (_super) {
46116
+ __extends(BaseCustomReport, _super);
46117
+ function BaseCustomReport() {
46118
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
46119
+ _this.direction = 'rtl';
46120
+ _this._criteriaSub = new rxjs.ReplaySubject(null);
46121
+ _this.criteria$ = _this._criteriaSub.asObservable();
46122
+ _this._configSub = new rxjs.BehaviorSubject(null);
46123
+ _this.config$ = _this._configSub.asObservable();
46124
+ return _this;
46125
+ }
46126
+ Object.defineProperty(BaseCustomReport.prototype, "criteria", {
46127
+ set: function (value) {
46128
+ this._criteria = ___default["default"].cloneDeep(value);
46129
+ this._criteriaSub.next(this._criteria);
46130
+ },
46131
+ enumerable: false,
46132
+ configurable: true
46133
+ });
46134
+ Object.defineProperty(BaseCustomReport.prototype, "config", {
46135
+ get: function () {
46136
+ return this._configSub.getValue();
46137
+ },
46138
+ set: function (obj) {
46139
+ if (obj) {
46140
+ this._configSub.next(obj);
46141
+ }
46142
+ },
46143
+ enumerable: false,
46144
+ configurable: true
46145
+ });
46146
+ return BaseCustomReport;
46147
+ }(DestroySubject));
46148
+ BaseCustomReport.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseCustomReport, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
46149
+ BaseCustomReport.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseCustomReport, inputs: { direction: "direction", data: "data", criteria: "criteria", config: "config" }, usesInheritance: true, ngImport: i0__namespace });
46150
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: BaseCustomReport, decorators: [{
46151
+ type: i0.Directive
46152
+ }], propDecorators: { direction: [{
46153
+ type: i0.Input
46154
+ }], data: [{
46155
+ type: i0.Input
46156
+ }], criteria: [{
46157
+ type: i0.Input
46158
+ }], config: [{
46159
+ type: i0.Input
46160
+ }] } });
46161
+
46162
+ var CustomReportComponent = /** @class */ (function (_super) {
46163
+ __extends(CustomReportComponent, _super);
46164
+ function CustomReportComponent() {
46165
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
46166
+ _this._registeredComponents = _this.injector.get(CustomReportsRegistry);
46167
+ return _this;
46168
+ }
46169
+ CustomReportComponent.prototype.ngOnInit = function () {
46170
+ /* const componentType = this._registeredComponents.getComponent(this.reportDefinition.type);
46171
+ if (componentType) {
46172
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
46173
+ this._prepareValueAccessor();
46174
+ this._prepareComponent(componentType);
46175
+ }*/
46176
+ };
46177
+ CustomReportComponent.prototype.ngOnChanges = function (changes) {
46178
+ var _this = this;
46179
+ if (!this._componentRef) {
46180
+ return;
46181
+ }
46182
+ Object.keys(changes).forEach(function (key) {
46183
+ _this._componentRef.instance[key] = changes[key].currentValue;
46184
+ });
46185
+ this._componentRef.changeDetectorRef.markForCheck();
46186
+ };
46187
+ CustomReportComponent.prototype.ngOnDestroy = function () {
46188
+ if (this._componentRef) {
46189
+ this._componentRef.destroy();
46190
+ }
46191
+ };
46192
+ return CustomReportComponent;
46193
+ }(BaseReport));
46194
+ CustomReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
46195
+ CustomReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CustomReportComponent, selector: "app-custom-report", host: { classAttribute: "custom-report flex flex-col flex-grow" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: i0.ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, template: "\r\n<ng-container #dynamicContainer></ng-container>\r\n", styles: [""] });
46196
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: CustomReportComponent, decorators: [{
46197
+ type: i0.Component,
46198
+ args: [{
46199
+ selector: 'app-custom-report',
46200
+ templateUrl: './custom-report.component.html',
46201
+ styleUrls: ['./custom-report.component.scss'],
46202
+ host: {
46203
+ class: 'custom-report flex flex-col flex-grow'
46204
+ }
46205
+ }]
46206
+ }], propDecorators: { container: [{
46207
+ type: i0.ViewChild,
46208
+ args: ['dynamicContainer', { read: i0.ViewContainerRef, static: true }]
46209
+ }] } });
46210
+
45911
46211
  function mapToNdfTableConfig(report, details) {
45912
- var _a, _b, _c, _d;
46212
+ var _a, _b, _c, _d, _e;
45913
46213
  var _request = report.request;
45914
46214
  var _detailsConfig = ___default["default"].merge((_a = report.reports) === null || _a === void 0 ? void 0 : _a.details, details);
45915
46215
  var customUrl = ___default["default"].merge({
@@ -45946,7 +46246,8 @@
45946
46246
  headers: _headers,
45947
46247
  queryParam: _queryParam,
45948
46248
  quickFilters: _detailsConfig.quickFilters,
45949
- sortingBy: _sortingBy
46249
+ sortingBy: _sortingBy,
46250
+ requestActions: (_e = _detailsConfig === null || _detailsConfig === void 0 ? void 0 : _detailsConfig.request) === null || _e === void 0 ? void 0 : _e.actions
45950
46251
  };
45951
46252
  return data;
45952
46253
  }
@@ -45964,7 +46265,7 @@
45964
46265
  return NdfReportComponent;
45965
46266
  }(DestroySubject));
45966
46267
  NdfReportComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportComponent, deps: null, target: i0__namespace.ɵɵFactoryTarget.Component });
45967
- NdfReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportComponent, selector: "app-ndf-report", inputs: { config: "config", direction: "direction", data: "data", criteria: "criteria" }, outputs: { onNavigate: "onNavigate", onOpen: "onOpen" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"config\">\r\n\t<ng-container [ngSwitch]=\"config.mode\">\r\n\t\t<app-graph-report\r\n\t\t\t*ngSwitchCase=\"reportModes.graph\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onNavigate)=\"onNavigate.emit($event)\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-graph-report>\r\n\t\t<app-dynamic-timeline-report\r\n\t\t\t*ngSwitchCase=\"reportModes.dynamicLine\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n (onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-dynamic-timeline-report>\r\n\t\t<app-digit-report\r\n\t\t\t*ngSwitchCase=\"reportModes.digit\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n (onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-digit-report>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}\n"], components: [{ type: GraphReportComponent, selector: "app-graph-report" }, { type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report" }, { type: DigitReportComponent, selector: "app-digit-report" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4__namespace$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
46268
+ NdfReportComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportComponent, selector: "app-ndf-report", inputs: { config: "config", direction: "direction", data: "data", criteria: "criteria" }, outputs: { onNavigate: "onNavigate", onOpen: "onOpen" }, usesInheritance: true, ngImport: i0__namespace, template: "<ng-container *ngIf=\"config\">\r\n\t<ng-container [ngSwitch]=\"config.mode\">\r\n\t\t<app-graph-report\r\n\t\t\t*ngSwitchCase=\"reportModes.graph\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n\t\t\t(onNavigate)=\"onNavigate.emit($event)\"\r\n\t\t\t(onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-graph-report>\r\n\t\t<app-dynamic-timeline-report\r\n\t\t\t*ngSwitchCase=\"reportModes.dynamicLine\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n (onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-dynamic-timeline-report>\r\n\t\t<app-digit-report\r\n\t\t\t*ngSwitchCase=\"reportModes.digit\"\r\n\t\t\t[definition]=\"config\"\r\n\t\t\t[data]=\"data\"\r\n [criteria]=\"criteria\"\r\n\t\t\t[direction]=\"direction\"\r\n (onOpen)=\"onOpen.emit($event)\"\r\n\t\t></app-digit-report>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [".ndf-report{display:flex;flex-direction:column;min-width:0;max-width:100%;flex-grow:1}.ndf-report__content{position:relative;padding-block:.5rem;flex-grow:1;min-width:0;max-width:100%}.chart-actions{border:var(--chart-actions-border, 1px solid var(--border-color))}.chart-actions__item{background:var(--chart-actions-background, transparent);color:var(--chart-actions-color, currentColor);box-shadow:var(--chart-actions-shadow, unset);width:var(--chart-actions-width, 35px);height:var(--chart-actions-height, 35px);border-radius:var(--chart-actions-border-radius, 4px);flex-grow:1;display:grid;place-items:center}.chart-actions__item .mat-icon{color:var(--main-color, currentColor)}.chart-actions__item:hover{--chart-actions-shadow: var(--chart-actions-hover-shadow, 0 0 0 1px var(--main-color))}.chart-actions__item.selected{--chart-actions-background: var(--chart-actions-active-background, var(--main-color));--chart-actions-color: var(--chart-actions-active-color, var(--main-hover))}.chart-actions__item.selected .mat-icon{color:currentColor!important}@media print{.chart-actions{display:none}}\n"], components: [{ type: GraphReportComponent, selector: "app-graph-report" }, { type: DynamicTimelineReportComponent, selector: "app-dynamic-timeline-report" }, { type: DigitReportComponent, selector: "app-digit-report" }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4__namespace$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush, encapsulation: i0__namespace.ViewEncapsulation.None });
45968
46269
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportComponent, decorators: [{
45969
46270
  type: i0.Component,
45970
46271
  args: [{
@@ -46143,6 +46444,9 @@
46143
46444
  _this._chartHelperService.resizeCharts();
46144
46445
  }, 500);
46145
46446
  };
46447
+ NdfReportsComponent.prototype.printAll = function () {
46448
+ window.print();
46449
+ };
46146
46450
  NdfReportsComponent.prototype.filterChanged = function (criteria) {
46147
46451
  if (___default["default"].isEqual(this.activeQuery, criteria)) {
46148
46452
  return;
@@ -46268,7 +46572,7 @@
46268
46572
  return NdfReportsComponent;
46269
46573
  }(DestroySubject));
46270
46574
  NdfReportsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsComponent, deps: [{ token: i1__namespace.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0__namespace.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: i1__namespace$5.Router }, { token: i0__namespace.NgZone }], target: i0__namespace.ɵɵFactoryTarget.Component });
46271
- NdfReportsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tclass=\"ndf-reports__container\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content p-4 pt-0\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[style.--col-start]=\"config.layout?.startColumn || 'auto'\"\r\n\r\n [class.wide]=\"config.layout?.width >= 6\"\r\n [attr.data-width]=\"config.layout?.width || 4\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 0);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}@media screen{.reports-grid__item{grid-row-start:var(--row-start, initial);grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--start-row, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 11mm;--rg-columns: repeat(2, 1fr)}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, animations: [slideAnimation] });
46575
+ NdfReportsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, ngImport: i0__namespace, template: "<div\r\n\t*ngIf=\"reportsData$ | async as reports\"\r\n\tclass=\"ndf-reports__container\"\r\n\t[class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n\t[dir]=\"direction\"\r\n\tndfFluidHeight\r\n>\r\n\t<div class=\"ndf-reports__panel print:hidden\" *ngIf=\"!!filtersConfig?.fields?.length\">\r\n\t\t<app-filters-panel\r\n\t\t\t[fields]=\"filtersConfig?.fields\"\r\n\t\t\t[aggregations]=\"aggregations\"\r\n\t\t\t(filterChanged)=\"filterChanged($event)\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\tclass=\"ndf-reports__filters\"\r\n\t\t></app-filters-panel>\r\n\t</div>\r\n\r\n\t<div class=\"ndf-reports__content\" (scrolled)=\"onContentScroll($event)\">\r\n\t\t<div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t</button>\r\n\t\t\t<app-editor-button\r\n\t\t\t\t*ngIf=\"jsonEditorEnabled && reportsKey\"\r\n\t\t\t\t[key]=\"reportsKey\"\r\n\t\t\t\t[type]=\"editorType\"\r\n\t\t\t></app-editor-button>\r\n\t\t\t<button mat-stroked-button *ngIf=\"config?.options?.print\" class=\"print-button\" (click)=\"printAll()\">\r\n\t\t\t\t<mat-icon> print</mat-icon>\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<mat-spinner *ngIf=\"isLoadingResult\" class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n\r\n\t\t<div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n\t\t\t<app-ndf-report\r\n\t\t\t\t*ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n\t\t\t\t[config]=\"config\"\r\n\t\t\t\t[data]=\"reports?.response\"\r\n\t\t\t\t[criteria]=\"filtersParams$ | async\"\r\n\t\t\t\t[direction]=\"direction\"\r\n\t\t\t\t[attr.data-width]=\"config?.layout?.width || 4\"\r\n\t\t\t\t[attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n\t\t\t\t[attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n\t\t\t\t[attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n\t\t\t\t[class.wide]=\"config?.layout?.width >= 6\"\r\n\t\t\t\tclass=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n\t\t\t\t(onNavigate)=\"onNavigate($event)\"\r\n\t\t\t\t(onOpen)=\"openReportDetails($event, config)\"\r\n\t\t\t></app-ndf-report>\r\n\t\t</div>\r\n\t</div>\r\n\t<div\r\n\t\tclass=\"ndf-reports__details print:hidden\"\r\n\t\t[class.opened]=\"showDetails\"\r\n\t\t[@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n\t\t(@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n\t>\r\n\t\t<app-ndf-table\r\n\t\t\t*ngIf=\"reportDetails$ | async as report\"\r\n\t\t\t[config]=\"report.config\"\r\n\t\t\t[activeQuery]=\"activeFiltersQuery$ | async\"\r\n\t\t\t[customCriteria]=\"filtersParams$ | async\"\r\n\t\t>\r\n\t\t\t<ng-template searchTableTemplate>\r\n\t\t\t\t<div class=\"ndf-reports__details__header flex gap-2\">\r\n\t\t\t\t\t<button mat-stroked-button class=\"toggle-button\" (click)=\"togglePanel()\">\r\n\t\t\t\t\t\t<mat-icon> filter_alt</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button mat-stroked-button class=\"close-button\" (click)=\"closeDetailsPanel()\">\r\n\t\t\t\t\t\t<mat-icon> close</mat-icon>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t</div>\r\n\t\t\t\t<h3>\r\n\t\t\t\t\t{{ report.label | translate }}\r\n\t\t\t\t</h3>\r\n\t\t\t</ng-template>\r\n\t\t</app-ndf-table>\r\n\t</div>\r\n</div>\r\n", styles: [":host{padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc(var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5)));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-margin: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-margin, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{background:#f5f5f5;display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 11mm;--reports-grid-margin-top: 9mm;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1__namespace$c.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"] }, { type: i2__namespace$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i3__namespace$1.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: i4__namespace$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4__namespace.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4__namespace$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4__namespace$1.AsyncPipe, "translate": i1__namespace.TranslatePipe }, animations: [slideAnimation] });
46272
46576
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsComponent, decorators: [{
46273
46577
  type: i0.Component,
46274
46578
  args: [{
@@ -46320,7 +46624,7 @@
46320
46624
  DynamicTimelineReportComponent,
46321
46625
  TimeGroupSelectorComponent,
46322
46626
  GraphDialogComponent,
46323
- TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent], imports: [i4.CommonModule,
46627
+ TimelineDialogComponent, ScrollableDivDirective, GraphChartComponent, DigitChartComponent, ReportActionsComponent, CustomReportComponent], imports: [i4.CommonModule,
46324
46628
  i1.TranslateModule,
46325
46629
  i3$2.MatMenuModule,
46326
46630
  i2$2.MatIconModule,
@@ -46365,7 +46669,7 @@
46365
46669
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NdfReportsModule, decorators: [{
46366
46670
  type: i0.NgModule,
46367
46671
  args: [{
46368
- declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent],
46672
+ declarations: [CONTAINERS, COMPONENTS, DIRECTIVES, CHARTS, ReportActionsComponent, CustomReportComponent],
46369
46673
  imports: [
46370
46674
  i4.CommonModule,
46371
46675
  i1.TranslateModule,
@@ -47658,7 +47962,7 @@
47658
47962
  {
47659
47963
  aggregation: 'RetentionInfo_activeRetentionExpireDate_agg',
47660
47964
  propertyPath: 'aggregations.RetentionInfo_activeRetentionExpireDate_agg.buckets',
47661
- transformer: 'removeTime',
47965
+ transformer: 'timeFormat',
47662
47966
  },
47663
47967
  ],
47664
47968
  chart: {
@@ -48487,7 +48791,6 @@
48487
48791
  exports.AggregationCustomComponent = AggregationCustomComponent;
48488
48792
  exports.AggregationDateListComponent = AggregationDateListComponent;
48489
48793
  exports.AggregationFieldComponent = AggregationFieldComponent;
48490
- exports.AggregationFieldModule = AggregationFieldModule;
48491
48794
  exports.AggregationGroupComponent = AggregationGroupComponent;
48492
48795
  exports.AggregationRadioComponent = AggregationRadioComponent;
48493
48796
  exports.AggregationSelectComponent = AggregationSelectComponent;
@@ -48583,6 +48886,7 @@
48583
48886
  exports.CustomFieldComponent = CustomFieldComponent;
48584
48887
  exports.CustomMomentDateAdapter = CustomMomentDateAdapter;
48585
48888
  exports.CustomPpViewerComponent = CustomPpViewerComponent;
48889
+ exports.CustomReportsRegistry = CustomReportsRegistry;
48586
48890
  exports.CustomSocketComponent = CustomSocketComponent;
48587
48891
  exports.CustomTemplateDirective = CustomTemplateDirective;
48588
48892
  exports.CustomToastrModule = CustomToastrModule;