nuxeo-development-framework 6.1.1 → 6.1.3

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 (39) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +893 -674
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.js +1 -1
  4. package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +76 -23
  5. package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +1 -1
  6. package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
  7. package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +23 -12
  8. package/esm2015/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.js +2 -2
  9. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +32 -16
  10. package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
  11. package/esm2015/lib/components/reports/ndf-reports/models/dynamic-line.js +1 -1
  12. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/pipes/check-condition.pipe.js +4 -4
  14. package/esm2015/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.js +26 -31
  15. package/esm2015/lib/components/reports/ndf-reports/services/ndf-reports.service.js +16 -21
  16. package/esm2015/lib/components/reports/ndf-reports/services/reports-hooks.service.js +34 -1
  17. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +116 -102
  18. package/esm2015/lib/components/tables/dynamic-table/public-api.js +3 -2
  19. package/esm2015/lib/components/tables/dynamic-table/services/table-hooks.service.js +56 -0
  20. package/esm2015/lib/shared/services/base/base.service.js +9 -10
  21. package/fesm2015/nuxeo-development-framework.js +613 -446
  22. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  23. package/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.d.ts +7 -0
  24. package/lib/components/ndf-filters/models/field-options/date-list-options.d.ts +2 -1
  25. package/lib/components/ndf-filters/models/filter-option.model.d.ts +6 -0
  26. package/lib/components/reports/ndf-reports/components/dynamic-timeline-report/dynamic-timeline-report.component.d.ts +1 -1
  27. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +9 -3
  28. package/lib/components/reports/ndf-reports/models/common.d.ts +9 -1
  29. package/lib/components/reports/ndf-reports/models/dynamic-line.d.ts +4 -5
  30. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +1 -0
  31. package/lib/components/reports/ndf-reports/pipes/check-condition.pipe.d.ts +2 -2
  32. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +4 -2
  33. package/lib/components/reports/ndf-reports/services/ndf-reports.service.d.ts +6 -6
  34. package/lib/components/reports/ndf-reports/services/reports-hooks.service.d.ts +15 -3
  35. package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +23 -9
  36. package/lib/components/tables/dynamic-table/public-api.d.ts +2 -1
  37. package/lib/components/tables/dynamic-table/services/table-hooks.service.d.ts +13 -0
  38. package/lib/shared/services/base/base.service.d.ts +4 -2
  39. package/package.json +1 -1
@@ -31,13 +31,13 @@ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
31
31
  import * as i7 from '@angular/material/tooltip';
32
32
  import { MatTooltipModule } from '@angular/material/tooltip';
33
33
  import { merge } from 'lodash-es';
34
+ import * as _ from 'lodash';
35
+ import ___default, { cloneDeep, filter, sortBy, each, unionWith, isEqual, isNil, isObject as isObject$1, isDate, isBoolean, isNumber, keys, trim, get, set, values, union, assign, keyBy, flatMap, map as map$1 } from 'lodash';
34
36
  import * as moment$6 from 'moment';
35
37
  import moment__default, { isMoment } from 'moment';
36
38
  import _omit from 'lodash/omit';
37
39
  import _assign from 'lodash/assign';
38
40
  import _cloneDeep from 'lodash/cloneDeep';
39
- import * as _ from 'lodash';
40
- import ___default, { cloneDeep, filter, sortBy, each, unionWith, isEqual, isNil, isObject as isObject$1, isDate, isBoolean, isNumber, keys, trim, get, set, values, union, assign, keyBy, flatMap, map as map$1 } from 'lodash';
41
41
  import * as i1$4 from '@angular/platform-browser';
42
42
  import { BrowserTransferStateModule } from '@angular/platform-browser';
43
43
  import moment$8 from 'moment-es6';
@@ -2474,106 +2474,87 @@ class NuxeoMapper {
2474
2474
 
2475
2475
  const ENTITY_TYPE = 'entity-type';
2476
2476
 
2477
- var _HttpBaseService_http;
2478
- class HttpBaseService {
2479
- constructor(injector) {
2480
- _HttpBaseService_http.set(this, void 0);
2481
- __classPrivateFieldSet(this, _HttpBaseService_http, injector.get(HttpClient), "f");
2482
- }
2483
- get environment() {
2484
- return EnvManager.environment;
2485
- }
2486
- httpRequest(req) {
2487
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").request(req);
2488
- }
2489
- get(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
2490
- var _a, _b, _c;
2491
- let url;
2492
- if (typeof endpointOrOptions === 'string') {
2493
- url = endpointOrOptions;
2494
- }
2495
- else {
2496
- const options = endpointOrOptions;
2497
- url = options.endpoint;
2498
- params = (_a = options.params) !== null && _a !== void 0 ? _a : undefined;
2499
- headers = (_b = options.headers) !== null && _b !== void 0 ? _b : undefined;
2500
- responseType = (_c = options.responseType) !== null && _c !== void 0 ? _c : undefined;
2501
- }
2502
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").get(url, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2477
+ class CallApiService {
2478
+ constructor(nuxeoService, http, environment) {
2479
+ this.nuxeoService = nuxeoService;
2480
+ this.http = http;
2481
+ this.environment = environment;
2503
2482
  }
2504
- post(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2505
- var _a, _b, _c, _d;
2506
- let url;
2507
- if (typeof endpointOrOptions === 'string') {
2508
- url = endpointOrOptions;
2509
- }
2510
- else {
2511
- const options = endpointOrOptions;
2512
- url = options.endpoint;
2513
- payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2514
- params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2515
- headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2516
- responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2517
- }
2518
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").post(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2483
+ query(queryOptions, options) {
2484
+ return this.inerQuery(queryOptions, options);
2519
2485
  }
2520
- put(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2521
- var _a, _b, _c, _d;
2522
- let url;
2523
- if (typeof endpointOrOptions === 'string') {
2524
- url = endpointOrOptions;
2525
- }
2526
- else {
2527
- const options = endpointOrOptions;
2528
- url = options.endpoint;
2529
- payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2530
- params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2531
- headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2532
- responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2533
- }
2534
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").put(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2486
+ inerQuery(queryOptions, options) {
2487
+ return from(this.nuxeoService.nuxeoClient.repository().query(queryOptions, options)).pipe(map((res) => {
2488
+ if (res.entries.length > 0) {
2489
+ res.entries.forEach((data) => {
2490
+ delete data._nuxeo;
2491
+ delete data._repository;
2492
+ });
2493
+ }
2494
+ return res;
2495
+ }));
2535
2496
  }
2536
- patch(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2537
- var _a, _b, _c, _d;
2538
- let url;
2539
- if (typeof endpointOrOptions === 'string') {
2540
- url = endpointOrOptions;
2497
+ customQuery(query, params, headers = {}, body = {}) {
2498
+ let _payload = body;
2499
+ if (query === null || query === void 0 ? void 0 : query.payload) {
2500
+ const _key = (query === null || query === void 0 ? void 0 : query.predicateKey) || 'predicateList';
2501
+ _payload = ___default.mergeWith(body, query.payload, (objValue, srcValue, key) => {
2502
+ if (Array.isArray(objValue) && key === _key) {
2503
+ return ___default.uniqWith(objValue.concat(srcValue), ___default.isEqual);
2504
+ }
2505
+ });
2541
2506
  }
2542
- else {
2543
- const options = endpointOrOptions;
2544
- url = options.endpoint;
2545
- payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2546
- params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2547
- headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2548
- responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2507
+ if (this.bearerToken) {
2508
+ headers['Authorization'] = this.bearerToken;
2549
2509
  }
2550
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").patch(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2510
+ return this.http
2511
+ .request(query.method, `${this.environment.nuxeo}${query.url}`, {
2512
+ body: _payload,
2513
+ headers,
2514
+ params
2515
+ })
2516
+ .pipe(map((res) => {
2517
+ return res;
2518
+ }));
2551
2519
  }
2552
- delete(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
2553
- var _a, _b, _c;
2554
- let url;
2555
- if (typeof endpointOrOptions === 'string') {
2556
- url = endpointOrOptions;
2557
- }
2558
- else {
2559
- const options = endpointOrOptions;
2560
- url = options.endpoint;
2561
- params = (_a = options.params) !== null && _a !== void 0 ? _a : undefined;
2562
- headers = (_b = options.headers) !== null && _b !== void 0 ? _b : undefined;
2563
- responseType = (_c = options.responseType) !== null && _c !== void 0 ? _c : undefined;
2564
- }
2565
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").delete(url, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2520
+ }
2521
+ CallApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, deps: [{ token: NuxeoService }, { token: i1$2.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
2522
+ CallApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, providedIn: 'root' });
2523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, decorators: [{
2524
+ type: Injectable,
2525
+ args: [{
2526
+ providedIn: 'root'
2527
+ }]
2528
+ }], ctorParameters: function () { return [{ type: NuxeoService }, { type: i1$2.HttpClient }, { type: undefined, decorators: [{
2529
+ type: Inject,
2530
+ args: ['environment']
2531
+ }] }]; } });
2532
+
2533
+ var _ApisErrorsMessagesService_handlerFn;
2534
+ class ApisErrorsMessagesService {
2535
+ constructor() {
2536
+ _ApisErrorsMessagesService_handlerFn.set(this, () => {
2537
+ return pipe(catchError((err) => {
2538
+ throw err;
2539
+ }));
2540
+ });
2566
2541
  }
2567
- httpAutomation(endpoint, payload = undefined, responseType = undefined) {
2568
- return __classPrivateFieldGet(this, _HttpBaseService_http, "f").post(endpoint, payload, { responseType }).pipe(this.catchErrors());
2542
+ setErrorHandler(handler) {
2543
+ __classPrivateFieldSet(this, _ApisErrorsMessagesService_handlerFn, handler, "f");
2569
2544
  }
2570
- catchErrors() {
2571
- return pipe(catchError((err) => {
2572
- throw err;
2573
- }));
2545
+ handleErrorMessage() {
2546
+ return __classPrivateFieldGet(this, _ApisErrorsMessagesService_handlerFn, "f").call(this);
2574
2547
  }
2575
2548
  }
2576
- _HttpBaseService_http = new WeakMap();
2549
+ _ApisErrorsMessagesService_handlerFn = new WeakMap();
2550
+ ApisErrorsMessagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2551
+ ApisErrorsMessagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, providedIn: 'root' });
2552
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, decorators: [{
2553
+ type: Injectable,
2554
+ args: [{
2555
+ providedIn: 'root'
2556
+ }]
2557
+ }] });
2577
2558
 
2578
2559
  const DEFAULT_CACHE_OPTIONS = {
2579
2560
  PREFIX: `cache__`,
@@ -2913,98 +2894,116 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2913
2894
  }]
2914
2895
  }], ctorParameters: function () { return [{ type: UserPreferencesService }, { type: UtilityService }]; } });
2915
2896
 
