nuxeo-development-framework 0.0.19-bos → 0.0.21-bos
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.
- package/fesm2022/nuxeo-development-framework.mjs +131 -319
- package/fesm2022/nuxeo-development-framework.mjs.map +1 -1
- package/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.d.ts +2 -1
- package/lib/components/tables/table/table/table.component.d.ts +2 -1
- package/lib/core/services/initialization/initialization.service.d.ts +0 -3
- package/lib/core/services/nuxeo/nuxeo.service.d.ts +0 -2
- package/package.json +2 -2
- package/lib/core/services/nuxeo/new-nuxeo-overide.d.ts +0 -15
|
@@ -19,14 +19,12 @@ import { ReplaySubject, iif, of, combineLatest, throwError, Observable, forkJoin
|
|
|
19
19
|
import { map, retry, catchError, distinctUntilChanged, takeUntil, take, tap, switchMap, first, delay, expand, last, skip, debounceTime, filter as filter$1, finalize, startWith, retryWhen, concatMap, mergeMap } from 'rxjs/operators';
|
|
20
20
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
21
21
|
import CryptoJS from 'crypto-js';
|
|
22
|
-
import { __decorate, __param } from 'tslib';
|
|
23
22
|
import Nuxeo from 'nuxeo';
|
|
24
23
|
import doFetch from 'nuxeo/lib/deps/fetch';
|
|
25
24
|
import Unmarshallers from 'nuxeo/lib/unmarshallers/unmarshallers';
|
|
26
|
-
import qs from 'querystring';
|
|
27
25
|
import * as i3 from 'ngx-cookie-service';
|
|
28
|
-
import * as _ from 'lodash
|
|
29
|
-
import { merge, omit, cloneDeep, get, has, pick, first as first$1, last as last$1, find, filter, groupBy, sortBy, isEmpty, isNil, isEqual, isString, isNumber, isArray, isObject as isObject$1, nth, endsWith, startsWith, toNumber, each, unionWith, includes, isDate, isBoolean, flatMap, map as map$2 } from 'lodash
|
|
26
|
+
import * as _ from 'lodash';
|
|
27
|
+
import ___default, { merge, omit, cloneDeep, get, has, pick, first as first$1, last as last$1, find, filter, groupBy, sortBy, isEmpty, isNil, isEqual, isString, isNumber, isArray, isObject as isObject$1, nth, endsWith, startsWith, toNumber, each, unionWith, includes, isDate, isBoolean, flatMap, map as map$2 } from 'lodash';
|
|
30
28
|
import * as i1$4 from '@angular/router';
|
|
31
29
|
import { RoutesRecognized, ActivatedRoute, Router, RouterModule, NavigationStart } from '@angular/router';
|
|
32
30
|
import * as i2$4 from '@angular/material/core';
|
|
@@ -45,8 +43,8 @@ import * as i3$2 from '@angular/material/tooltip';
|
|
|
45
43
|
import { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';
|
|
46
44
|
import * as i6 from '@angular/material/progress-spinner';
|
|
47
45
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
48
|
-
import _assign from 'lodash
|
|
49
|
-
import _cloneDeep from 'lodash
|
|
46
|
+
import _assign from 'lodash/assign';
|
|
47
|
+
import _cloneDeep from 'lodash/cloneDeep';
|
|
50
48
|
import * as Forge from 'node-forge';
|
|
51
49
|
import { Jexl } from 'jexl';
|
|
52
50
|
import * as i1$7 from '@angular/cdk/clipboard';
|
|
@@ -64,6 +62,7 @@ import 'moment/locale/ar';
|
|
|
64
62
|
import DOMPurify from 'dompurify';
|
|
65
63
|
import * as i2$3 from 'ngx-infinite-scroll';
|
|
66
64
|
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
65
|
+
import { __decorate } from 'tslib';
|
|
67
66
|
import { Cacheable, LocalStorageStrategy, CacheBuster } from 'ts-cacheable';
|
|
68
67
|
import * as i3$5 from '@ng-select/ng-select';
|
|
69
68
|
import { NgSelectComponent, NgLabelTemplateDirective, NgOptionTemplateDirective, NgSelectModule } from '@ng-select/ng-select';
|
|
@@ -91,8 +90,8 @@ import { Components, FormBuilderComponent, registerCustomFormioComponent, Formio
|
|
|
91
90
|
import * as i1$9 from '@ng-bootstrap/ng-bootstrap';
|
|
92
91
|
import { NgbDate, NgbDatepickerI18n, NgbCalendarIslamicUmalqura, NgbCalendar, NgbDateParserFormatter, NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';
|
|
93
92
|
import { Formio, Utils } from 'formiojs';
|
|
94
|
-
import _find from 'lodash
|
|
95
|
-
import _isEqual from 'lodash
|
|
93
|
+
import _find from 'lodash/find';
|
|
94
|
+
import _isEqual from 'lodash/isEqual';
|
|
96
95
|
import * as i6$1 from '@swimlane/ngx-datatable';
|
|
97
96
|
import { ColumnMode, DatatableComponent, NgxDatatableModule } from '@swimlane/ngx-datatable';
|
|
98
97
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
@@ -620,144 +619,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
620
619
|
}]
|
|
621
620
|
}], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: LocalStoragService }] });
|
|
622
621
|
|
|
623
|
-
let NewNuxeoOverride = class NewNuxeoOverride extends Nuxeo {
|
|
624
|
-
constructor(opts = {}, environment, cookieService) {
|
|
625
|
-
super(opts);
|
|
626
|
-
this.environment = environment;
|
|
627
|
-
this.cookieService = cookieService;
|
|
628
|
-
}
|
|
629
|
-
http(opts = {}) {
|
|
630
|
-
const options = this._computeFetchOptions(opts);
|
|
631
|
-
return new this.Promise((resolve, reject) => {
|
|
632
|
-
this._activeRequests += 1;
|
|
633
|
-
const fetchOptions = {
|
|
634
|
-
method: options.method,
|
|
635
|
-
headers: options.headers,
|
|
636
|
-
body: options.body,
|
|
637
|
-
signal: options.signal
|
|
638
|
-
};
|
|
639
|
-
if (opts.credentials) {
|
|
640
|
-
fetchOptions.credentials = opts.credentials;
|
|
641
|
-
}
|
|
642
|
-
else if (!this._auth) {
|
|
643
|
-
fetchOptions.credentials = 'include';
|
|
644
|
-
}
|
|
645
|
-
doFetch(options.url, fetchOptions)
|
|
646
|
-
.then((res) => {
|
|
647
|
-
this._activeRequests -= 1;
|
|
648
|
-
if (res.status === 401 && !opts.refreshedAuthentication) {
|
|
649
|
-
// try re-authenticate
|
|
650
|
-
opts.refreshedAuthentication = true;
|
|
651
|
-
return (this.refreshAccessToken()
|
|
652
|
-
// return Authentication.refreshAuthentication(this._baseURL, this._auth)
|
|
653
|
-
.then((refreshedToken) => {
|
|
654
|
-
// this.keycloak.getToken().then(refreshedAuth => {
|
|
655
|
-
this._auth = {
|
|
656
|
-
method: 'bearerToken',
|
|
657
|
-
token: refreshedToken,
|
|
658
|
-
clientId: this.environment.nuxeoOptions.client_id, // optional OAuth2 client ID to refresh the access token
|
|
659
|
-
clientSecret: this.environment.nuxeoOptions.client_secret
|
|
660
|
-
};
|
|
661
|
-
this._notifyAuthenticationRefreshed(refreshedToken);
|
|
662
|
-
this.cookieService.set('CMS_CACHABLE', this.encriptFormating(res), 1, '/cts');
|
|
663
|
-
return resolve(this.http(opts));
|
|
664
|
-
// });
|
|
665
|
-
}, (error) => {
|
|
666
|
-
this.logout();
|
|
667
|
-
this.login();
|
|
668
|
-
})
|
|
669
|
-
.catch(() => {
|
|
670
|
-
this.logout();
|
|
671
|
-
this.login();
|
|
672
|
-
throw res;
|
|
673
|
-
}));
|
|
674
|
-
}
|
|
675
|
-
if (!/^2/.test(`${res.status}`)) {
|
|
676
|
-
const error = new Error(res);
|
|
677
|
-
throw res;
|
|
678
|
-
}
|
|
679
|
-
if (options.resolveWithFullResponse || res.status === 204) {
|
|
680
|
-
return resolve(res);
|
|
681
|
-
}
|
|
682
|
-
const contentType = res.headers.get('content-type');
|
|
683
|
-
if (contentType && contentType.indexOf('application/json') === 0) {
|
|
684
|
-
options.nuxeo = this;
|
|
685
|
-
return resolve(res.json().then((json) => Unmarshallers.unmarshall(json, options, res)));
|
|
686
|
-
}
|
|
687
|
-
return resolve(res);
|
|
688
|
-
})
|
|
689
|
-
.catch((error) => {
|
|
690
|
-
this._activeRequests -= 1;
|
|
691
|
-
error.text().then((data) => {
|
|
692
|
-
let ret = {};
|
|
693
|
-
try {
|
|
694
|
-
ret = data ? JSON.parse(data) : {};
|
|
695
|
-
}
|
|
696
|
-
catch (e) {
|
|
697
|
-
ret = {};
|
|
698
|
-
}
|
|
699
|
-
return reject({
|
|
700
|
-
status: error.status,
|
|
701
|
-
ret
|
|
702
|
-
});
|
|
703
|
-
});
|
|
704
|
-
});
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
refreshAccessToken() {
|
|
708
|
-
return this.getAccessToken(this.environment.nuxeoOptions.baseURL, this.environment.nuxeoOptions.client_id, this._auth.token.refresh_token, this.environment.nuxeoOptions.client_secret);
|
|
709
|
-
}
|
|
710
|
-
login() {
|
|
711
|
-
window.location.replace(`${this.environment.nuxeoOptions.baseURL}/oauth2/authorize?client_id=${this.environment.nuxeoOptions.client_id}&client_secret=${this.environment.nuxeoOptions.client_secret}&response_type=code&redirect_uri=${this.environment.nuxeoOptions.authRedirectURL}`);
|
|
712
|
-
}
|
|
713
|
-
logout() {
|
|
714
|
-
this.cookieService.set('CMS_CACHABLE', '', 1, '/cts');
|
|
715
|
-
}
|
|
716
|
-
encriptFormating(cachable) {
|
|
717
|
-
let reformatted = btoa(JSON.stringify(cachable));
|
|
718
|
-
return 'Xnd' + reformatted + 'HsTeT';
|
|
719
|
-
}
|
|
720
|
-
// nrefreshAccessToken = (baseURL, clientId, refreshToken, params = {}) => {
|
|
721
|
-
// if (!baseURL) {
|
|
722
|
-
// throw new Error('Missing `baseURL` argument');
|
|
723
|
-
// }
|
|
724
|
-
// if (!clientId) {
|
|
725
|
-
// throw new Error('Missing `clientId` argument');
|
|
726
|
-
// }
|
|
727
|
-
// if (!refreshToken) {
|
|
728
|
-
// throw new Error('Missing `refreshToken` argument');
|
|
729
|
-
// }
|
|
730
|
-
// const defaultParams = { refresh_token: refreshToken, grant_type: 'refresh_token', client_id: clientId };
|
|
731
|
-
// const body = extend(true, defaultParams, params);
|
|
732
|
-
// return fetchAccessToken(baseURL, body);
|
|
733
|
-
// }
|
|
734
|
-
getAccessToken(baseURL, clientId, refreshToken, clientSecret) {
|
|
735
|
-
let body = {
|
|
736
|
-
refresh_token: refreshToken,
|
|
737
|
-
grant_type: 'refresh_token',
|
|
738
|
-
client_id: clientId,
|
|
739
|
-
client_secret: clientSecret
|
|
740
|
-
};
|
|
741
|
-
// const url = baseURL.endsWith('/') ? baseURL : `${baseURL}/`;
|
|
742
|
-
return new Promise((resolve, reject) => doFetch(`${baseURL}/oauth2/token`, {
|
|
743
|
-
method: 'POST',
|
|
744
|
-
body: qs.stringify(body),
|
|
745
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
|
746
|
-
})
|
|
747
|
-
.then((res) => res.json())
|
|
748
|
-
.then((token) => {
|
|
749
|
-
if (token.error) {
|
|
750
|
-
return reject(token.error);
|
|
751
|
-
}
|
|
752
|
-
return resolve(token);
|
|
753
|
-
})
|
|
754
|
-
.catch((e) => reject(e)));
|
|
755
|
-
}
|
|
756
|
-
};
|
|
757
|
-
NewNuxeoOverride = __decorate([
|
|
758
|
-
__param(1, Inject('environment'))
|
|
759
|
-
], NewNuxeoOverride);
|
|
760
|
-
|
|
761
622
|
class NuxeoOverride extends Nuxeo {
|
|
762
623
|
constructor(opts = {}, keycloak) {
|
|
763
624
|
super(opts);
|
|
@@ -1006,38 +867,6 @@ class NuxeoService {
|
|
|
1006
867
|
}
|
|
1007
868
|
});
|
|
1008
869
|
}
|
|
1009
|
-
initWithNuxeoToken(token) {
|
|
1010
|
-
return new Promise(async (resolve, reject) => {
|
|
1011
|
-
try {
|
|
1012
|
-
this.createClientWithNuxeoToken(token);
|
|
1013
|
-
this.nuxeoClient
|
|
1014
|
-
.connect()
|
|
1015
|
-
.then((client) => {
|
|
1016
|
-
this.authenticated = true;
|
|
1017
|
-
resolve(client);
|
|
1018
|
-
this.checkForRoles();
|
|
1019
|
-
})
|
|
1020
|
-
.catch((error) => {
|
|
1021
|
-
reject(error);
|
|
1022
|
-
});
|
|
1023
|
-
}
|
|
1024
|
-
catch (error) {
|
|
1025
|
-
reject(error);
|
|
1026
|
-
}
|
|
1027
|
-
});
|
|
1028
|
-
}
|
|
1029
|
-
// create nuxeo client using nuxeo token
|
|
1030
|
-
createClientWithNuxeoToken(token) {
|
|
1031
|
-
this.nuxeoClient = new NewNuxeoOverride({
|
|
1032
|
-
baseURL: this.environment.nuxeoOptions.baseURL,
|
|
1033
|
-
auth: {
|
|
1034
|
-
method: "bearerToken",
|
|
1035
|
-
token: token,
|
|
1036
|
-
clientId: this.environment.nuxeoOptions.client_id, // optional OAuth2 client ID to refresh the access token
|
|
1037
|
-
clientSecret: this.environment.nuxeoOptions.client_secret,
|
|
1038
|
-
},
|
|
1039
|
-
}, this.environment, this.cookiesService);
|
|
1040
|
-
}
|
|
1041
870
|
// create nuxeo client using keycock token
|
|
1042
871
|
createTokenClient(token) {
|
|
1043
872
|
this.nuxeoClient = new NuxeoOverride({
|
|
@@ -1711,11 +1540,11 @@ class CallApiService {
|
|
|
1711
1540
|
let _payload = body;
|
|
1712
1541
|
if (query?.payload) {
|
|
1713
1542
|
const _key = 'predicateList';
|
|
1714
|
-
_payload =
|
|
1543
|
+
_payload = ___default.mergeWith(body, query.payload, (objValue, srcValue, key) => {
|
|
1715
1544
|
if (key === _key) {
|
|
1716
1545
|
const objArray = Array.isArray(objValue) ? objValue : [];
|
|
1717
1546
|
const srcArray = Array.isArray(srcValue) ? srcValue : [];
|
|
1718
|
-
return
|
|
1547
|
+
return ___default.uniqWith(objArray.concat(srcArray), ___default.isEqual);
|
|
1719
1548
|
}
|
|
1720
1549
|
// if (Array.isArray(objValue) && key === _key) {
|
|
1721
1550
|
// return _.uniqWith(objValue.concat(srcValue), _.isEqual);
|
|
@@ -2230,7 +2059,14 @@ class InitializationService {
|
|
|
2230
2059
|
let cachable = this.cookieService.get('CMS_CACHABLE');
|
|
2231
2060
|
if (cachable && cachable !== 'null') {
|
|
2232
2061
|
// there is cachable exist
|
|
2233
|
-
this.
|
|
2062
|
+
this.nuxeoService.init().then((client) => {
|
|
2063
|
+
this.userPreferences.setStoragePrefix(client.user.id);
|
|
2064
|
+
resolve(true);
|
|
2065
|
+
})
|
|
2066
|
+
.catch((err) => {
|
|
2067
|
+
console.error(err);
|
|
2068
|
+
reject(err);
|
|
2069
|
+
});
|
|
2234
2070
|
}
|
|
2235
2071
|
else {
|
|
2236
2072
|
// no cachable exist
|
|
@@ -2241,45 +2077,17 @@ class InitializationService {
|
|
|
2241
2077
|
if (code && code.length) {
|
|
2242
2078
|
// if there is code exist then get from nuxeo and intite client thenr esolve with true
|
|
2243
2079
|
console.log(`======Auth Code===== ${code}`);
|
|
2244
|
-
this.
|
|
2245
|
-
console.log(res);
|
|
2246
|
-
this.cookieService.set('CMS_CACHABLE', this.encriptFormating(res), 1, '/cts');
|
|
2247
|
-
// this.router.navigate([], {
|
|
2248
|
-
// queryParams: {
|
|
2249
|
-
// 'code': null
|
|
2250
|
-
// },
|
|
2251
|
-
// queryParamsHandling: 'merge'
|
|
2252
|
-
// })
|
|
2253
|
-
this.initiateClientWithNuxeo(res, resolve, reject);
|
|
2254
|
-
});
|
|
2080
|
+
this.cookieService.set('CMS_CACHABLE', this.encriptFormating(code), 1, '/cts');
|
|
2255
2081
|
}
|
|
2256
2082
|
else {
|
|
2257
2083
|
// no cachable and no code then need to go to login page
|
|
2258
2084
|
this.routerSubscription ? this.routerSubscription.unsubscribe() : null;
|
|
2259
|
-
this.login()
|
|
2085
|
+
// this.login()
|
|
2260
2086
|
}
|
|
2261
2087
|
}
|
|
2262
2088
|
});
|
|
2263
2089
|
}
|
|
2264
2090
|
}
|
|
2265
|
-
getFromNuxeo(code) {
|
|
2266
|
-
return this.httpClient.post(`${this.environment.nuxeoOptions.baseURL}/oauth2/token?grant_type=authorization_code&code=${code}&client_id=${this.environment.nuxeoOptions.client_id}&client_secret=${this.environment.nuxeoOptions.client_secret}&redirect_uri=${this.environment.nuxeoOptions.authRedirectURL}`, {});
|
|
2267
|
-
}
|
|
2268
|
-
initiateClientWithNuxeo(token, resolve, reject) {
|
|
2269
|
-
this.nuxeoService.initWithNuxeoToken(token).then((client) => {
|
|
2270
|
-
this.userPreferences.setStoragePrefix(client.user.id);
|
|
2271
|
-
this.routerSubscription ? this.routerSubscription.unsubscribe() : null;
|
|
2272
|
-
resolve(true);
|
|
2273
|
-
})
|
|
2274
|
-
.catch((err) => {
|
|
2275
|
-
console.error(err);
|
|
2276
|
-
this.routerSubscription ? this.routerSubscription.unsubscribe() : null;
|
|
2277
|
-
reject(err);
|
|
2278
|
-
});
|
|
2279
|
-
}
|
|
2280
|
-
login() {
|
|
2281
|
-
window.location.replace(`${this.environment.nuxeoOptions.baseURL}/oauth2/authorize?client_id=${this.environment.nuxeoOptions.client_id}&client_secret=${this.environment.nuxeoOptions.client_secret}&response_type=code&redirect_uri=${this.environment.nuxeoOptions.authRedirectURL}`);
|
|
2282
|
-
}
|
|
2283
2091
|
encriptFormating(cachable) {
|
|
2284
2092
|
let reformatted = btoa(JSON.stringify(cachable));
|
|
2285
2093
|
return 'Xnd' + reformatted + 'HsTeT';
|
|
@@ -4729,8 +4537,8 @@ class BaseEditorConfigService extends BaseService {
|
|
|
4729
4537
|
}
|
|
4730
4538
|
_getDataFromLocal({ key, type, app, localPath }) {
|
|
4731
4539
|
const config = this.appConfigService.myConfiguration || {};
|
|
4732
|
-
const base = localPath ?
|
|
4733
|
-
const data = cloneDeep(
|
|
4540
|
+
const base = localPath ? ___default.get(config, localPath) : config;
|
|
4541
|
+
const data = cloneDeep(___default.get(base, key));
|
|
4734
4542
|
return of({
|
|
4735
4543
|
submitted: false,
|
|
4736
4544
|
data: {
|
|
@@ -14410,7 +14218,7 @@ class DynamicFormSelectUsersComponent {
|
|
|
14410
14218
|
}
|
|
14411
14219
|
filterUsers(data, path) {
|
|
14412
14220
|
let filterData = data.filter((user) => {
|
|
14413
|
-
const includedInFilter = this.filter.includes(
|
|
14221
|
+
const includedInFilter = this.filter.includes(___default.get(user, path)) || ___default.get(user, path) === 'Administrator';
|
|
14414
14222
|
return !includedInFilter;
|
|
14415
14223
|
});
|
|
14416
14224
|
return filterData;
|
|
@@ -16662,11 +16470,11 @@ class TableComponent {
|
|
|
16662
16470
|
return this.defaultColumnSize;
|
|
16663
16471
|
}
|
|
16664
16472
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TableComponent, deps: [{ token: NuxeoService }, { token: AppConfigService }, { token: TranslationService }, { token: i0.ChangeDetectorRef }, { token: i0.DestroyRef }, { token: EvaluatorsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16665
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TableComponent, isStandalone: false, selector: "cts-table", inputs: { rows: "rows", selectionKey: "selectionKey", selectedRowsKeys: "selectedRowsKeys", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", componentName: "componentName", columnMode: "columnMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", singleSelectRow: "singleSelectRow", rowCheckboxPermission: "rowCheckboxPermission", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu", messages: "messages", defaultColumnSize: "defaultColumnSize", selectionModel: "selectionModel" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: DatatableComponent, descendants: true }, { propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n #tableContainer\r\n class=\"iner-table-container\"\r\n [style]=\"'width:' + tableWidth\"\r\n *ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n <ngx-datatable\r\n [ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"columnMode\"\r\n [scrollbarH]=\"true\"\r\n [style.width.%]=\"100\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"isFixedOptionColumns ? '3rem' : 'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n [messages]=\"messages\"\r\n [disableRowCheck]=\"disableRowCheck\"\r\n >\r\n <ngx-datatable-column\r\n *ngIf=\"\r\n (multiSelectRows || singleSelectRow) &&\r\n (!rowCheckboxPermission || someRowsHasEnabledCheckbox)\r\n \"\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (multiSelectRows) {\r\n <mat-checkbox\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (!row[\"__checkboxDisabled\"]) {\r\n <mat-checkbox\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <!-- | translate -->\r\n\r\n <ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n <ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n <!-- [frozenRight]=\"column.type === 'actions'\" -->\r\n <ng-container *ngFor=\"let column of columns; let i = index\">\r\n <ng-container *permission=\"{ name: column.permission }\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [frozenLeft]=\"\r\n (isFixedOptionColumns && column.type === 'actions') ||\r\n column?.frozenLeft\r\n \"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n [cellClass]=\"getCellClass(column)\"\r\n [width]=\"getWidth(column)\"\r\n [flexGrow]=\"column?.flexGrow\"\r\n [minWidth]=\"column?.minWidth\"\r\n [maxWidth]=\"column?.maxWidth\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div\r\n class=\"cell-text-wrapper\"\r\n *ngIf=\"!column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n <div\r\n class=\"cell-text-wrapper\"\r\n matTooltip=\"{{ value ? value : '--' }}\"\r\n *ngIf=\"column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n @let _value =\r\n value\r\n ? (column.vocabularyId + \".\" + value | translate)\r\n : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n @let _value = vocItemTranslationPrefix + value | translate;\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <i\r\n *ngIf=\"statusIcons && statusIcons !== {}\"\r\n class=\"status-icon {{ statusIcons[value] }}\"\r\n ></i>\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'STATS.' + value | translate\"\r\n >\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n @let _value = value ? (\"role.\" + value | translate) : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"column.type === 'actions' && rows.length !== 0\"\r\n >\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"!showActionsAsMenu\"\r\n >\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{\r\n 'USER_MANGMENT.addToDepartment' | translate\r\n }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <ng-container\r\n *ngIf=\"action.type == 'button'; else showIcon\"\r\n >\r\n <button\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.class }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"action.icon\"\r\n [class]=\"action.iconClass\"\r\n [svgIcon]=\"action.icon\"\r\n >\r\n </mat-icon>\r\n\r\n {{ action.title | translate }}\r\n </button>\r\n </ng-container>\r\n <ng-template #showIcon>\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </ng-template>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"showActionsAsMenu\"\r\n >\r\n <button\r\n class=\"action-menu-trigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"disabledActions\"\r\n >\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n >\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{\r\n \"UPDATE\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n >\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{\r\n \"delete\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n >\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{\r\n \"USER_MANGMENT.addToDepartment\" | translate\r\n }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button\r\n (click)=\"performAction(row, action.actionName)\"\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{\r\n action.tooltip | translate\r\n }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <ng-container\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['incoming']\r\n : 'bi bi-box-arrow-down'\r\n }}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['outgoing']\r\n : 'bi bi-box-arrow-up outgoing'\r\n }}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['internal']\r\n : 'bi bi-box-arrow-right internal'\r\n }}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template\r\n #customRowTemplate\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n ngx-datatable-cell-template\r\n >\r\n <div\r\n class=\"w-full flex items-center justify-center overflow-visible\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.custom1stCellTemplate\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"responsiveView && tableMode !== tableModes.card\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n>\r\n <div class=\"dynamic-cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"owner\") {\r\n @let _value = row.properties[property.owner]?.[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"status\") {\r\n @let _value = \"STATS.\" + row[property.value] | translate;\r\n <div\r\n class=\"value {{ row[property.value] }}\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"department\") {\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n >\r\n </cts-department-viewer>\r\n }\r\n @case (\"vocabulary\") {\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n }\r\n @case (\"direction\") {\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"property.template\"\r\n [column]=\"property\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, property?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"tableColumns.length === 1\">\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, columns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{\r\n name: 'deleteMemo',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{\r\n name: 'terminateDelegation',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'memoPublished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'MEMOS.PUBLISHED' | translate\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationFinished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.finished' | translate\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationActive',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.active' | translate\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row); cardFocused(i)\"\r\n >\r\n <div\r\n class=\"key\"\r\n *ngIf=\"property.type !== 'default'\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div\r\n class=\"key\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"user\") {\r\n @let _value = row.properties[property.value].fullName;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"boolean\") {\r\n @let _value =\r\n (row.properties[property.value] ? \"Yes\" : \"No\") | translate;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"default\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n class=\"text\"\r\n *ngFor=\"let item of row.properties[property.value]\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"item | translate\"\r\n >\r\n {{ item | translate }} {{ \", \" }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n <div class=\"cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngIf=\"tableColumns.length === 1\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"tableColumns[0].template\"\r\n [column]=\"tableColumns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, tableColumns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n <app-dynamic-component\r\n class=\"table-custom-view__component\"\r\n *ngFor=\"let row of rows\"\r\n [componentName]=\"componentName\"\r\n [row]=\"row\"\r\n [rowAction]=\"actionOnRow\"\r\n [selectionModel]=\"selectionModel\"\r\n [onClick]=\"onRowSelected\"\r\n (click)=\"cardSelected(row)\"\r\n [class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n ></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.ngx-datatable{border:var(--ngx-datatable-border, 1px solid #eef1f5);border-radius:5px}.ngx-datatable .datatable-header-inner{min-width:var(--datatable-header-inner-min-width, 0)}.ngx-datatable .datatable-header-cell-template-wrap{width:var(--datatable-header-cell-wrap-width, 100%);height:var(--datatable-header-cell-wrap-height, 100%);display:var(--datatable-header-cell-wrap-display, flex);align-items:var(--datatable-header-cell-wrap-align-items, center);justify-content:var(--datatable-header-cell-wrap-justify-content, center);white-space:var(--datatable-header-cell-wrap-white-space, pre)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:var(--datatable-header-cell-wrapper-display, flex)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:var(--datatable-header-cell-label-align, center)}.ngx-datatable .datatable-header{font-weight:var(--datatable-header-weight, bold);height:var(--datatable-header-height, 50px);background:var(--datatable-header-background, #eef1f5);color:var(--datatable-header-color, #9aa4ac);font-size:var(--datatable-header-font-size, 14px);padding:var(--datatable-header-padding, 0);border:0px solid var(--datatable-header-border-color);border-width:var(--datatable-header-border-width, 0 0 1px 0)}.ngx-datatable .datatable-header .datatable-header-inner{min-width:var(--datatable-header-inner-min-width)!important;height:var(--datatable-header-inner-height, 100%);padding:var(--datatable-header-inner-padding, 0px 20px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);padding:var(--datatable-row-padding);align-items:var(--datatable-row-align, center);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell{width:var(--datatable--header-cell-width);min-width:var(--datatable-header-cell-min-width);min-height:var(--datatable-header-cell-min-height, var(--datatable-cell-min-height, 50px));flex-grow:var(--datatable-header-cell-grow);flex-shrink:var(--datatable-header-cell-shrink)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:var(--sort-btn-margin, 5px 5px 0px);width:var(--sort-btn-width, 16px);height:var(--sort-btn-height, 16px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:var(--sort-btn-icon, \"\\f127\");display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;font-size:var(--sort-btn-icon-size, 16px);text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;color:var(--sort-btn-icon-color, black)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-up{--sort-btn-icon: \"\\f57b\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-down{--sort-btn-icon: \"\\f574\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-row-left .datatable-body-cell{display:var(--datatable-body-left-cell-display, flex);justify-content:var(--datatable-body-left-cell-justify, flex-start);align-items:var(--datatable-body-left-cell-align-items, center);padding-inline:var(--datatable-body-left-cell-padding-inline)}.ngx-datatable .datatable-body .datatable-scroll{min-width:var(--datatable-scroll-min-width, 100%)!important;--datatable-body-cell-overflow: visible}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:var(--datatable-summary-row-height, 50px);font-size:var(--datatable-summary-row-font-size, 14px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:var(--datatable-body-row-min-width, 100%)!important;height:var(--datatable-body-row-height, 100%);padding:var(--datatable-body-row-padding, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);align-items:var(--datatable-row-align, center);padding:var(--datatable-row-padding, 0px 20px);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);overflow:var(--datatable-row-overflow, visible);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{display:var(--datatable-body-cell-display, flex);align-items:var(--datatable-body-cell-align-items, center);justify-content:var(--datatable-body-cell-justify-content, center);gap:var(--datatable-body-cell-gap);flex-grow:var(--datatable-body-cell-grow);flex-shrink:var(--datatable-body-cell-shrink);overflow:var(--datatable-body-cell-overflow, hidden);width:var(--datatable--body-cell-width, var(--datatable-cell-width, auto));min-width:var(--datatable-body-cell-min-width, var(--datatable-cell-min-width, 0));min-height:var(--datatable-body-cell-min-height, var(--datatable-cell-min-height, 50px))}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{display:var(--datatable-body-cell-label-display, flex);justify-content:var(--datatable-body-cell-label-justify, center);font-size:var(--datatable-body-cell-label-font-size, inherit);font-weight:var(--datatable-body-cell-label-font-weight);line-height:var(--datatable-body-cell-label-line-height);width:var(--datatable-body-cell-label-width, 100%);color:var(--datatable-body-cell-label-color, inherit)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{width:auto;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:var(--yellow-200, #ebb98e)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:var(--status-icon-size, 16px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:var(--blue, #2e62df)!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(2n){background-color:var(--even-row-background, #f4f6f8)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:var(--even-row-hover-background, #eef1f5)}.ngx-datatable div.datatable-row-left{order:1;margin-inline-start:auto;inset-inline:var(--datatable-row-left-inline, 0 auto);position:var(--datatable-row-left-position, sticky)!important}.ngx-datatable div.datatable-row-left .datatable-body-cell{overflow:hidden;background:var(--table-options-body-cell-color, #fff)}.ngx-datatable div.datatable-row-left .datatable-header-cell{overflow:hidden;background:var(--table-options-header-cell-color, #fff)}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding-inline:var(--tbl-card-inline-padding, 1rem);padding-block:var(--tbl-card-block-padding, 1rem);margin-inline:var(--tbl-card-inline-margin, 5px);margin-block:var(--tbl-card-block-margin, 0px 10px);min-width:var(--tbl-card-min-width, 250px);width:var(--tbl-card-width, 24%);background:var(--tbl-card-background, #fff);border:var(--tbl-card-border, 1px solid rgba(180, 186, 198, .2));border-radius:var(--tbl-card-radius, 4px);box-shadow:var(--tbl-card-shadow, 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12));cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}.actions-wrapper i{font-size:var(--table-options-font-size, 2rem)!important}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i6$1.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "bindAsUnsafeHtml", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { kind: "directive", type: TooltipIfOverflowDirective, selector: "[tooltipIfOverflow]", inputs: ["tooltipIfOverflowText"] }, { kind: "component", type: DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { kind: "component", type: DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { kind: "component", type: DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { kind: "component", type: i4$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"], outputs: ["performAction"] }, { kind: "component", type: DynamicCustomComponent, selector: "app-dynamic-component", inputs: ["componentName", "row", "selectionModel", "rowAction", "onClick"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizedDatePipe, name: "localizedDate" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
16473
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: TableComponent, isStandalone: false, selector: "cts-table", inputs: { rows: "rows", selectionKey: "selectionKey", selectedRowsKeys: "selectedRowsKeys", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", componentName: "componentName", columnMode: "columnMode", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", singleSelectRow: "singleSelectRow", rowCheckboxPermission: "rowCheckboxPermission", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu", messages: "messages", rowClass: "rowClass", defaultColumnSize: "defaultColumnSize", selectionModel: "selectionModel" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: DatatableComponent, descendants: true }, { propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n #tableContainer\r\n class=\"iner-table-container\"\r\n [style]=\"'width:' + tableWidth\"\r\n *ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n <ngx-datatable\r\n [ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"columnMode\"\r\n [scrollbarH]=\"true\"\r\n [style.width.%]=\"100\"\r\n [rowClass]=\"rowClass\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"isFixedOptionColumns ? '3rem' : 'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n [messages]=\"messages\"\r\n [disableRowCheck]=\"disableRowCheck\"\r\n >\r\n <ngx-datatable-column\r\n *ngIf=\"\r\n (multiSelectRows || singleSelectRow) &&\r\n (!rowCheckboxPermission || someRowsHasEnabledCheckbox)\r\n \"\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (multiSelectRows) {\r\n <mat-checkbox\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (!row[\"__checkboxDisabled\"]) {\r\n <mat-checkbox\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <!-- | translate -->\r\n\r\n <ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n <ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n <!-- [frozenRight]=\"column.type === 'actions'\" -->\r\n <ng-container *ngFor=\"let column of columns; let i = index\">\r\n <ng-container *permission=\"{ name: column.permission }\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [frozenLeft]=\"\r\n (isFixedOptionColumns && column.type === 'actions') ||\r\n column?.frozenLeft\r\n \"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n [cellClass]=\"getCellClass(column)\"\r\n [width]=\"getWidth(column)\"\r\n [flexGrow]=\"column?.flexGrow\"\r\n [minWidth]=\"column?.minWidth\"\r\n [maxWidth]=\"column?.maxWidth\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div\r\n class=\"cell-text-wrapper\"\r\n *ngIf=\"!column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n <div\r\n class=\"cell-text-wrapper\"\r\n matTooltip=\"{{ value ? value : '--' }}\"\r\n *ngIf=\"column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n @let _value =\r\n value\r\n ? (column.vocabularyId + \".\" + value | translate)\r\n : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n @let _value = vocItemTranslationPrefix + value | translate;\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <i\r\n *ngIf=\"statusIcons && statusIcons !== {}\"\r\n class=\"status-icon {{ statusIcons[value] }}\"\r\n ></i>\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'STATS.' + value | translate\"\r\n >\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n @let _value = value ? (\"role.\" + value | translate) : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"column.type === 'actions' && rows.length !== 0\"\r\n >\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"!showActionsAsMenu\"\r\n >\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{\r\n 'USER_MANGMENT.addToDepartment' | translate\r\n }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <ng-container\r\n *ngIf=\"action.type == 'button'; else showIcon\"\r\n >\r\n <button\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.class }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"action.icon\"\r\n [class]=\"action.iconClass\"\r\n [svgIcon]=\"action.icon\"\r\n >\r\n </mat-icon>\r\n\r\n {{ action.title | translate }}\r\n </button>\r\n </ng-container>\r\n <ng-template #showIcon>\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </ng-template>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"showActionsAsMenu\"\r\n >\r\n <button\r\n class=\"action-menu-trigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"disabledActions\"\r\n >\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n >\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{\r\n \"UPDATE\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n >\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{\r\n \"delete\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n >\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{\r\n \"USER_MANGMENT.addToDepartment\" | translate\r\n }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button\r\n (click)=\"performAction(row, action.actionName)\"\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{\r\n action.tooltip | translate\r\n }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <ng-container\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['incoming']\r\n : 'bi bi-box-arrow-down'\r\n }}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['outgoing']\r\n : 'bi bi-box-arrow-up outgoing'\r\n }}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['internal']\r\n : 'bi bi-box-arrow-right internal'\r\n }}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template\r\n #customRowTemplate\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n ngx-datatable-cell-template\r\n >\r\n <div\r\n class=\"w-full flex items-center justify-center overflow-visible\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.custom1stCellTemplate\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"responsiveView && tableMode !== tableModes.card\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n>\r\n <div class=\"dynamic-cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"owner\") {\r\n @let _value = row.properties[property.owner]?.[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"status\") {\r\n @let _value = \"STATS.\" + row[property.value] | translate;\r\n <div\r\n class=\"value {{ row[property.value] }}\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"department\") {\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n >\r\n </cts-department-viewer>\r\n }\r\n @case (\"vocabulary\") {\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n }\r\n @case (\"direction\") {\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"property.template\"\r\n [column]=\"property\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, property?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"tableColumns.length === 1\">\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, columns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{\r\n name: 'deleteMemo',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{\r\n name: 'terminateDelegation',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'memoPublished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'MEMOS.PUBLISHED' | translate\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationFinished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.finished' | translate\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationActive',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.active' | translate\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row); cardFocused(i)\"\r\n >\r\n <div\r\n class=\"key\"\r\n *ngIf=\"property.type !== 'default'\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div\r\n class=\"key\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"user\") {\r\n @let _value = row.properties[property.value].fullName;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"boolean\") {\r\n @let _value =\r\n (row.properties[property.value] ? \"Yes\" : \"No\") | translate;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"default\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n class=\"text\"\r\n *ngFor=\"let item of row.properties[property.value]\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"item | translate\"\r\n >\r\n {{ item | translate }} {{ \", \" }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n <div class=\"cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngIf=\"tableColumns.length === 1\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"tableColumns[0].template\"\r\n [column]=\"tableColumns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, tableColumns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n <app-dynamic-component\r\n class=\"table-custom-view__component\"\r\n *ngFor=\"let row of rows\"\r\n [componentName]=\"componentName\"\r\n [row]=\"row\"\r\n [rowAction]=\"actionOnRow\"\r\n [selectionModel]=\"selectionModel\"\r\n [onClick]=\"onRowSelected\"\r\n (click)=\"cardSelected(row)\"\r\n [class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n ></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.ngx-datatable{border:var(--ngx-datatable-border, 1px solid #eef1f5);border-radius:5px}.ngx-datatable .datatable-header-inner{min-width:var(--datatable-header-inner-min-width, 0)}.ngx-datatable .datatable-header-cell-template-wrap{width:var(--datatable-header-cell-wrap-width, 100%);height:var(--datatable-header-cell-wrap-height, 100%);display:var(--datatable-header-cell-wrap-display, flex);align-items:var(--datatable-header-cell-wrap-align-items, center);justify-content:var(--datatable-header-cell-wrap-justify-content, center);white-space:var(--datatable-header-cell-wrap-white-space, pre)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:var(--datatable-header-cell-wrapper-display, flex)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:var(--datatable-header-cell-label-align, center)}.ngx-datatable .datatable-header{font-weight:var(--datatable-header-weight, bold);height:var(--datatable-header-height, 50px);background:var(--datatable-header-background, #eef1f5);color:var(--datatable-header-color, #9aa4ac);font-size:var(--datatable-header-font-size, 14px);padding:var(--datatable-header-padding, 0);border:0px solid var(--datatable-header-border-color);border-width:var(--datatable-header-border-width, 0 0 1px 0)}.ngx-datatable .datatable-header .datatable-header-inner{min-width:var(--datatable-header-inner-min-width)!important;height:var(--datatable-header-inner-height, 100%);padding:var(--datatable-header-inner-padding, 0px 20px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);padding:var(--datatable-row-padding);align-items:var(--datatable-row-align, center);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell{width:var(--datatable--header-cell-width);min-width:var(--datatable-header-cell-min-width);min-height:var(--datatable-header-cell-min-height, var(--datatable-cell-min-height, 50px));flex-grow:var(--datatable-header-cell-grow);flex-shrink:var(--datatable-header-cell-shrink)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:var(--sort-btn-margin, 5px 5px 0px);width:var(--sort-btn-width, 16px);height:var(--sort-btn-height, 16px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:var(--sort-btn-icon, \"\\f127\");display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;font-size:var(--sort-btn-icon-size, 16px);text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;color:var(--sort-btn-icon-color, black)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-up{--sort-btn-icon: \"\\f57b\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-down{--sort-btn-icon: \"\\f574\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-row-left .datatable-body-cell{display:var(--datatable-body-left-cell-display, flex);justify-content:var(--datatable-body-left-cell-justify, flex-start);align-items:var(--datatable-body-left-cell-align-items, center);padding-inline:var(--datatable-body-left-cell-padding-inline)}.ngx-datatable .datatable-body .datatable-scroll{min-width:var(--datatable-scroll-min-width, 100%)!important;--datatable-body-cell-overflow: visible}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:var(--datatable-summary-row-height, 50px);font-size:var(--datatable-summary-row-font-size, 14px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:var(--datatable-body-row-min-width, 100%)!important;height:var(--datatable-body-row-height, 100%);padding:var(--datatable-body-row-padding, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);align-items:var(--datatable-row-align, center);padding:var(--datatable-row-padding, 0px 20px);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);overflow:var(--datatable-row-overflow, visible);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{display:var(--datatable-body-cell-display, flex);align-items:var(--datatable-body-cell-align-items, center);justify-content:var(--datatable-body-cell-justify-content, center);gap:var(--datatable-body-cell-gap);flex-grow:var(--datatable-body-cell-grow);flex-shrink:var(--datatable-body-cell-shrink);overflow:var(--datatable-body-cell-overflow, hidden);width:var(--datatable--body-cell-width, var(--datatable-cell-width, auto));min-width:var(--datatable-body-cell-min-width, var(--datatable-cell-min-width, 0));min-height:var(--datatable-body-cell-min-height, var(--datatable-cell-min-height, 50px))}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{display:var(--datatable-body-cell-label-display, flex);justify-content:var(--datatable-body-cell-label-justify, center);font-size:var(--datatable-body-cell-label-font-size, inherit);font-weight:var(--datatable-body-cell-label-font-weight);line-height:var(--datatable-body-cell-label-line-height);width:var(--datatable-body-cell-label-width, 100%);color:var(--datatable-body-cell-label-color, inherit)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{width:auto;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:var(--yellow-200, #ebb98e)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:var(--status-icon-size, 16px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:var(--blue, #2e62df)!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(2n){background-color:var(--even-row-background, #f4f6f8)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:var(--even-row-hover-background, #eef1f5)}.ngx-datatable div.datatable-row-left{order:1;margin-inline-start:auto;inset-inline:var(--datatable-row-left-inline, 0 auto);position:var(--datatable-row-left-position, sticky)!important}.ngx-datatable div.datatable-row-left .datatable-body-cell{overflow:hidden;background:var(--table-options-body-cell-color, #fff)}.ngx-datatable div.datatable-row-left .datatable-header-cell{overflow:hidden;background:var(--table-options-header-cell-color, #fff)}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding-inline:var(--tbl-card-inline-padding, 1rem);padding-block:var(--tbl-card-block-padding, 1rem);margin-inline:var(--tbl-card-inline-margin, 5px);margin-block:var(--tbl-card-block-margin, 0px 10px);min-width:var(--tbl-card-min-width, 250px);width:var(--tbl-card-width, 24%);background:var(--tbl-card-background, #fff);border:var(--tbl-card-border, 1px solid rgba(180, 186, 198, .2));border-radius:var(--tbl-card-radius, 4px);box-shadow:var(--tbl-card-shadow, 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12));cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}.actions-wrapper i{font-size:var(--table-options-font-size, 2rem)!important}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarVDynamic", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "ghostLoadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "disableRowCheck", "rowDraggable", "enableClearingSortState", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction", "rowDragEvents"] }, { kind: "directive", type: i6$1.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "bindAsUnsafeHtml", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate", "ghostCellTemplate"] }, { kind: "directive", type: i6$1.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { kind: "directive", type: i6$1.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { kind: "directive", type: i3$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { kind: "directive", type: TooltipIfOverflowDirective, selector: "[tooltipIfOverflow]", inputs: ["tooltipIfOverflowText"] }, { kind: "component", type: DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { kind: "component", type: DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { kind: "component", type: DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { kind: "component", type: i4$2.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i3$3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3$3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3$3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"], outputs: ["performAction"] }, { kind: "component", type: DynamicCustomComponent, selector: "app-dynamic-component", inputs: ["componentName", "row", "selectionModel", "rowAction", "onClick"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizedDatePipe, name: "localizedDate" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
16666
16474
|
}
|
|
16667
16475
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: TableComponent, decorators: [{
|
|
16668
16476
|
type: Component,
|
|
16669
|
-
args: [{ selector: 'cts-table', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\r\n #tableContainer\r\n class=\"iner-table-container\"\r\n [style]=\"'width:' + tableWidth\"\r\n *ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n <ngx-datatable\r\n [ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"columnMode\"\r\n [scrollbarH]=\"true\"\r\n [style.width.%]=\"100\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"isFixedOptionColumns ? '3rem' : 'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n [messages]=\"messages\"\r\n [disableRowCheck]=\"disableRowCheck\"\r\n >\r\n <ngx-datatable-column\r\n *ngIf=\"\r\n (multiSelectRows || singleSelectRow) &&\r\n (!rowCheckboxPermission || someRowsHasEnabledCheckbox)\r\n \"\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (multiSelectRows) {\r\n <mat-checkbox\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (!row[\"__checkboxDisabled\"]) {\r\n <mat-checkbox\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <!-- | translate -->\r\n\r\n <ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n <ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n <!-- [frozenRight]=\"column.type === 'actions'\" -->\r\n <ng-container *ngFor=\"let column of columns; let i = index\">\r\n <ng-container *permission=\"{ name: column.permission }\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [frozenLeft]=\"\r\n (isFixedOptionColumns && column.type === 'actions') ||\r\n column?.frozenLeft\r\n \"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n [cellClass]=\"getCellClass(column)\"\r\n [width]=\"getWidth(column)\"\r\n [flexGrow]=\"column?.flexGrow\"\r\n [minWidth]=\"column?.minWidth\"\r\n [maxWidth]=\"column?.maxWidth\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div\r\n class=\"cell-text-wrapper\"\r\n *ngIf=\"!column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n <div\r\n class=\"cell-text-wrapper\"\r\n matTooltip=\"{{ value ? value : '--' }}\"\r\n *ngIf=\"column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n @let _value =\r\n value\r\n ? (column.vocabularyId + \".\" + value | translate)\r\n : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n @let _value = vocItemTranslationPrefix + value | translate;\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <i\r\n *ngIf=\"statusIcons && statusIcons !== {}\"\r\n class=\"status-icon {{ statusIcons[value] }}\"\r\n ></i>\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'STATS.' + value | translate\"\r\n >\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n @let _value = value ? (\"role.\" + value | translate) : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"column.type === 'actions' && rows.length !== 0\"\r\n >\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"!showActionsAsMenu\"\r\n >\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{\r\n 'USER_MANGMENT.addToDepartment' | translate\r\n }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <ng-container\r\n *ngIf=\"action.type == 'button'; else showIcon\"\r\n >\r\n <button\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.class }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"action.icon\"\r\n [class]=\"action.iconClass\"\r\n [svgIcon]=\"action.icon\"\r\n >\r\n </mat-icon>\r\n\r\n {{ action.title | translate }}\r\n </button>\r\n </ng-container>\r\n <ng-template #showIcon>\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </ng-template>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"showActionsAsMenu\"\r\n >\r\n <button\r\n class=\"action-menu-trigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"disabledActions\"\r\n >\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n >\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{\r\n \"UPDATE\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n >\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{\r\n \"delete\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n >\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{\r\n \"USER_MANGMENT.addToDepartment\" | translate\r\n }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button\r\n (click)=\"performAction(row, action.actionName)\"\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{\r\n action.tooltip | translate\r\n }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <ng-container\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['incoming']\r\n : 'bi bi-box-arrow-down'\r\n }}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['outgoing']\r\n : 'bi bi-box-arrow-up outgoing'\r\n }}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['internal']\r\n : 'bi bi-box-arrow-right internal'\r\n }}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template\r\n #customRowTemplate\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n ngx-datatable-cell-template\r\n >\r\n <div\r\n class=\"w-full flex items-center justify-center overflow-visible\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.custom1stCellTemplate\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"responsiveView && tableMode !== tableModes.card\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n>\r\n <div class=\"dynamic-cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"owner\") {\r\n @let _value = row.properties[property.owner]?.[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"status\") {\r\n @let _value = \"STATS.\" + row[property.value] | translate;\r\n <div\r\n class=\"value {{ row[property.value] }}\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"department\") {\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n >\r\n </cts-department-viewer>\r\n }\r\n @case (\"vocabulary\") {\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n }\r\n @case (\"direction\") {\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"property.template\"\r\n [column]=\"property\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, property?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"tableColumns.length === 1\">\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, columns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{\r\n name: 'deleteMemo',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{\r\n name: 'terminateDelegation',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'memoPublished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'MEMOS.PUBLISHED' | translate\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationFinished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.finished' | translate\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationActive',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.active' | translate\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row); cardFocused(i)\"\r\n >\r\n <div\r\n class=\"key\"\r\n *ngIf=\"property.type !== 'default'\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div\r\n class=\"key\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"user\") {\r\n @let _value = row.properties[property.value].fullName;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"boolean\") {\r\n @let _value =\r\n (row.properties[property.value] ? \"Yes\" : \"No\") | translate;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"default\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n class=\"text\"\r\n *ngFor=\"let item of row.properties[property.value]\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"item | translate\"\r\n >\r\n {{ item | translate }} {{ \", \" }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n <div class=\"cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngIf=\"tableColumns.length === 1\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"tableColumns[0].template\"\r\n [column]=\"tableColumns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, tableColumns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n <app-dynamic-component\r\n class=\"table-custom-view__component\"\r\n *ngFor=\"let row of rows\"\r\n [componentName]=\"componentName\"\r\n [row]=\"row\"\r\n [rowAction]=\"actionOnRow\"\r\n [selectionModel]=\"selectionModel\"\r\n [onClick]=\"onRowSelected\"\r\n (click)=\"cardSelected(row)\"\r\n [class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n ></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.ngx-datatable{border:var(--ngx-datatable-border, 1px solid #eef1f5);border-radius:5px}.ngx-datatable .datatable-header-inner{min-width:var(--datatable-header-inner-min-width, 0)}.ngx-datatable .datatable-header-cell-template-wrap{width:var(--datatable-header-cell-wrap-width, 100%);height:var(--datatable-header-cell-wrap-height, 100%);display:var(--datatable-header-cell-wrap-display, flex);align-items:var(--datatable-header-cell-wrap-align-items, center);justify-content:var(--datatable-header-cell-wrap-justify-content, center);white-space:var(--datatable-header-cell-wrap-white-space, pre)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:var(--datatable-header-cell-wrapper-display, flex)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:var(--datatable-header-cell-label-align, center)}.ngx-datatable .datatable-header{font-weight:var(--datatable-header-weight, bold);height:var(--datatable-header-height, 50px);background:var(--datatable-header-background, #eef1f5);color:var(--datatable-header-color, #9aa4ac);font-size:var(--datatable-header-font-size, 14px);padding:var(--datatable-header-padding, 0);border:0px solid var(--datatable-header-border-color);border-width:var(--datatable-header-border-width, 0 0 1px 0)}.ngx-datatable .datatable-header .datatable-header-inner{min-width:var(--datatable-header-inner-min-width)!important;height:var(--datatable-header-inner-height, 100%);padding:var(--datatable-header-inner-padding, 0px 20px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);padding:var(--datatable-row-padding);align-items:var(--datatable-row-align, center);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell{width:var(--datatable--header-cell-width);min-width:var(--datatable-header-cell-min-width);min-height:var(--datatable-header-cell-min-height, var(--datatable-cell-min-height, 50px));flex-grow:var(--datatable-header-cell-grow);flex-shrink:var(--datatable-header-cell-shrink)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:var(--sort-btn-margin, 5px 5px 0px);width:var(--sort-btn-width, 16px);height:var(--sort-btn-height, 16px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:var(--sort-btn-icon, \"\\f127\");display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;font-size:var(--sort-btn-icon-size, 16px);text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;color:var(--sort-btn-icon-color, black)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-up{--sort-btn-icon: \"\\f57b\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-down{--sort-btn-icon: \"\\f574\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-row-left .datatable-body-cell{display:var(--datatable-body-left-cell-display, flex);justify-content:var(--datatable-body-left-cell-justify, flex-start);align-items:var(--datatable-body-left-cell-align-items, center);padding-inline:var(--datatable-body-left-cell-padding-inline)}.ngx-datatable .datatable-body .datatable-scroll{min-width:var(--datatable-scroll-min-width, 100%)!important;--datatable-body-cell-overflow: visible}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:var(--datatable-summary-row-height, 50px);font-size:var(--datatable-summary-row-font-size, 14px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:var(--datatable-body-row-min-width, 100%)!important;height:var(--datatable-body-row-height, 100%);padding:var(--datatable-body-row-padding, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);align-items:var(--datatable-row-align, center);padding:var(--datatable-row-padding, 0px 20px);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);overflow:var(--datatable-row-overflow, visible);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{display:var(--datatable-body-cell-display, flex);align-items:var(--datatable-body-cell-align-items, center);justify-content:var(--datatable-body-cell-justify-content, center);gap:var(--datatable-body-cell-gap);flex-grow:var(--datatable-body-cell-grow);flex-shrink:var(--datatable-body-cell-shrink);overflow:var(--datatable-body-cell-overflow, hidden);width:var(--datatable--body-cell-width, var(--datatable-cell-width, auto));min-width:var(--datatable-body-cell-min-width, var(--datatable-cell-min-width, 0));min-height:var(--datatable-body-cell-min-height, var(--datatable-cell-min-height, 50px))}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{display:var(--datatable-body-cell-label-display, flex);justify-content:var(--datatable-body-cell-label-justify, center);font-size:var(--datatable-body-cell-label-font-size, inherit);font-weight:var(--datatable-body-cell-label-font-weight);line-height:var(--datatable-body-cell-label-line-height);width:var(--datatable-body-cell-label-width, 100%);color:var(--datatable-body-cell-label-color, inherit)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{width:auto;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:var(--yellow-200, #ebb98e)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:var(--status-icon-size, 16px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:var(--blue, #2e62df)!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(2n){background-color:var(--even-row-background, #f4f6f8)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:var(--even-row-hover-background, #eef1f5)}.ngx-datatable div.datatable-row-left{order:1;margin-inline-start:auto;inset-inline:var(--datatable-row-left-inline, 0 auto);position:var(--datatable-row-left-position, sticky)!important}.ngx-datatable div.datatable-row-left .datatable-body-cell{overflow:hidden;background:var(--table-options-body-cell-color, #fff)}.ngx-datatable div.datatable-row-left .datatable-header-cell{overflow:hidden;background:var(--table-options-header-cell-color, #fff)}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding-inline:var(--tbl-card-inline-padding, 1rem);padding-block:var(--tbl-card-block-padding, 1rem);margin-inline:var(--tbl-card-inline-margin, 5px);margin-block:var(--tbl-card-block-margin, 0px 10px);min-width:var(--tbl-card-min-width, 250px);width:var(--tbl-card-width, 24%);background:var(--tbl-card-background, #fff);border:var(--tbl-card-border, 1px solid rgba(180, 186, 198, .2));border-radius:var(--tbl-card-radius, 4px);box-shadow:var(--tbl-card-shadow, 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12));cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}.actions-wrapper i{font-size:var(--table-options-font-size, 2rem)!important}\n"] }]
|
|
16477
|
+
args: [{ selector: 'cts-table', encapsulation: ViewEncapsulation.None, standalone: false, template: "<div\r\n #tableContainer\r\n class=\"iner-table-container\"\r\n [style]=\"'width:' + tableWidth\"\r\n *ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n <ngx-datatable\r\n [ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n class=\"large-table\"\r\n [rows]=\"rows\"\r\n [summaryRow]=\"customFirstRow\"\r\n [columnMode]=\"columnMode\"\r\n [scrollbarH]=\"true\"\r\n [style.width.%]=\"100\"\r\n [rowClass]=\"rowClass\"\r\n [externalSorting]=\"true\"\r\n (activate)=\"rowDetails($event)\"\r\n (select)=\"onSelect($event)\"\r\n (sort)=\"onSort($event)\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n [rowHeight]=\"isFixedOptionColumns ? '3rem' : 'auto'\"\r\n [selected]=\"selected\"\r\n [selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n [sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n [messages]=\"messages\"\r\n [disableRowCheck]=\"disableRowCheck\"\r\n >\r\n <ngx-datatable-column\r\n *ngIf=\"\r\n (multiSelectRows || singleSelectRow) &&\r\n (!rowCheckboxPermission || someRowsHasEnabledCheckbox)\r\n \"\r\n [width]=\"50\"\r\n [sortable]=\"false\"\r\n [prop]=\"''\"\r\n [canAutoResize]=\"false\"\r\n [draggable]=\"false\"\r\n [resizeable]=\"false\"\r\n >\r\n <ng-template\r\n ngx-datatable-header-template\r\n let-value=\"value\"\r\n let-allRowsSelected=\"allRowsSelected\"\r\n let-selectFn=\"selectFn\"\r\n >\r\n @if (multiSelectRows) {\r\n <mat-checkbox\r\n [checked]=\"allRowsSelected\"\r\n (change)=\"selectFn(!allRowsSelected)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n\r\n <ng-template\r\n ngx-datatable-cell-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-isSelected=\"isSelected\"\r\n let-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n >\r\n @if (!row[\"__checkboxDisabled\"]) {\r\n <mat-checkbox\r\n [checked]=\"isSelected\"\r\n (change)=\"onCheckboxChangeFn($event)\"\r\n >\r\n </mat-checkbox>\r\n }\r\n </ng-template>\r\n </ngx-datatable-column>\r\n <!-- | translate -->\r\n\r\n <ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n <ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n <!-- [frozenRight]=\"column.type === 'actions'\" -->\r\n <ng-container *ngFor=\"let column of columns; let i = index\">\r\n <ng-container *permission=\"{ name: column.permission }\">\r\n <ngx-datatable-column\r\n *ngIf=\"column.display\"\r\n [sortable]=\"column.sortable\"\r\n [name]=\"prefix + column.name | translate\"\r\n [prop]=\"column.prop\"\r\n [resizeable]=\"false\"\r\n [draggable]=\"false\"\r\n [frozenLeft]=\"\r\n (isFixedOptionColumns && column.type === 'actions') ||\r\n column?.frozenLeft\r\n \"\r\n [headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n [summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n [cellClass]=\"getCellClass(column)\"\r\n [width]=\"getWidth(column)\"\r\n [flexGrow]=\"column?.flexGrow\"\r\n [minWidth]=\"column?.minWidth\"\r\n [maxWidth]=\"column?.maxWidth\"\r\n >\r\n <ng-template\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n let-index=\"index\"\r\n ngx-datatable-cell-template\r\n >\r\n <ng-container *ngIf=\"column.type === 'text'\">\r\n <div\r\n class=\"cell-text-wrapper\"\r\n *ngIf=\"!column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n <div\r\n class=\"cell-text-wrapper\"\r\n matTooltip=\"{{ value ? value : '--' }}\"\r\n *ngIf=\"column.withTooltip\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"value\"\r\n >\r\n {{ value ? value : \"--\" }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n [dropdownId]=\"column.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocCell'\">\r\n @let _value =\r\n value\r\n ? (column.vocabularyId + \".\" + value | translate)\r\n : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'VocItem'\">\r\n @let _value = vocItemTranslationPrefix + value | translate;\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'department'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-department-viewer [noStyle]=\"true\" [value]=\"value\">\r\n </cts-department-viewer>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'status'\">\r\n <div class=\"status-wrapper\">\r\n <span class=\"value {{ value }}\">\r\n <i\r\n *ngIf=\"statusIcons && statusIcons !== {}\"\r\n class=\"status-icon {{ statusIcons[value] }}\"\r\n ></i>\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'STATS.' + value | translate\"\r\n >\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'role'\">\r\n @let _value = value ? (\"role.\" + value | translate) : \"--\";\r\n <div\r\n class=\"cell-text-wrapper\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"column.type === 'actions' && rows.length !== 0\"\r\n >\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"!showActionsAsMenu\"\r\n >\r\n <!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n <i\r\n class=\"bi bi-pencil-square edit-icon\"\r\n matTooltip=\"{{ 'UPDATE' | translate }}\"\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'delete' | translate }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n ></i>\r\n\r\n <i\r\n class=\"bi bi-plus-square\"\r\n matTooltip=\"{{\r\n 'USER_MANGMENT.addToDepartment' | translate\r\n }}\"\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n ></i>\r\n\r\n <span *ngFor=\"let action of column.actions\">\r\n <ng-container\r\n *ngIf=\"action.type == 'button'; else showIcon\"\r\n >\r\n <button\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.class }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n >\r\n <mat-icon\r\n *ngIf=\"action.icon\"\r\n [class]=\"action.iconClass\"\r\n [svgIcon]=\"action.icon\"\r\n >\r\n </mat-icon>\r\n\r\n {{ action.title | translate }}\r\n </button>\r\n </ng-container>\r\n <ng-template #showIcon>\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </ng-template>\r\n </span>\r\n\r\n <!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n </div>\r\n <div\r\n [ngClass]=\"\r\n disabledActions\r\n ? 'disabled-actions-wrapper'\r\n : 'actions-wrapper'\r\n \"\r\n *ngIf=\"showActionsAsMenu\"\r\n >\r\n <button\r\n class=\"action-menu-trigger\"\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"disabledActions\"\r\n >\r\n <i class=\"bi bi-three-dots-vertical\"></i>\r\n </button>\r\n <mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'edit')\"\r\n *ngIf=\"entityType === 'voc-table'\"\r\n >\r\n <i class=\"bi bi-pencil-square edit-icon\"></i>\r\n <span class=\"action-text\">{{\r\n \"UPDATE\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"\r\n entityType === 'voc-table' ||\r\n entityType === 'department' ||\r\n entityType === 'signers'\r\n \"\r\n >\r\n <i class=\"bi bi-trash\"></i>\r\n <span class=\"action-text\">{{\r\n \"delete\" | translate\r\n }}</span>\r\n </button>\r\n <button\r\n mat-menu-item\r\n (click)=\"performAction(row, 'delete')\"\r\n *ngIf=\"entityType === 'users' && row.isInitial\"\r\n >\r\n <i class=\"bi bi-plus-square\"></i>\r\n <span class=\"action-text\">{{\r\n \"USER_MANGMENT.addToDepartment\" | translate\r\n }}</span>\r\n </button>\r\n <ng-conttainer *ngFor=\"let action of column.actions\">\r\n <button\r\n (click)=\"performAction(row, action.actionName)\"\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <i class=\"{{ action.icon }}\"></i>\r\n <span class=\"action-text\">{{\r\n action.tooltip | translate\r\n }}</span>\r\n </button>\r\n </ng-conttainer>\r\n </mat-menu>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'date'\">\r\n <div class=\"cell-text-wrapper\">\r\n <cts-date-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"value\"\r\n ></cts-date-viewer>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"column.type === 'custom'\">\r\n <ng-container\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.template\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"column.type === 'direction'\">\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['incoming']\r\n : 'bi bi-box-arrow-down'\r\n }}\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['outgoing']\r\n : 'bi bi-box-arrow-up outgoing'\r\n }}\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"{{\r\n directionIcons\r\n ? directionIcons['internal']\r\n : 'bi bi-box-arrow-right internal'\r\n }}\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n <!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n <ng-template\r\n #customRowTemplate\r\n let-row=\"row\"\r\n let-value=\"value\"\r\n ngx-datatable-cell-template\r\n >\r\n <div\r\n class=\"w-full flex items-center justify-center overflow-visible\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"column.custom1stCellTemplate\"\r\n [column]=\"column\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, column?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ngx-datatable>\r\n</div>\r\n\r\n<div\r\n *ngIf=\"responsiveView && tableMode !== tableModes.card\"\r\n (window:resize)=\"assignTableColumns($event)\"\r\n>\r\n <div class=\"dynamic-cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n </span>\r\n </div>\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"owner\") {\r\n @let _value = row.properties[property.owner]?.[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"status\") {\r\n @let _value = \"STATS.\" + row[property.value] | translate;\r\n <div\r\n class=\"value {{ row[property.value] }}\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"department\") {\r\n <cts-department-viewer\r\n [noStyle]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n >\r\n </cts-department-viewer>\r\n }\r\n @case (\"vocabulary\") {\r\n <div class=\"cell-text-wrapper\">\r\n <cts-dropdown-viewer\r\n [withOutLabel]=\"true\"\r\n [value]=\"row.properties[property.value]\"\r\n [dropdownId]=\"property.vocabularyId\"\r\n >\r\n </cts-dropdown-viewer>\r\n </div>\r\n }\r\n @case (\"direction\") {\r\n <div\r\n (click)=\"iconSelected($event, row)\"\r\n class=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n >\r\n <span\r\n class=\"iner-status-wrapper\"\r\n matTooltip=\"{{ 'STATS.' + row.state | translate }}\"\r\n >\r\n <ng-container\r\n *permission=\"{ name: 'isFavorite', entity: row }\"\r\n >\r\n <span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n </ng-container>\r\n <i\r\n class=\"bi bi-box-arrow-down\"\r\n *ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-up outgoing\"\r\n *ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n ></i>\r\n <i\r\n class=\"bi bi-box-arrow-right internal\"\r\n *ngIf=\"row.type === 'InternalCorrespondence'\"\r\n ></i>\r\n </span>\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n *permission=\"{\r\n name: column.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"property.template\"\r\n [column]=\"property\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, property?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"tableColumns.length === 1\">\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"columns[0].template\"\r\n [column]=\"columns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, columns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n <div class=\"cards-container\">\r\n <div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n <div class=\"memo-title\">\r\n <span\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"row.properties.referenceNumber\"\r\n >\r\n {{ row.properties.referenceNumber }}\r\n </span>\r\n <span class=\"action-wrap\">\r\n <span class=\"action\" *ngFor=\"let action of tableActions\">\r\n <i\r\n *permission=\"{\r\n name: action.permission,\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n class=\"{{ action.icon }}\"\r\n matTooltip=\"{{ action.tooltip | translate }}\"\r\n (click)=\"performAction(row, action.actionName)\"\r\n ></i>\r\n </span>\r\n <button\r\n *permission=\"{\r\n name: 'deleteMemo',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'deleteMemo')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"\r\n ></i>\r\n </button>\r\n <button\r\n *permission=\"{\r\n name: 'terminateDelegation',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n (click)=\"performAction(row, 'terminateDelegation')\"\r\n >\r\n <i\r\n class=\"bi bi-trash\"\r\n matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"\r\n ></i>\r\n </button>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'memoPublished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'MEMOS.PUBLISHED' | translate\"\r\n >\r\n {{ \"MEMOS.PUBLISHED\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationFinished',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.finished' | translate\"\r\n >\r\n {{ \"delegations.finished\" | translate }}\r\n </span>\r\n <span\r\n class=\"publish-state\"\r\n *permission=\"{\r\n name: 'delegationActive',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"'delegations.active' | translate\"\r\n >\r\n {{ \"delegations.active\" | translate }}\r\n </span>\r\n </span>\r\n </div>\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row); cardFocused(i)\"\r\n >\r\n <div\r\n class=\"key\"\r\n *ngIf=\"property.type !== 'default'\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n <ng-container *ngIf=\"property.type === 'default'\">\r\n <div\r\n class=\"key\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"prefix + property.key | translate\"\r\n >\r\n {{ prefix + property.key | translate }}\r\n </div>\r\n </ng-container>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"user\") {\r\n @let _value = row.properties[property.value].fullName;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"boolean\") {\r\n @let _value =\r\n (row.properties[property.value] ? \"Yes\" : \"No\") | translate;\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"default\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n *permission=\"{\r\n name: 'internalIsEnabled',\r\n entity: row,\r\n user: nuxeoService.nuxeoClient.user,\r\n }\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"custom\") {\r\n <div\r\n class=\"text\"\r\n *ngFor=\"let item of row.properties[property.value]\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"item | translate\"\r\n >\r\n {{ item | translate }} {{ \", \" }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n <div class=\"cards-container\">\r\n <div\r\n class=\"single-card\"\r\n [ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n *ngFor=\"let row of rows\"\r\n >\r\n <div *ngIf=\"tableColumns.length > 1\">\r\n <div\r\n class=\"memo-body\"\r\n *ngFor=\"let property of tableColumns$ | async\"\r\n (click)=\"cardSelected(row)\"\r\n >\r\n <div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n <div class=\"value\">\r\n @switch (property.type) {\r\n @case (\"text\") {\r\n @let _value = row.properties[property.value];\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n @case (\"date\") {\r\n @let _value =\r\n row.properties[property.value]\r\n | localizedDate: format : (isArabic ? \"ar-AR\" : \"en-US\");\r\n <div\r\n class=\"text\"\r\n tooltipIfOverflow\r\n [tooltipIfOverflowText]=\"_value\"\r\n >\r\n {{ _value }}\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"iner-card-container {{ entityType }}\"\r\n (click)=\"cardSelected(row)\"\r\n *ngIf=\"tableColumns.length === 1\"\r\n >\r\n <cts-dynamic-column\r\n [id]=\"tableColumns[0].template\"\r\n [column]=\"tableColumns[0]\"\r\n [context]=\"row\"\r\n (performAction)=\"performAction(row, tableColumns[0]?.name, $event)\"\r\n >\r\n </cts-dynamic-column>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n <app-dynamic-component\r\n class=\"table-custom-view__component\"\r\n *ngFor=\"let row of rows\"\r\n [componentName]=\"componentName\"\r\n [row]=\"row\"\r\n [rowAction]=\"actionOnRow\"\r\n [selectionModel]=\"selectionModel\"\r\n [onClick]=\"onRowSelected\"\r\n (click)=\"cardSelected(row)\"\r\n [class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n ></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.ngx-datatable{border:var(--ngx-datatable-border, 1px solid #eef1f5);border-radius:5px}.ngx-datatable .datatable-header-inner{min-width:var(--datatable-header-inner-min-width, 0)}.ngx-datatable .datatable-header-cell-template-wrap{width:var(--datatable-header-cell-wrap-width, 100%);height:var(--datatable-header-cell-wrap-height, 100%);display:var(--datatable-header-cell-wrap-display, flex);align-items:var(--datatable-header-cell-wrap-align-items, center);justify-content:var(--datatable-header-cell-wrap-justify-content, center);white-space:var(--datatable-header-cell-wrap-white-space, pre)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:var(--datatable-header-cell-wrapper-display, flex)}.ngx-datatable .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:var(--datatable-header-cell-label-align, center)}.ngx-datatable .datatable-header{font-weight:var(--datatable-header-weight, bold);height:var(--datatable-header-height, 50px);background:var(--datatable-header-background, #eef1f5);color:var(--datatable-header-color, #9aa4ac);font-size:var(--datatable-header-font-size, 14px);padding:var(--datatable-header-padding, 0);border:0px solid var(--datatable-header-border-color);border-width:var(--datatable-header-border-width, 0 0 1px 0)}.ngx-datatable .datatable-header .datatable-header-inner{min-width:var(--datatable-header-inner-min-width)!important;height:var(--datatable-header-inner-height, 100%);padding:var(--datatable-header-inner-padding, 0px 20px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);padding:var(--datatable-row-padding);align-items:var(--datatable-row-align, center);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell{width:var(--datatable--header-cell-width);min-width:var(--datatable-header-cell-min-width);min-height:var(--datatable-header-cell-min-height, var(--datatable-cell-min-height, 50px));flex-grow:var(--datatable-header-cell-grow);flex-shrink:var(--datatable-header-cell-shrink)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:var(--sort-btn-margin, 5px 5px 0px);width:var(--sort-btn-width, 16px);height:var(--sort-btn-height, 16px)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:var(--sort-btn-icon, \"\\f127\");display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:400!important;font-variant:normal;font-size:var(--sort-btn-icon-size, 16px);text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased;color:var(--sort-btn-icon-color, black)}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-up{--sort-btn-icon: \"\\f57b\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn.datatable-icon-down{--sort-btn-icon: \"\\f574\"}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-row-left .datatable-body-cell{display:var(--datatable-body-left-cell-display, flex);justify-content:var(--datatable-body-left-cell-justify, flex-start);align-items:var(--datatable-body-left-cell-align-items, center);padding-inline:var(--datatable-body-left-cell-padding-inline)}.ngx-datatable .datatable-body .datatable-scroll{min-width:var(--datatable-scroll-min-width, 100%)!important;--datatable-body-cell-overflow: visible}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:var(--datatable-summary-row-height, 50px);font-size:var(--datatable-summary-row-font-size, 14px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:var(--datatable-body-row-min-width, 100%)!important;height:var(--datatable-body-row-height, 100%);padding:var(--datatable-body-row-padding, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{display:var(--datatable-row-display, flex);justify-content:var(--datatable-row-justify, space-between);align-items:var(--datatable-row-align, center);padding:var(--datatable-row-padding, 0px 20px);flex-grow:var(--datatable-row-flex-grow);min-width:var(--datatable-row-min-width);overflow:var(--datatable-row-overflow, visible);grid-template-columns:var(--datatable-row-columns);gap:var(--datatable-row-gap, 0)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{display:var(--datatable-body-cell-display, flex);align-items:var(--datatable-body-cell-align-items, center);justify-content:var(--datatable-body-cell-justify-content, center);gap:var(--datatable-body-cell-gap);flex-grow:var(--datatable-body-cell-grow);flex-shrink:var(--datatable-body-cell-shrink);overflow:var(--datatable-body-cell-overflow, hidden);width:var(--datatable--body-cell-width, var(--datatable-cell-width, auto));min-width:var(--datatable-body-cell-min-width, var(--datatable-cell-min-width, 0));min-height:var(--datatable-body-cell-min-height, var(--datatable-cell-min-height, 50px))}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{display:var(--datatable-body-cell-label-display, flex);justify-content:var(--datatable-body-cell-label-justify, center);font-size:var(--datatable-body-cell-label-font-size, inherit);font-weight:var(--datatable-body-cell-label-font-weight);line-height:var(--datatable-body-cell-label-line-height);width:var(--datatable-body-cell-label-width, 100%);color:var(--datatable-body-cell-label-color, inherit)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{width:auto;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:var(--yellow-200, #ebb98e)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:var(--status-icon-size, 16px)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:var(--white, #fff)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:var(--blue, #2e62df)!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(2n){background-color:var(--even-row-background, #f4f6f8)}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:var(--even-row-hover-background, #eef1f5)}.ngx-datatable div.datatable-row-left{order:1;margin-inline-start:auto;inset-inline:var(--datatable-row-left-inline, 0 auto);position:var(--datatable-row-left-position, sticky)!important}.ngx-datatable div.datatable-row-left .datatable-body-cell{overflow:hidden;background:var(--table-options-body-cell-color, #fff)}.ngx-datatable div.datatable-row-left .datatable-header-cell{overflow:hidden;background:var(--table-options-header-cell-color, #fff)}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding-inline:var(--tbl-card-inline-padding, 1rem);padding-block:var(--tbl-card-block-padding, 1rem);margin-inline:var(--tbl-card-inline-margin, 5px);margin-block:var(--tbl-card-block-margin, 0px 10px);min-width:var(--tbl-card-min-width, 250px);width:var(--tbl-card-width, 24%);background:var(--tbl-card-background, #fff);border:var(--tbl-card-border, 1px solid rgba(180, 186, 198, .2));border-radius:var(--tbl-card-radius, 4px);box-shadow:var(--tbl-card-shadow, 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12));cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:700;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:700}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:var(--green-600, #06a57e);color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:var(--white, #fff);text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}.actions-wrapper i{font-size:var(--table-options-font-size, 2rem)!important}\n"] }]
|
|
16670
16478
|
}], ctorParameters: () => [{ type: NuxeoService }, { type: AppConfigService }, { type: TranslationService }, { type: i0.ChangeDetectorRef }, { type: i0.DestroyRef }, { type: EvaluatorsService }], propDecorators: { dataTable: [{
|
|
16671
16479
|
type: ViewChild,
|
|
16672
16480
|
args: [DatatableComponent]
|
|
@@ -16735,6 +16543,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
16735
16543
|
type: Input
|
|
16736
16544
|
}], messages: [{
|
|
16737
16545
|
type: Input
|
|
16546
|
+
}], rowClass: [{
|
|
16547
|
+
type: Input
|
|
16738
16548
|
}], defaultColumnSize: [{
|
|
16739
16549
|
type: Input
|
|
16740
16550
|
}], selectionModel: [{
|
|
@@ -16894,7 +16704,7 @@ class TableColumnsTogglerComponent extends BaseComponent {
|
|
|
16894
16704
|
return item;
|
|
16895
16705
|
})
|
|
16896
16706
|
.filter((col) => col.display && col.type != "actions");
|
|
16897
|
-
this.defaultColumns =
|
|
16707
|
+
this.defaultColumns = ___default.cloneDeep(this._cols);
|
|
16898
16708
|
this.columnsSelection = new SelectionModel(true, this._filterByVisibility(this._cols));
|
|
16899
16709
|
this.columnsChange$.next();
|
|
16900
16710
|
}
|
|
@@ -16937,7 +16747,7 @@ class TableColumnsTogglerComponent extends BaseComponent {
|
|
|
16937
16747
|
col.order = index;
|
|
16938
16748
|
});
|
|
16939
16749
|
const data = columns.filter((col) => this.columnsSelection.isSelected(col));
|
|
16940
|
-
this.columnsChanged.emit(
|
|
16750
|
+
this.columnsChanged.emit(___default.cloneDeep(data));
|
|
16941
16751
|
this.enableSorting = false;
|
|
16942
16752
|
}
|
|
16943
16753
|
_selectAll() {
|
|
@@ -17086,7 +16896,7 @@ class AggregationFieldService {
|
|
|
17086
16896
|
}
|
|
17087
16897
|
_prepareOptions({ fieldConfig, aggregation }) {
|
|
17088
16898
|
return of(aggregation).pipe(map((aggregation) => {
|
|
17089
|
-
const _items =
|
|
16899
|
+
const _items = ___default.get(aggregation, fieldConfig?.propertyPath || 'buckets') || [];
|
|
17090
16900
|
return _items.map((item) => this._mapOption(item, fieldConfig));
|
|
17091
16901
|
}));
|
|
17092
16902
|
}
|
|
@@ -17131,7 +16941,7 @@ class AggregationFieldService {
|
|
|
17131
16941
|
_mapOption(item, config) {
|
|
17132
16942
|
const prefix = config?.prefix || '';
|
|
17133
16943
|
const bindValue = config?.bindValue;
|
|
17134
|
-
const value =
|
|
16944
|
+
const value = ___default.get(item, bindValue || 'key') || ___default.get(item, bindValue || 'id');
|
|
17135
16945
|
const option = {
|
|
17136
16946
|
id: item.key,
|
|
17137
16947
|
label: `${prefix}${item.key}`,
|
|
@@ -17139,8 +16949,8 @@ class AggregationFieldService {
|
|
|
17139
16949
|
count: item?.docCount,
|
|
17140
16950
|
localizedLabel: config.bindLabel
|
|
17141
16951
|
? {
|
|
17142
|
-
ar:
|
|
17143
|
-
en:
|
|
16952
|
+
ar: ___default.get(item, config?.bindLabel.ar),
|
|
16953
|
+
en: ___default.get(item, config?.bindLabel.en)
|
|
17144
16954
|
}
|
|
17145
16955
|
: null
|
|
17146
16956
|
};
|
|
@@ -17155,7 +16965,7 @@ class AggregationFieldService {
|
|
|
17155
16965
|
}
|
|
17156
16966
|
_prepareTooltip(item, config) {
|
|
17157
16967
|
return Object.entries(config.properties).reduce((acc, [key]) => {
|
|
17158
|
-
const val =
|
|
16968
|
+
const val = ___default.get(item, key);
|
|
17159
16969
|
if (val) {
|
|
17160
16970
|
acc[key] = val;
|
|
17161
16971
|
}
|
|
@@ -17187,7 +16997,7 @@ class FilterAutocompleteService extends BaseService {
|
|
|
17187
16997
|
throw new Error('Query URL is required for custom search.');
|
|
17188
16998
|
}
|
|
17189
16999
|
if (query?.method == 'post') {
|
|
17190
|
-
_payload =
|
|
17000
|
+
_payload = ___default.merge(query?.payload || {}, {
|
|
17191
17001
|
predicateList: [
|
|
17192
17002
|
{
|
|
17193
17003
|
name: query.field,
|
|
@@ -17220,8 +17030,8 @@ class FilterAutocompleteService extends BaseService {
|
|
|
17220
17030
|
if (!biddings) {
|
|
17221
17031
|
throw new Error(`[${config.query.field}] Biddings configuration is required to map response to filter options.`);
|
|
17222
17032
|
}
|
|
17223
|
-
const label =
|
|
17224
|
-
const value =
|
|
17033
|
+
const label = ___default.get(entry, biddings.label.en, entry.title);
|
|
17034
|
+
const value = ___default.get(entry, biddings.value, entry.uid);
|
|
17225
17035
|
const option = {
|
|
17226
17036
|
id: value,
|
|
17227
17037
|
value: value,
|
|
@@ -17230,11 +17040,11 @@ class FilterAutocompleteService extends BaseService {
|
|
|
17230
17040
|
if (biddings.label?.ar) {
|
|
17231
17041
|
option.localizedLabel = {
|
|
17232
17042
|
en: label,
|
|
17233
|
-
ar:
|
|
17043
|
+
ar: ___default.get(entry, biddings.label.ar, entry.title)
|
|
17234
17044
|
};
|
|
17235
17045
|
}
|
|
17236
17046
|
if (biddings?.count) {
|
|
17237
|
-
option.count =
|
|
17047
|
+
option.count = ___default.get(entry, biddings.count, 0);
|
|
17238
17048
|
}
|
|
17239
17049
|
return option;
|
|
17240
17050
|
});
|
|
@@ -17542,7 +17352,7 @@ class CheckConditionPipe {
|
|
|
17542
17352
|
return true;
|
|
17543
17353
|
}
|
|
17544
17354
|
try {
|
|
17545
|
-
return this.ndfEvaluatorService.evaluateSync(condition,
|
|
17355
|
+
return this.ndfEvaluatorService.evaluateSync(condition, ___default.cloneDeep({ aggregations, language, user: this.user, values: filterValues }));
|
|
17546
17356
|
}
|
|
17547
17357
|
catch (error) {
|
|
17548
17358
|
console.error({ error });
|
|
@@ -18635,7 +18445,7 @@ class InputRangeDateComponent extends BaseDatePicker {
|
|
|
18635
18445
|
}
|
|
18636
18446
|
_listenToValueChange() {
|
|
18637
18447
|
this.rangeControl.valueChanges
|
|
18638
|
-
.pipe(distinctUntilChanged((a, b) =>
|
|
18448
|
+
.pipe(distinctUntilChanged((a, b) => ___default.isEqual(this._createValidateObject(a), this._createValidateObject(b))), map((data) => this.calendarService.formatRangeOutputDate(data)), takeUntil(this.destroy$))
|
|
18639
18449
|
.subscribe((value) => this.onChange(value));
|
|
18640
18450
|
}
|
|
18641
18451
|
_listenToDisabledState() {
|
|
@@ -18743,7 +18553,7 @@ class InputDateComponent extends BaseDatePicker {
|
|
|
18743
18553
|
}
|
|
18744
18554
|
_listenToValueChange() {
|
|
18745
18555
|
this.dateControl.valueChanges
|
|
18746
|
-
.pipe(distinctUntilChanged((a, b) =>
|
|
18556
|
+
.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b)), map((data) => this.calendarService.formatOutputDate(data)), takeUntil(this.destroy$))
|
|
18747
18557
|
.subscribe((value) => this.onChange(value));
|
|
18748
18558
|
}
|
|
18749
18559
|
_listenToValidators() {
|
|
@@ -18838,7 +18648,7 @@ class NdfHijriDatepickerComponent extends BaseDatePickerContainer {
|
|
|
18838
18648
|
_updateLocalOnLanguageChange() {
|
|
18839
18649
|
if (this.localState.updateLocalLang) {
|
|
18840
18650
|
this.translateService.onLangChange
|
|
18841
|
-
.pipe(distinctUntilChanged((a, b) =>
|
|
18651
|
+
.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b)), takeUntil(this.destroy$))
|
|
18842
18652
|
.subscribe((lang) => {
|
|
18843
18653
|
this._dateAdapter.setLocale(getLocal(lang?.lang));
|
|
18844
18654
|
});
|
|
@@ -18928,7 +18738,7 @@ class NdfGregorianDatepickerComponent extends BaseDatePickerContainer {
|
|
|
18928
18738
|
_updateLocalOnLanguageChange() {
|
|
18929
18739
|
if (this.localState.updateLocalLang) {
|
|
18930
18740
|
this.translateService.onLangChange
|
|
18931
|
-
.pipe(distinctUntilChanged((a, b) =>
|
|
18741
|
+
.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b)), takeUntil(this.destroy$))
|
|
18932
18742
|
.subscribe((lang) => {
|
|
18933
18743
|
this._dateAdapter.setLocale(lang.lang);
|
|
18934
18744
|
});
|
|
@@ -19065,7 +18875,7 @@ class NdfDatepickerComponent extends BaseDateValueAccessor {
|
|
|
19065
18875
|
this.dateControl.valueChanges
|
|
19066
18876
|
.pipe(debounceTime(100), map((data) => this.range
|
|
19067
18877
|
? this.calendarService.prepareRangeOutputValue(data)
|
|
19068
|
-
: this.calendarService.prepareOutputValue(data)), distinctUntilChanged((a, b) =>
|
|
18878
|
+
: this.calendarService.prepareOutputValue(data)), distinctUntilChanged((a, b) => ___default.isEqual(a?.value, b?.value)))
|
|
19069
18879
|
.subscribe((value) => {
|
|
19070
18880
|
this.onChange(value);
|
|
19071
18881
|
});
|
|
@@ -19174,7 +18984,7 @@ class FilterDateRangeComponent extends BaseSelector {
|
|
|
19174
18984
|
}
|
|
19175
18985
|
ngOnInit() {
|
|
19176
18986
|
this.formControl.valueChanges
|
|
19177
|
-
.pipe(map((date) => this._prepareDateToEmit(date)), distinctUntilChanged((a, b) =>
|
|
18987
|
+
.pipe(map((date) => this._prepareDateToEmit(date)), distinctUntilChanged((a, b) => ___default.isEqual(a, b)), takeUntil(this.destroy$))
|
|
19178
18988
|
.subscribe((res) => {
|
|
19179
18989
|
this.onChange(res);
|
|
19180
18990
|
});
|
|
@@ -19812,7 +19622,7 @@ class AggregationBaseSelectionComponent extends BaseAggregationField {
|
|
|
19812
19622
|
writeValue(values) {
|
|
19813
19623
|
if (values) {
|
|
19814
19624
|
const _values = this._getValues(values);
|
|
19815
|
-
if (
|
|
19625
|
+
if (___default.isEqual(_values, this.internalValue)) {
|
|
19816
19626
|
return;
|
|
19817
19627
|
}
|
|
19818
19628
|
const _vals = Array.isArray(_values) ? _values : [_values];
|
|
@@ -19830,7 +19640,7 @@ class AggregationBaseSelectionComponent extends BaseAggregationField {
|
|
|
19830
19640
|
updateValue() {
|
|
19831
19641
|
this.selectionModel.changed
|
|
19832
19642
|
.asObservable()
|
|
19833
|
-
.pipe(map((data) => data.source.selected), distinctUntilChanged((a, b) =>
|
|
19643
|
+
.pipe(map((data) => data.source.selected), distinctUntilChanged((a, b) => ___default.isEqual(a, b)), filter$1((value) => !___default.isEqual(this.internalValue, value)), takeUntil(this.destroy$))
|
|
19834
19644
|
.subscribe((value) => {
|
|
19835
19645
|
this.emitValue(value);
|
|
19836
19646
|
});
|
|
@@ -20769,7 +20579,7 @@ class PredicateDateInputComponent extends BasePredicateField {
|
|
|
20769
20579
|
}
|
|
20770
20580
|
ngOnInit() {
|
|
20771
20581
|
this.formDate.valueChanges
|
|
20772
|
-
.pipe(map((date) => this._prepareDateToEmit(date)), distinctUntilChanged((a, b) =>
|
|
20582
|
+
.pipe(map((date) => this._prepareDateToEmit(date)), distinctUntilChanged((a, b) => ___default.isEqual(a, b)), debounceTime(this.debounceTime), takeUntil(this.destroy$))
|
|
20773
20583
|
.subscribe((res) => {
|
|
20774
20584
|
this._isFieldDirty = !!res;
|
|
20775
20585
|
this.onChange(res);
|
|
@@ -20891,7 +20701,7 @@ class PredicateSelectionListComponent extends BasePredicateField {
|
|
|
20891
20701
|
this.onChange(null);
|
|
20892
20702
|
}
|
|
20893
20703
|
writeValue(obj) {
|
|
20894
|
-
if (obj == undefined &&
|
|
20704
|
+
if (obj == undefined && ___default.isEqual(obj, this.internalValue)) {
|
|
20895
20705
|
return;
|
|
20896
20706
|
}
|
|
20897
20707
|
this.internalValue = obj;
|
|
@@ -20915,7 +20725,7 @@ class PredicateSelectionListComponent extends BasePredicateField {
|
|
|
20915
20725
|
updateValue() {
|
|
20916
20726
|
this.selectionModel.changed
|
|
20917
20727
|
.asObservable()
|
|
20918
|
-
.pipe(map$1((data) => data.source.selected), distinctUntilChanged$1((a, b) =>
|
|
20728
|
+
.pipe(map$1((data) => data.source.selected), distinctUntilChanged$1((a, b) => ___default.isEqual(a, b)), filter$2((value) => !___default.isEqual(this.internalValue, value)), takeUntil$1(this.destroy$))
|
|
20919
20729
|
.subscribe((value) => {
|
|
20920
20730
|
this.emitValue(value);
|
|
20921
20731
|
});
|
|
@@ -21186,7 +20996,7 @@ class BaseField extends BaseCustomValueAccessor {
|
|
|
21186
20996
|
return;
|
|
21187
20997
|
}
|
|
21188
20998
|
Object.keys(changes).forEach((key) => {
|
|
21189
|
-
this._componentRef.instance[key] =
|
|
20999
|
+
this._componentRef.instance[key] = ___default.cloneDeep(changes[key].currentValue);
|
|
21190
21000
|
});
|
|
21191
21001
|
this._componentRef.changeDetectorRef.detectChanges();
|
|
21192
21002
|
}
|
|
@@ -21513,7 +21323,7 @@ class FiltersPanelComponent extends BaseFiltersPanel {
|
|
|
21513
21323
|
.pipe(debounceTime(300), map((formValue) => {
|
|
21514
21324
|
const data = this._evaluateConditions(formValue);
|
|
21515
21325
|
return removeEmptyKeys(data);
|
|
21516
|
-
}), distinctUntilChanged((a, b) =>
|
|
21326
|
+
}), distinctUntilChanged((a, b) => ___default.isEqual(a, b)), takeUntil(this.destroy$))
|
|
21517
21327
|
.subscribe((res) => {
|
|
21518
21328
|
this.filterChanged.emit(res);
|
|
21519
21329
|
});
|
|
@@ -21537,7 +21347,7 @@ class FiltersPanelComponent extends BaseFiltersPanel {
|
|
|
21537
21347
|
const condition = field.config?.condition;
|
|
21538
21348
|
try {
|
|
21539
21349
|
const isVisible = !condition ||
|
|
21540
|
-
this.ndfEvaluatorService.evaluateSync(condition,
|
|
21350
|
+
this.ndfEvaluatorService.evaluateSync(condition, ___default.cloneDeep({
|
|
21541
21351
|
aggregations: this.aggregations,
|
|
21542
21352
|
language: this.currentLang,
|
|
21543
21353
|
user: this.nuxeoService.nuxeoClient.user,
|
|
@@ -21613,7 +21423,7 @@ class ActiveUserSwitchComponent extends BaseCustomField {
|
|
|
21613
21423
|
this.updateObjectValue();
|
|
21614
21424
|
}
|
|
21615
21425
|
getValue() {
|
|
21616
|
-
return
|
|
21426
|
+
return ___default.get(this._userService.getCurrentUser(), this.renderOptions?.bindValue || 'properties.username');
|
|
21617
21427
|
}
|
|
21618
21428
|
updateObjectValue() {
|
|
21619
21429
|
const operator = this.field?.operator || COMPARISON_OPERATOR.equals;
|
|
@@ -21670,7 +21480,7 @@ class AggregationGroupComponent extends BaseCustomField {
|
|
|
21670
21480
|
writeValue(value) {
|
|
21671
21481
|
if (value) {
|
|
21672
21482
|
const _values = this._getValues(value);
|
|
21673
|
-
if (
|
|
21483
|
+
if (___default.isEqual(_values, this.internalValue)) {
|
|
21674
21484
|
return;
|
|
21675
21485
|
}
|
|
21676
21486
|
this.internalValue = _values;
|
|
@@ -21690,7 +21500,7 @@ class AggregationGroupComponent extends BaseCustomField {
|
|
|
21690
21500
|
}
|
|
21691
21501
|
_listenToChanges() {
|
|
21692
21502
|
this.formGroup.valueChanges
|
|
21693
|
-
.pipe(distinctUntilChanged((a, b) =>
|
|
21503
|
+
.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b)), map(({ items }) => items.reduce((acc, curr) => acc.concat(curr), []).filter(Boolean)), filter$1((value) => !___default.isEqual(this.internalValue, value)), takeUntil(this.destroy$))
|
|
21694
21504
|
.subscribe((value) => {
|
|
21695
21505
|
this.emitValue(value);
|
|
21696
21506
|
});
|
|
@@ -22659,7 +22469,7 @@ class DynamicTableComponent {
|
|
|
22659
22469
|
return;
|
|
22660
22470
|
}
|
|
22661
22471
|
const hasChanged = (items) => items.some((key) => {
|
|
22662
|
-
const isEqual =
|
|
22472
|
+
const isEqual = ___default.isEqual(changes[key]?.previousValue || null, changes[key]?.currentValue || null);
|
|
22663
22473
|
return !isEqual;
|
|
22664
22474
|
});
|
|
22665
22475
|
if (hasChanged(['queryParam', 'quickFilter', 'customFilters'])) {
|
|
@@ -22728,7 +22538,7 @@ class DynamicTableComponent {
|
|
|
22728
22538
|
...(this.customFilters?.params || {}),
|
|
22729
22539
|
},
|
|
22730
22540
|
headers: _headers,
|
|
22731
|
-
payload:
|
|
22541
|
+
payload: ___default.merge({}, this.customUrl?.payload || {}, this.customFilters?.payload || {}),
|
|
22732
22542
|
};
|
|
22733
22543
|
let requestData = this.customUrl
|
|
22734
22544
|
? customRequest
|
|
@@ -22813,14 +22623,14 @@ class DynamicTableComponent {
|
|
|
22813
22623
|
this.onMultiRowSelected.emit(event);
|
|
22814
22624
|
}
|
|
22815
22625
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: DynamicTableComponent, deps: [{ token: AdapterService }, { token: CallApiService }, { token: DynamicTableService }, { token: TableHooksService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22816
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: DynamicTableComponent, isStandalone: false, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", columnMode: "columnMode", isLegacyMode: "isLegacyMode", showTotalRecord: "showTotalRecord", selectedRowsKeys: "selectedRowsKeys", paginationCustomTemplate: "paginationCustomTemplate", 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", singleSelectRow: "singleSelectRow", rowCheckboxPermission: "rowCheckboxPermission", 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 *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized && tableMode == 'list'\"\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 class=\"pagination-iner-wraper my-3\" [ngClass]=\"{ 'relative min-h-10': pageSizes?.length }\" *ngIf=\"rows.length\">\r\n\t\t<ng-container\r\n\t\t\t[ngTemplateOutlet]=\"paginationCustomTemplate || paginationDefaultTemplate\"\r\n\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t$implicit: pageSize,\r\n\t\t\t\ttotalRecords: totalRecords,\r\n\t\t\t\tpageNum: pageNum,\r\n\t\t\t\tpaginationChange: paginationChange,\r\n\t\t\t\tpageSizes: pageSizes,\r\n\t\t\t\tonChangePageSize: onChangePageSize,\r\n\t\t\t\tshowTotalRecord: showTotalRecord\r\n\t\t\t}\"\r\n\t\t></ng-container>\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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[selectedRowsKeys]=\"selectedRowsKeys\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[singleSelectRow]=\"singleSelectRow\"\r\n [rowCheckboxPermission]=\"rowCheckboxPermission\"\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[columnMode]=\"columnMode\"\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\r\n<ng-template #paginationDefaultTemplate>\r\n\t<cts-pagination\r\n\t\t*ngIf=\"totalRecords > pageSize\"\r\n\t\t[page]=\"pageNum\"\r\n\t\t(change)=\"paginationChange($event)\"\r\n\t\t[size]=\"pageSize\"\r\n\t\t[count]=\"totalRecords\"\r\n\t></cts-pagination>\r\n\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t<ndf-page-sizes-list\r\n\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t>\r\n\t\t</ndf-page-sizes-list>\r\n\r\n\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.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;max-height:var(--table-reposition-max-height)}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:700}::-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));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"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TableComponent, selector: "cts-table", inputs: ["rows", "selectionKey", "selectedRowsKeys", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "columnMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize", "selectionModel"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { kind: "component", type: PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }, { kind: "component", type: PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { kind: "component", type: SpinnerComponent, selector: "cts-spinner" }, { kind: "component", type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
22626
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: DynamicTableComponent, isStandalone: false, selector: "cts-dynamic-table", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", columnMode: "columnMode", isLegacyMode: "isLegacyMode", showTotalRecord: "showTotalRecord", selectedRowsKeys: "selectedRowsKeys", paginationCustomTemplate: "paginationCustomTemplate", 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", singleSelectRow: "singleSelectRow", rowCheckboxPermission: "rowCheckboxPermission", customFirstRow: "customFirstRow", highlightSelectedCard: "highlightSelectedCard", showActionsAsMenu: "showActionsAsMenu", filterParams: "filterParams", skipAggregation: "skipAggregation", customUrl: "customUrl", format: "format", requestActions: "requestActions", pageSizes: "pageSizes", rowClass: "rowClass" }, 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 *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized && tableMode == 'list'\"\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 class=\"pagination-iner-wraper my-3\" [ngClass]=\"{ 'relative min-h-10': pageSizes?.length }\" *ngIf=\"rows.length\">\r\n\t\t<ng-container\r\n\t\t\t[ngTemplateOutlet]=\"paginationCustomTemplate || paginationDefaultTemplate\"\r\n\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t$implicit: pageSize,\r\n\t\t\t\ttotalRecords: totalRecords,\r\n\t\t\t\tpageNum: pageNum,\r\n\t\t\t\tpaginationChange: paginationChange,\r\n\t\t\t\tpageSizes: pageSizes,\r\n\t\t\t\tonChangePageSize: onChangePageSize,\r\n\t\t\t\tshowTotalRecord: showTotalRecord\r\n\t\t\t}\"\r\n\t\t></ng-container>\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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[selectedRowsKeys]=\"selectedRowsKeys\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[singleSelectRow]=\"singleSelectRow\"\r\n [rowCheckboxPermission]=\"rowCheckboxPermission\"\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[rowClass]=\"rowClass\"\r\n\t\t[highlightSelectedCard]=\"highlightSelectedCard\"\r\n\t\t[columnMode]=\"columnMode\"\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\r\n<ng-template #paginationDefaultTemplate>\r\n\t<cts-pagination\r\n\t\t*ngIf=\"totalRecords > pageSize\"\r\n\t\t[page]=\"pageNum\"\r\n\t\t(change)=\"paginationChange($event)\"\r\n\t\t[size]=\"pageSize\"\r\n\t\t[count]=\"totalRecords\"\r\n\t></cts-pagination>\r\n\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t<ndf-page-sizes-list\r\n\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t>\r\n\t\t</ndf-page-sizes-list>\r\n\r\n\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.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;max-height:var(--table-reposition-max-height)}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:700}::-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));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"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TableComponent, selector: "cts-table", inputs: ["rows", "selectionKey", "selectedRowsKeys", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "columnMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "showActionsAsMenu", "messages", "rowClass", "defaultColumnSize", "selectionModel"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { kind: "component", type: PageSizesListComponent, selector: "ndf-page-sizes-list", inputs: ["pageSizes", "selectedPageSize"], outputs: ["onChangePageSize"] }, { kind: "component", type: PaginationComponent, selector: "cts-pagination", inputs: ["size", "count", "page"], outputs: ["change"] }, { kind: "component", type: SpinnerComponent, selector: "cts-spinner" }, { kind: "component", type: SkeletonComponent, selector: "app-skeleton", inputs: ["styleClass", "style", "shape", "animation", "radius", "size", "width", "height", "randomWidth"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
22817
22627
|
}
|
|
22818
22628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: DynamicTableComponent, decorators: [{
|
|
22819
22629
|
type: Component,
|
|
22820
22630
|
args: [{ selector: 'cts-dynamic-table', encapsulation: ViewEncapsulation.None, host: {
|
|
22821
22631
|
'[class.loading-results]': 'loading',
|
|
22822
22632
|
'[class.no-data]': 'rows.length <= 0',
|
|
22823
|
-
}, standalone: false, 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 *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized && tableMode == 'list'\"\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 class=\"pagination-iner-wraper my-3\" [ngClass]=\"{ 'relative min-h-10': pageSizes?.length }\" *ngIf=\"rows.length\">\r\n\t\t<ng-container\r\n\t\t\t[ngTemplateOutlet]=\"paginationCustomTemplate || paginationDefaultTemplate\"\r\n\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t$implicit: pageSize,\r\n\t\t\t\ttotalRecords: totalRecords,\r\n\t\t\t\tpageNum: pageNum,\r\n\t\t\t\tpaginationChange: paginationChange,\r\n\t\t\t\tpageSizes: pageSizes,\r\n\t\t\t\tonChangePageSize: onChangePageSize,\r\n\t\t\t\tshowTotalRecord: showTotalRecord\r\n\t\t\t}\"\r\n\t\t></ng-container>\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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[selectedRowsKeys]=\"selectedRowsKeys\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[singleSelectRow]=\"singleSelectRow\"\r\n [rowCheckboxPermission]=\"rowCheckboxPermission\"\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[columnMode]=\"columnMode\"\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\r\n<ng-template #paginationDefaultTemplate>\r\n\t<cts-pagination\r\n\t\t*ngIf=\"totalRecords > pageSize\"\r\n\t\t[page]=\"pageNum\"\r\n\t\t(change)=\"paginationChange($event)\"\r\n\t\t[size]=\"pageSize\"\r\n\t\t[count]=\"totalRecords\"\r\n\t></cts-pagination>\r\n\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t<ndf-page-sizes-list\r\n\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t>\r\n\t\t</ndf-page-sizes-list>\r\n\r\n\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.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;max-height:var(--table-reposition-max-height)}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:700}::-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));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"] }]
|
|
22633
|
+
}, standalone: false, 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 *ngIf=\"rows.length\" [ngTemplateOutlet]=\"table\"></ng-container>\r\n\t\t<ng-container\r\n\t\t\t*ngIf=\"!initialized && tableMode == 'list'\"\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 class=\"pagination-iner-wraper my-3\" [ngClass]=\"{ 'relative min-h-10': pageSizes?.length }\" *ngIf=\"rows.length\">\r\n\t\t<ng-container\r\n\t\t\t[ngTemplateOutlet]=\"paginationCustomTemplate || paginationDefaultTemplate\"\r\n\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t$implicit: pageSize,\r\n\t\t\t\ttotalRecords: totalRecords,\r\n\t\t\t\tpageNum: pageNum,\r\n\t\t\t\tpaginationChange: paginationChange,\r\n\t\t\t\tpageSizes: pageSizes,\r\n\t\t\t\tonChangePageSize: onChangePageSize,\r\n\t\t\t\tshowTotalRecord: showTotalRecord\r\n\t\t\t}\"\r\n\t\t></ng-container>\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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]=\"{\r\n\t\t\t$implicit: loading,\r\n\t\t\trows: rows,\r\n\t\t\tinitialized: initialized\r\n\t\t}\"\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[selectedRowsKeys]=\"selectedRowsKeys\"\r\n\t\t[columns]=\"columns\"\r\n\t\t[responsiveColumns]=\"responsiveColumns\"\r\n\t\t[rowCursor]=\"rowCursor\"\r\n\t\t[fullWidth]=\"fullWidth\"\r\n\t\t[entityType]=\"entityType\"\r\n\t\t[prefix]=\"prefix\"\r\n\t\t[totalRecords]=\"totalRecords\"\r\n\t\t[tableMode]=\"tableMode\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[multiSelectRows]=\"multiSelectRows\"\r\n\t\t[singleSelectRow]=\"singleSelectRow\"\r\n [rowCheckboxPermission]=\"rowCheckboxPermission\"\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[rowClass]=\"rowClass\"\r\n\t\t[highlightSelectedCard]=\"highlightSelectedCard\"\r\n\t\t[columnMode]=\"columnMode\"\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\r\n<ng-template #paginationDefaultTemplate>\r\n\t<cts-pagination\r\n\t\t*ngIf=\"totalRecords > pageSize\"\r\n\t\t[page]=\"pageNum\"\r\n\t\t(change)=\"paginationChange($event)\"\r\n\t\t[size]=\"pageSize\"\r\n\t\t[count]=\"totalRecords\"\r\n\t></cts-pagination>\r\n\t<div class=\"absolute ndfPageSizes flex gap-x-3 items-center mt-2\">\r\n\t\t<ndf-page-sizes-list\r\n\t\t\t*ngIf=\"pageSizes?.length\"\r\n\t\t\t[pageSizes]=\"pageSizes\"\r\n\t\t\t[selectedPageSize]=\"pageSize\"\r\n\t\t\t(onChangePageSize)=\"onChangePageSize($event)\"\r\n\t\t>\r\n\t\t</ndf-page-sizes-list>\r\n\r\n\t\t<span *ngIf=\"showTotalRecord\">{{ 'TABLE.totalRecords' | translate: { count: totalRecords } }}</span>\r\n\t</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.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;max-height:var(--table-reposition-max-height)}.empty-state{padding:200px;display:flex;justify-content:center;align-items:center;font-size:20px;font-weight:700}::-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));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"] }]
|
|
22824
22634
|
}], ctorParameters: () => [{ type: AdapterService }, { type: CallApiService }, { type: DynamicTableService }, { type: TableHooksService }, { type: i0.ChangeDetectorRef }], propDecorators: { onRowSelected: [{
|
|
22825
22635
|
type: Output
|
|
22826
22636
|
}], onRowIndexSelected: [{
|
|
@@ -22924,6 +22734,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
22924
22734
|
type: Input
|
|
22925
22735
|
}], pageSizes: [{
|
|
22926
22736
|
type: Input
|
|
22737
|
+
}], rowClass: [{
|
|
22738
|
+
type: Input
|
|
22927
22739
|
}] } });
|
|
22928
22740
|
|
|
22929
22741
|
/**
|
|
@@ -23447,7 +23259,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23447
23259
|
const activatedQuery = this._activatedCriteriaSub.getValue();
|
|
23448
23260
|
const currentValue = activatedQuery?.currentValue || {};
|
|
23449
23261
|
const previousValue = activatedQuery?.previousValue || {};
|
|
23450
|
-
const updatedKeys =
|
|
23262
|
+
const updatedKeys = ___default.union(___default.keys(previousValue), ___default.keys(currentValue)).filter((key) => !___default.isEqual(previousValue[key], currentValue[key]));
|
|
23451
23263
|
const triggerKeys = this.filterReloadConfig.triggerFields || [];
|
|
23452
23264
|
const shouldReload = triggerKeys.some((key) => updatedKeys.includes(key));
|
|
23453
23265
|
if (shouldReload) {
|
|
@@ -23497,7 +23309,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23497
23309
|
}
|
|
23498
23310
|
}
|
|
23499
23311
|
actualExportTable(type) {
|
|
23500
|
-
const request =
|
|
23312
|
+
const request = ___default.cloneDeep(this.exportTableConfig?.request);
|
|
23501
23313
|
if (!request) {
|
|
23502
23314
|
return EMPTY;
|
|
23503
23315
|
}
|
|
@@ -23528,9 +23340,9 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23528
23340
|
}).pipe(switchMap((translations) => {
|
|
23529
23341
|
const { blobName, blobNameEn } = this.exportTableConfig;
|
|
23530
23342
|
const currentTranslations = translations[this._translateService.currentLang];
|
|
23531
|
-
payload.reportMetaData.headers = headers.map((col) =>
|
|
23532
|
-
payload.reportMetaData.blobName =
|
|
23533
|
-
payload.reportMetaData.blobNameEn =
|
|
23343
|
+
payload.reportMetaData.headers = headers.map((col) => ___default.get(currentTranslations, col));
|
|
23344
|
+
payload.reportMetaData.blobName = ___default.get(translations['ar'], blobNameKey) ?? blobName;
|
|
23345
|
+
payload.reportMetaData.blobNameEn = ___default.get(translations['en'], blobNameKey) ?? blobNameEn;
|
|
23534
23346
|
return this._ngTableService.exportTable(request, payload).pipe(catchError((_) => {
|
|
23535
23347
|
this._toastrService.error('TABLE.EXPORT.requestError');
|
|
23536
23348
|
return of(false);
|
|
@@ -23573,7 +23385,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23573
23385
|
filters.params[_key] = search
|
|
23574
23386
|
? NxQlQuery.prepareValue(search, this.textSearchConfig.operator || COMPARISON_OPERATOR.equals)
|
|
23575
23387
|
: undefined;
|
|
23576
|
-
return
|
|
23388
|
+
return ___default.cloneDeep({ ...filters });
|
|
23577
23389
|
}
|
|
23578
23390
|
else {
|
|
23579
23391
|
const { predicateList } = filters?.payload || { predicateList: [] };
|
|
@@ -23593,7 +23405,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23593
23405
|
else if (searchIndex >= 0) {
|
|
23594
23406
|
predicateList.splice(searchIndex);
|
|
23595
23407
|
}
|
|
23596
|
-
return
|
|
23408
|
+
return ___default.cloneDeep({ ...filters });
|
|
23597
23409
|
}
|
|
23598
23410
|
}
|
|
23599
23411
|
}
|
|
@@ -23646,7 +23458,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23646
23458
|
this._ndfTableConfigurationService
|
|
23647
23459
|
.getTableConfiguration(key, this.configPath)
|
|
23648
23460
|
.pipe(switchMap((config) => {
|
|
23649
|
-
if (this.configTransformer &&
|
|
23461
|
+
if (this.configTransformer && ___default.isFunction(this.configTransformer)) {
|
|
23650
23462
|
return this.configTransformer(config);
|
|
23651
23463
|
}
|
|
23652
23464
|
return of(config);
|
|
@@ -23663,7 +23475,7 @@ class NdfTableComponent extends DestroySubject {
|
|
|
23663
23475
|
});
|
|
23664
23476
|
}
|
|
23665
23477
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: NdfTableComponent, deps: [{ token: FiltersMapperService }, { token: DynamicTableService }, { token: i1$1.TranslateService }, { token: NdfTableService }, { token: CustomToastrService }, { token: NdfTableConfigurationService }, { token: i1$6.MatDialog }, { token: NuxeoDialogService }, { token: NDF_TABLE_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23666
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: NdfTableComponent, isStandalone: false, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", styleClass: "styleClass", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", isWaitingData: "isWaitingData", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm", selectedRowsKeys: "selectedRowsKeys" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSearchChange: "onSearchChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "paginationCustomTemplate", first: true, predicate: PAGINATION_TABLE_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n *ngIf=\"tableConfig\"\r\n class=\"ndf-table__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n cssVar=\"--ndf-table-height\"\r\n [calculate]=\"autoCalculateHeight\"\r\n>\r\n <div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n <app-filters-panel\r\n [fields]=\"filtersConfig.fields\"\r\n [aggregations]=\"aggregations$ | async\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeQuery\"\r\n class=\"ndf-table__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n <div class=\"ndf-table__content\">\r\n <div class=\"ndf-table__header flex\">\r\n <div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch,\r\n searchTerm: searchTerm,\r\n }\"\r\n ></ng-container>\r\n\r\n <ng-template #defaultActionTemplate>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"isPanelToggleAvailable && !!filtersConfig?.fields?.length\"\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-text-search\r\n *ngIf=\"textSearchConfig && !textSearchConfig?.hidden\"\r\n [searchConfig]=\"textSearchConfig\"\r\n (openModal)=\"openSearchModal()\"\r\n [search]=\"textSearch$ | async\"\r\n (searchChange)=\"onTextSearch($event)\"\r\n (clear)=\"onClearSearch()\"\r\n ></app-text-search>\r\n </ng-template>\r\n </div>\r\n <div class=\"ndf-table__header__actions flex gap-3 items-center\">\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n [key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <ndf-table-export\r\n *ngIf=\"exportTableConfig?.enabled\"\r\n [config]=\"exportTableConfig\"\r\n (onExport)=\"exportTable($event)\"\r\n ></ndf-table-export>\r\n\r\n <table-sorting-list\r\n *ngIf=\"!!sortList?.length\"\r\n [sortList]=\"sortList\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></table-sorting-list>\r\n <table-columns-toggler\r\n *ngIf=\"columnToggle\"\r\n [columns]=\"tableConfig.columns\"\r\n [prefix]=\"tableConfig.prefix\"\r\n [sortable]=\"columnsOptions?.sortable\"\r\n (columnsChanged)=\"columnsChanged($event)\"\r\n ></table-columns-toggler>\r\n <mode-toggler\r\n *ngIf=\"tableMode?.toggleMode\"\r\n [mode]=\"tableMode.mode || 'list'\"\r\n [modesList]=\"tableMode?.availableMode\"\r\n (modeChanged)=\"modeChanged($event)\"\r\n ></mode-toggler>\r\n <ng-container\r\n [ngTemplateOutlet]=\"actionsTableTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch,\r\n searchTerm: searchTerm,\r\n }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n\r\n <cts-dynamic-table\r\n *ngIf=\"!tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [selectedRowsKeys]=\"selectedRowsKeys\"\r\n [ngClass]=\"styleClass\"\r\n [columnMode]=\"tableConfig?.columnMode || 'standard'\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [pageSize]=\"tableConfig.pageSize || 10\"\r\n [pageNumber]=\"tableConfig.pageNumber || 1\"\r\n [pageProvider]=\"tableConfig.pageProvider\"\r\n [customUrl]=\"tableConfig.customUrl\"\r\n [quickFilter]=\"\r\n tableConfig.quickFilters\r\n ? { quickFilters: tableConfig.quickFilters }\r\n : undefined\r\n \"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [sortingBy]=\"sortOption$ | async\"\r\n [entityType]=\"'all'\"\r\n [fields]=\"tableConfig.fields\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [range]=\"tableConfig?.range\"\r\n [isSearchPage]=\"tableConfig?.isSearchPage\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [singleSelectRow]=\"tableConfig?.singleSelectRow\"\r\n [rowCheckboxPermission]=\"tableConfig?.rowCheckboxPermission\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [filterParams]=\"tableConfig?.filterParams\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [rowCursor]=\"true\"\r\n [queryParam]=\"tableConfig.queryParam\"\r\n [customFilters]=\"searchAndFilters$ | async\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [requestActions]=\"tableConfig?.requestActions\"\r\n [headers]=\"tableConfig.headers\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onGettingData)=\"onGettingData.emit($event)\"\r\n (onLoad)=\"onLoad($event)\"\r\n (onInitialize)=\"onInitialize($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (onLoading)=\"onLoading.emit($event)\"\r\n (onPage)=\"onPageChanged($event)\"\r\n [isLegacyMode]=\"false\"\r\n [showTotalRecord]=\"true\"\r\n [paginationCustomTemplate]=\"paginationCustomTemplate\"\r\n (sortChanged)=\"onSortChanged($event)\"\r\n >\r\n <ng-template\r\n emptyTemplate\r\n let-isLoading\r\n let-rows=\"rows\"\r\n let-initialized=\"initialized\"\r\n >\r\n <div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <div\r\n class=\"flex items-center justify-center h-5/6\"\r\n *ngIf=\"!isLoading && !rows.length\"\r\n >\r\n <app-no-data-found\r\n class=\"mt-4\"\r\n [message]=\"emptyMessage\"\r\n ></app-no-data-found>\r\n </div>\r\n </ng-template>\r\n </cts-dynamic-table>\r\n\r\n <cts-table\r\n *ngIf=\"tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [ngClass]=\"styleClass\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [columnMode]=\"tableConfig?.columnMode || 'standard'\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [rowCursor]=\"true\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [entityType]=\"'all'\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [singleSelectRow]=\"tableConfig?.singleSelectRow\"\r\n [rowCheckboxPermission]=\"tableConfig?.rowCheckboxPermission\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onSorting)=\"onSortChanged($event)\"\r\n [selectedRowsKeys]=\"selectedRowsKeys\"\r\n ></cts-table>\r\n <div class=\"loading-data\" *ngIf=\"isWaitingData\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--mat-outlined-button-icon-offset: 0;--mat-outlined-button-icon-spacing: 0;padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:var(--ndf-tbl-height, 100%);position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - var(--ndf-tbl-block-padding, 1rem) * 2.5));flex-grow:1;gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{--border-width: var(--ndf-tbl-panel-border-width, 0);position:absolute;width:var(--panel-width);height:var(--ndf-table-panel-height, calc(var(--ndf-table-height, auto) - var(--ndf-tbl-block-padding, 1rem) * 2));transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);border-style:solid;border-inline-width:var(--ndf-tbl-panel-border-inline-width, var(--border-width));border-block-width:var(--ndf-tbl-panel-border--block-width, var(--border-width));border-color:var(--ndf-tbl-panel-border-color);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:var(--ndf-tbl-content-height, auto)}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{width:var(--ndf-tbl-actions-width);justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions{width:var(--ndf-tbl-custom-actions-width)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column;border:var(--ndf-tbl-border, 0 solid);padding-inline:var(--ndf-tbl-padding-inline);padding-block:var(--ndf-tbl-padding-block)}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:start center;padding-top:calc(var(--ndf-table-height, 5vh) / 2 - 50px);background:var(--loading-data-background, rgba(255, 255, 255, .2));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { kind: "component", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "columnMode", "isLegacyMode", "showTotalRecord", "selectedRowsKeys", "paginationCustomTemplate", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { kind: "directive", type: EmptyTemplateDirective, selector: "[emptyTemplate]" }, { kind: "directive", type: i2$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: TableComponent, selector: "cts-table", inputs: ["rows", "selectionKey", "selectedRowsKeys", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "columnMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "showActionsAsMenu", "messages", "defaultColumnSize", "selectionModel"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { kind: "component", type: NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { kind: "component", type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { kind: "component", type: SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { kind: "component", type: TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { kind: "component", type: ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { kind: "component", type: TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { kind: "component", type: TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }] }); }
|
|
23478
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: NdfTableComponent, isStandalone: false, selector: "app-ndf-table", inputs: { rows: "rows", totalRecords: "totalRecords", autoCalculateHeight: "autoCalculateHeight", emptyMessage: "emptyMessage", activeQuery: "activeQuery", configPath: "configPath", styleClass: "styleClass", configTransformer: "configTransformer", tableKey: "tableKey", jsonEditorEnabled: "jsonEditorEnabled", isWaitingData: "isWaitingData", config: "config", customCriteria: "customCriteria", searchTerm: "searchTerm", selectedRowsKeys: "selectedRowsKeys" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", actionOnRow: "actionOnRow", onGettingData: "onGettingData", onMultiRowSelected: "onMultiRowSelected", onLoading: "onLoading", onPage: "onPage", onInitialized: "onInitialized", onLoaded: "onLoaded", onQueryChange: "onQueryChange", onSearchChange: "onSearchChange", onSort: "onSort" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-table" }, queries: [{ propertyName: "actionsTableTemplate", first: true, predicate: ACTIONS_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "searchTableTemplate", first: true, predicate: SEARCH_TABLE_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "filterCustomTemplate", first: true, predicate: FILTER_CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "paginationCustomTemplate", first: true, predicate: PAGINATION_TABLE_TEMPLATE, descendants: true, read: TemplateRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n *ngIf=\"tableConfig\"\r\n class=\"ndf-table__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n cssVar=\"--ndf-table-height\"\r\n [calculate]=\"autoCalculateHeight\"\r\n>\r\n <div class=\"ndf-table__panel\" *ngIf=\"filtersConfig?.fields\">\r\n <app-filters-panel\r\n [fields]=\"filtersConfig.fields\"\r\n [aggregations]=\"aggregations$ | async\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeQuery\"\r\n class=\"ndf-table__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n <div class=\"ndf-table__content\">\r\n <div class=\"ndf-table__header flex\">\r\n <div class=\"ndf-table__header__custom-actions flex gap-x-4 items-center\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"searchTableTemplate || defaultActionTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch,\r\n searchTerm: searchTerm,\r\n }\"\r\n ></ng-container>\r\n\r\n <ng-template #defaultActionTemplate>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"isPanelToggleAvailable && !!filtersConfig?.fields?.length\"\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-text-search\r\n *ngIf=\"textSearchConfig && !textSearchConfig?.hidden\"\r\n [searchConfig]=\"textSearchConfig\"\r\n (openModal)=\"openSearchModal()\"\r\n [search]=\"textSearch$ | async\"\r\n (searchChange)=\"onTextSearch($event)\"\r\n (clear)=\"onClearSearch()\"\r\n ></app-text-search>\r\n </ng-template>\r\n </div>\r\n <div class=\"ndf-table__header__actions flex gap-3 items-center\">\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && (tableKey || tableConfig?.key)\"\r\n [key]=\"tableKey || tableConfig?.key\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <ndf-table-export\r\n *ngIf=\"exportTableConfig?.enabled\"\r\n [config]=\"exportTableConfig\"\r\n (onExport)=\"exportTable($event)\"\r\n ></ndf-table-export>\r\n\r\n <table-sorting-list\r\n *ngIf=\"!!sortList?.length\"\r\n [sortList]=\"sortList\"\r\n (sortChanged)=\"sortChanged($event)\"\r\n ></table-sorting-list>\r\n <table-columns-toggler\r\n *ngIf=\"columnToggle\"\r\n [columns]=\"tableConfig.columns\"\r\n [prefix]=\"tableConfig.prefix\"\r\n [sortable]=\"columnsOptions?.sortable\"\r\n (columnsChanged)=\"columnsChanged($event)\"\r\n ></table-columns-toggler>\r\n <mode-toggler\r\n *ngIf=\"tableMode?.toggleMode\"\r\n [mode]=\"tableMode.mode || 'list'\"\r\n [modesList]=\"tableMode?.availableMode\"\r\n (modeChanged)=\"modeChanged($event)\"\r\n ></mode-toggler>\r\n <ng-container\r\n [ngTemplateOutlet]=\"actionsTableTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: tableConfig,\r\n panelOpened: isPanelOpened,\r\n togglePanel: togglePanel,\r\n openModal: openSearchModal,\r\n search: onTextSearch,\r\n clear: onClearSearch,\r\n searchTerm: searchTerm,\r\n }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n\r\n <cts-dynamic-table\r\n *ngIf=\"!tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [selectedRowsKeys]=\"selectedRowsKeys\"\r\n [ngClass]=\"styleClass\"\r\n [columnMode]=\"tableConfig?.columnMode || 'standard'\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [pageSize]=\"tableConfig.pageSize || 10\"\r\n [pageNumber]=\"tableConfig.pageNumber || 1\"\r\n [pageProvider]=\"tableConfig.pageProvider\"\r\n [customUrl]=\"tableConfig.customUrl\"\r\n [quickFilter]=\"\r\n tableConfig.quickFilters\r\n ? { quickFilters: tableConfig.quickFilters }\r\n : undefined\r\n \"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [sortingBy]=\"sortOption$ | async\"\r\n [entityType]=\"'all'\"\r\n [fields]=\"tableConfig.fields\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [range]=\"tableConfig?.range\"\r\n [isSearchPage]=\"tableConfig?.isSearchPage\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [singleSelectRow]=\"tableConfig?.singleSelectRow\"\r\n [rowCheckboxPermission]=\"tableConfig?.rowCheckboxPermission\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [filterParams]=\"tableConfig?.filterParams\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [pageSizes]=\"tableConfig?.pageSizes || defaultPageSizes\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [rowCursor]=\"true\"\r\n [queryParam]=\"tableConfig.queryParam\"\r\n [customFilters]=\"searchAndFilters$ | async\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [requestActions]=\"tableConfig?.requestActions\"\r\n [headers]=\"tableConfig.headers\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onGettingData)=\"onGettingData.emit($event)\"\r\n (onLoad)=\"onLoad($event)\"\r\n (onInitialize)=\"onInitialize($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (onLoading)=\"onLoading.emit($event)\"\r\n (onPage)=\"onPageChanged($event)\"\r\n [isLegacyMode]=\"false\"\r\n [showTotalRecord]=\"true\"\r\n [paginationCustomTemplate]=\"paginationCustomTemplate\"\r\n (sortChanged)=\"onSortChanged($event)\"\r\n >\r\n <ng-template\r\n emptyTemplate\r\n let-isLoading\r\n let-rows=\"rows\"\r\n let-initialized=\"initialized\"\r\n >\r\n <div class=\"loading-data\" *ngIf=\"isLoading && initialized\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n\r\n <div\r\n class=\"flex items-center justify-center h-5/6\"\r\n *ngIf=\"!isLoading && !rows.length\"\r\n >\r\n <app-no-data-found\r\n class=\"mt-4\"\r\n [message]=\"emptyMessage\"\r\n ></app-no-data-found>\r\n </div>\r\n </ng-template>\r\n </cts-dynamic-table>\r\n\r\n <cts-table\r\n *ngIf=\"tableConfig.isDataProvided\"\r\n class=\"ndf-table__table table-style\"\r\n [ngClass]=\"styleClass\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [columns]=\"displayedColumns$ | async\"\r\n [columnMode]=\"tableConfig?.columnMode || 'standard'\"\r\n [responsiveColumns]=\"displayedColumns$ | async\"\r\n [rowCursor]=\"true\"\r\n [fullWidth]=\"tableConfig.fullWidth || 'auto'\"\r\n [entityType]=\"'all'\"\r\n [prefix]=\"tableConfig.prefix || ''\"\r\n [tableMode]=\"viewMode$ | async\"\r\n [componentName]=\"tableMode?.['componentName']\"\r\n [multiSelectRows]=\"tableConfig?.multiSelectRows\"\r\n [singleSelectRow]=\"tableConfig?.singleSelectRow\"\r\n [rowCheckboxPermission]=\"tableConfig?.rowCheckboxPermission\"\r\n [customFirstRow]=\"tableConfig?.customFirstRow\"\r\n [tableActions]=\"tableConfig.tableActions\"\r\n [showActionsAsMenu]=\"tableConfig?.showActionsAsMenu\"\r\n [defultSort]=\"tableConfig.defaultSort || defaultSort\"\r\n [format]=\"tableConfig?.format || 'MMMM d, y'\"\r\n [highlightSelectedCard]=\"tableConfig?.highlightSelectedCard\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\"\r\n (onRowIndexSelected)=\"onRowIndexSelected.emit($event)\"\r\n (onMultiRowSelected)=\"onMultiRowSelected.emit($event)\"\r\n (actionOnRow)=\"actionOnRow.emit($event)\"\r\n (onSorting)=\"onSortChanged($event)\"\r\n [selectedRowsKeys]=\"selectedRowsKeys\"\r\n ></cts-table>\r\n <div class=\"loading-data\" *ngIf=\"isWaitingData\">\r\n <mat-spinner></mat-spinner>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{--mat-outlined-button-icon-offset: 0;--mat-outlined-button-icon-spacing: 0;padding-inline:var(--ndf-tbl-inline-padding, 1rem);padding-block:var(--ndf-tbl-block-padding, 1rem);border:var(--ndf-tbl-border, solid transparent);border-width:var(--ndf-table-border-width, 0);border-radius:var(--ndf-tbl-border-radius, 0);height:var(--ndf-tbl-height, 100%);position:relative;display:flex;flex-direction:column;background-color:var(--ndf-tbl-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host [dir=ltr]{--ndf-tbl-panel-translateX: -100%}:host:before,:host:after{box-sizing:border-box}::ng-deep .wrapping,::ng-deep .wrapping .table-reposition{overflow:visible}.ndf-table__container{--table-div-height: auto;--table-reposition-overflow-y: visible;--table-div-overflow: visible;--panel-width: var(--ndf-tbl-panel-width, 18rem);position:relative;overflow:hidden;display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-tbl-height, calc(var(--ndf-table-height, auto) - var(--ndf-tbl-block-padding, 1rem) * 2.5));flex-grow:1;gap:var(--ndf-table-container-gap, .5rem)}.ndf-table__container.panel-opened{--ndf-tbl-panel-translateX: 0;--ndf-tbl-content-pis: var(--panel-width)}.ndf-table__panel,.ndf-table__content{overflow:auto;transition:all .2s}.ndf-table__panel{--border-width: var(--ndf-tbl-panel-border-width, 0);position:absolute;width:var(--panel-width);height:var(--ndf-table-panel-height, calc(var(--ndf-table-height, auto) - var(--ndf-tbl-block-padding, 1rem) * 2));transform:translate(var(--ndf-tbl-panel-translateX, 100%));padding-inline:var(--ndf-tbl-panel-inline-padding, .5rem);padding-block:var(--ndf-tbl-panel-block-padding, .5rem);background:var(--ndf-tbl-panel-background, #fff);border-style:solid;border-inline-width:var(--ndf-tbl-panel-border-inline-width, var(--border-width));border-block-width:var(--ndf-tbl-panel-border--block-width, var(--border-width));border-color:var(--ndf-tbl-panel-border-color);z-index:1}.ndf-table__content{flex-grow:1;padding-inline-start:var(--ndf-tbl-content-pis, 0);padding-block-end:var(--ndf-tbl-content-pbe, 1rem);overflow-y:var(--ndf-tbl-content-overflow-y, auto);max-height:var(--ndf-tbl-content-max-height, var(--ndf-table-height));display:flex;flex-direction:column;height:var(--ndf-tbl-content-height, auto)}.ndf-table__header{background-color:var(--ndf-tbl-background, #fff);flex-direction:var(--ndf-tbl-header-direction, row);justify-content:var(--ndf-tbl-header-justify, space-between);align-items:var(--ndf-tbl-header-items, center);padding-inline:var(--ndf-tbl-header-padding-inline, .5rem);padding-block:var(--ndf-tbl-header-padding-block, 0 .5rem);position:var(--ndf-tbl-header-position, sticky);top:0;z-index:1}.ndf-table__header__actions{width:var(--ndf-tbl-actions-width);justify-content:var(--ndf-tbl-actions-justify, flex-end)}.ndf-table__header__custom-actions{width:var(--ndf-tbl-custom-actions-width)}.ndf-table__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-table__table{flex-grow:1;display:flex;flex-direction:column;border:var(--ndf-tbl-border, 0 solid);padding-inline:var(--ndf-tbl-padding-inline);padding-block:var(--ndf-tbl-padding-block)}.ndf-table__table.no-data{--table-div-height: auto}.loading-data{position:absolute;inset:0;display:grid;place-items:start center;padding-top:calc(var(--ndf-table-height, 5vh) / 2 - 50px);background:var(--loading-data-background, rgba(255, 255, 255, .2));backdrop-filter:var(--loading-data-backdrop-filter, blur(3px))}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { kind: "component", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "columnMode", "isLegacyMode", "showTotalRecord", "selectedRowsKeys", "paginationCustomTemplate", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes", "rowClass"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { kind: "directive", type: EmptyTemplateDirective, selector: "[emptyTemplate]" }, { kind: "directive", type: i2$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i4$3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: TableComponent, selector: "cts-table", inputs: ["rows", "selectionKey", "selectedRowsKeys", "columns", "responsiveColumns", "entityType", "prefix", "pageCount", "totalRecords", "rowCursor", "fullWidth", "vocItemTranslationPrefix", "tableMode", "componentName", "columnMode", "tableActions", "format", "defultSort", "highlightSelectedCard", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "showActionsAsMenu", "messages", "rowClass", "defaultColumnSize", "selectionModel"], outputs: ["onRowSelected", "onRowIndexSelected", "onIconSelected", "actionOnRow", "onSorting", "onMultiRowSelected"] }, { kind: "component", type: NoDataFoundComponent, selector: "app-no-data-found", inputs: ["message", "width", "height"] }, { kind: "component", type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { kind: "component", type: SortingListComponent, selector: "table-sorting-list", inputs: ["sortList"], outputs: ["sortChanged"] }, { kind: "component", type: TableColumnsTogglerComponent, selector: "table-columns-toggler", inputs: ["prefix", "sortable", "columns"], outputs: ["columnsChanged"] }, { kind: "component", type: ModeTogglerComponent, selector: "mode-toggler", inputs: ["modesList", "mode"], outputs: ["modeChanged"] }, { kind: "component", type: TextSearchComponent, selector: "app-text-search", inputs: ["searchConfig", "search"], outputs: ["searchChange", "openModal", "clear"] }, { kind: "component", type: TableExportComponent, selector: "ndf-table-export", inputs: ["config"], outputs: ["onExport"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }] }); }
|
|
23667
23479
|
}
|
|
23668
23480
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: NdfTableComponent, decorators: [{
|
|
23669
23481
|
type: Component,
|
|
@@ -24144,7 +23956,7 @@ class DynamicSearchComponent {
|
|
|
24144
23956
|
.execute());
|
|
24145
23957
|
}
|
|
24146
23958
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: DynamicSearchComponent, deps: [{ token: i1$4.ActivatedRoute }, { token: i1$4.Router }, { token: EvaluatorsService }, { token: NuxeoService }, { token: GlobalAdminService }, { token: 'environment' }, { token: i5.BreakpointObserver }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24147
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: DynamicSearchComponent, isStandalone: false, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", tableMode: "tableMode", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", suggesterApi: "suggesterApi", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: ["dynamicTable"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div\r\n class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{\r\n 'bg-accent-200': theme === 'dgda',\r\n 'bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'\r\n }\"\r\n [@collapse]=\"!openFilter\"\r\n >\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType\r\n ? aggregation.componentType\r\n : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div class=\"row d-search-wrapper wrapper\">\r\n <div class=\"wrapper-overlay\" *ngIf=\"loading\"></div>\r\n\r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete1\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete1=\"matAutocomplete\"\r\n >\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{ \"no_result_found\" | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType\r\n ? aggregation.componentType\r\n : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n [dir]=\"direction\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete2\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete2=\"matAutocomplete\"\r\n >\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{ \"no_result_found\" | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </form>\r\n\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType ? aggregation.componentType : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate : { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <div>\r\n <form\r\n class=\"d-flex justify-between\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <div *ngIf=\"useToggleFilters && !customResponsiveStyle\"></div>\r\n <div *ngIf=\"customResponsiveStyle\">\r\n <div class=\"search-form custom-responsive-search\">\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div\r\n (click)=\"submitForm()\"\r\n class=\"search-icon bi bi-search\"\r\n ></div>\r\n </div>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{ no_result_found | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{\r\n resultSet.label\r\n }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"useToggleFilters\">\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.PERSONAL_FILES'\"\r\n (onToggle)=\"submitForm()\"\r\n formControlName=\"personalFiles\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.DEP_FILES'\"\r\n formControlName=\"depFiles\"\r\n (onToggle)=\"submitForm()\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.WORKSPACE_FILES'\"\r\n formControlName=\"workSpaceFiles\"\r\n (onToggle)=\"submitForm()\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <cts-dynamic-table\r\n #dynamicTable\r\n [pageSize]=\"pageSize\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\"\r\n [quickFilter]=\"filter\"\r\n [entityType]=\"entityType\"\r\n [fields]=\"fields\"\r\n [queryParam]=\"queryParams\"\r\n [headers]=\"headers\"\r\n [prefix]=\"prefix\"\r\n [sortingBy]=\"sortingBy\"\r\n [tableMode]=\"tableMode?.mode || 'list'\"\r\n [componentName]=\"tableMode?.componentName\"\r\n [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"\r\n ></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}:root{--mat-option-hover-state-layer-color: #f0f0f0}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.auto-complete-iner-wrapper{max-height:350px;border-radius:4px}.auto-complete-iner-wrapper .no-text{font-size:14px;color:#465573}.auto-complete-iner-wrapper .mat-option{text-align:start;color:#465573;font-weight:700;font-size:14px}.auto-complete-iner-wrapper .mat-option .mat-option-text{text-align:flex-start}.search-form{display:flex;color:#6a768e;width:100%}.search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.small-font{font-size:14px}.custom-responsive-search{width:300px!important;margin:0 35px}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.wrapper .wrapper-overlay{position:absolute;inset:0;z-index:9}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CardComponent, selector: "app-card", inputs: ["styleClass", "noBody", "dark"] }, { kind: "component", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "columnMode", "isLegacyMode", "showTotalRecord", "selectedRowsKeys", "paginationCustomTemplate", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { kind: "component", type: DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { kind: "component", type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i6$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: [
|
|
23959
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: DynamicSearchComponent, isStandalone: false, selector: "cts-dynamic-search", inputs: { columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", headers: "headers", fields: "fields", pageProvider: "pageProvider", pageSize: "pageSize", tableMode: "tableMode", sortingBy: "sortingBy", fullTextParamName: "fullTextParamName", filter: "filter", suggesterApi: "suggesterApi", onRowSelected: "onRowSelected", sortingArray: "sortingArray", customResponsiveStyle: "customResponsiveStyle", openCloseFilterFromOutside: "openCloseFilterFromOutside", theme: "theme" }, outputs: { actionOnRow: "actionOnRow" }, viewQueries: [{ propertyName: "dynamicTable", first: true, predicate: ["dynamicTable"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"search-toolbar d-md-flex d-xl-none mx-3\">\r\n <button (click)=\"onOpenFilter()\" class=\"my-button\">\r\n <span> {{ \"FILTER\" | translate }}</span>\r\n <i class=\"bi bi-filter\" *ngIf=\"!openFilter\"></i>\r\n <i class=\"bi bi-x\" *ngIf=\"openFilter\"></i>\r\n </button>\r\n <div *ngIf=\"openFilter\">\r\n <i class=\"bi bi-caret-up-fill arrow-up\"></i>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"customResponsiveStyle\">\r\n <div\r\n class=\"customStyle -mt-12 px-8 flex flex-col\"\r\n [ngClass]=\"{\r\n 'bg-accent-200': theme === 'dgda',\r\n 'bg-accent-100': theme === 'ksreleif' || theme === 'comptechco'\r\n }\"\r\n [@collapse]=\"!openFilter\"\r\n >\r\n <!-- <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form> -->\r\n <div class=\"flex gap-x-18 flex-row mt-5 pb-3 overflow-x-auto\">\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <ng-container *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType\r\n ? aggregation.componentType\r\n : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<div class=\"row d-search-wrapper wrapper\">\r\n <div class=\"wrapper-overlay\" *ngIf=\"loading\"></div>\r\n\r\n <ng-container *ngIf=\"!customResponsiveStyle\">\r\n <div class=\"popup-filter px-3 d-flex d-xl-none\" *ngIf=\"openFilter\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete1\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n </form>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete1=\"matAutocomplete\"\r\n >\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{ \"no_result_found\" | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <ng-container *ngIf=\"aggregations.length; else noAggregations\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType\r\n ? aggregation.componentType\r\n : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"col-xl-3 search-sideMenu d-none d-xl-block\">\r\n <form\r\n [formGroup]=\"searchForm\"\r\n class=\"search-form\"\r\n (ngSubmit)=\"submitForm()\"\r\n [dir]=\"direction\"\r\n >\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete2\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div (click)=\"submitForm()\" class=\"search-icon bi bi-search\"></div>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete2=\"matAutocomplete\"\r\n >\r\n <mat-option class=\"no-text\" *ngIf=\"resultSets && !resultSets.length\">\r\n {{ \"no_result_found\" | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{ resultSet.label }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </form>\r\n\r\n <ng-container *ngIf=\"aggregations; else progressSpinner\">\r\n <div *ngFor=\"let aggregation of aggregations\">\r\n <ng-container *ngIf=\"aggregation.buckets.length > 0\">\r\n <cts-dynamic-filter\r\n [entityType]=\"entityType\"\r\n [filters]=\"aggregation.buckets\"\r\n [id]=\"aggregation.id\"\r\n [selections]=\"aggregation.selection\"\r\n [title]=\"aggregation.field\"\r\n [prefix]=\"'search'\"\r\n [department]=\"\r\n aggregation.field === 'corr:to' ||\r\n aggregation.field === 'corr:from'\r\n \"\r\n [componentType]=\"\r\n aggregation.componentType ? aggregation.componentType : 'defult'\r\n \"\r\n [customPageProvider]=\"\r\n aggregation.customPageProvider\r\n ? aggregation.customPageProvider\r\n : ''\r\n \"\r\n [config]=\"aggregation.config ? aggregation.config : {}\"\r\n (onFilterSelected)=\"FilterSelected($event)\"\r\n >\r\n </cts-dynamic-filter>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-12 col-xl-9\">\r\n <app-card>\r\n <div class=\"title\">\r\n <h3>\r\n {{ \"search.header\" | translate }}\r\n </h3>\r\n </div>\r\n <div class=\"body\">\r\n <div *ngIf=\"aggregations\" class=\"table-toolbar\">\r\n <div class=\"result-count\">\r\n <span>\r\n {{\r\n \"search.\" + \"resultsNumber\"\r\n | translate : { value: totalRecords ? totalRecords : 0 }\r\n }}\r\n </span>\r\n </div>\r\n <div>\r\n <form\r\n class=\"d-flex justify-between\"\r\n [formGroup]=\"searchForm\"\r\n (ngSubmit)=\"submitForm()\"\r\n >\r\n <div *ngIf=\"useToggleFilters && !customResponsiveStyle\"></div>\r\n <div *ngIf=\"customResponsiveStyle\">\r\n <div class=\"search-form custom-responsive-search\">\r\n <input\r\n class=\"search-input\"\r\n type=\"text\"\r\n formControlName=\"text\"\r\n [matAutocomplete]=\"matAutocomplete\"\r\n [placeholder]=\"'search.search' | translate\"\r\n />\r\n <div\r\n (click)=\"submitForm()\"\r\n class=\"search-icon bi bi-search\"\r\n ></div>\r\n </div>\r\n <mat-autocomplete\r\n class=\"auto-complete-iner-wrapper auto-complete-wrapper\"\r\n [disableRipple]=\"true\"\r\n #matAutocomplete=\"matAutocomplete\"\r\n >\r\n <mat-option\r\n class=\"no-text\"\r\n *ngIf=\"resultSets && !resultSets.length\"\r\n >\r\n {{ no_result_found | translate }}\r\n </mat-option>\r\n <ng-container *ngFor=\"let resultSet of resultSets\">\r\n <mat-option (click)=\"setOptionValue(resultSet.label)\">\r\n <span class=\"option-iner-text\">{{\r\n resultSet.label\r\n }}</span>\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </div>\r\n <div class=\"d-flex\" *ngIf=\"useToggleFilters\">\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.PERSONAL_FILES'\"\r\n (onToggle)=\"submitForm()\"\r\n formControlName=\"personalFiles\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.DEP_FILES'\"\r\n formControlName=\"depFiles\"\r\n (onToggle)=\"submitForm()\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n <cts-dynamic-form-slide-toggleitem\r\n class=\"mx-2 small-font\"\r\n [label]=\"'search.WORKSPACE_FILES'\"\r\n formControlName=\"workSpaceFiles\"\r\n (onToggle)=\"submitForm()\"\r\n >\r\n </cts-dynamic-form-slide-toggleitem>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <cts-dynamic-table\r\n #dynamicTable\r\n [pageSize]=\"pageSize\"\r\n [columns]=\"columns\"\r\n [responsiveColumns]=\"responsiveColumns\"\r\n [pageProvider]=\"pageProvider\"\r\n [quickFilter]=\"filter\"\r\n [entityType]=\"entityType\"\r\n [fields]=\"fields\"\r\n [queryParam]=\"queryParams\"\r\n [headers]=\"headers\"\r\n [prefix]=\"prefix\"\r\n [sortingBy]=\"sortingBy\"\r\n [tableMode]=\"tableMode?.mode || 'list'\"\r\n [componentName]=\"tableMode?.componentName\"\r\n [isSearchPage]=\"true\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (actionOnRow)=\"performAction($event)\"\r\n (onGettingData)=\"getTableData($event)\"\r\n ></cts-dynamic-table>\r\n </div>\r\n </app-card>\r\n </div>\r\n\r\n <ng-template #progressSpinner>\r\n <div class=\"progress-spinner\">\r\n <mat-spinner color=\"warn\" [diameter]=\"25\"></mat-spinner>\r\n </div>\r\n </ng-template>\r\n <ng-template #noAggregations>\r\n <div class=\"progress-spinner\">\r\n {{ \"search.noAggregations\" | translate }}\r\n </div>\r\n </ng-template>\r\n</div>\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:700;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}.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,.my-dynamic-viewer .direction-img .outgoing,.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,.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}:root{--mat-option-hover-state-layer-color: #f0f0f0}.result-count{color:#8f98aa;font-size:14px}.search-sideMenu{background-color:#fff;padding-top:22px;padding-bottom:22px;border-radius:5px}.auto-complete-iner-wrapper{max-height:350px;border-radius:4px}.auto-complete-iner-wrapper .no-text{font-size:14px;color:#465573}.auto-complete-iner-wrapper .mat-option{text-align:start;color:#465573;font-weight:700;font-size:14px}.auto-complete-iner-wrapper .mat-option .mat-option-text{text-align:flex-start}.search-form{display:flex;color:#6a768e;width:100%}.search-form .search-input{width:100%;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.search-form .search-input::-webkit-input-placeholder{font-size:14px}.search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.search-form .search-icon{background:#465573;color:#fff;width:12%;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}.small-font{font-size:14px}.custom-responsive-search{width:300px!important;margin:0 35px}.search-toolbar{position:relative;display:flex;justify-content:flex-end;margin-bottom:16px}.search-toolbar .my-button{width:90px}.search-toolbar .arrow-up{position:absolute;top:26px;right:28px;font-size:25px;color:#8f98aab3}.wrapper{position:relative}.wrapper .popup-filter{flex-direction:column;position:absolute;right:0;z-index:9999;max-height:70vh;max-width:400px;background-color:#fff;overflow:scroll;box-shadow:0 1px 10px 2px #00000054;top:-4px;border-radius:5px}.wrapper .popup-filter .search-form{margin-top:10px!important}.wrapper .popup-filter .search-input{width:100%!important}.wrapper .search-container{background-color:#fff;border-radius:5px;border:0px;padding:16px;height:max-content}.wrapper .search-container .table-toolbar{display:flex;align-items:center;margin-bottom:8px;justify-content:space-between}.wrapper .wrapper-overlay{position:absolute;inset:0;z-index:9}.progress-spinner{margin-top:10px;margin-block-end:0;display:grid;place-items:center;width:100%}.rtl .popup-filter{left:0;right:unset!important}.rtl .arrow-up{position:absolute;top:33px;left:28px;right:unset!important}@media (width: 1180px),(width: 820px){.customStyle cts-dynamic-filter .aggregation-container{width:176px!important}}.customStyle .search-form{display:flex;color:#6a768e;width:100%}.customStyle .search-form .search-input{width:288px;border:1px solid #d9dce2;border-inline-end:0;border-start-start-radius:5px;border-end-start-radius:5px;border:1px solid #ccc;height:32px;font-size:16px;padding-inline-start:4px}.customStyle .search-form .search-input::-webkit-input-placeholder{font-size:14px}.customStyle .search-form .search-input:focus-visible{border:2px solid #465573;outline:transparent}.customStyle .search-form .search-icon{background:#465573;color:#fff;width:40px;display:flex;align-items:center;justify-content:center;border-radius:0;cursor:pointer;border:1px solid #d9dce2;border-start-end-radius:6px;border-end-end-radius:6px;border-inline-start:0}\n"], dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: CardComponent, selector: "app-card", inputs: ["styleClass", "noBody", "dark"] }, { kind: "component", type: DynamicTableComponent, selector: "cts-dynamic-table", inputs: ["columns", "responsiveColumns", "entityType", "prefix", "headers", "fields", "pageProvider", "pageSize", "columnMode", "isLegacyMode", "showTotalRecord", "selectedRowsKeys", "paginationCustomTemplate", "pageNumber", "sortingBy", "queryParam", "customFilters", "quickFilter", "report", "rowCursor", "fullWidth", "tableMode", "componentName", "tableActions", "defultSort", "range", "isSearchPage", "multiSelectRows", "singleSelectRow", "rowCheckboxPermission", "customFirstRow", "highlightSelectedCard", "showActionsAsMenu", "filterParams", "skipAggregation", "customUrl", "format", "requestActions", "pageSizes", "rowClass"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "sortChanged", "onPageChange", "onPage", "onLoad", "onInitialize"] }, { kind: "component", type: DynamicFilterComponent, selector: "cts-dynamic-filter", inputs: ["title", "filters", "selections", "id", "entityType", "prefix", "department", "componentType", "customPageProvider", "config"], outputs: ["onFilterSelected"] }, { kind: "component", type: DynamicFormSlideToggleitemComponent, selector: "cts-dynamic-form-slide-toggleitem", inputs: ["label", "disabled", "checked", "theme"], outputs: ["onToggle"] }, { kind: "directive", type: i2$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6$2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$1.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i6$2.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], animations: [
|
|
24148
23960
|
trigger('collapse', [
|
|
24149
23961
|
state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
|
|
24150
23962
|
state('true', style({ height: '0', visibility: 'hidden' })),
|
|
@@ -34635,7 +34447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
34635
34447
|
class NotificationsListComponent extends BaseListNotifications {
|
|
34636
34448
|
set config(val) {
|
|
34637
34449
|
if (val && typeof val === 'object') {
|
|
34638
|
-
this.options =
|
|
34450
|
+
this.options = ___default.merge(DEFAULT_LIST_OPTIONS, this.options, val);
|
|
34639
34451
|
}
|
|
34640
34452
|
}
|
|
34641
34453
|
constructor(inject, _options) {
|
|
@@ -34643,7 +34455,7 @@ class NotificationsListComponent extends BaseListNotifications {
|
|
|
34643
34455
|
this.inject = inject;
|
|
34644
34456
|
this.openSettings = new EventEmitter();
|
|
34645
34457
|
this.openNotifications = new EventEmitter();
|
|
34646
|
-
this.options =
|
|
34458
|
+
this.options = ___default.merge(DEFAULT_LIST_OPTIONS, _options ? _options : {});
|
|
34647
34459
|
this._paramsService.setDefaultParams({
|
|
34648
34460
|
pageSize: this.options.pageSize || 20,
|
|
34649
34461
|
sortBy: 'dc:created',
|
|
@@ -35037,7 +34849,7 @@ class NotificationsListContainerComponent extends BaseListNotifications {
|
|
|
35037
34849
|
this.inject = inject;
|
|
35038
34850
|
this.styleClass = "";
|
|
35039
34851
|
this.paginationMode = PAGINATION_MODE.navigator;
|
|
35040
|
-
this.options =
|
|
34852
|
+
this.options = ___default.merge(DEFAULT_CONTAINER_OPTIONS, _options ? _options : {});
|
|
35041
34853
|
this.paginationMode = this.options?.paginationMode || "navigator";
|
|
35042
34854
|
this._paramsService.setDefaultParams({
|
|
35043
34855
|
pageSize: this.options.pageSize || 20,
|
|
@@ -36574,7 +36386,7 @@ class StatisticService extends BaseService {
|
|
|
36574
36386
|
return iif(() => this._cache.has(key) && !ignoreCache, of(this._cache.get(key)), _getDataFromRemote$);
|
|
36575
36387
|
}
|
|
36576
36388
|
prepareStatistic(config, params = {}) {
|
|
36577
|
-
const hasOnQueryMethod = config?.onQuery &&
|
|
36389
|
+
const hasOnQueryMethod = config?.onQuery && ___default.isFunction(config.onQuery);
|
|
36578
36390
|
let _response = null;
|
|
36579
36391
|
return this.getStatistic({
|
|
36580
36392
|
params: hasOnQueryMethod ? config?.onQuery(params) : params,
|
|
@@ -36588,7 +36400,7 @@ class StatisticService extends BaseService {
|
|
|
36588
36400
|
return throwError(() => error);
|
|
36589
36401
|
}), map((res) => {
|
|
36590
36402
|
_response = res;
|
|
36591
|
-
return
|
|
36403
|
+
return ___default.get(res, config.propertyPath);
|
|
36592
36404
|
}), map((rawData) => {
|
|
36593
36405
|
if (config?.transformData) {
|
|
36594
36406
|
return config?.transformData(rawData, _response);
|
|
@@ -36608,12 +36420,12 @@ class StatisticService extends BaseService {
|
|
|
36608
36420
|
}
|
|
36609
36421
|
_getLabel(item, config) {
|
|
36610
36422
|
const translate = (key) => this.translateService.instant(`${this.translatePrefix}.${key}`);
|
|
36611
|
-
const label = config?.bindLabel ?
|
|
36423
|
+
const label = config?.bindLabel ? ___default.get(item, config.bindLabel) : null;
|
|
36612
36424
|
return label || translate(item.key);
|
|
36613
36425
|
}
|
|
36614
36426
|
_getValue(item, config) {
|
|
36615
36427
|
const bindValue = config?.bindValue || this.bindValue;
|
|
36616
|
-
return bindValue ?
|
|
36428
|
+
return bindValue ? ___default.get(item, bindValue) : item.docCount;
|
|
36617
36429
|
}
|
|
36618
36430
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: StatisticService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36619
36431
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: StatisticService, providedIn: 'root' }); }
|
|
@@ -36627,7 +36439,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
36627
36439
|
|
|
36628
36440
|
class DataChartComponent extends BaseChartComponent {
|
|
36629
36441
|
set dataSource(obj) {
|
|
36630
|
-
const isEqual =
|
|
36442
|
+
const isEqual = ___default.isEqual(obj, this._dataSource);
|
|
36631
36443
|
this._dataSource = obj;
|
|
36632
36444
|
if (obj && !isEqual && this._isInitialized) {
|
|
36633
36445
|
this._rebuildDataSub.next({});
|
|
@@ -36637,7 +36449,7 @@ class DataChartComponent extends BaseChartComponent {
|
|
|
36637
36449
|
return this._dataSource;
|
|
36638
36450
|
}
|
|
36639
36451
|
set updateData(params) {
|
|
36640
|
-
this._rebuildDataSub.next(
|
|
36452
|
+
this._rebuildDataSub.next(___default.isObject(params) ? params : {});
|
|
36641
36453
|
}
|
|
36642
36454
|
constructor(_translateService, _statisticService) {
|
|
36643
36455
|
super();
|
|
@@ -37238,14 +37050,14 @@ class BaseChart extends DestroySubject {
|
|
|
37238
37050
|
return this._data;
|
|
37239
37051
|
}
|
|
37240
37052
|
set config(config) {
|
|
37241
|
-
this._config =
|
|
37053
|
+
this._config = ___default.cloneDeep(config);
|
|
37242
37054
|
this._configSub.next(this._config);
|
|
37243
37055
|
}
|
|
37244
37056
|
get config() {
|
|
37245
37057
|
return this._config;
|
|
37246
37058
|
}
|
|
37247
37059
|
set criteria(value) {
|
|
37248
|
-
this._criteria =
|
|
37060
|
+
this._criteria = ___default.cloneDeep(value);
|
|
37249
37061
|
}
|
|
37250
37062
|
get criteria() {
|
|
37251
37063
|
return this._criteria;
|
|
@@ -37389,7 +37201,7 @@ class NdfReportsService extends BaseService {
|
|
|
37389
37201
|
...(request?.params || {}),
|
|
37390
37202
|
...(criteria?.params || {}),
|
|
37391
37203
|
};
|
|
37392
|
-
const payload =
|
|
37204
|
+
const payload = ___default.mergeWith(request.payload || {}, criteria?.payload || {}, (objValue, srcValue, key) => {
|
|
37393
37205
|
if (key === "predicateList") {
|
|
37394
37206
|
return (objValue || []).concat(srcValue || []);
|
|
37395
37207
|
}
|
|
@@ -37487,7 +37299,7 @@ class ChartManagerService {
|
|
|
37487
37299
|
const hiddenChart = new Chart(hiddenCanvas, {
|
|
37488
37300
|
type: chart.config?.type,
|
|
37489
37301
|
data: chart.config.data,
|
|
37490
|
-
options:
|
|
37302
|
+
options: ___default.merge({}, chart.config.options, {
|
|
37491
37303
|
animation: false,
|
|
37492
37304
|
responsive: false,
|
|
37493
37305
|
layout: {
|
|
@@ -37525,7 +37337,7 @@ class ChartManagerService {
|
|
|
37525
37337
|
},
|
|
37526
37338
|
}
|
|
37527
37339
|
: {}, options),
|
|
37528
|
-
plugins:
|
|
37340
|
+
plugins: ___default.merge([], [
|
|
37529
37341
|
chartDataLabels,
|
|
37530
37342
|
{
|
|
37531
37343
|
id: "canvasBackgroundColor",
|
|
@@ -37578,13 +37390,13 @@ class ReportTransformService {
|
|
|
37578
37390
|
this._ndfTransformService = _ndfTransformService;
|
|
37579
37391
|
}
|
|
37580
37392
|
_extractDataFormats(data) {
|
|
37581
|
-
const extractedData =
|
|
37393
|
+
const extractedData = ___default.flatMap(data, (item) => {
|
|
37582
37394
|
if ("datasource" in item && Array.isArray(item?.datasource)) {
|
|
37583
|
-
return
|
|
37395
|
+
return ___default.filter(item.datasource, (source) => source.dataFormat);
|
|
37584
37396
|
}
|
|
37585
37397
|
return [];
|
|
37586
37398
|
});
|
|
37587
|
-
return
|
|
37399
|
+
return ___default.groupBy(extractedData, "dataFormat");
|
|
37588
37400
|
}
|
|
37589
37401
|
prepareData(reportData, config) {
|
|
37590
37402
|
const fields = this._extractDataFormats(config.reports.items);
|
|
@@ -37604,7 +37416,7 @@ class ReportTransformService {
|
|
|
37604
37416
|
}
|
|
37605
37417
|
data.forEach((localizedBuckets) => {
|
|
37606
37418
|
localizedBuckets.forEach((item) => {
|
|
37607
|
-
|
|
37419
|
+
___default.set(reportData, item.propertyPath, item.buckets);
|
|
37608
37420
|
});
|
|
37609
37421
|
});
|
|
37610
37422
|
return reportData;
|
|
@@ -37626,12 +37438,12 @@ class ReportTransformService {
|
|
|
37626
37438
|
return of([]);
|
|
37627
37439
|
}
|
|
37628
37440
|
_getUniqueKeysFromFormats(formats) {
|
|
37629
|
-
return
|
|
37441
|
+
return ___default.uniq(___default.flatMap(formats, (item) => ___default.map(item.buckets, (bk) => this._key(bk.key))));
|
|
37630
37442
|
}
|
|
37631
37443
|
_extractBuckets(values, reportData) {
|
|
37632
37444
|
return values
|
|
37633
37445
|
.map((value) => {
|
|
37634
|
-
const buckets =
|
|
37446
|
+
const buckets = ___default.get(reportData, value.propertyPath);
|
|
37635
37447
|
if (buckets?.length) {
|
|
37636
37448
|
return {
|
|
37637
37449
|
...value,
|
|
@@ -37646,7 +37458,7 @@ class ReportTransformService {
|
|
|
37646
37458
|
return !!response?.length
|
|
37647
37459
|
? formats.map((format) => {
|
|
37648
37460
|
format.buckets.forEach((bucket) => {
|
|
37649
|
-
const cacheItem =
|
|
37461
|
+
const cacheItem = ___default.find(response, { code: this._key(bucket.key) });
|
|
37650
37462
|
if (cacheItem) {
|
|
37651
37463
|
bucket.localized = {
|
|
37652
37464
|
ar: cacheItem.arabicTitle,
|
|
@@ -37691,7 +37503,7 @@ class DynamicTimelineReportService {
|
|
|
37691
37503
|
if (!this._selectedGroupSub.getValue()) {
|
|
37692
37504
|
this._selectedGroupSub.next(config?.group?.selected || 'week');
|
|
37693
37505
|
}
|
|
37694
|
-
this.payload =
|
|
37506
|
+
this.payload = ___default.merge(this.prepareSelectedGroups(config), criteria || {});
|
|
37695
37507
|
}), switchMap(([config, criteria]) => {
|
|
37696
37508
|
const request = config?.request;
|
|
37697
37509
|
if (!request) {
|
|
@@ -37881,17 +37693,17 @@ class DigitChartService {
|
|
|
37881
37693
|
return of(null);
|
|
37882
37694
|
}
|
|
37883
37695
|
return of(config.datasource).pipe(map((sourceConfig) => {
|
|
37884
|
-
const rawData =
|
|
37696
|
+
const rawData = ___default.get(response, sourceConfig.propertyPath);
|
|
37885
37697
|
if (this._dataTransformers.hasDigitsTransformer(sourceConfig?.transformer)) {
|
|
37886
37698
|
const adapter = this._dataTransformers.getDigitsTransformer(sourceConfig?.transformer);
|
|
37887
37699
|
return adapter(rawData, response, filterCriteria);
|
|
37888
37700
|
}
|
|
37889
|
-
if (
|
|
37890
|
-
return
|
|
37701
|
+
if (___default.isObject(rawData)) {
|
|
37702
|
+
return ___default.get(rawData, sourceConfig?.bindValue, rawData);
|
|
37891
37703
|
}
|
|
37892
37704
|
if (Array.isArray(rawData)) {
|
|
37893
37705
|
return rawData.reduce((acc, item) => {
|
|
37894
|
-
acc += Number(
|
|
37706
|
+
acc += Number(___default.get(item, sourceConfig?.bindValue, item.docCount));
|
|
37895
37707
|
}, 0);
|
|
37896
37708
|
}
|
|
37897
37709
|
return rawData;
|
|
@@ -37939,7 +37751,7 @@ class BaseChartBuilderService {
|
|
|
37939
37751
|
}));
|
|
37940
37752
|
}
|
|
37941
37753
|
_prepareDataSource(sourceConfig, response, filterCriteria) {
|
|
37942
|
-
const buckets =
|
|
37754
|
+
const buckets = ___default.get(response, sourceConfig.propertyPath) || [];
|
|
37943
37755
|
return of(buckets).pipe(map((rawData) => {
|
|
37944
37756
|
if (this._dataTransformers.hasGraphTransformer(sourceConfig?.transformer)) {
|
|
37945
37757
|
const transformer = this._dataTransformers.getGraphTransformer(sourceConfig?.transformer);
|
|
@@ -37963,12 +37775,12 @@ class BaseChartBuilderService {
|
|
|
37963
37775
|
return item.localized[currentLang];
|
|
37964
37776
|
}
|
|
37965
37777
|
const label = config.bindLabel
|
|
37966
|
-
?
|
|
37778
|
+
? ___default.get(item, config?.bindLabel[this._translateService.currentLang])
|
|
37967
37779
|
: null;
|
|
37968
37780
|
return label || this._translateService.instant(`${this._translatePrefix}${item.key}`);
|
|
37969
37781
|
}
|
|
37970
37782
|
_getValue(item, source) {
|
|
37971
|
-
return
|
|
37783
|
+
return ___default.get(item, source?.bindValue, item.docCount);
|
|
37972
37784
|
}
|
|
37973
37785
|
_prepareChartData(results, config) {
|
|
37974
37786
|
const { chart } = config;
|
|
@@ -38109,7 +37921,7 @@ function getHorizontalBarOptions(override = {}) {
|
|
|
38109
37921
|
}
|
|
38110
37922
|
}
|
|
38111
37923
|
};
|
|
38112
|
-
return
|
|
37924
|
+
return ___default.merge(data, override);
|
|
38113
37925
|
}
|
|
38114
37926
|
|
|
38115
37927
|
/**
|
|
@@ -38136,7 +37948,7 @@ function getPieOptions(override = {}) {
|
|
|
38136
37948
|
}
|
|
38137
37949
|
}
|
|
38138
37950
|
};
|
|
38139
|
-
return
|
|
37951
|
+
return ___default.merge(data, override);
|
|
38140
37952
|
}
|
|
38141
37953
|
|
|
38142
37954
|
/**
|
|
@@ -38175,7 +37987,7 @@ function getLineOptions(override = {}) {
|
|
|
38175
37987
|
}
|
|
38176
37988
|
}
|
|
38177
37989
|
};
|
|
38178
|
-
return
|
|
37990
|
+
return ___default.merge(data, override);
|
|
38179
37991
|
}
|
|
38180
37992
|
|
|
38181
37993
|
/**
|
|
@@ -38203,7 +38015,7 @@ function getDoughnutOptions(override = {}) {
|
|
|
38203
38015
|
}
|
|
38204
38016
|
}
|
|
38205
38017
|
};
|
|
38206
|
-
return
|
|
38018
|
+
return ___default.merge(data, override);
|
|
38207
38019
|
}
|
|
38208
38020
|
|
|
38209
38021
|
/**
|
|
@@ -38242,7 +38054,7 @@ function getVerticalBarOptions(override = {}) {
|
|
|
38242
38054
|
}
|
|
38243
38055
|
}
|
|
38244
38056
|
};
|
|
38245
|
-
return
|
|
38057
|
+
return ___default.merge(data, override);
|
|
38246
38058
|
}
|
|
38247
38059
|
|
|
38248
38060
|
/**
|
|
@@ -38287,7 +38099,7 @@ function buildCustomUrl(requestConfig, detailsConfig) {
|
|
|
38287
38099
|
};
|
|
38288
38100
|
const customUrlOverrides = detailsConfig?.request?.customUrl || {};
|
|
38289
38101
|
const payload = { payload: detailsConfig.request?.payload || {} };
|
|
38290
|
-
return
|
|
38102
|
+
return ___default.merge(baseUrl, customUrlOverrides, payload);
|
|
38291
38103
|
}
|
|
38292
38104
|
/**
|
|
38293
38105
|
* Merges headers from different configuration sources
|
|
@@ -38311,7 +38123,7 @@ function getPageProvider(requestConfig, detailsConfig) {
|
|
|
38311
38123
|
* Builds sorting configuration with defaults
|
|
38312
38124
|
*/
|
|
38313
38125
|
function buildSortingConfig(detailsConfig) {
|
|
38314
|
-
return
|
|
38126
|
+
return ___default.merge({
|
|
38315
38127
|
sortBy: 'dc:modified',
|
|
38316
38128
|
sortOrder: 'desc'
|
|
38317
38129
|
}, detailsConfig.sortingBy || {});
|
|
@@ -38362,7 +38174,7 @@ function buildGlobalFilters(globalFilters, details) {
|
|
|
38362
38174
|
* Prepares filter fields based on configuration
|
|
38363
38175
|
*/
|
|
38364
38176
|
function prepareFiltersFields(fields, params, payload) {
|
|
38365
|
-
let _fields =
|
|
38177
|
+
let _fields = ___default.clone(fields);
|
|
38366
38178
|
if (payload?.predicateList?.length > 0) {
|
|
38367
38179
|
const keys = payload?.predicateList.map((predicate) => predicate.name);
|
|
38368
38180
|
_fields = fields.filter((field) => !keys.includes(field.config.fieldKey));
|
|
@@ -38375,7 +38187,7 @@ function prepareFiltersFields(fields, params, payload) {
|
|
|
38375
38187
|
function prepareNdfTableFilters(filters, config, details) {
|
|
38376
38188
|
const globalFilters = config?.filters;
|
|
38377
38189
|
const { fields, ...options } = filters || {};
|
|
38378
|
-
return
|
|
38190
|
+
return ___default.merge({}, {
|
|
38379
38191
|
mode: globalFilters.mode || 'payload',
|
|
38380
38192
|
stringifyParams: false,
|
|
38381
38193
|
fields: prepareFiltersFields(globalFilters.fields, details.queryParam || {}, details?.customUrl?.payload || {}),
|
|
@@ -38604,7 +38416,7 @@ class ReportConfigMapperService {
|
|
|
38604
38416
|
if (Array.isArray(callbacks) && callbacks.length > 0) {
|
|
38605
38417
|
const _callbacks = this._prepareCallbacks(callbacks, key);
|
|
38606
38418
|
if (_callbacks?.plugins) {
|
|
38607
|
-
|
|
38419
|
+
___default.merge(_options, _callbacks);
|
|
38608
38420
|
}
|
|
38609
38421
|
}
|
|
38610
38422
|
return _options;
|
|
@@ -38623,7 +38435,7 @@ class ReportConfigMapperService {
|
|
|
38623
38435
|
type
|
|
38624
38436
|
});
|
|
38625
38437
|
if (fn && typeof fn === 'function') {
|
|
38626
|
-
|
|
38438
|
+
___default.set(data, callback.path, fn);
|
|
38627
38439
|
}
|
|
38628
38440
|
}
|
|
38629
38441
|
catch (e) { }
|
|
@@ -38972,7 +38784,7 @@ const TIME_GROUPS = {
|
|
|
38972
38784
|
|
|
38973
38785
|
class BaseReport extends DestroySubject {
|
|
38974
38786
|
set definition(obj) {
|
|
38975
|
-
this._definition =
|
|
38787
|
+
this._definition = ___default.cloneDeep(obj);
|
|
38976
38788
|
if (obj) {
|
|
38977
38789
|
this._configSub.next(this._prepareConfig(obj));
|
|
38978
38790
|
}
|
|
@@ -38981,7 +38793,7 @@ class BaseReport extends DestroySubject {
|
|
|
38981
38793
|
return this._configSub.getValue();
|
|
38982
38794
|
}
|
|
38983
38795
|
set criteria(value) {
|
|
38984
|
-
this._criteria =
|
|
38796
|
+
this._criteria = ___default.cloneDeep(value);
|
|
38985
38797
|
this._criteriaSub.next(this._criteria);
|
|
38986
38798
|
}
|
|
38987
38799
|
get criteria() {
|
|
@@ -39043,7 +38855,7 @@ class ChartTypeSelectorComponent {
|
|
|
39043
38855
|
this.typeChange = new EventEmitter();
|
|
39044
38856
|
}
|
|
39045
38857
|
set config(config) {
|
|
39046
|
-
if (
|
|
38858
|
+
if (___default.isBoolean(config?.enabled)) {
|
|
39047
38859
|
this.isEnabled = config?.enabled;
|
|
39048
38860
|
}
|
|
39049
38861
|
if (Array.isArray(config?.allowedTypes) && config?.allowedTypes?.length > 1) {
|
|
@@ -39237,7 +39049,7 @@ class BaseGraphReport extends BaseReport {
|
|
|
39237
39049
|
.subscribe((theme) => {
|
|
39238
39050
|
this._initialTheme = theme;
|
|
39239
39051
|
const { chart, ...config } = this._configSub.getValue();
|
|
39240
|
-
const data =
|
|
39052
|
+
const data = ___default.merge({}, this._definition, {
|
|
39241
39053
|
chart: {
|
|
39242
39054
|
type: chart.type
|
|
39243
39055
|
}
|
|
@@ -39264,7 +39076,7 @@ class BaseCustomReport extends DestroySubject {
|
|
|
39264
39076
|
return this._data;
|
|
39265
39077
|
}
|
|
39266
39078
|
set criteria(value) {
|
|
39267
|
-
this._criteria =
|
|
39079
|
+
this._criteria = ___default.cloneDeep(value);
|
|
39268
39080
|
this._criteriaSub.next(this._criteria);
|
|
39269
39081
|
}
|
|
39270
39082
|
get criteria() {
|
|
@@ -39598,7 +39410,7 @@ class TimelineDialogComponent {
|
|
|
39598
39410
|
this._timelineService.rebuild$,
|
|
39599
39411
|
]).pipe(this._timelineService.prepareData());
|
|
39600
39412
|
this.filterCriteria$ = this._timelineService.selectedGroup$.pipe(map((group) => {
|
|
39601
|
-
return
|
|
39413
|
+
return ___default.cloneDeep(___default.merge(this.chart.criteria || {}, this._timelineService.prepareSelectedGroups(this.chart.config)));
|
|
39602
39414
|
}));
|
|
39603
39415
|
}
|
|
39604
39416
|
changeGroup(group) {
|
|
@@ -39655,10 +39467,10 @@ class DynamicTimelineReportComponent extends BaseGraphReport {
|
|
|
39655
39467
|
super(injector);
|
|
39656
39468
|
this.injector = injector;
|
|
39657
39469
|
this._timelineService = this.injector.get(DynamicTimelineReportService);
|
|
39658
|
-
this._criteria$ = this.criteria$.pipe(distinctUntilChanged((a, b) =>
|
|
39470
|
+
this._criteria$ = this.criteria$.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b)));
|
|
39659
39471
|
this.selectedGroup$ = this._timelineService.selectedGroup$;
|
|
39660
39472
|
this.filterCriteria$ = combineLatest([this._criteria$, this._timelineService.selectedGroup$]).pipe(map(([criteria]) => {
|
|
39661
|
-
return
|
|
39473
|
+
return ___default.cloneDeep(___default.merge(criteria || {}, this._timelineService.prepareSelectedGroups(this.config)));
|
|
39662
39474
|
}));
|
|
39663
39475
|
this.report$ = combineLatest([this.config$, this._criteria$, this._timelineService.rebuild$]).pipe(this._timelineService.prepareData());
|
|
39664
39476
|
this._subscribeToLanguage();
|
|
@@ -39903,7 +39715,7 @@ class NdfReportsComponent extends BaseComponent {
|
|
|
39903
39715
|
window.print();
|
|
39904
39716
|
}
|
|
39905
39717
|
filterChanged(criteria) {
|
|
39906
|
-
if (
|
|
39718
|
+
if (___default.isEqual(this.activeQuery, criteria)) {
|
|
39907
39719
|
return;
|
|
39908
39720
|
}
|
|
39909
39721
|
this.onQueryChange.emit(criteria);
|
|
@@ -39935,7 +39747,7 @@ class NdfReportsComponent extends BaseComponent {
|
|
|
39935
39747
|
if (!!data?.options?.filters?.fields?.length) {
|
|
39936
39748
|
return data;
|
|
39937
39749
|
}
|
|
39938
|
-
return
|
|
39750
|
+
return ___default.merge(data, {
|
|
39939
39751
|
options: { filters: prepareNdfTableFilters(data?.options?.filters, this.config, data) }
|
|
39940
39752
|
});
|
|
39941
39753
|
}))
|
|
@@ -39971,7 +39783,7 @@ class NdfReportsComponent extends BaseComponent {
|
|
|
39971
39783
|
_prepareReports() {
|
|
39972
39784
|
this.isLoadingResult = true;
|
|
39973
39785
|
return combineLatest([
|
|
39974
|
-
this.filtersParams$.pipe(distinctUntilChanged((a, b) =>
|
|
39786
|
+
this.filtersParams$.pipe(distinctUntilChanged((a, b) => ___default.isEqual(a, b))),
|
|
39975
39787
|
this.reportConfig$
|
|
39976
39788
|
]).pipe(tap(() => {
|
|
39977
39789
|
this.isLoadingResult = true;
|
|
@@ -40062,16 +39874,16 @@ class NdfReportsComponent extends BaseComponent {
|
|
|
40062
39874
|
return validFields.some((field) => changedKeys.includes(field));
|
|
40063
39875
|
}
|
|
40064
39876
|
_getChangedKeys(previous, current) {
|
|
40065
|
-
const allKeys =
|
|
40066
|
-
return allKeys.filter((key) => !
|
|
39877
|
+
const allKeys = ___default.union(___default.keys(previous), ___default.keys(current));
|
|
39878
|
+
return allKeys.filter((key) => !___default.isEqual(previous[key], current[key]));
|
|
40067
39879
|
}
|
|
40068
39880
|
_updateAggregations(aggregations) {
|
|
40069
|
-
this.aggregations =
|
|
39881
|
+
this.aggregations = ___default.cloneDeep(aggregations);
|
|
40070
39882
|
}
|
|
40071
39883
|
_checkConfigChange(value) {
|
|
40072
39884
|
const { activeQuery, ...config } = value;
|
|
40073
39885
|
const { activeQuery: aq, ...currentConfig } = this._configSubject.getValue() || {};
|
|
40074
|
-
this._isConfigChanged = !
|
|
39886
|
+
this._isConfigChanged = !___default.isEqual(currentConfig, config);
|
|
40075
39887
|
}
|
|
40076
39888
|
_loadReportsConfig(key) {
|
|
40077
39889
|
this._configurationService
|
|
@@ -40084,7 +39896,7 @@ class NdfReportsComponent extends BaseComponent {
|
|
|
40084
39896
|
});
|
|
40085
39897
|
}
|
|
40086
39898
|
_initReportsConfig(config) {
|
|
40087
|
-
const value =
|
|
39899
|
+
const value = ___default.cloneDeep(config);
|
|
40088
39900
|
this._checkConfigChange(value);
|
|
40089
39901
|
this._configSubject.next(value);
|
|
40090
39902
|
if (value?.activeQuery && !!Object.keys(value?.activeQuery).length) {
|
|
@@ -40427,16 +40239,16 @@ class NdfConfigEditorComponent extends DestroySubject {
|
|
|
40427
40239
|
const optionsValue = changes.options?.currentValue;
|
|
40428
40240
|
const isThemeFirstChange = changes?.theme?.firstChange;
|
|
40429
40241
|
const activeTheme = this._optionsSubject.getValue().theme;
|
|
40430
|
-
let mergedOptions =
|
|
40242
|
+
let mergedOptions = ___default.merge(this._defaultEditorOptions, optionsValue || {}, { language: 'json' });
|
|
40431
40243
|
if (themeValue && isThemeFirstChange) {
|
|
40432
40244
|
mergedOptions.theme = themeValue;
|
|
40433
40245
|
}
|
|
40434
40246
|
if (!optionsValue && activeTheme && themeValue && activeTheme !== themeValue) {
|
|
40435
40247
|
const activeOptions = this._optionsSubject.getValue();
|
|
40436
|
-
this._optionsSubject.next(
|
|
40248
|
+
this._optionsSubject.next(___default.merge(activeOptions, { theme: themeValue }));
|
|
40437
40249
|
}
|
|
40438
40250
|
if (optionsValue || (themeValue && isThemeFirstChange)) {
|
|
40439
|
-
this._optionsSubject.next(
|
|
40251
|
+
this._optionsSubject.next(___default.cloneDeep(mergedOptions));
|
|
40440
40252
|
}
|
|
40441
40253
|
if (themeValue && !isThemeFirstChange) {
|
|
40442
40254
|
this._themeSubject.next(themeValue);
|