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.
@@ -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-es';
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-es';
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-es/assign';
49
- import _cloneDeep from 'lodash-es/cloneDeep';
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-es/find';
95
- import _isEqual from 'lodash-es/isEqual';
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 = _.mergeWith(body, query.payload, (objValue, srcValue, key) => {
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 _.uniqWith(objArray.concat(srcArray), _.isEqual);
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.initiateClientWithNuxeo(this.decriptFormating(cachable), resolve, reject);
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.getFromNuxeo(code).subscribe((res) => {
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 ? _.get(config, localPath) : config;
4733
- const data = cloneDeep(_.get(base, key));
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(_.get(user, path)) || _.get(user, path) === 'Administrator';
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 = _.cloneDeep(this._cols);
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(_.cloneDeep(data));
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 = _.get(aggregation, fieldConfig?.propertyPath || 'buckets') || [];
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 = _.get(item, bindValue || 'key') || _.get(item, bindValue || 'id');
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: _.get(item, config?.bindLabel.ar),
17143
- en: _.get(item, config?.bindLabel.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 = _.get(item, key);
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 = _.merge(query?.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 = _.get(entry, biddings.label.en, entry.title);
17224
- const value = _.get(entry, biddings.value, entry.uid);
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: _.get(entry, biddings.label.ar, entry.title)
17043
+ ar: ___default.get(entry, biddings.label.ar, entry.title)
17234
17044
  };
17235
17045
  }
17236
17046
  if (biddings?.count) {
17237
- option.count = _.get(entry, biddings.count, 0);
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, _.cloneDeep({ aggregations, language, user: this.user, values: filterValues }));
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) => _.isEqual(this._createValidateObject(a), this._createValidateObject(b))), map((data) => this.calendarService.formatRangeOutputDate(data)), takeUntil(this.destroy$))
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) => _.isEqual(a, b)), map((data) => this.calendarService.formatOutputDate(data)), takeUntil(this.destroy$))
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) => _.isEqual(a, b)), takeUntil(this.destroy$))
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) => _.isEqual(a, b)), takeUntil(this.destroy$))
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) => _.isEqual(a?.value, b?.value)))
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) => _.isEqual(a, b)), takeUntil(this.destroy$))
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 (_.isEqual(_values, this.internalValue)) {
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) => _.isEqual(a, b)), filter$1((value) => !_.isEqual(this.internalValue, value)), takeUntil(this.destroy$))
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) => _.isEqual(a, b)), debounceTime(this.debounceTime), takeUntil(this.destroy$))
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 && _.isEqual(obj, this.internalValue)) {
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) => _.isEqual(a, b)), filter$2((value) => !_.isEqual(this.internalValue, value)), takeUntil$1(this.destroy$))
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] = _.cloneDeep(changes[key].currentValue);
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) => _.isEqual(a, b)), takeUntil(this.destroy$))
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, _.cloneDeep({
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 _.get(this._userService.getCurrentUser(), this.renderOptions?.bindValue || 'properties.username');
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 (_.isEqual(_values, this.internalValue)) {
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) => _.isEqual(a, b)), map(({ items }) => items.reduce((acc, curr) => acc.concat(curr), []).filter(Boolean)), filter$1((value) => !_.isEqual(this.internalValue, value)), takeUntil(this.destroy$))
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 = _.isEqual(changes[key]?.previousValue || null, changes[key]?.currentValue || null);
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: _.merge({}, this.customUrl?.payload || {}, this.customFilters?.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 = _.union(_.keys(previousValue), _.keys(currentValue)).filter((key) => !_.isEqual(previousValue[key], currentValue[key]));
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 = _.cloneDeep(this.exportTableConfig?.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) => _.get(currentTranslations, col));
23532
- payload.reportMetaData.blobName = _.get(translations['ar'], blobNameKey) ?? blobName;
23533
- payload.reportMetaData.blobNameEn = _.get(translations['en'], blobNameKey) ?? 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 _.cloneDeep({ ...filters });
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 _.cloneDeep({ ...filters });
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 && _.isFunction(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 = _.merge(DEFAULT_LIST_OPTIONS, this.options, val);
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 = _.merge(DEFAULT_LIST_OPTIONS, _options ? _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 = _.merge(DEFAULT_CONTAINER_OPTIONS, _options ? _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 && _.isFunction(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 _.get(res, config.propertyPath);
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 ? _.get(item, config.bindLabel) : null;
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 ? _.get(item, bindValue) : item.docCount;
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 = _.isEqual(obj, this._dataSource);
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(_.isObject(params) ? params : {});
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 = _.cloneDeep(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 = _.cloneDeep(value);
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 = _.mergeWith(request.payload || {}, criteria?.payload || {}, (objValue, srcValue, key) => {
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: _.merge({}, chart.config.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: _.merge([], [
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 = _.flatMap(data, (item) => {
37393
+ const extractedData = ___default.flatMap(data, (item) => {
37582
37394
  if ("datasource" in item && Array.isArray(item?.datasource)) {
37583
- return _.filter(item.datasource, (source) => source.dataFormat);
37395
+ return ___default.filter(item.datasource, (source) => source.dataFormat);
37584
37396
  }
37585
37397
  return [];
37586
37398
  });
37587
- return _.groupBy(extractedData, "dataFormat");
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
- _.set(reportData, item.propertyPath, item.buckets);
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 _.uniq(_.flatMap(formats, (item) => _.map(item.buckets, (bk) => this._key(bk.key))));
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 = _.get(reportData, value.propertyPath);
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 = _.find(response, { code: this._key(bucket.key) });
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 = _.merge(this.prepareSelectedGroups(config), criteria || {});
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 = _.get(response, sourceConfig.propertyPath);
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 (_.isObject(rawData)) {
37890
- return _.get(rawData, sourceConfig?.bindValue, rawData);
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(_.get(item, sourceConfig?.bindValue, item.docCount));
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 = _.get(response, sourceConfig.propertyPath) || [];
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
- ? _.get(item, config?.bindLabel[this._translateService.currentLang])
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 _.get(item, source?.bindValue, item.docCount);
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 _.merge(data, override);
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 _.merge(data, override);
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 _.merge(data, override);
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 _.merge(data, override);
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 _.merge(data, override);
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 _.merge(baseUrl, customUrlOverrides, payload);
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 _.merge({
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 = _.clone(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 _.merge({}, {
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
- _.merge(_options, _callbacks);
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
- _.set(data, callback.path, fn);
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 = _.cloneDeep(obj);
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 = _.cloneDeep(value);
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 (_.isBoolean(config?.enabled)) {
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 = _.merge({}, this._definition, {
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 = _.cloneDeep(value);
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 _.cloneDeep(_.merge(this.chart.criteria || {}, this._timelineService.prepareSelectedGroups(this.chart.config)));
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) => _.isEqual(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 _.cloneDeep(_.merge(criteria || {}, this._timelineService.prepareSelectedGroups(this.config)));
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 (_.isEqual(this.activeQuery, criteria)) {
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 _.merge(data, {
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) => _.isEqual(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 = _.union(_.keys(previous), _.keys(current));
40066
- return allKeys.filter((key) => !_.isEqual(previous[key], current[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 = _.cloneDeep(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 = !_.isEqual(currentConfig, config);
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 = _.cloneDeep(config);
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 = _.merge(this._defaultEditorOptions, optionsValue || {}, { language: 'json' });
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(_.merge(activeOptions, { theme: themeValue }));
40248
+ this._optionsSubject.next(___default.merge(activeOptions, { theme: themeValue }));
40437
40249
  }
40438
40250
  if (optionsValue || (themeValue && isThemeFirstChange)) {
40439
- this._optionsSubject.next(_.cloneDeep(mergedOptions));
40251
+ this._optionsSubject.next(___default.cloneDeep(mergedOptions));
40440
40252
  }
40441
40253
  if (themeValue && !isThemeFirstChange) {
40442
40254
  this._themeSubject.next(themeValue);