2916
- class CallApiService {
2917
- constructor(nuxeoService, http, environment) {
2918
- this.nuxeoService = nuxeoService;
2919
- this.http = http;
2920
- this.environment = environment;
2897
+ var _HttpBaseService_http;
2898
+ class HttpBaseService {
2899
+ constructor(injector) {
2900
+ _HttpBaseService_http.set(this, void 0);
2901
+ __classPrivateFieldSet(this, _HttpBaseService_http, injector.get(HttpClient), "f");
2921
2902
  }
2922
- query(queryOptions, options) {
2923
- return this.inerQuery(queryOptions, options);
2903
+ get environment() {
2904
+ return EnvManager.environment;
2924
2905
  }
2925
- inerQuery(queryOptions, options) {
2926
- return from(this.nuxeoService.nuxeoClient.repository().query(queryOptions, options)).pipe(map((res) => {
2927
- if (res.entries.length > 0) {
2928
- res.entries.forEach((data) => {
2929
- delete data._nuxeo;
2930
- delete data._repository;
2931
- });
2932
- }
2933
- return res;
2934
- }));
2906
+ httpRequest(req) {
2907
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").request(req);
2935
2908
  }
2936
- customQuery(query, params, headers = {}, body = {}) {
2937
- let _payload = body;
2938
- if (query === null || query === void 0 ? void 0 : query.payload) {
2939
- const _key = (query === null || query === void 0 ? void 0 : query.predicateKey) || 'predicateList';
2940
- _payload = ___default.mergeWith(body, query.payload, (objValue, srcValue, key) => {
2941
- if (Array.isArray(objValue) && key === _key) {
2942
- return ___default.uniqWith(objValue.concat(srcValue), ___default.isEqual);
2943
- }
2944
- });
2909
+ get(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
2910
+ var _a, _b, _c;
2911
+ let url;
2912
+ if (typeof endpointOrOptions === 'string') {
2913
+ url = endpointOrOptions;
2945
2914
  }
2946
- if (this.bearerToken) {
2947
- headers['Authorization'] = this.bearerToken;
2915
+ else {
2916
+ const options = endpointOrOptions;
2917
+ url = options.endpoint;
2918
+ params = (_a = options.params) !== null && _a !== void 0 ? _a : undefined;
2919
+ headers = (_b = options.headers) !== null && _b !== void 0 ? _b : undefined;
2920
+ responseType = (_c = options.responseType) !== null && _c !== void 0 ? _c : undefined;
2948
2921
  }
2949
- return this.http
2950
- .request(query.method, `${this.environment.nuxeo}${query.url}`, {
2951
- body: _payload,
2952
- headers,
2953
- params
2954
- })
2955
- .pipe(map((res) => {
2956
- return res;
2957
- }));
2922
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").get(url, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2958
2923
  }
2959
- }
2960
- CallApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, deps: [{ token: NuxeoService }, { token: i1$2.HttpClient }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
2961
- CallApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, providedIn: 'root' });
2962
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CallApiService, decorators: [{
2963
- type: Injectable,
2964
- args: [{
2965
- providedIn: 'root'
2966
- }]
2967
- }], ctorParameters: function () { return [{ type: NuxeoService }, { type: i1$2.HttpClient }, { type: undefined, decorators: [{
2968
- type: Inject,
2969
- args: ['environment']
2970
- }] }]; } });
2971
-
2972
- var _ApisErrorsMessagesService_handlerFn;
2973
- class ApisErrorsMessagesService {
2974
- constructor() {
2975
- _ApisErrorsMessagesService_handlerFn.set(this, () => {
2976
- return pipe(catchError((err) => {
2977
- throw err;
2978
- }));
2979
- });
2924
+ post(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2925
+ var _a, _b, _c, _d;
2926
+ let url;
2927
+ if (typeof endpointOrOptions === 'string') {
2928
+ url = endpointOrOptions;
2929
+ }
2930
+ else {
2931
+ const options = endpointOrOptions;
2932
+ url = options.endpoint;
2933
+ payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2934
+ params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2935
+ headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2936
+ responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2937
+ }
2938
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").post(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2980
2939
  }
2981
- setErrorHandler(handler) {
2982
- __classPrivateFieldSet(this, _ApisErrorsMessagesService_handlerFn, handler, "f");
2940
+ put(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2941
+ var _a, _b, _c, _d;
2942
+ let url;
2943
+ if (typeof endpointOrOptions === 'string') {
2944
+ url = endpointOrOptions;
2945
+ }
2946
+ else {
2947
+ const options = endpointOrOptions;
2948
+ url = options.endpoint;
2949
+ payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2950
+ params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2951
+ headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2952
+ responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2953
+ }
2954
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").put(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2983
2955
  }
2984
- handleErrorMessage() {
2985
- return __classPrivateFieldGet(this, _ApisErrorsMessagesService_handlerFn, "f").call(this);
2956
+ patch(endpointOrOptions, payload = undefined, params = undefined, headers = undefined, responseType = undefined) {
2957
+ var _a, _b, _c, _d;
2958
+ let url;
2959
+ if (typeof endpointOrOptions === 'string') {
2960
+ url = endpointOrOptions;
2961
+ }
2962
+ else {
2963
+ const options = endpointOrOptions;
2964
+ url = options.endpoint;
2965
+ payload = (_a = options.payload) !== null && _a !== void 0 ? _a : undefined;
2966
+ params = (_b = options.params) !== null && _b !== void 0 ? _b : undefined;
2967
+ headers = (_c = options.headers) !== null && _c !== void 0 ? _c : undefined;
2968
+ responseType = (_d = options.responseType) !== null && _d !== void 0 ? _d : undefined;
2969
+ }
2970
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").patch(url, payload, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2971
+ }
2972
+ delete(endpointOrOptions, params = undefined, headers = undefined, responseType = undefined) {
2973
+ var _a, _b, _c;
2974
+ let url;
2975
+ if (typeof endpointOrOptions === 'string') {
2976
+ url = endpointOrOptions;
2977
+ }
2978
+ else {
2979
+ const options = endpointOrOptions;
2980
+ url = options.endpoint;
2981
+ params = (_a = options.params) !== null && _a !== void 0 ? _a : undefined;
2982
+ headers = (_b = options.headers) !== null && _b !== void 0 ? _b : undefined;
2983
+ responseType = (_c = options.responseType) !== null && _c !== void 0 ? _c : undefined;
2984
+ }
2985
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").delete(url, { headers, params, responseType }).pipe(map((response) => response), this.catchErrors());
2986
+ }
2987
+ httpAutomation(endpoint, payload = undefined, responseType = undefined) {
2988
+ return __classPrivateFieldGet(this, _HttpBaseService_http, "f").post(endpoint, payload, { responseType }).pipe(this.catchErrors());
2989
+ }
2990
+ catchErrors() {
2991
+ return pipe(catchError((err) => {
2992
+ throw err;
2993
+ }));
2986
2994
  }
2987
2995
  }
2988
- _ApisErrorsMessagesService_handlerFn = new WeakMap();
2989
- ApisErrorsMessagesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2990
- ApisErrorsMessagesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, providedIn: 'root' });
2991
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ApisErrorsMessagesService, decorators: [{
2992
- type: Injectable,
2993
- args: [{
2994
- providedIn: 'root'
2995
- }]
2996
- }] });
2996
+ _HttpBaseService_http = new WeakMap();
2997
2997
 
2998
- var _BaseService_nuxeoService, _BaseService_callApiService, _BaseService_cacheBaseService, _BaseService_apisErrorsService;
2998
+ var _BaseService_nuxeoService, _BaseService_cacheBaseService, _BaseService_apisErrorsService;
2999
2999
  class BaseService extends HttpBaseService {
3000
3000
  constructor(injector) {
3001
3001
  super(injector);
3002
3002
  _BaseService_nuxeoService.set(this, void 0);
3003
- _BaseService_callApiService.set(this, void 0);
3004
3003
  _BaseService_cacheBaseService.set(this, void 0);
3005
3004
  _BaseService_apisErrorsService.set(this, void 0);
3006
3005
  __classPrivateFieldSet(this, _BaseService_nuxeoService, injector.get(NuxeoService), "f");
3007
- __classPrivateFieldSet(this, _BaseService_callApiService, injector.get(CallApiService), "f");
3006
+ this._callApiService = injector.get(CallApiService);
3008
3007
  __classPrivateFieldSet(this, _BaseService_cacheBaseService, injector.get(CacheBaseService), "f");
3009
3008
  __classPrivateFieldSet(this, _BaseService_apisErrorsService, injector.get(ApisErrorsMessagesService), "f");
3010
3009
  this.adapterService = injector.get(AdapterService);
@@ -3084,7 +3083,7 @@ class BaseService extends HttpBaseService {
3084
3083
  params = (_a = options.params) !== null && _a !== void 0 ? _a : undefined;
3085
3084
  headers = (_b = options.headers) !== null && _b !== void 0 ? _b : undefined;
3086
3085
  }
3087
- return __classPrivateFieldGet(this, _BaseService_callApiService, "f")
3086
+ return this._callApiService
3088
3087
  .query(Object.assign({ pageProvider }, (params ? params : {})), {
3089
3088
  headers: headers ? Object.assign({}, headers) : undefined
3090
3089
  })
@@ -3138,7 +3137,7 @@ class BaseService extends HttpBaseService {
3138
3137
  return __classPrivateFieldGet(this, _BaseService_nuxeoService, "f").getDuplicates(params, body);
3139
3138
  }
3140
3139
  }
3141
- _BaseService_nuxeoService = new WeakMap(), _BaseService_callApiService = new WeakMap(), _BaseService_cacheBaseService = new WeakMap(), _BaseService_apisErrorsService = new WeakMap();
3140
+ _BaseService_nuxeoService = new WeakMap(), _BaseService_cacheBaseService = new WeakMap(), _BaseService_apisErrorsService = new WeakMap();
3142
3141
  BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
3143
3142
  BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, providedIn: 'root' });
3144
3143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseService, decorators: [{
@@ -14728,18 +14727,19 @@ class AggregationFieldService {
14728
14727
  this._ndfTransformService = _ndfTransformService;
14729
14728
  }
14730
14729
  prepareAggregationFiled(data) {
14731
- var _a, _b;
14730
+ var _a;
14732
14731
  return !!((_a = data.fieldConfig) === null || _a === void 0 ? void 0 : _a.dataTransformer)
14733
- ? this._transformData(data.aggregation, (_b = data.fieldConfig) === null || _b === void 0 ? void 0 : _b.dataTransformer)
14732
+ ? this._transformData(data.aggregation, data.fieldConfig)
14734
14733
  : this._prepareOptions(data);
14735
14734
  }
14736
- _prepareOptions({ fieldConfig, aggregation }) {
14735
+ _prepareOptions({ fieldConfig, aggregation, }) {
14737
14736
  return of(aggregation).pipe(map((aggregation) => {
14738
14737
  const _items = ___default.get(aggregation, (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.propertyPath) || 'buckets') || [];
14739
14738
  return _items.map((item) => this._mapOption(item, fieldConfig));
14740
14739
  }));
14741
14740
  }
14742
- _transformData(aggregation, transformer) {
14741
+ _transformData(aggregation, config) {
14742
+ const transformer = config.dataTransformer;
14743
14743
  const _key = (k) => `${k}`.split('/').pop();
14744
14744
  const createMappedData = (res, aggregation) => {
14745
14745
  return res.map((item) => {
@@ -14750,7 +14750,7 @@ class AggregationFieldService {
14750
14750
  };
14751
14751
  const dataMappers = {
14752
14752
  subject: (res, aggregation) => createMappedData(res, aggregation),
14753
- format: (res, aggregation) => createMappedData(res, aggregation)
14753
+ format: (res, aggregation) => createMappedData(res, aggregation),
14754
14754
  };
14755
14755
  if (!this._ndfTransformService.has(transformer)) {
14756
14756
  throw new Error(`No transformer defined for type: ${transformer}`);
@@ -14769,13 +14769,14 @@ class AggregationFieldService {
14769
14769
  }
14770
14770
  _createFilterOption(item, docCount) {
14771
14771
  const code = item.code || item.id;
14772
- return {
14772
+ const option = {
14773
14773
  id: code,
14774
14774
  label: item.code,
14775
14775
  value: code,
14776
14776
  count: docCount,
14777
- localizedLabel: { ar: item.arabicTitle, en: item.englishTitle }
14777
+ localizedLabel: { ar: item.arabicTitle, en: item.englishTitle },
14778
14778
  };
14779
+ return option;
14779
14780
  }
14780
14781
  _mapOption(item, config) {
14781
14782
  const prefix = (config === null || config === void 0 ? void 0 : config.prefix) || '';
@@ -14789,15 +14790,24 @@ class AggregationFieldService {
14789
14790
  localizedLabel: config.bindLabel
14790
14791
  ? {
14791
14792
  ar: ___default.get(item, config === null || config === void 0 ? void 0 : config.bindLabel.ar),
14792
- en: ___default.get(item, config === null || config === void 0 ? void 0 : config.bindLabel.en)
14793
+ en: ___default.get(item, config === null || config === void 0 ? void 0 : config.bindLabel.en),
14793
14794
  }
14794
- : null
14795
+ : null,
14795
14796
  };
14796
14797
  if (config === null || config === void 0 ? void 0 : config.tooltip) {
14797
14798
  const _a = config === null || config === void 0 ? void 0 : config.tooltip, { properties } = _a, tooltipConfig = __rest(_a, ["properties"]);
14798
14799
  option.tooltip = {
14799
14800
  config: tooltipConfig,
14800
- values: this._prepareTooltip(item, config === null || config === void 0 ? void 0 : config.tooltip) || null
14801
+ values: this._prepareTooltip(item, config === null || config === void 0 ? void 0 : config.tooltip) || null,
14802
+ };
14803
+ }
14804
+ const keys = Object.keys(item);
14805
+ if (keys.includes('from') || keys.includes('to')) {
14806
+ option.constraints = {
14807
+ range: {
14808
+ from: item === null || item === void 0 ? void 0 : item.from,
14809
+ to: item.to,
14810
+ },
14801
14811
  };
14802
14812
  }
14803
14813
  return option;
@@ -14817,7 +14827,7 @@ AggregationFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
14817
14827
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationFieldService, decorators: [{
14818
14828
  type: Injectable,
14819
14829
  args: [{
14820
- providedIn: 'root'
14830
+ providedIn: 'root',
14821
14831
  }]
14822
14832
  }], ctorParameters: function () { return [{ type: NdfTransformService }]; } });
14823
14833
 
@@ -17950,11 +17960,16 @@ class AggregationDateListComponent extends BaseAggregationField {
17950
17960
  }
17951
17961
  }
17952
17962
  _initValue(obj) {
17963
+ var _a;
17953
17964
  if (!isFieldValueObject(obj)) {
17954
17965
  this._handleSelection(obj);
17955
17966
  return;
17956
17967
  }
17957
17968
  const { min, max, value } = obj;
17969
+ if ((_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.convertTime) {
17970
+ this._handleConvertedTime(this._dateToTimestamp(min), this._dateToTimestamp(max));
17971
+ return;
17972
+ }
17958
17973
  if (min || max) {
17959
17974
  this.minMaxDateCtrl.patchValue({ min, max }, { emitEvent: false });
17960
17975
  }
@@ -17962,6 +17977,13 @@ class AggregationDateListComponent extends BaseAggregationField {
17962
17977
  this._handleSelection(value);
17963
17978
  }
17964
17979
  }
17980
+ _handleConvertedTime(from, to) {
17981
+ const options = this._optionsSub.getValue();
17982
+ const option = this.findByRange(options, { from, to });
17983
+ if (option) {
17984
+ this.selectionModel.select(option === null || option === void 0 ? void 0 : option.value);
17985
+ }
17986
+ }
17965
17987
  _handleSelection(values) {
17966
17988
  this.internalValue = values;
17967
17989
  if (this._isList()) {
@@ -17976,13 +17998,31 @@ class AggregationDateListComponent extends BaseAggregationField {
17976
17998
  this._updateVisibility();
17977
17999
  }
17978
18000
  updateValueSelection(value) {
17979
- var _a;
17980
- this._onChange(value);
18001
+ var _a, _b;
18002
+ this._onChange(!!((_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.convertTime) ? this._convertToTime(value) : value);
17981
18003
  if (this.renderOptions.minMax) {
17982
- const _emitEvent = ((_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.sendMode) === FIELD_SEND_MODE.queryParam;
18004
+ const _emitEvent = ((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.sendMode) === FIELD_SEND_MODE.queryParam;
17983
18005
  this._resetMinMaxCtrl(_emitEvent);
17984
18006
  }
17985
18007
  }
18008
+ _convertToTime(value) {
18009
+ var _a;
18010
+ const [_val] = value;
18011
+ const options = this._optionsSub.getValue();
18012
+ const option = options.find((opt) => opt.value === _val);
18013
+ if (option && ((_a = option.constraints) === null || _a === void 0 ? void 0 : _a.range)) {
18014
+ const { from, to } = option.constraints.range;
18015
+ const _val = {
18016
+ min: this._toEndOfDayISO(from),
18017
+ max: this._toEndOfDayISO(to),
18018
+ };
18019
+ if (this._isValueObject()) {
18020
+ return this._prepareValueRange(_val);
18021
+ }
18022
+ return _val;
18023
+ }
18024
+ return value;
18025
+ }
17986
18026
  updateSelectValue(value) {
17987
18027
  this.updateValueSelection([value]);
17988
18028
  }
@@ -17995,13 +18035,15 @@ class AggregationDateListComponent extends BaseAggregationField {
17995
18035
  this._internalReset();
17996
18036
  this._isFieldDirty = !!_hasData;
17997
18037
  if (this._isValueObject()) {
17998
- const _operator = NxQL._getRangeOperator(value);
17999
- const _val = NxQL._getValueRange(value, 'DATE', _operator);
18000
- this._onChange(_val);
18038
+ this._onChange(this._prepareValueRange(value));
18001
18039
  return;
18002
18040
  }
18003
18041
  this._onChange(value);
18004
18042
  }
18043
+ _prepareValueRange(value) {
18044
+ const _operator = NxQL._getRangeOperator(value);
18045
+ return NxQL._getValueRange(value, 'DATE', _operator);
18046
+ }
18005
18047
  updateValue(value) {
18006
18048
  this.internalValue = value;
18007
18049
  this._onChange(value);
@@ -18017,7 +18059,9 @@ class AggregationDateListComponent extends BaseAggregationField {
18017
18059
  }
18018
18060
  if (this._isSendAsQueryParams()) {
18019
18061
  formGroup.addControl(`${this.fieldConfig.aggregation}__minMaxDate`, this.minMaxDateCtrl);
18020
- this.minMaxDateCtrl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((_) => {
18062
+ this.minMaxDateCtrl.valueChanges
18063
+ .pipe(takeUntil(this.destroy$))
18064
+ .subscribe((_) => {
18021
18065
  this._internalReset();
18022
18066
  this.updateValue(null);
18023
18067
  });
@@ -18034,22 +18078,20 @@ class AggregationDateListComponent extends BaseAggregationField {
18034
18078
  }
18035
18079
  }
18036
18080
  _addSelectionListener() {
18037
- if (!!this.renderOptions.view && this.renderOptions.view !== DATE_LIST_VIEW.list) {
18081
+ if (!!this.renderOptions.view &&
18082
+ this.renderOptions.view !== DATE_LIST_VIEW.list) {
18038
18083
  return;
18039
18084
  }
18040
18085
  this.selectionModel.changed
18041
18086
  .asObservable()
18042
18087
  .pipe(map((data) => data.source.selected), takeUntil(this.destroy$))
18043
18088
  .subscribe((value) => {
18044
- if (this.renderOptions.minMax) {
18045
- this._resetMinMaxCtrl(false);
18046
- }
18047
18089
  this.updateValueSelection(value);
18048
18090
  });
18049
18091
  }
18050
18092
  _resetMinMaxCtrl(emitEvent = true) {
18051
18093
  this.minMaxDateCtrl.reset(null, {
18052
- emitEvent: emitEvent
18094
+ emitEvent: emitEvent,
18053
18095
  });
18054
18096
  }
18055
18097
  _internalReset() {
@@ -18083,19 +18125,39 @@ class AggregationDateListComponent extends BaseAggregationField {
18083
18125
  }
18084
18126
  });
18085
18127
  }
18128
+ _toEndOfDayISO(timestamp) {
18129
+ moment__default.locale('en');
18130
+ return moment__default(timestamp).format('YYYY-MM-DDTHH:mm:ssZ');
18131
+ }
18132
+ _dateToTimestamp(date) {
18133
+ moment__default.locale('en');
18134
+ return moment__default.parseZone(date).valueOf();
18135
+ }
18136
+ normalize(ts) {
18137
+ return moment__default(ts).startOf('second').valueOf();
18138
+ }
18139
+ findByRange(list, range) {
18140
+ const from = this.normalize(range.from);
18141
+ const to = this.normalize(range.to);
18142
+ return list.find(item => {
18143
+ const itemFrom = this.normalize(item.constraints.range.from);
18144
+ const itemTo = this.normalize(item.constraints.range.to);
18145
+ return itemFrom === from && itemTo === to;
18146
+ });
18147
+ }
18086
18148
  }
18087
18149
  AggregationDateListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationDateListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18088
18150
  AggregationDateListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationDateListComponent, selector: "aggregation-date-list", host: { classAttribute: "filter-date-list" }, providers: [
18089
18151
  {
18090
18152
  provide: NG_VALUE_ACCESSOR,
18091
18153
  useExisting: forwardRef(() => AggregationDateListComponent),
18092
- multi: true
18154
+ multi: true,
18093
18155
  },
18094
18156
  {
18095
18157
  provide: NG_VALIDATORS,
18096
18158
  useExisting: forwardRef(() => AggregationDateListComponent),
18097
- multi: true
18098
- }
18159
+ multi: true,
18160
+ },
18099
18161
  ], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"options$ | async as options\">\r\n\t<field-header *ngIf=\"fieldConfig.label && !renderOptions?.hideLabel\" class=\"filter-date-list__label\">{{\r\n\t\tfieldConfig.label | translate\r\n\t}}</field-header>\r\n\r\n\t<div class=\"filter-date-list__wrapper\">\r\n\t\t<ng-container *ngIf=\"!renderOptions?.view || renderOptions.view === viewLayout.list\">\r\n\t\t\t<mat-radio-button\r\n\t\t\t\tclass=\"filter-date-list__item\"\r\n\t\t\t\t*ngFor=\"let option of options; index as index\"\r\n\t\t\t\t[checked]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t(change)=\"selectionModel.toggle(option.value)\"\r\n\t\t\t\t[class.checkedBox]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t[class.unCheckedBox]=\"!selectionModel.isSelected(option.value)\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || defaultTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: option, fieldConfig, aggregation }\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultTemplate>\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</mat-radio-button>\r\n\r\n\t\t\t<button *ngIf=\"selectionModel.hasValue()\" mat-flat-button class=\"mb-2\" (click)=\"clearSelected()\">\r\n\t\t\t\t{{ 'FILTERS.clear' | translate }}\r\n\t\t\t</button>\r\n\t\t</ng-container>\r\n\r\n\t\t<ng-container *ngIf=\"renderOptions.view === viewLayout.dropdown\">\r\n\t\t\t<ng-select\r\n\t\t\t\tclass=\"filter-date-list__select\"\r\n\t\t\t\t[items]=\"options\"\r\n\t\t\t\tbindValue=\"value\"\r\n\t\t\t\t[multiple]=\"false\"\r\n\t\t\t\t[ngModel]=\"internalValue\"\r\n\t\t\t\t(ngModelChange)=\"updateSelectValue($event)\"\r\n\t\t\t\t[notFoundText]=\"emptyPlaceholder || 'SELECT.notFoundText' | translate\"\r\n\t\t\t\t[placeholder]=\"'SELECT.placeholder' | translate\"\r\n\t\t\t\t[clearAllText]=\"'SELECT.clearAllText' | translate\"\r\n\t\t\t\t[typeToSearchText]=\"'SELECT.typeToSearchText' | translate\"\r\n\t\t\t\t[searchable]=\"false\"\r\n\t\t\t>\r\n\t\t\t\t<ng-template ng-option-tmp let-item=\"item\">\r\n\t\t\t\t\t<ng-container\r\n\t\t\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || defaultTemplate\"\r\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item, fieldConfig, aggregation }\"\r\n\t\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t\t<ng-template #defaultTemplate>\r\n\t\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t\t[option]=\"item\"\r\n\t\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t<ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\r\n\t\t\t\t\t<div *ngFor=\"let item of items\" class=\"ng-value\">\r\n\t\t\t\t\t\t<span class=\"ng-value-label\">{{ item | localizedLabel : language }}</span>\r\n\t\t\t\t\t\t<button class=\"ng-value-icon left\" (click)=\"clear(item)\" aria-hidden=\"true\">\u00D7</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\r\n\t\t\t\t<ng-template ng-label-tmp let-item=\"item\">\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"item\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-select>\r\n\t\t</ng-container>\r\n\r\n\t\t<filter-date-range\r\n\t\t\tclass=\"filter-date-list__range\"\r\n\t\t\t*ngIf=\"renderOptions?.minMax\"\r\n\t\t\t[formControl]=\"minMaxDateCtrl\"\r\n\t\t></filter-date-range>\r\n\t</div>\r\n</div>\r\n", styles: [".filter-date-list{display:var(--fdl-display, block)}.filter-date-list__label{display:var(--fdl-label-display, block);margin-block:var(--fdl-label-margin-block, 0 .5rem);margin-inline:var(--fdl-label-margin-inline, 0 .2rem);padding:var(--fdl-padding, .2rem);font-weight:var(--fdl-weight, 600)}.filter-date-list__wrapper{display:var(--fdl-wrapper-display, flex);flex-direction:var(--fdl-wrapper-direction, column)}.filter-date-list__item{padding-inline-start:.5rem;margin-bottom:var(--fdl-row-margin-bottom, .3rem)}.filter-date-list__item .mat-radio-label{display:flex}.filter-date-list__item .mat-radio-label .mat-radio-label-content{flex-grow:1}.filter-date-list__select{margin-bottom:var(--fdl-row-margin-bottom, .3rem)}.filter-date-list__range{margin-top:var(--fdl-range-margin-top, .5rem);display:var(--fdl-range-display, flex);flex-direction:var(--fdl-range-direction, column)}\n"], components: [{ type: FieldHeaderComponent, selector: "field-header" }, { type: i2$5.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: FilterOptionTextComponent, selector: "filter-option-text", inputs: ["option", "showCount", "language"] }, { type: i1$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: i5.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: FilterDateRangeComponent, selector: "filter-date-range" }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.ɵf, selector: "[ng-option-tmp]" }, { type: i5.ɵi, selector: "[ng-multi-label-tmp]" }, { type: i5.ɵh, selector: "[ng-label-tmp]" }, { type: i2$4.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe, "localizedLabel": LocalizedLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
18100
18162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationDateListComponent, decorators: [{
18101
18163
  type: Component,
@@ -18109,17 +18171,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
18109
18171
  {
18110
18172
  provide: NG_VALUE_ACCESSOR,
18111
18173
  useExisting: forwardRef(() => AggregationDateListComponent),
18112
- multi: true
18174
+ multi: true,
18113
18175
  },
18114
18176
  {
18115
18177
  provide: NG_VALIDATORS,
18116
18178
  useExisting: forwardRef(() => AggregationDateListComponent),
18117
- multi: true
18118
- }
18179
+ multi: true,
18180
+ },
18119
18181
  ],
18120
18182
  host: {
18121
- class: 'filter-date-list'
18122
- }
18183
+ class: 'filter-date-list',
18184
+ },
18123
18185
  }]
18124
18186
  }], propDecorators: { _controlContainer: [{
18125
18187
  type: Optional
@@ -20031,20 +20093,6 @@ const PAGE_SIZE = [
20031
20093
  }
20032
20094
  ];
20033
20095
 
20034
- class DynamicTableService {
20035
- constructor() {
20036
- this.refreshData = new EventEmitter();
20037
- }
20038
- }
20039
- DynamicTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20040
- DynamicTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, providedIn: 'root' });
20041
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, decorators: [{
20042
- type: Injectable,
20043
- args: [{
20044
- providedIn: 'root'
20045
- }]
20046
- }], ctorParameters: function () { return []; } });
20047
-
20048
20096
  const EMPTY_TEMPLATE = new InjectionToken('EmptyTemplateDirective');
20049
20097
  class EmptyTemplateDirective {
20050
20098
  constructor(template) {
@@ -20071,6 +20119,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
20071
20119
  }]
20072
20120
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
20073
20121
 
20122
+ class DynamicTableService {
20123
+ constructor() {
20124
+ this.refreshData = new EventEmitter();
20125
+ }
20126
+ }
20127
+ DynamicTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20128
+ DynamicTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, providedIn: 'root' });
20129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableService, decorators: [{
20130
+ type: Injectable,
20131
+ args: [{
20132
+ providedIn: 'root'
20133
+ }]
20134
+ }], ctorParameters: function () { return []; } });
20135
+
20136
+ class TableHooksService {
20137
+ constructor() {
20138
+ this.beforeSubmitHooks = [];
20139
+ }
20140
+ registerBeforeSubmit(handler) {
20141
+ this.beforeSubmitHooks.push(handler);
20142
+ }
20143
+ unregisterBeforeSubmit(handler) {
20144
+ const index = this.beforeSubmitHooks.indexOf(handler);
20145
+ if (index > -1) {
20146
+ this.beforeSubmitHooks.splice(index, 1);
20147
+ }
20148
+ }
20149
+ clearBeforeSubmitHooks() {
20150
+ this.beforeSubmitHooks = [];
20151
+ }
20152
+ executeBeforeSubmit(payload) {
20153
+ return __awaiter(this, void 0, void 0, function* () {
20154
+ let modifiedPayload = Object.assign({}, payload);
20155
+ for (const handler of this.beforeSubmitHooks) {
20156
+ try {
20157
+ const result = yield Promise.resolve(handler(modifiedPayload));
20158
+ modifiedPayload = result !== null && result !== void 0 ? result : modifiedPayload;
20159
+ }
20160
+ catch (err) {
20161
+ console.error('Error executing beforeSubmit handler:', err);
20162
+ }
20163
+ }
20164
+ return modifiedPayload;
20165
+ });
20166
+ }
20167
+ evaluate(expr, payload) {
20168
+ try {
20169
+ const context = { criteria: payload };
20170
+ const result = Evaluator.evaluate(expr, context, 'payload');
20171
+ return result !== null && result !== void 0 ? result : payload;
20172
+ }
20173
+ catch (e) {
20174
+ console.error('Error evaluating beforeSubmit string:', e);
20175
+ return payload;
20176
+ }
20177
+ }
20178
+ }
20179
+ TableHooksService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableHooksService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
20180
+ TableHooksService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableHooksService, providedIn: 'root' });
20181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableHooksService, decorators: [{
20182
+ type: Injectable,
20183
+ args: [{
20184
+ providedIn: 'root'
20185
+ }]
20186
+ }] });
20187
+
20074
20188
  /**
20075
20189
  * you can use this component for any pagination
20076
20190
  *
@@ -20281,13 +20395,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
20281
20395
  * (actionOnRow)="performAction($event)">
20282
20396
  * </cts-dynamic-table>
20283
20397
  */
20284
- class DynamicTableComponent {
20285
- constructor(adapter, callApi, nuxeoService, dynamicTableService, cdr) {
20398
+ class DynamicTableComponent extends DestroySubject {
20399
+ constructor(adapter, callApi, nuxeoService, dynamicTableService, cdr, _tableHooksService) {
20400
+ super();
20286
20401
  this.adapter = adapter;
20287
20402
  this.callApi = callApi;
20288
20403
  this.nuxeoService = nuxeoService;
20289
20404
  this.dynamicTableService = dynamicTableService;
20290
20405
  this.cdr = cdr;
20406
+ this._tableHooksService = _tableHooksService;
20291
20407
  /** event to emit when selecting single row */
20292
20408
  this.onRowSelected = new EventEmitter();
20293
20409
  /** event to emit when selecting single row to catch index*/
@@ -20349,7 +20465,9 @@ class DynamicTableComponent {
20349
20465
  return this._pageNumber;
20350
20466
  }
20351
20467
  ngOnInit() {
20352
- this.myDataSubscription = this.dynamicTableService.refreshData.pipe(startWith(null)).subscribe((filterData) => {
20468
+ this.dynamicTableService.refreshData
20469
+ .pipe(startWith(null), takeUntil(this.destroy$))
20470
+ .subscribe((filterData) => {
20353
20471
  if (filterData) {
20354
20472
  this.filterParams = Object.assign({}, filterData);
20355
20473
  // reset page number when start new filtering
@@ -20358,9 +20476,6 @@ class DynamicTableComponent {
20358
20476
  this.getData();
20359
20477
  });
20360
20478
  }
20361
- ngOnDestroy() {
20362
- this.myDataSubscription ? this.myDataSubscription.unsubscribe() : '';
20363
- }
20364
20479
  ngOnChanges(changes) {
20365
20480
  const isFirstChange = Object.values(changes).some((c) => c.isFirstChange());
20366
20481
  if (isFirstChange) {
@@ -20387,91 +20502,100 @@ class DynamicTableComponent {
20387
20502
  this.onPage.emit({
20388
20503
  pageIndex: this._pageNumber,
20389
20504
  pageSize: this.pageSize,
20390
- length: this.totalRecords
20505
+ length: this.totalRecords,
20391
20506
  });
20392
20507
  }
20393
20508
  getData(payload = {}, headers = {}) {
20394
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
20395
- this.loading = true; // internal loading
20396
- this.onLoading.emit(true); // external loading
20397
- let 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
20398
- ? {
20399
- sortBy: (_a = this.sortingBy) === null || _a === void 0 ? void 0 : _a.sortBy,
20400
- sortOrder: (_b = this.sortingBy) === null || _b === void 0 ? void 0 : _b.sortOrder
20401
- }
20402
- : {})), { currentPageIndex: +this.pageNum - 1 }), (this.pageSize ? { pageSize: this.pageSize } : {})), { offset: 0 }), payload);
20403
- // don't refresh all table in case of sorting only
20404
- if (!this.sorting && this.isLegacyMode) {
20405
- // used to not refreshing all table in case of sorting since table lose sorting state when refresh all table
20406
- this.rows = []; // used to refresh table to feel changes in actions when perform action and need to refresh actions
20407
- }
20408
- this.sorting = false; // reset sorting status to false and for next sorting func sorting set it to true again
20409
- const _headers = Object.assign(Object.assign({}, this.headers), headers);
20410
- let _providerPayload = {
20411
- query: Object.assign({ pageProvider: this.pageProvider }, params),
20412
- options: {
20413
- headers: _headers
20414
- }
20415
- };
20416
- let _customPayload = {
20417
- params: Object.assign(Object.assign({}, params), (((_c = this.customFilters) === null || _c === void 0 ? void 0 : _c.params) || {})),
20418
- headers: _headers,
20419
- payload: ___default.merge({}, ((_d = this.customUrl) === null || _d === void 0 ? void 0 : _d.payload) || {}, ((_e = this.customFilters) === null || _e === void 0 ? void 0 : _e.payload) || {})
20420
- };
20421
- if (((_f = this.requestActions) === null || _f === void 0 ? void 0 : _f.beforeSubmit) && typeof ((_g = this.requestActions) === null || _g === void 0 ? void 0 : _g.beforeSubmit) === 'string') {
20422
- try {
20423
- if (this.customUrl) {
20424
- _customPayload = Evaluator.evaluate((_h = this.requestActions) === null || _h === void 0 ? void 0 : _h.beforeSubmit, { criteria: _customPayload }, 'payload');
20425
- }
20426
- else {
20427
- _providerPayload = Evaluator.evaluate((_j = this.requestActions) === null || _j === void 0 ? void 0 : _j.beforeSubmit, { criteria: _providerPayload }, 'payload');
20428
- }
20429
- }
20430
- catch (e) {
20431
- console.error(e);
20509
+ var _a, _b, _c, _d, _e, _f, _g, _h;
20510
+ return __awaiter(this, void 0, void 0, function* () {
20511
+ this.loading = true; // internal loading
20512
+ this.onLoading.emit(true); // external loading
20513
+ let 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
20514
+ ? {
20515
+ sortBy: (_a = this.sortingBy) === null || _a === void 0 ? void 0 : _a.sortBy,
20516
+ sortOrder: (_b = this.sortingBy) === null || _b === void 0 ? void 0 : _b.sortOrder,
20517
+ }
20518
+ : {})), { currentPageIndex: +this.pageNum - 1 }), (this.pageSize ? { pageSize: this.pageSize } : {})), { offset: 0 }), payload);
20519
+ // don't refresh all table in case of sorting only
20520
+ if (!this.sorting && this.isLegacyMode) {
20521
+ // used to not refreshing all table in case of sorting since table lose sorting state when refresh all table
20522
+ this.rows = []; // used to refresh table to feel changes in actions when perform action and need to refresh actions
20523
+ }
20524
+ this.sorting = false; // reset sorting status to false and for next sorting func sorting set it to true again
20525
+ const _headers = Object.assign(Object.assign({}, this.headers), headers);
20526
+ let _providerPayload = {
20527
+ query: Object.assign(Object.assign({ pageProvider: this.pageProvider }, params), (((_c = this.customFilters) === null || _c === void 0 ? void 0 : _c.params) || {})),
20528
+ options: {
20529
+ headers: _headers,
20530
+ },
20531
+ };
20532
+ let _customPayload = {
20533
+ url: (_d = this.customUrl) === null || _d === void 0 ? void 0 : _d.url,
20534
+ params: Object.assign(Object.assign({}, params), (((_e = this.customFilters) === null || _e === void 0 ? void 0 : _e.params) || {})),
20535
+ headers: _headers,
20536
+ payload: ___default.merge({}, ((_f = this.customUrl) === null || _f === void 0 ? void 0 : _f.payload) || {}, ((_g = this.customFilters) === null || _g === void 0 ? void 0 : _g.payload) || {}),
20537
+ };
20538
+ let requestData = this.customUrl
20539
+ ? _customPayload
20540
+ : _providerPayload;
20541
+ const beforeSubmitString = (_h = this.requestActions) === null || _h === void 0 ? void 0 : _h.beforeSubmit;
20542
+ if (typeof beforeSubmitString === 'string') {
20543
+ requestData = yield this._tableHooksService.evaluate(beforeSubmitString, requestData);
20544
+ }
20545
+ requestData = yield this._tableHooksService.executeBeforeSubmit(requestData);
20546
+ let query$;
20547
+ if (this.customUrl) {
20548
+ const _request = requestData;
20549
+ query$ = this.callApi.customQuery({
20550
+ url: _request.url,
20551
+ method: this.customUrl.method,
20552
+ }, _request.params, _request.headers, _request.payload);
20432
20553
  }
20433
- }
20434
- const query$ = this.customUrl
20435
- ? this.callApi.customQuery(this.customUrl, _customPayload.params, _customPayload.headers, _customPayload.payload)
20436
- : this.callApi.query(_providerPayload.query, _providerPayload.options);
20437
- query$
20438
- .pipe(map((data) => {
20439
- data.entries.map((item) => this.adapter.adaptIn(item, this.fields));
20440
- return data;
20441
- }), catchError((err) => {
20442
- throw err;
20443
- }))
20444
- .subscribe((res) => {
20445
- this.loading = false;
20446
- this.onLoading.emit(false);
20447
- this.onLoad.emit(res);
20448
- if (!this.initialized) {
20449
- this.onInitialize.emit(res);
20450
- this.initialized = true;
20554
+ else {
20555
+ const _request = requestData;
20556
+ query$ = this.callApi.query(_request.query, _request.options);
20451
20557
  }
20452
- res.entries.forEach((element) => {
20453
- var _a, _b, _c, _d, _e, _f, _g, _h;
20454
- if (element.properties && ((_a = element.properties) === null || _a === void 0 ? void 0 : _a.creator) && ((_b = element.properties.creator) === null || _b === void 0 ? void 0 : _b.properties)) {
20455
- element.properties['creatorFullObject'] = Object.assign({}, element.properties.creator);
20456
- element.properties.creator =
20457
- ((_d = (_c = element.properties.creator) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d.firstName) +
20458
- ' ' +
20459
- ((_f = (_e = element.properties.creator) === null || _e === void 0 ? void 0 : _e.properties) === null || _f === void 0 ? void 0 : _f.lastName);
20460
- }
20461
- if (element.properties && ((_g = element.properties) === null || _g === void 0 ? void 0 : _g.assignee)) {
20462
- element.properties.assignee = (_h = element.properties) === null || _h === void 0 ? void 0 : _h.assignee.fullName;
20463
- }
20464
- // if(this.higlightUnread){
20465
- // this.cechkIfReadOrNot(element.properties);
20466
- // }
20558
+ query$
20559
+ .pipe(map((data) => {
20560
+ data.entries.map((item) => this.adapter.adaptIn(item, this.fields));
20561
+ return data;
20562
+ }), catchError((err) => {
20563
+ throw err;
20564
+ }), takeUntil(this.destroy$))
20565
+ .subscribe((res) => {
20566
+ this.loading = false;
20567
+ this.onLoading.emit(false);
20568
+ this.onLoad.emit(res);
20569
+ if (!this.initialized) {
20570
+ this.onInitialize.emit(res);
20571
+ this.initialized = true;
20572
+ }
20573
+ res.entries.forEach((element) => {
20574
+ var _a, _b, _c, _d, _e, _f, _g, _h;
20575
+ if (element.properties &&
20576
+ ((_a = element.properties) === null || _a === void 0 ? void 0 : _a.creator) &&
20577
+ ((_b = element.properties.creator) === null || _b === void 0 ? void 0 : _b.properties)) {
20578
+ element.properties['creatorFullObject'] = Object.assign({}, element.properties.creator);
20579
+ element.properties.creator =
20580
+ ((_d = (_c = element.properties.creator) === null || _c === void 0 ? void 0 : _c.properties) === null || _d === void 0 ? void 0 : _d.firstName) +
20581
+ ' ' +
20582
+ ((_f = (_e = element.properties.creator) === null || _e === void 0 ? void 0 : _e.properties) === null || _f === void 0 ? void 0 : _f.lastName);
20583
+ }
20584
+ if (element.properties && ((_g = element.properties) === null || _g === void 0 ? void 0 : _g.assignee)) {
20585
+ element.properties.assignee = (_h = element.properties) === null || _h === void 0 ? void 0 : _h.assignee.fullName;
20586
+ }
20587
+ // if(this.higlightUnread){
20588
+ // this.cechkIfReadOrNot(element.properties);
20589
+ // }
20590
+ });
20591
+ this.totalRecords = res.resultsCount;
20592
+ this.rows = res.entries;
20593
+ this.cdr.detectChanges();
20594
+ // emit data to outside in case of search page for the first time only to prevent refreshing aggregation with every page change
20595
+ // and for any other page type emit data directly in all page numbers
20596
+ if ((this.isSearchPage && this.pageNum === 1) || !this.isSearchPage)
20597
+ this.onGettingData.emit(res);
20467
20598
  });
20468
- this.totalRecords = res.resultsCount;
20469
- this.rows = res.entries;
20470
- this.cdr.detectChanges();
20471
- // emit data to outside in case of search page for the first time only to prevent refreshing aggregation with every page change
20472
- // and for any other page type emit data directly in all page numbers
20473
- if ((this.isSearchPage && this.pageNum === 1) || !this.isSearchPage)
20474
- this.onGettingData.emit(res);
20475
20599
  });
20476
20600
  }
20477
20601
  // function to be executed when clicking on single row
@@ -20501,7 +20625,7 @@ class DynamicTableComponent {
20501
20625
  this.onPage.emit({
20502
20626
  pageIndex: this._pageNumber,
20503
20627
  pageSize: this.pageSize,
20504
- length: this.totalRecords
20628
+ length: this.totalRecords,
20505
20629
  });
20506
20630
  this.getData({}, this.skipAggregation === 'onPageChange' ? { skipAggregates: 'true' } : {});
20507
20631
  }
@@ -20514,8 +20638,10 @@ class DynamicTableComponent {
20514
20638
  // check if loged in user is in viewers array or not
20515
20639
  if (element['viewers:users'] && element['viewers:users'].length) {
20516
20640
  element.isReaded = false;
20517
- element['viewers:users'].map(user => {
20518
- if (user.username === this.nuxeoService.nuxeoClient.user.properties.username && user.state === "read") {
20641
+ element['viewers:users'].map((user) => {
20642
+ if (user.username ===
20643
+ this.nuxeoService.nuxeoClient.user.properties.username &&
20644
+ user.state === 'read') {
20519
20645
  element.isReaded = true;
20520
20646
  }
20521
20647
  });
@@ -20525,8 +20651,8 @@ class DynamicTableComponent {
20525
20651
  }
20526
20652
  }
20527
20653
  }
20528
- DynamicTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableComponent, deps: [{ token: AdapterService }, { token: CallApiService }, { token: NuxeoService }, { token: DynamicTableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
20529
- DynamicTableComponent.ɵcmp = i0.ɵɵ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", higlightUnread: "higlightUnread", 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: TemplateRef, static: true }], usesOnChanges: true, ngImport: i0, 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 my-3\"\r\n\t\t[ngClass]=\"{ relative: pageSizes?.length }\"\r\n\t\t*ngIf=\"rows.length \"\r\n\t>\r\n\t\t<cts-pagination\r\n *ngIf=\"totalRecords > pageSize\"\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[higlightUnread]=\"higlightUnread\"\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:var(--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))}.pagination-iner-wraper{display:var(--pagination-inner-display, flex);justify-content:var(--pagination-inner-justify, center);align-items:var(--pagination-inner-align, center)}\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", "higlightUnread", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
20654
+ DynamicTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableComponent, deps: [{ token: AdapterService }, { token: CallApiService }, { token: NuxeoService }, { token: DynamicTableService }, { token: i0.ChangeDetectorRef }, { token: TableHooksService }], target: i0.ɵɵFactoryTarget.Component });
20655
+ DynamicTableComponent.ɵcmp = i0.ɵɵ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", higlightUnread: "higlightUnread", 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: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, 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 my-3\"\r\n\t\t[ngClass]=\"{ relative: pageSizes?.length }\"\r\n\t\t*ngIf=\"rows.length \"\r\n\t>\r\n\t\t<cts-pagination\r\n *ngIf=\"totalRecords > pageSize\"\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[higlightUnread]=\"higlightUnread\"\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:var(--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))}.pagination-iner-wraper{display:var(--pagination-inner-display, flex);justify-content:var(--pagination-inner-justify, center);align-items:var(--pagination-inner-align, center)}\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", "higlightUnread", "tableMode", "componentName", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
20530
20656
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTableComponent, decorators: [{
20531
20657
  type: Component,
20532
20658
  args: [{
@@ -20536,10 +20662,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
20536
20662
  encapsulation: ViewEncapsulation.None,
20537
20663
  host: {
20538
20664
  '[class.loading-results]': 'loading',
20539
- '[class.no-data]': 'rows.length <= 0'
20540
- }
20665
+ '[class.no-data]': 'rows.length <= 0',
20666
+ },
20541
20667
  }]
20542
- }], ctorParameters: function () { return [{ type: AdapterService }, { type: CallApiService }, { type: NuxeoService }, { type: DynamicTableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onRowSelected: [{
20668
+ }], ctorParameters: function () { return [{ type: AdapterService }, { type: CallApiService }, { type: NuxeoService }, { type: DynamicTableService }, { type: i0.ChangeDetectorRef }, { type: TableHooksService }]; }, propDecorators: { onRowSelected: [{
20543
20669
  type: Output
20544
20670
  }], onRowIndexSelected: [{
20545
20671
  type: Output
@@ -43097,76 +43223,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
43097
43223
  }]
43098
43224
  }], ctorParameters: function () { return [{ type: ChartDataTransformers }]; } });
43099
43225
 
43100
- class DynamicTimelineReportService {
43101
- constructor(_ndfReportsService) {
43102
- this._ndfReportsService = _ndfReportsService;
43103
- this._isInitialized = false;
43104
- this.isLoadingResult = false;
43105
- this._selectedGroupSub = new BehaviorSubject(null);
43106
- this.selectedGroup$ = this._selectedGroupSub.asObservable();
43107
- this._rebuildTriggerSub = new BehaviorSubject(false);
43108
- this.rebuild$ = this._rebuildTriggerSub.asObservable();
43109
- }
43110
- changeGroup(group) {
43111
- this._selectedGroupSub.next(group);
43112
- this.rebuild();
43113
- }
43114
- rebuild() {
43115
- this._rebuildTriggerSub.next(true);
43116
- }
43117
- prepareData() {
43118
- return pipe(tap(([config, criteria]) => {
43119
- var _a;
43120
- if (!this._selectedGroupSub.getValue()) {
43121
- this._selectedGroupSub.next(((_a = config === null || config === void 0 ? void 0 : config.group) === null || _a === void 0 ? void 0 : _a.selected) || 'week');
43122
- }
43123
- this.payload = ___default.merge(this.prepareSelectedGroups(config), criteria || {});
43124
- }), switchMap(([config, criteria]) => {
43125
- var _a, _b, _c;
43126
- const request = config === null || config === void 0 ? void 0 : config.request;
43127
- if (!request) {
43128
- return of(null);
43129
- }
43130
- let _payload = this.payload;
43131
- if (((_a = request === null || request === void 0 ? void 0 : request.actions) === null || _a === void 0 ? void 0 : _a.beforeSubmit) && typeof ((_b = request === null || request === void 0 ? void 0 : request.actions) === null || _b === void 0 ? void 0 : _b.beforeSubmit) === 'string') {
43132
- try {
43133
- _payload = Evaluator.evaluate((_c = request === null || request === void 0 ? void 0 : request.actions) === null || _c === void 0 ? void 0 : _c.beforeSubmit, { config, criteria: this.payload }, 'payload');
43134
- }
43135
- catch (e) {
43136
- console.error(e);
43137
- _payload = this.payload;
43138
- }
43139
- }
43140
- const data$ = this._ndfReportsService.getData(request, _payload).pipe(catchError((error) => {
43141
- console.error(error);
43142
- return of(null);
43143
- }), finalize(() => {
43144
- this.isLoadingResult = false;
43145
- }));
43146
- return forkJoin({
43147
- config: of(config),
43148
- data: data$
43149
- });
43150
- }));
43151
- }
43152
- prepareSelectedGroups(config) {
43153
- const data = config.datasource.map((source) => ({
43154
- name: source.aggregation,
43155
- interval: this._selectedGroupSub.getValue()
43156
- }));
43157
- return {
43158
- payload: {
43159
- aggregationNames: data
43160
- }
43161
- };
43162
- }
43163
- }
43164
- DynamicTimelineReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, deps: [{ token: NdfReportsService }], target: i0.ɵɵFactoryTarget.Injectable });
43165
- DynamicTimelineReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService });
43166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, decorators: [{
43167
- type: Injectable
43168
- }], ctorParameters: function () { return [{ type: NdfReportsService }]; } });
43169
-
43170
43226
  class ReportsDataTransformers {
43171
43227
  constructor() {
43172
43228
  this._transformations = new Map();
@@ -43235,9 +43291,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
43235
43291
  args: [{ providedIn: 'root' }]
43236
43292
  }] });
43237
43293
 
43294
+ class NdfReportsService extends BaseService {
43295
+ constructor(injector, _reportsDataTransformers) {
43296
+ super(injector);
43297
+ this._reportsDataTransformers = _reportsDataTransformers;
43298
+ }
43299
+ getData(request, criteria = {}) {
43300
+ return (request === null || request === void 0 ? void 0 : request.customUrl)
43301
+ ? this._customQuery(request, criteria)
43302
+ : this._query(request, criteria);
43303
+ }
43304
+ _query(request, criteria) {
43305
+ return this.query({
43306
+ pageProvider: request.pageProvider,
43307
+ headers: request === null || request === void 0 ? void 0 : request.headers,
43308
+ params: criteria === null || criteria === void 0 ? void 0 : criteria.params,
43309
+ }).pipe(switchMap((response) => !!(request === null || request === void 0 ? void 0 : request.transformer)
43310
+ ? this._reportsDataTransformers.transform(request === null || request === void 0 ? void 0 : request.transformer, response)
43311
+ : of(response)));
43312
+ }
43313
+ _customQuery(request, criteria) {
43314
+ var _a;
43315
+ return this._callApiService
43316
+ .customQuery({
43317
+ url: '/api/v1' + request.customUrl.url,
43318
+ method: ((_a = request.customUrl) === null || _a === void 0 ? void 0 : _a.method) || 'GET',
43319
+ }, Object.assign({}, (criteria === null || criteria === void 0 ? void 0 : criteria.params) || {}, (request === null || request === void 0 ? void 0 : request.params) || {}), request === null || request === void 0 ? void 0 : request.headers, Object.assign({}, (criteria === null || criteria === void 0 ? void 0 : criteria.payload) || {}, (request === null || request === void 0 ? void 0 : request.payload) || {}))
43320
+ .pipe(switchMap((response) => !!(request === null || request === void 0 ? void 0 : request.transformer)
43321
+ ? this._reportsDataTransformers.transform(request === null || request === void 0 ? void 0 : request.transformer, response)
43322
+ : of(response)));
43323
+ }
43324
+ prepareRequest(request, criteria) {
43325
+ const params = Object.assign(Object.assign({ pageSize: 1 }, ((request === null || request === void 0 ? void 0 : request.params) || {})), ((criteria === null || criteria === void 0 ? void 0 : criteria.params) || {}));
43326
+ const payload = ___default.mergeWith(request.payload || {}, (criteria === null || criteria === void 0 ? void 0 : criteria.payload) || {}, (objValue, srcValue, key) => {
43327
+ if (Array.isArray(objValue) && key === 'predicateList') {
43328
+ return objValue.concat(srcValue);
43329
+ }
43330
+ });
43331
+ return {
43332
+ params,
43333
+ payload,
43334
+ };
43335
+ }
43336
+ }
43337
+ NdfReportsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, deps: [{ token: i0.Injector }, { token: ReportsDataTransformers }], target: i0.ɵɵFactoryTarget.Injectable });
43338
+ NdfReportsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, providedIn: 'root' });
43339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, decorators: [{
43340
+ type: Injectable,
43341
+ args: [{
43342
+ providedIn: 'root',
43343
+ }]
43344
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: ReportsDataTransformers }]; } });
43345
+
43238
43346
  class ReportsHooksService {
43239
43347
  constructor() {
43240
43348
  this.beforeSubmitHooks = [];
43349
+ this.reportsActions = new Map();
43241
43350
  }
43242
43351
  registerBeforeSubmit(handler) {
43243
43352
  this.beforeSubmitHooks.push(handler);
@@ -43277,6 +43386,38 @@ class ReportsHooksService {
43277
43386
  return payload;
43278
43387
  }
43279
43388
  }
43389
+ registerBeforeSubmitAction(name, action) {
43390
+ this.reportsActions.set(name, action);
43391
+ }
43392
+ unregisterBeforeSubmitAction(name) {
43393
+ this.reportsActions.delete(name);
43394
+ }
43395
+ executeBeforeSubmitAction(name, context) {
43396
+ var _a;
43397
+ return __awaiter(this, void 0, void 0, function* () {
43398
+ const action = this.reportsActions.get(name);
43399
+ if (!action) {
43400
+ console.warn(`beforeSubmit action "${name}" not found`);
43401
+ return {
43402
+ request: context.request,
43403
+ data: context.data,
43404
+ };
43405
+ }
43406
+ try {
43407
+ return ((_a = (yield action(context))) !== null && _a !== void 0 ? _a : {
43408
+ request: context.request,
43409
+ data: context.data,
43410
+ });
43411
+ }
43412
+ catch (e) {
43413
+ console.error(`Error executing beforeSubmit action "${name}"`, e);
43414
+ return {
43415
+ request: context.request,
43416
+ data: context.data,
43417
+ };
43418
+ }
43419
+ });
43420
+ }
43280
43421
  }
43281
43422
  ReportsHooksService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportsHooksService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43282
43423
  ReportsHooksService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ReportsHooksService, providedIn: 'root' });
@@ -43287,61 +43428,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
43287
43428
  }]
43288
43429
  }] });
43289
43430
 
43290
- class NdfReportsService extends BaseService {
43291
- constructor(injector, _reportsDataTransformers, _reportsHooksService) {
43292
- super(injector);
43293
- this._reportsDataTransformers = _reportsDataTransformers;
43431
+ class DynamicTimelineReportService {
43432
+ constructor(_ndfReportsService, _reportsHooksService) {
43433
+ this._ndfReportsService = _ndfReportsService;
43294
43434
  this._reportsHooksService = _reportsHooksService;
43435
+ this._isInitialized = false;
43436
+ this.isLoadingResult = false;
43437
+ this._selectedGroupSub = new BehaviorSubject(null);
43438
+ this.selectedGroup$ = this._selectedGroupSub.asObservable();
43439
+ this._rebuildTriggerSub = new BehaviorSubject(false);
43440
+ this.rebuild$ = this._rebuildTriggerSub.asObservable();
43295
43441
  }
43296
- getData(request, criteria = {}) {
43297
- return (request === null || request === void 0 ? void 0 : request.customUrl)
43298
- ? this._customQuery(request, criteria)
43299
- : this._query(request, criteria);
43442
+ changeGroup(group) {
43443
+ this._selectedGroupSub.next(group);
43444
+ this.rebuild();
43300
43445
  }
43301
- _query(request, criteria) {
43302
- return from(this._reportsHooksService.executeBeforeSubmit(Object.assign(Object.assign({}, this._prepareRequest(request, criteria)), { request }))).pipe(switchMap(({ params }) => this.query({
43303
- pageProvider: request.pageProvider,
43304
- headers: request === null || request === void 0 ? void 0 : request.headers,
43305
- params: params,
43306
- })), switchMap((response) => !!(request === null || request === void 0 ? void 0 : request.transformer)
43307
- ? this._reportsDataTransformers.transform(request === null || request === void 0 ? void 0 : request.transformer, response)
43308
- : of(response)));
43446
+ rebuild() {
43447
+ this._rebuildTriggerSub.next(true);
43309
43448
  }
43310
- _customQuery(request, criteria) {
43311
- return from(this._reportsHooksService.executeBeforeSubmit(Object.assign(Object.assign({}, this._prepareRequest(request, criteria)), { request }))).pipe(switchMap(({ params, payload }) => {
43449
+ prepareData() {
43450
+ return pipe(tap(([config, criteria]) => {
43312
43451
  var _a;
43313
- return this.request({
43314
- type: ((_a = request.customUrl) === null || _a === void 0 ? void 0 : _a.method) || 'get',
43315
- endpoint: request.customUrl.url,
43316
- headers: request === null || request === void 0 ? void 0 : request.headers,
43317
- queryParams: params,
43318
- payload: payload,
43319
- });
43320
- }), switchMap((response) => !!(request === null || request === void 0 ? void 0 : request.transformer)
43321
- ? this._reportsDataTransformers.transform(request === null || request === void 0 ? void 0 : request.transformer, response)
43322
- : of(response)));
43323
- }
43324
- _prepareRequest(request, criteria) {
43325
- const params = Object.assign(Object.assign({ pageSize: 1 }, ((request === null || request === void 0 ? void 0 : request.params) || {})), ((criteria === null || criteria === void 0 ? void 0 : criteria.params) || {}));
43326
- const payload = ___default.mergeWith(request.payload || {}, (criteria === null || criteria === void 0 ? void 0 : criteria.payload) || {}, (objValue, srcValue, key) => {
43327
- if (Array.isArray(objValue) && key === 'predicateList') {
43328
- return objValue.concat(srcValue);
43452
+ if (!this._selectedGroupSub.getValue()) {
43453
+ this._selectedGroupSub.next(((_a = config === null || config === void 0 ? void 0 : config.group) === null || _a === void 0 ? void 0 : _a.selected) || 'week');
43329
43454
  }
43330
- });
43455
+ this.payload = ___default.merge(this.prepareSelectedGroups(config), criteria || {});
43456
+ }), switchMap(([config, criteria]) => {
43457
+ var _a;
43458
+ const request = config === null || config === void 0 ? void 0 : config.request;
43459
+ if (!request) {
43460
+ return of(null);
43461
+ }
43462
+ let _request = {
43463
+ request,
43464
+ data: this._ndfReportsService.prepareRequest(request, this.payload),
43465
+ };
43466
+ const beforeSubmit$ = ((_a = request === null || request === void 0 ? void 0 : request.actions) === null || _a === void 0 ? void 0 : _a.beforeSubmit)
43467
+ ? from(this._reportsHooksService.executeBeforeSubmitAction(request.actions.beforeSubmit, Object.assign({ config: Object.assign(Object.assign({}, config), { request: undefined }), criteria }, _request)))
43468
+ : of(_request);
43469
+ return beforeSubmit$.pipe(switchMap((req) => forkJoin({
43470
+ config: of(config),
43471
+ data: this._ndfReportsService.getData(req.request, req.data).pipe(catchError((error) => {
43472
+ console.error(error);
43473
+ return of(null);
43474
+ }), finalize(() => (this.isLoadingResult = false))),
43475
+ })));
43476
+ }));
43477
+ }
43478
+ prepareSelectedGroups(config) {
43479
+ const data = config.datasource.map((source) => ({
43480
+ name: source.aggregation,
43481
+ interval: this._selectedGroupSub.getValue(),
43482
+ }));
43331
43483
  return {
43332
- params,
43333
- payload,
43484
+ payload: {
43485
+ aggregationNames: data,
43486
+ },
43334
43487
  };
43335
43488
  }
43336
43489
  }
43337
- NdfReportsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, deps: [{ token: i0.Injector }, { token: ReportsDataTransformers }, { token: ReportsHooksService }], target: i0.ɵɵFactoryTarget.Injectable });
43338
- NdfReportsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, providedIn: 'root' });
43339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsService, decorators: [{
43340
- type: Injectable,
43341
- args: [{
43342
- providedIn: 'root',
43343
- }]
43344
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: ReportsDataTransformers }, { type: ReportsHooksService }]; } });
43490
+ DynamicTimelineReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, deps: [{ token: NdfReportsService }, { token: ReportsHooksService }], target: i0.ɵɵFactoryTarget.Injectable });
43491
+ DynamicTimelineReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService });
43492
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicTimelineReportService, decorators: [{
43493
+ type: Injectable
43494
+ }], ctorParameters: function () { return [{ type: NdfReportsService }, { type: ReportsHooksService }]; } });
43345
43495
 
43346
43496
  /**
43347
43497
  * Horizontal Bar Options
@@ -45105,23 +45255,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45105
45255
  type: Output
45106
45256
  }] } });
45107
45257
 
45108
- class CheckConditionPipe {
45109
- transform(activeQuery, reports, config) {
45110
- if (reports === null || reports === void 0 ? void 0 : reports.condition) {
45111
- return Evaluator.evaluate(reports === null || reports === void 0 ? void 0 : reports.condition, { activeQuery, config }, 'show');
45112
- }
45113
- return true;
45114
- }
45115
- }
45116
- CheckConditionPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
45117
- CheckConditionPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, name: "checkCondition" });
45118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, decorators: [{
45119
- type: Pipe,
45120
- args: [{
45121
- name: 'checkCondition',
45122
- }]
45123
- }] });
45124
-
45125
45258
  const slideAnimation = trigger('slideInOut', [
45126
45259
  state('closed', style({
45127
45260
  transform: 'translateX(var(--ndf-reports-details-translateX, -100%))',
@@ -45130,7 +45263,7 @@ const slideAnimation = trigger('slideInOut', [
45130
45263
  transition('closed <=> open', animate('200ms ease-out')),
45131
45264
  ]);
45132
45265
  class NdfReportsComponent extends DestroySubject {
45133
- constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone) {
45266
+ constructor(_translateService, _filtersMapper, _ndfReportsService, _chartHelperService, _transformService, _cdr, _filterQueryService, _stateService, _configurationService, _router, _ngZone, _reportsHooksService) {
45134
45267
  super();
45135
45268
  this._translateService = _translateService;
45136
45269
  this._filtersMapper = _filtersMapper;
@@ -45143,6 +45276,7 @@ class NdfReportsComponent extends DestroySubject {
45143
45276
  this._configurationService = _configurationService;
45144
45277
  this._router = _router;
45145
45278
  this._ngZone = _ngZone;
45279
+ this._reportsHooksService = _reportsHooksService;
45146
45280
  this._isHeightUpdated = false;
45147
45281
  this.direction = 'rtl';
45148
45282
  this.isPanelOpened = false;
@@ -45155,6 +45289,7 @@ class NdfReportsComponent extends DestroySubject {
45155
45289
  this.reportConfig$ = this._configSubject.asObservable();
45156
45290
  this._filtersCriteriaSubject = new BehaviorSubject(null);
45157
45291
  this.filtersParams$ = this._filtersCriteriaSubject.asObservable();
45292
+ this._triggerFiltersSub = new BehaviorSubject(true);
45158
45293
  this._detailsFiltersSubject = new BehaviorSubject(null);
45159
45294
  this.detailsFiltersParams$ = this._detailsFiltersSubject.asObservable();
45160
45295
  this._reportDetailsSubject = new BehaviorSubject(null);
@@ -45168,6 +45303,12 @@ class NdfReportsComponent extends DestroySubject {
45168
45303
  this.trackByFn = (_, report) => {
45169
45304
  return report.id;
45170
45305
  };
45306
+ this.triggerUpdate = () => {
45307
+ this._triggerFiltersSub.next(true);
45308
+ };
45309
+ this.resetFilters = () => {
45310
+ this._resetQueryAndFiltersCriteria();
45311
+ };
45171
45312
  this.filterChanged = (criteria) => {
45172
45313
  if (___default.isEqual(this.activeQuery, criteria)) {
45173
45314
  return;
@@ -45208,6 +45349,12 @@ class NdfReportsComponent extends DestroySubject {
45208
45349
  this.reportsData$ = this._prepareReports();
45209
45350
  this._handleKeyboardEvent();
45210
45351
  }
45352
+ callLoadCondition() {
45353
+ if (this.loadCondition && typeof this.loadCondition == 'function') {
45354
+ return this.loadCondition(this.activeQuery);
45355
+ }
45356
+ return true;
45357
+ }
45211
45358
  ngOnChanges(changes) {
45212
45359
  var _a, _b;
45213
45360
  const reportsKey = (_a = changes.reportsKey) === null || _a === void 0 ? void 0 : _a.currentValue;
@@ -45315,8 +45462,9 @@ class NdfReportsComponent extends DestroySubject {
45315
45462
  _prepareReports() {
45316
45463
  this.isLoadingResult = true;
45317
45464
  return combineLatest([
45318
- this.filtersParams$.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b))),
45465
+ this.filtersParams$,
45319
45466
  this.reportConfig$,
45467
+ this._triggerFiltersSub,
45320
45468
  ]).pipe(tap(() => {
45321
45469
  this.isLoadingResult = true;
45322
45470
  this._cdr.detectChanges();
@@ -45329,7 +45477,7 @@ class NdfReportsComponent extends DestroySubject {
45329
45477
  if (!criteria && !!config.activeQuery) {
45330
45478
  _payload = this.prepareCriteriaPayload(config.activeQuery);
45331
45479
  }
45332
- const data$ = this._ndfReportsService.getData(request, _payload).pipe(switchMap((reports) => {
45480
+ const data$ = from(this._reportsHooksService.executeBeforeSubmit(Object.assign(Object.assign({}, this._ndfReportsService.prepareRequest(request, criteria)), { request }))).pipe(switchMap((res) => this._ndfReportsService.getData(request, res)), switchMap((reports) => {
45333
45481
  return this._transformService.prepareData(reports, config);
45334
45482
  }), finalize(() => {
45335
45483
  this.isLoadingResult = false;
@@ -45449,8 +45597,8 @@ class NdfReportsComponent extends DestroySubject {
45449
45597
  this._filtersCriteriaSubject.next(null);
45450
45598
  }
45451
45599
  }
45452
- NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: ReportConfigurationService }, { token: i1$5.Router }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
45453
- NdfReportsComponent.ɵcmp = i0.ɵɵ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" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container\r\n *ngIf=\"\r\n activeQuery | checkCondition : reportConfig : config;\r\n else emptyContent\r\n \"\r\n >\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n <mat-spinner\r\n *ngIf=\"isLoadingResult\"\r\n class=\"mt-5 mx-auto\"\r\n [diameter]=\"48\"\r\n ></mat-spinner>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);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%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.ndf-reports *{box-sizing:border-box;min-height:0}.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-pis: 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-pis, 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;width:100%;margin:0;padding:0;page-break-after:avoid}}.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-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: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--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$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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: i6.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", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "checkCondition": CheckConditionPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
45600
+ NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: ReportConfigurationService }, { token: i1$5.Router }, { token: i0.NgZone }, { token: ReportsHooksService }], target: i0.ɵɵFactoryTarget.Component });
45601
+ NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", loadCondition: "loadCondition", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div\r\n class=\"absolute flex justify-center items-center loading-result\"\r\n *ngIf=\"isLoadingResult && callLoadCondition()\"\r\n >\r\n <mat-spinner class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n </div>\r\n\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n triggerUpdate: triggerUpdate,\r\n reset: resetFilters,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length && callLoadCondition()\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container *ngIf=\"callLoadCondition(); else emptyContent\">\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);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%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.loading-result{background:var(--loading-result-background, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--loading-result-filter, blur(3px));backdrop-filter:var(--loading-result-filter, blur(3px));width:100%;height:100%;z-index:3}.ndf-reports *{box-sizing:border-box;min-height:0}.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-pis: 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-pis, 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;width:100%;margin:0;padding:0;page-break-after:avoid}}.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-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: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--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: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1$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$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { 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", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
45454
45602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
45455
45603
  type: Component,
45456
45604
  args: [{
@@ -45463,7 +45611,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45463
45611
  },
45464
45612
  animations: [slideAnimation],
45465
45613
  }]
45466
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: FiltersMapperService }, { type: NdfReportsService }, { type: ChartManagerService }, { type: ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: FilterQueryService }, { type: ReportsStateService }, { type: ReportConfigurationService }, { type: i1$5.Router }, { type: i0.NgZone }]; }, propDecorators: { fluidDirective: [{
45614
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: FiltersMapperService }, { type: NdfReportsService }, { type: ChartManagerService }, { type: ReportTransformService }, { type: i0.ChangeDetectorRef }, { type: FilterQueryService }, { type: ReportsStateService }, { type: ReportConfigurationService }, { type: i1$5.Router }, { type: i0.NgZone }, { type: ReportsHooksService }]; }, propDecorators: { fluidDirective: [{
45467
45615
  type: ViewChild,
45468
45616
  args: [FluidHeightDirective]
45469
45617
  }], jsonEditorEnabled: [{
@@ -45472,6 +45620,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45472
45620
  type: Input
45473
45621
  }], navigateRoute: [{
45474
45622
  type: Input
45623
+ }], loadCondition: [{
45624
+ type: Input
45475
45625
  }], config: [{
45476
45626
  type: Input
45477
45627
  }], onQueryChange: [{
@@ -45487,6 +45637,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
45487
45637
  args: [EMPTY_CONTENT_TEMPLATE, { read: TemplateRef }]
45488
45638
  }] } });
45489
45639
 
45640
+ class CheckConditionPipe {
45641
+ transform(activeQuery, condition, config) {
45642
+ if (condition) {
45643
+ return Evaluator.evaluate(condition, { activeQuery, config }, 'show');
45644
+ }
45645
+ return true;
45646
+ }
45647
+ }
45648
+ CheckConditionPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
45649
+ CheckConditionPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, name: "checkCondition" });
45650
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CheckConditionPipe, decorators: [{
45651
+ type: Pipe,
45652
+ args: [{
45653
+ name: 'checkCondition',
45654
+ }]
45655
+ }] });
45656
+
45490
45657
  const CONTAINERS = [NdfReportsComponent, NdfReportComponent];
45491
45658
  const DIRECTIVES = [
45492
45659
  ScrollableDivDirective,
@@ -45923,7 +46090,7 @@ class ConfigPreviewComponent {
45923
46090
  ngOnInit() { }
45924
46091
  }
45925
46092
  ConfigPreviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45926
- ConfigPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfigPreviewComponent, selector: "app-config-preview", inputs: { type: "type", data: "data" }, ngImport: i0, template: "<ng-container *ngIf=\"data | validateObject\">\r\n\t<ng-container [ngSwitch]=\"type\">\r\n\t\t<app-ndf-table *ngSwitchCase=\"types.TABLES\" [config]=\"data\"></app-ndf-table>\r\n\t\t<app-ndf-reports *ngSwitchCase=\"types.REPORTS\" [config]=\"data\"></app-ndf-reports>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host{display:block;height:var(--monaco-config-editor-height, 100%);border:var(--monaco-config-editor-border, 1px solid var(--monaco-border-color, #bbb))}\n"], components: [{ type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }, { type: NdfReportsComponent, selector: "app-ndf-reports", inputs: ["jsonEditorEnabled", "reportsKey", "navigateRoute", "config"], outputs: ["onQueryChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "validateObject": ValidateObjectPipe } });
46093
+ ConfigPreviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: ConfigPreviewComponent, selector: "app-config-preview", inputs: { type: "type", data: "data" }, ngImport: i0, template: "<ng-container *ngIf=\"data | validateObject\">\r\n\t<ng-container [ngSwitch]=\"type\">\r\n\t\t<app-ndf-table *ngSwitchCase=\"types.TABLES\" [config]=\"data\"></app-ndf-table>\r\n\t\t<app-ndf-reports *ngSwitchCase=\"types.REPORTS\" [config]=\"data\"></app-ndf-reports>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [":host{display:block;height:var(--monaco-config-editor-height, 100%);border:var(--monaco-config-editor-border, 1px solid var(--monaco-border-color, #bbb))}\n"], components: [{ type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }, { type: NdfReportsComponent, selector: "app-ndf-reports", inputs: ["jsonEditorEnabled", "reportsKey", "navigateRoute", "loadCondition", "config"], outputs: ["onQueryChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "validateObject": ValidateObjectPipe } });
45927
46094
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigPreviewComponent, decorators: [{
45928
46095
  type: Component,
45929
46096
  args: [{
@@ -48702,5 +48869,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
48702
48869
  * Generated bundle index. Do not edit.
48703
48870
  */
48704
48871
 
48705
- export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseCustomReport, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseEditorConfigService, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartCallbacksRegisterService, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, ChartThemeService, index$2 as ChartUtils, ChartsModule, CheckConditionPipe$1 as CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, ColumnRendererRegistryService, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_CONTENT_TEMPLATE, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmdhaAuthDialog, EmdhaService, EmptyContentTemplateDirective, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILE_CONTENT, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileEventType, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FileStatus, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GeneralNotificationPopupComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HEADER_PANEL_TEMPLATE, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HeaderPanelTemplateDirective, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, InsertSingPosition, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, METADATA_EDITOR_OPTIONS, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfScannerComponent, NdfScannerModule, NdfSignaturePanelComponent, NdfSignaturesModule, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NdfTronExtractText, NdfUploaderBottomSheetComponent, NdfUploaderBottomSheetService, NdfUploaderModule, NdfUploaderService, NdfUploaderSheetEventType, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, OverrideTokenService, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportConfigurationService, ReportTransformService, ReportsDataTransformers, ReportsHooksService, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, ScrollableDivDirective, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SignatureType, SignaturesService, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransactionStatus, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UploadProvider, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService$1 as VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
48872
+ export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseCustomReport, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseEditorConfigService, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartCallbacksRegisterService, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, ChartThemeService, index$2 as ChartUtils, ChartsModule, CheckConditionPipe$1 as CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, ColumnRendererRegistryService, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_CONTENT_TEMPLATE, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmdhaAuthDialog, EmdhaService, EmptyContentTemplateDirective, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILE_CONTENT, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileEventType, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FileStatus, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GeneralNotificationPopupComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HEADER_PANEL_TEMPLATE, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HeaderPanelTemplateDirective, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, InsertSingPosition, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, METADATA_EDITOR_OPTIONS, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfScannerComponent, NdfScannerModule, NdfSignaturePanelComponent, NdfSignaturesModule, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NdfTronExtractText, NdfUploaderBottomSheetComponent, NdfUploaderBottomSheetService, NdfUploaderModule, NdfUploaderService, NdfUploaderSheetEventType, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, OverrideTokenService, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportConfigurationService, ReportTransformService, ReportsDataTransformers, ReportsHooksService, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, ScrollableDivDirective, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SignatureType, SignaturesService, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableHooksService, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransactionStatus, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UploadProvider, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService$1 as VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
48706
48873
  //# sourceMappingURL=nuxeo-development-framework.js.map