UNPKG

sgc-ng-crud-view-list

Version:

Custom SGC-NG-CRUD-VIEW-LIST (DATATABLE CRUD VIEW) UI Components. *** This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 19.1.0.

995 lines 108 kB
import * as i0 from '@angular/core';
import { Injectable, ViewChild, Input, Component, NgModule } from '@angular/core';
import * as i2 from 'sgc-share-lib';
import { CrudDataService, TypeCrudView, getListeTypeExportFormat, getListeTypeExportOrientation, getListeTypeExportHeaderDataValueFrom, TExportHeaderDataValueFrom, TExportPageOrientation, TExportFormat, CrudFiltreRecherche, Enum_FilterOperator, TypeFieldDataView, isColTypeDate, isColTypeBooleen, isColTypeNombre, isColTypeTexte, Enum_FilterMatchMode } from 'sgc-share-lib';
import * as fileSaver from 'file-saver';
import * as i6 from '@angular/material/sort';
import { MatSort, MatSortModule } from '@angular/material/sort';
import { BehaviorSubject } from 'rxjs';
import * as i1 from '@angular/router';
import { RouterModule } from '@angular/router';
import * as i3 from '@angular/common';
import { CommonModule } from '@angular/common';
import * as i4 from '@angular/forms';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import * as i5 from '@angular/material/table';
import { MatTableModule } from '@angular/material/table';
import * as i7 from '@angular/material/progress-spinner';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import * as i8 from '@angular/material/icon';
import { MatIconModule } from '@angular/material/icon';
import * as i9 from '@angular/material/input';
import { MatInputModule } from '@angular/material/input';
import * as i10 from '@angular/material/button';
import { MatButtonModule } from '@angular/material/button';
import * as i11 from '@angular/material/toolbar';
import { MatToolbarModule } from '@angular/material/toolbar';
import * as i12 from '@angular/material/tooltip';
import { MatTooltipModule } from '@angular/material/tooltip';
import * as i13 from 'sgc-ng-paginator';
import { SgcNgPaginatorModule } from 'sgc-ng-paginator';
import * as i14 from '@angular/material/select';
import { MatSelectModule } from '@angular/material/select';
import * as i15 from '@angular/cdk/overlay';
import { OverlayModule } from '@angular/cdk/overlay';
import * as i16 from '@angular/material/radio';
import { MatRadioModule } from '@angular/material/radio';
import * as i17 from '@angular/material/divider';
import { MatDividerModule } from '@angular/material/divider';
import * as i18 from '@angular/material/checkbox';
import { MatCheckboxModule } from '@angular/material/checkbox';
import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatDialogModule } from '@angular/material/dialog';
import { MatMenuModule } from '@angular/material/menu';

class SgcNgCrudViewListService {
    constructor() { }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListService, decorators: [{
            type: Injectable,
            args: [{
                    providedIn: 'root'
                }]
        }], ctorParameters: () => [] });

//-----------------------------------------------
var TypeViewList;
(function (TypeViewList) {
    TypeViewList[TypeViewList["DATAGRID_VIEW"] = 0] = "DATAGRID_VIEW";
    TypeViewList[TypeViewList["REPORT_VIEW"] = 1] = "REPORT_VIEW";
    TypeViewList[TypeViewList["STATISTICS_VIEW"] = 2] = "STATISTICS_VIEW";
})(TypeViewList || (TypeViewList = {}));
//--------------------------------------
class CrudDataSource {
    constructor(crudDataService) {
        this.crudDataService = crudDataService;
        this.dataSubject = new BehaviorSubject([]);
        this.loadingSubject = new BehaviorSubject(false);
        this.totalRecords = 0;
        //public pageCourant: number = 0;
        //public reponseAPI?:PaginateReponseAPI<TDataList[]>;
        this.loading$ = this.loadingSubject.asObservable();
    }
    connect(collectionViewer) {
        return this.dataSubject.asObservable();
    }
    disconnect(collectionViewer) {
        this.dataSubject.complete();
        this.loadingSubject.complete();
    }
    loadData(findParams) {
        this.loadingSubject.next(true);
        /*this.crudDataService.findLessons(courseId, filter, sortDirection,
              pageIndex, pageSize).pipe(
              catchError(() => of([])),
              finalize(() => this.loadingSubject.next(false))
          )
          .subscribe(lessons => this.dataSubject.next(lessons));*/
        this.crudDataService
            .findDataFromServer(findParams) /*.pipe(
            catchError(() => of([])),
            finalize(() => this.loadingSubject.next(false))
        )*/
            .subscribe({
            next: (response) => {
                console.log('***** CRUDDATASOURCE - LOADDATA - response subscribe');
                console.log(response);
                if (response.reponseOK) {
                    /*this.dataSource.data = response.data.pageData;
                    this.totalRecords = response.data.totalRecords;
                    this.dataSource.paginator = this.paginator;
                    this.dataSource.sort = this.sort;*/
                    this.totalRecords = response.data.totalRecords;
                    this.dataSubject.next(response.data.pageData);
                    //this.reponseAPI=response;
                    this.loadingSubject.next(false);
                    return;
                }
                else {
                    //this.notificationService.error(response.message);
                    console.log(response);
                    this.loadingSubject.next(false);
                    return;
                }
            },
            error: (err) => {
                console.log('***** CRUDDATASOURCE - LOADDATA - response subscribe ERROR');
                console.log(err);
                this.loadingSubject.next(false);
                return;
                //return of([]);
            },
            complete: () => {
                console.log('***** CRUDDATASOURCE - LOADDATA - response subscribe COMPLETE');
                this.loadingSubject.next(false);
                return;
            },
        });
    }
}
//-------------------------------------------------------------------
/**
 *
 */
class CrudDataService_ReportView extends CrudDataService {
    constructor(myHttpClient, myDataKeyField, myTitreView, myUrlNavigateListView) {
        super(myHttpClient, myDataKeyField, TypeCrudView.REPORT);
        this.titreReportView = myTitreView ? myTitreView : 'REPORT VIEW';
        this.urlNavigatePageListView = myUrlNavigateListView
            ? myUrlNavigateListView
            : '';
    }
}
//-------------------------------------------------------------------
/**
 *
 */
class CrudDataService_StatisticsView extends CrudDataService {
    constructor(myHttpClient, myDataKeyField, myTitreView, myUrlNavigateListView) {
        super(myHttpClient, myDataKeyField, TypeCrudView.REPORT);
        this.titreStatisticsView = myTitreView ? myTitreView : 'STATISTICS VIEW';
        this.urlNavigatePageListView = myUrlNavigateListView
            ? myUrlNavigateListView
            : '';
    }
}

class SgcNgCrudViewListComponent {
    //currentArb: Number = 0;
    //currentCecId: Number = 0;
    constructor(
    //protected menuDataService: MenuDataService,
    route, router, 
    //protected routeStateService: RouteStateService,
    /*protected crudDataService: CrudDataService<
      TDataList,
      TDataCreate,
      TDataEdit,
      TDataImport,
      TDataExport
    >,*/
    notificationService, filtreRechercheService //protected reloadViewService: ReloadViewService, //protected userCtxtService: UserContextService
    ) {
        this.route = route;
        this.router = router;
        this.notificationService = notificationService;
        this.filtreRechercheService = filtreRechercheService;
        this.css_heightMainDiv = '300';
        this.useRoutingForNavigate = false;
        this.selectedTypeViewList = TypeViewList.DATAGRID_VIEW;
        this.isMenuVisible = true;
        this.isPanelExportOpen = false;
        this.listeTypeExportFormat = getListeTypeExportFormat();
        this.listeTypeExportOrientationPage = getListeTypeExportOrientation();
        this.listeTypeExportHeaderDataValueFrom = getListeTypeExportHeaderDataValueFrom();
        this.selectedExportOption = { exportFormat: TExportFormat.EXCEL, exportPageOrientation: TExportPageOrientation.PORTRAIT, exportHeaderDataValueFrom: TExportHeaderDataValueFrom.FIELD_LABEL, exportListeColsData: [], exportShowRowNumber: false };
        //selectedColsExport: Array<string>=[];
        this.listeAllColsExport = [];
        this.svc_cols = [];
        this.pageCourant = 0;
        this.totalRecords = 0;
        this.listeColsGlobalFilter = [];
        this.showCreateButton = true;
        this.showEditButton = true;
        this.showDeleteButton = true;
        this.showImportButton = false;
        this.showMaintenanceButton = false;
        this.showExportButton = false;
        this.filtres = [];
        this.staticFiltres = [];
        this.crudFiltreRecherhe = new CrudFiltreRecherche();
        //heightCssMainDiv!: string;
        //itemsExportButton: MenuItem[];
        //itemsMaintenanceButton: MenuItem[];
        this.exportParams = {
            title: 'Liste des données',
            useLandscape: false,
            useHeaderDataFieldName: false,
            addNumeroOrdre: false,
            listeColsData: [],
            periodeReference: '',
        };
        this.myInit = () => {
            this.crudDataService_List.myInit_ListView();
            this.listeAllColsExport = this.crudDataService_List.cols_Datatable.map(elt => ({ label: elt.header, value: elt.field }));
            this.selectedExportOption.exportListeColsData = this.crudDataService_List.cols_Datatable.filter(elt => elt.visible == true).map(elt => elt.field);
        };
        this.onPrepareList = (responseResolveData) => {
            this.crudDataService_List.onPrepare_ListView(responseResolveData);
        };
        this.setStaticParameters = () => {
            this.crudDataService_List.setStaticParameters_ListView();
        };
        this.afterDelete = () => {
            this.crudFiltreRecherhe.validateChangeFiltre(this.filtres);
        };
    }
    ngOnInit() {
        console.log('******** SgcNgCrudViewListComponent  -- NGONINIT -- css_heightMainDiv ******************');
        console.log(this.css_heightMainDiv);
        //this.heightCssMainDiv = this.css_heightMainDiv;
        //-----------------------------
        //this.nbRowsPage = this.crudDataService.nbRowsDatatablePage;
        this.resetParamsFindData();
        this.dataSource = new CrudDataSource(this.crudDataService_List);
        this.svc_dataKeyField = this.crudDataService_List.dataKeyField;
        this.svc_titreViewDataList = this.crudDataService_List.titreViewDataList;
        this.svc_cols = this.crudDataService_List.cols_Datatable;
        this.svc_exportColumns = this.crudDataService_List.exportColumns
            ? this.crudDataService_List.exportColumns
            : this.svc_cols.map((col) => ({
                title: col.header,
                dataKey: col.field,
            }));
        this.svc_globalFiltersColumns = this.crudDataService_List
            .globalFiltersColumns
            ? this.crudDataService_List.globalFiltersColumns
            : this.svc_cols
                .filter((col1) => col1.visible == true)
                .map((col2) => col2.field);
        this.svc_urlNavigatePageCreateOrEdit =
            this.crudDataService_List.urlNavigatePageCreateOrEdit;
        this.svc_urlNavigatePageImport =
            this.crudDataService_List.urlNavigatePageImport;
        //-------------------------------------
        this.crudDataService_List.navigateToEdit_Subject.next(false);
        this.crudDataService_List.navigateToCreate_Subject.next(false);
        this.crudDataService_List.navigateToImport_Subject.next(false);
        //------------------------------------
        console.log('**** VIEW CRUD COMPONENT LISTENER - NGONINIT - get constantscss*****');
        /*if (this.heightCssMainDiv == undefined) {
          this.heightCssMainDiv = readProperty('heightMiddleView');
          console.log(
            '**** VIEW CRUD COMPONENT LISTENER - NGONINIT - get heightCssMainDiv*****'
          );
          console.log(this.heightCssMainDiv);
        }*/
        //-------------------------------------
        /*//----- Commentaires du 21/11/2023 ----
        this.showMaintenanceButton =
          this.userCtxtService.priveFN_isShowButtonMaintenance();
    
        this.isMenuVisible = this.menuDataService.visible;
        this.toggleMenuSubscription = this.menuDataService.toggleSideBar.subscribe(
          (data: any) => {
            console.log('**** VIEW CRUD COMPONENT LISTENER - NGONINIT *****');
            console.log(data);
            this.isMenuVisible = data;
          }
        );*/
        let responseResolve = this.route.snapshot.data['listData'];
        console.log('****** GENERIC VIEW - ResponseResolve *******');
        console.log(responseResolve);
        this.onPrepareList(responseResolve?.response);
        this.myInit();
        console.log('****** GENERIC VIEW - SVC_COLS *******');
        console.log(this.svc_cols);
        console.log('****** GENERIC VIEW - BEFORE filtreRechercheSubscription *******');
        console.log(this.crudFiltreRecherhe.reloadOnFiltreChange);
        this.filtreRechercheSubscription =
            this.crudFiltreRecherhe.reloadOnFiltreChange.subscribe((data) => {
                console.log('****** GENERIC VIEW - BEFORE ONFETCH *******');
                this.onFetch();
            });
        this.onFetch();
        console.log('****** GENERIC VIEW - AFTER filtreRechercheSubscription *******');
    }
    ngAfterViewInit() {
        // If the user changes the sort order, reset back to the first page.
        /*this.sort?.sortChange.subscribe({
          next() {
            if (this.paginator != undefined) this.paginator.pageIndex = 0;
          },
        });
    
        this.paginator?.page.pipe(tap(() => this.onFetch())).subscribe();*/
        /*if (this.heightCssMainDiv == undefined) {
          this.heightCssMainDiv = readProperty('heightMiddleView') + 'px';
          console.log(
            '**** VIEW CRUD COMPONENT LISTENER - NGAFTERVIEWINIT - get heightCssMainDiv*****'
          );
          console.log(this.heightCssMainDiv);
          //this.heightCssMainDiv = "300px";
        }*/
    }
    ngOnDestroy() {
        this.filtreRechercheSubscription.unsubscribe();
        //this.toggleMenuSubscription.unsubscribe();
    }
    refreshParamsFindData() {
        this.paramsFindData = {
            listeFiltres: this.filtres,
            page: this.pageCourant,
            size: this.nbRowsPage,
        };
    }
    resetParamsFindData() {
        this.searchGlobalInputValue = '';
        this.pageCourant = 0;
        this.nbRowsPage = this.crudDataService_List.nbRowsDataTableByPage;
        this.filtres = this.staticFiltres;
        this.refreshParamsFindData();
    }
    /*handlePageEvent(e: PageEvent) {
      this.pageEvent = e;
      this.totalRecords = e.length;
      this.nbRowsPage = e.pageSize;
      this.pageCourant = e.pageIndex;
      this.onFetch();
    }*/
    handlePaginatorChangeEvent(e) {
        console.log('**** VIEW CRUD COMPONENT - handlePaginatorChangeEvent - indexpage - NbRowsPage ');
        console.log(e);
        console.log(this.pageCourant);
        console.log(this.nbRowsPage);
        this.onFetch();
    }
    applyGlobalFilter(event) {
        //const filterValue = (event.target as HTMLInputElement).value;
        const filterValue = this.searchGlobalInputValue;
        console.log('**** VIEW CRUD COMPONENT LISTENER - APPLYFILTER --- Show filter value : ');
        console.log(filterValue);
        if (filterValue) {
            let myMapFilter = new Map();
            //myMapFilter.set(this.svc_dataKeyField,{operator:TFilterOperator.EQUALS,value:filterValue} as ColumnDatatableFilterValue);
            myMapFilter.set(this.svc_globalFiltersColumns.join(','), {
                operator: Enum_FilterOperator.EQUALS,
                value: filterValue,
            });
            this.paramsFindData.filters = myMapFilter;
        }
        else {
            this.paramsFindData.filters = undefined;
        }
        this.onFetch();
    }
    resetGlobalFilter(event) {
        this.searchGlobalInputValue = '';
        this.applyGlobalFilter(event);
    }
    /*updateFilterData(filterdata: any) {
      console.log('******** VIEW CRUD - UPDATE FILTRE *************');
      console.log(filterdata);
      this.filtres = filterdata;
      this.crudFiltreRecherhe.validateChangeFiltre(this.filtres);
    }*/
    /*getColumnsFilters(): Array<TColumnDataTableDef> {
      return this.svc_cols.filter(
        (elt1) => elt1.listFilterOperators != undefined
      );
    }*/
    getColumnsToDisplay() {
        return this.svc_cols.filter(elt => elt.visible == true);
        //return this.svc_cols.filter(elt => elt.visible==true).map(elt => ({...elt, header:'list_'+elt.field}));
    }
    getColumnsNameToDisplay() {
        return this.getColumnsToDisplay().map((elt1) => elt1.field);
    }
    /*************************************************************/
    /** */
    combineStaticFiltertoFilter() {
        this.setStaticParameters();
        console.log('****** VIEW CRUD COMPONENT - COMBINESTATICFILTERTOFILTER - Show staticParameters *****');
        console.log(this.staticFiltres);
        if (this.staticFiltres != undefined && this.staticFiltres.length > 0) {
            if (this.filtres == undefined || this.filtres.length == 0) {
                this.filtres = this.staticFiltres;
            }
            else {
                let newFiltres = [];
                this.filtres.forEach((orPredicates) => {
                    this.staticFiltres.forEach((staticOrPredicates) => {
                        newFiltres.push({
                            value: [...orPredicates.value, ...staticOrPredicates.value],
                            visible: orPredicates.visible,
                        });
                    });
                });
                this.filtres = newFiltres;
            }
        }
    }
    /*************************************************************/
    /** */
    combineDatatableFilterValues() {
        if (this.filtres == undefined) {
            this.filtres = [];
        }
        let dtFilters;
        dtFilters = this.paramsFindData.filters
            ? this.paramsFindData.filters
            : new Map(); //?.((value) => value != undefined);
        console.log('****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Show FilterValues *****');
        console.log(dtFilters);
        console.log(dtFilters.size);
        console.log(dtFilters.entries());
        if (dtFilters != undefined && dtFilters.size > 0) {
            //----- Construire le filtre du Datatable ----
            //----- Initialiser le nouveau prédicat avec les prédicats déjà contenus dans le filtre actuel ---
            let newOrOfAndFilters = [];
            if (this.filtres.length > 0) {
                this.filtres.forEach((orPredicates) => {
                    newOrOfAndFilters.push({
                        value: [...orPredicates.value],
                        visible: orPredicates.visible,
                    });
                });
            }
            for (let [dtfilterKey, dtfilterValue] of dtFilters.entries()) {
                console.log('****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Entry Map filtervalue *****');
                console.log(dtfilterKey + ' : ' + dtfilterValue.value);
                let colsFilterStr = [];
                colsFilterStr = dtfilterKey.split(',');
                for (let colfilterstr of colsFilterStr) {
                    let colFilter = this.svc_cols.find((col) => col.field == colfilterstr);
                    let newAndFilter = { value: [], visible: true };
                    if (dtfilterValue.value != undefined &&
                        dtfilterValue.value.length != 0 &&
                        colFilter != undefined) {
                        let colFilterOperator = dtfilterValue.operator;
                        if (colFilter.typeData == TypeFieldDataView.TEXTE) {
                            colFilterOperator = Enum_FilterOperator.CONTAINS;
                        }
                        newAndFilter.value.push({
                            name: colfilterstr,
                            value: dtfilterValue.value,
                            operator: colFilterOperator,
                            active: true,
                            ignoreWhenNull: true,
                        });
                    }
                    console.log('****** VIEW CRUD COMPONENT - combineDatatableFilterValues - AndFilter *****');
                    console.log(newAndFilter);
                    newOrOfAndFilters.push({
                        value: [...newAndFilter.value],
                        visible: true,
                    });
                }
                console.log('****** VIEW CRUD COMPONENT - combineDatatableFilterValues - OrOfAndFilters *****');
                console.log(newOrOfAndFilters);
                /*let colFilter: TColumnDataTableDef | undefined = this.svc_cols.find(
                  (col) => col.field == dtfilterKey
                );
                if (
                  dtfilterValue.value != undefined &&
                  colFilter != undefined &&
                  (colFilter.typeData != TypeFieldData.TEXTE ||
                    dtfilterValue.value != '')
                ) {
                  newAndFilter.value.push({
                    name: dtfilterKey,
                    value: dtfilterValue.value,
                    operator: dtfilterValue.operator,
                    active: true,
                    ignoreWhenNull: true,
                  } as FiltreRequete);
                }
                console.log(
                '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Filtres *****'
              );
              console.log(newAndFilter);
                */
            }
            //----- Mettre à jour le filtre principal en fonction des données du filtre du Datatable ----
            if (newOrOfAndFilters.length > 0) {
                this.filtres = newOrOfAndFilters;
            }
        }
    }
    /*************************************************************/
    /** */
    onFetch() {
        console.log('******** VIEW CRUD - ONFETCH (initLoadingSubject to true before fetching data) ************');
        //this.resetParamsFindData();
        this.filtres = [];
        this.combineStaticFiltertoFilter();
        this.combineDatatableFilterValues();
        this.refreshParamsFindData();
        console.log('******** VIEW CRUD - ONFETCH (critères) ************');
        console.log(this.filtres);
        console.log('******** VIEW CRUD - ONFETCH (critères as string) ************');
        console.log(this.paramsFindData);
        this.dataSource.loadData(this.paramsFindData);
        this.crudDataService_List.selectedData = undefined;
        /*setTimeout(() => {
          this.crudDataService
            .findDataFromServer(this.paramsFindData)
            .subscribe((response) => {
              console.log('RECHERCHE DATA - ONFETCH');
              console.log(response);
              if (response.reponseOK) {
                this.dataSource.data = response.data.pageData;
                this.totalRecords = response.data.totalRecords;
                this.dataSource.paginator = this.paginator;
                this.dataSource.sort = this.sort;
                this.loadingSubject.next(false);
                return;
              } else {
                this.notificationService.error(response.message);
                console.log(response);
                this.loadingSubject.next(false);
                return;
              }
            });
        }, 1000);*/
    }
    /*************************************************************/
    /** */
    navigateToEditView() {
        console.log('***** VIEW CRUD COMPONENT : EDIT DATA ******');
        console.log('***** ROW DATA ******');
        console.log(this.crudDataService_List.selectedData);
        if (this.crudDataService_List.selectedData != undefined) {
            if (this.useRoutingForNavigate) {
                this.router.navigate([this.svc_urlNavigatePageCreateOrEdit], {
                    queryParams: {
                        id: this.crudDataService_List.getIDValue(this.crudDataService_List.selectedData), //.get(this.svc_dataKeyField),
                        urlPage: this.svc_urlNavigatePageCreateOrEdit,
                    },
                });
            }
            else {
                this.crudDataService_List.navigateToEdit_Subject.next(true);
            }
            //this.routeStateService.add(this.menudataService.menuitem_.label, this.menudataService.menuitem_detailcontrat.routerLink, { idMenu: this.menudataService.menuitem_detailcontrat.id, params: {numContrat: ""+rowData?.connum.toString()}}, true);
        }
        return;
    }
    /*************************************************************/
    /** */
    navigateToCreateView() {
        console.log('***** VIEW CRUD COMPONENT : CREATE DATA ******');
        //console.log('***** EVENT ******');
        //console.log(event);
        if (this.useRoutingForNavigate) {
            this.router.navigate([this.svc_urlNavigatePageCreateOrEdit], {
                queryParams: { urlPage: this.svc_urlNavigatePageCreateOrEdit },
            });
        }
        else {
            this.crudDataService_List.navigateToCreate_Subject.next(true);
        }
        //this.routeStateService.add(this.menudataService.menuitem_detailcontrat.label, this.menudataService.menuitem_detailcontrat.routerLink, { idMenu: this.menudataService.menuitem_detailcontrat.id, params: {numContrat: ""+rowData?.connum.toString()}}, true);
        return;
    }
    /*************************************************************/
    /** */
    navigateToImportView() {
        console.log('***** VIEW CRUD COMPONENT : Navigate to Import View ******');
        //console.log('***** EVENT ******');
        //console.log(event);
        console.log(this.svc_urlNavigatePageImport);
        if (this.useRoutingForNavigate) {
            if (this.svc_urlNavigatePageImport != null) {
                this.router.navigate([this.svc_urlNavigatePageImport], {
                    queryParams: { urlPage: this.svc_urlNavigatePageImport },
                });
                //this.routeStateService.add(this.menudataService.menuitem_detailcontrat.label, this.menudataService.menuitem_detailcontrat.routerLink, { idMenu: this.menudataService.menuitem_detailcontrat.id, params: {numContrat: ""+rowData?.connum.toString()}}, true);
            }
        }
        else {
            this.crudDataService_List.navigateToImport_Subject.next(true);
        }
    }
    /*************************************************************/
    /** */
    deleteData() {
        console.log('***** VIEW CRUD COMPONENT : DELETE DATA ******');
        console.log('***** ROWDATA ******');
        console.log(this.crudDataService_List.selectedData);
        if (this.crudDataService_List.selectedData != undefined) {
            const idRowData = this.crudDataService_List.getIDValue(this.crudDataService_List.selectedData);
            this.notificationService.confirmation('Voulez-vous supprimer cette enregistrement? ', 'Confirmation suppression', () => {
                this.crudDataService_List
                    .deleteById(idRowData)
                    .subscribe((response) => {
                    if (response.reponseOK) {
                        //this.filtreRechercheService.validateChangeFiltre(undefined)
                        this.afterDelete();
                        this.notificationService.success(response.message);
                        //this.loading = false;
                        return;
                    }
                    else {
                        console.log('--- Error1 ---');
                        console.log(response.message);
                        this.notificationService.error(response.message);
                        return;
                    }
                }); /*.catch(
                  (error) => {
                    this.toastService.addSingle('error', '', 'Erreur système - suppression des données!');
                    console.log("--- Error2 ---");
                    console.log(error);
                    //this.loading = false;
                    return;
                  });*/
            });
        }
        return;
    }
    /*************************************************************/
    /** */
    /*clearAllData() {
      console.log('***** VIEW CRUD COMPONENT : CLEAR ALL DATA ******');
  
      this.notificationService.confirmation(
        'Attention! vous allez effacer la liste des enregistrements? ',
        'Confirmation suppression',
        () => {
          this.crudDataService.deleteAll().subscribe((response) => {
            if (response.reponseOK) {
              //this.filtreRechercheService.validateChangeFiltre(undefined)
              this.afterDelete();
              this.notificationService.success(response.message);
              return;
            } else {
              console.log('--- Error1 ---');
              console.log(response.message);
              this.notificationService.error(response.message);
              return;
            }
          });
        }
      );
      return;
    }*/
    /*************************************************************/
    rowClicked(mySelectedRowData) {
        console.log('***** VIEW CRUD COMPONENT -- RowClicked  ******');
        console.log(mySelectedRowData);
        this.crudDataService_List.selectedData = mySelectedRowData;
    }
    rowDblClicked(mySelectedRowData) {
        console.log('***** VIEW CRUD COMPONENT -- RowDblClicked  ******');
        console.log(mySelectedRowData);
        this.crudDataService_List.selectedData = mySelectedRowData;
        this.navigateToEditView();
    }
    isSelectedDataRow(myrow) {
        return this.crudDataService_List.selectedData == myrow;
    }
    /** */
    isColTypeDate(col) {
        return isColTypeDate(col);
    }
    isColTypeBooleen(col) {
        return isColTypeBooleen(col);
    }
    isColTypeNombre(col) {
        return isColTypeNombre(col);
    }
    isColTypeTexte(col) {
        return isColTypeTexte(col);
    }
    //********************************************************* */
    actionCustomGridView() {
        console.log('******** VIEWCRUD PERSONNALISER GRILLE AFFICHAGE ******************');
    }
    //********************************************************* */
    /*exportPDF() {
      this.export('pdf');
    }
  
    exportEXCEL() {
      this.export('xlsx');
    }
  
    exportCSV() {
      this.export('csv');
    }*/
    //-----------
    export() {
        const typeExport = this.selectedExportOption.exportFormat;
        const orientationExport = this.selectedExportOption.exportPageOrientation === TExportPageOrientation.LANDSCAPE ? true : false;
        const headerValueUseExport = this.selectedExportOption.exportHeaderDataValueFrom === TExportHeaderDataValueFrom.FIELD_NAME ? true : false;
        console.log('********   VIEWCRUD EXPORT -- ExportParams ***************');
        console.log(this.exportParams);
        this.exportParams.title = this.crudDataService_List.titreViewDataList;
        this.exportParams.useLandscape = orientationExport;
        this.exportParams.useHeaderDataFieldName = headerValueUseExport;
        this.exportParams.addNumeroOrdre = this.selectedExportOption.exportShowRowNumber;
        this.exportParams.listeColsData = this.selectedExportOption.exportListeColsData;
        this.crudDataService_List
            .exportData(typeExport, this.exportParams, this.paramsFindData.listeFiltres)
            .subscribe({
            next: (res) => {
                console.log('************** VIEWCRUD - EXPORT ***********************');
                console.log(res);
                const blob = new Blob([res.body], {
                    type: res.headers.get('content-type'),
                });
                const filename = res.headers
                    .get('content-disposition')
                    ?.split('filename=')[1];
                console.log('************** VIEWCRUD - EXPORT - FILEOUTPUT NAME***********************');
                console.log(filename);
                this.isPanelExportOpen = false;
                fileSaver.saveAs(blob, filename);
            },
            error: (error) => {
                console.log('************** VIEWCRUD - EXPORT -- ERROR ***********************');
                console.log(error);
                this.notificationService.error('Echec export.');
            },
        });
    }
    /*************************************************************/
    getFilterTypeFromTypeFieldData(typefielddata) {
        if (TypeFieldDataView.TEXTE == typefielddata) {
            return 'text';
        }
        else if (TypeFieldDataView.NOMBRE == typefielddata) {
            return 'numeric';
        }
        else if (TypeFieldDataView.BOOLEEN == typefielddata) {
            return 'boolean';
        }
        else if (TypeFieldDataView.DATE_HEURE == typefielddata) {
            return 'date';
        } /*else if (TypeFieldDataView.HEURE == typefielddata) {
          return 'text';
        } else if (TypeFieldDataView.FILE_DOC == typefielddata) {
          return 'text';
        }else if (TypeFieldDataView.FILE_IMAGE == typefielddata) {
          return 'date';
        }*/
        else {
            return 'text';
        }
    }
    /*************************************************************/
    getDefaultFilterMatchmodeFromTypeFieldData(typefielddata) {
        if (TypeFieldDataView.TEXTE == typefielddata) {
            return Enum_FilterMatchMode.CONTAINS;
        }
        else if (TypeFieldDataView.NOMBRE == typefielddata) {
            return Enum_FilterMatchMode.EXACT;
        }
        else if (TypeFieldDataView.BOOLEEN == typefielddata) {
            return Enum_FilterMatchMode.EXACT;
        }
        else if (TypeFieldDataView.DATE_HEURE == typefielddata) {
            return Enum_FilterMatchMode.EXACT;
        }
        else {
            return Enum_FilterMatchMode.EXACT;
        }
    }
    //---------------------------
    /*getColWidth(col:TColumnDataTableDef):number{
      return col.width?col.width:0
    }*/
    //-----------------------------------------------------
    isTypeViewList_DataGrid() {
        //return false;
        return this.selectedTypeViewList == TypeViewList.DATAGRID_VIEW;
    }
    resetTypeViewListTo_DataGrid() {
        this.selectedTypeViewList = TypeViewList.DATAGRID_VIEW;
        this.onTypeViewListChange();
    }
    isTypeViewList_Report() {
        return this.selectedTypeViewList == TypeViewList.REPORT_VIEW;
    }
    resetTypeViewListTo_Report() {
        this.selectedTypeViewList = TypeViewList.REPORT_VIEW;
        this.onTypeViewListChange();
    }
    isTypeViewList_Statistics() {
        return this.selectedTypeViewList == TypeViewList.STATISTICS_VIEW;
    }
    resetTypeViewListTo_Statistics() {
        console.log("********* SGC-NG-CRUD-VIEW-LIST-COMPONENT --> resetTypeViewListTo_Statistics 1 **************");
        console.log(this.selectedTypeViewList);
        this.selectedTypeViewList = TypeViewList.STATISTICS_VIEW;
        console.log("********* SGC-NG-CRUD-VIEW-LIST-COMPONENT --> resetTypeViewListTo_Statistics 2 **************");
        console.log(this.selectedTypeViewList);
        this.onTypeViewListChange();
    }
    onTypeViewListChange() { }
    isSelectedTypeExportFormat_CSV() {
        return this.selectedExportOption?.exportFormat == TExportFormat.CSV;
    }
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.NotificationService }, { token: i2.FiltreRechercheService }], target: i0.ɵɵFactoryTarget.Component }); }
    static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SgcNgCrudViewListComponent, isStandalone: false, selector: "sgc-ng-crud-view-list", inputs: { css_heightMainDiv: "css_heightMainDiv", crudDataService_List: "crudDataService_List", crudDataService_Report: "crudDataService_Report", crudDataService_Statistics: "crudDataService_Statistics", useRoutingForNavigate: "useRoutingForNavigate", selectedTypeViewList: "selectedTypeViewList" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }], ngImport: i0, template: "<ng-template #customToolbarButtons>\n  <button mat-stroked-button matToolTip=\"List Data\" aria-label=\"List Data\" (click)=\"resetTypeViewListTo_DataGrid()\">\n    <mat-icon class=\"color_green\">list_alt</mat-icon>\n  </button>\n  <button mat-stroked-button matToolTip=\"Report Data\" aria-label=\"Report Data\" [disabled]=\"!crudDataService_Report\"\n    (click)=\"resetTypeViewListTo_Report()\">\n    <mat-icon>library_books</mat-icon>\n  </button>\n  <button mat-stroked-button matToolTip=\"Statistics\" aria-label=\"Statistics\" [disabled]=\"!crudDataService_Statistics\"\n    (click)=\"resetTypeViewListTo_Statistics()\">\n    <mat-icon>equalizer</mat-icon>\n  </button>\n</ng-template>\n\n<div class=\"main-div\" style=\"--heightViewCrud: {{ css_heightMainDiv }}\">\n  <!--div *ngIf=\"isTypeViewList_DataGrid()\"-->\n  <p>MA DATA TABLE</p>\n  <div class=\"spinner-container overlay\" *ngIf=\"dataSource.loading$ | async\">\n    <div class=\"center\">\n      <!--mat-spinner></mat-spinner-->\n      <mat-progress-spinner diameter=\"100\" mode=\"indeterminate\"></mat-progress-spinner>\n    </div>\n  </div>\n\n  <div class=\"datatable-toolbar-css\">\n    <mat-toolbar>\n      <mat-toolbar-row class=\"toolbar-row-title-css\">\n        <div>\n          <p>{{ crudDataService_List.titreViewDataList }}</p>\n        </div>\n        <div>\n          <ng-container *ngTemplateOutlet=\"customToolbarButtons\"></ng-container>\n        </div>\n      </mat-toolbar-row>\n      <mat-toolbar-row class=\"datatable-toolbar-row-filter-css\">\n        <div class=\"datatable-filter-default-css\">\n          <!--mat-form-field floatLabel=\"never\" appearance=\"standard\" class=\"datatable-filter-default-css\"-->\n          <!--mat-form-field appearance=\"standard\"  class=\"datatable-filter-default-css\" -->\n          <input matInput type=\"search\" (keydown.enter)=\"applyGlobalFilter($event)\" [(ngModel)]=\"searchGlobalInputValue\"\n            placeholder=\"search text\" class=\"searchInputCss\" #input />\n          <div>\n            <button *ngIf=\"searchGlobalInputValue\" mat-icon-button color=\"warn\" aria-label=\"Clear\"\n              (click)=\"resetGlobalFilter($event)\">\n              <mat-icon>close</mat-icon>\n            </button>\n            <button mat-icon-button color=\"accent\" (click)=\"applyGlobalFilter($event)\">\n              <mat-icon>search</mat-icon>\n            </button>\n          </div>\n          <!--/mat-form-field-->\n        </div>\n        <span class=\"my-toolbar-spacer\"></span>\n        <div class=\"wrapper-action-buttons\">\n          <button [disabled]=\"false\" matTooltip=\"Create-2\" matTooltipPosition=\"above\" (click)=\"navigateToCreateView()\">\n            <mat-icon color=\"primary\">add_circle</mat-icon>\n          </button>\n          <button [disabled]=\"!crudDataService_List.selectedData\" matTooltip=\"Edit\" matTooltipPosition=\"above\"\n            (click)=\"navigateToEditView()\">\n            <mat-icon color=\"primary\">create</mat-icon>\n          </button>\n          <button [disabled]=\"!crudDataService_List.selectedData\" matTooltip=\"Delete\" matTooltipPosition=\"above\"\n            (click)=\"deleteData()\">\n            <mat-icon color=\"warn\">delete</mat-icon>\n          </button>\n          \n\n          <button cdkOverlayOrigin #myExportOriginOverlay=\"cdkOverlayOrigin\"\n            (click)=\"isPanelExportOpen = !isPanelExportOpen\" [disabled]=\"false\" matTooltip=\"Export data\"\n            matTooltipPosition=\"above\" aria-label=\"Export data\">\n            <mat-icon color=\"primary\">browser_updated</mat-icon>\n          </button>\n          <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"myExportOriginOverlay\"\n            [cdkConnectedOverlayOpen]=\"isPanelExportOpen\" cdkConnectedOverlayWidth=\"35%\"\n            >\n            <div class=\"overlayExportContainer\">\n              <!--section class=\"overlayExportBody\"-->\n              <!--mat-form-field-->\n              <div class=\"overlayRow\">\n                <label id=\"format-export-label\">Format export</label>\n                <mat-radio-group aria-labelledby=\"format-export-label\" class=\"format-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportFormat\">\n                  <mat-radio-button *ngFor=\"let fmtExport of listeTypeExportFormat\" class=\"format-export-radio-button\"\n                    [value]=\"fmtExport.value\">{{fmtExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n              <!--/mat-form-field-->\n\n              <!--mat-form-field-->\n              <div class=\"overlayRow\" *ngIf=\"!isSelectedTypeExportFormat_CSV()\">\n                <label id=\"pageorientation-export-label\">Orientation page</label>\n                <mat-radio-group aria-labelledby=\"pageorientation-export-label\" class=\"orientation-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportPageOrientation\">\n                  <mat-radio-button *ngFor=\"let orientExport of listeTypeExportOrientationPage\"\n                    class=\"orientation-export-radio-button\"\n                    [value]=\"orientExport.value\">{{orientExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"header-data-export\">Header data</label>\n                <mat-radio-group aria-labelledby=\"header-data-export\" class=\"header-data-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportHeaderDataValueFrom\">\n                  <mat-radio-button *ngFor=\"let headerDataValueExport of listeTypeExportHeaderDataValueFrom\"\n                    class=\"header-data-export-radio-button\"\n                    [value]=\"headerDataValueExport.value\">{{headerDataValueExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"custom-cols-export\">Customize columns</label>\n                <mat-select aria-labelledby=\"custom-cols-export\" [(ngModel)]=\"selectedExportOption.exportListeColsData\" multiple>\n                  <mat-option *ngFor=\"let col of listeAllColsExport\" [value]=\"col.value\">{{col.value}}</mat-option>\n                </mat-select>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"custom-row-number-export\">Add row number</label>\n                <mat-checkbox aria-labelledby=\"custom-row-number-export\" class=\"custom-row-number-export-class\" [(ngModel)]=\"selectedExportOption.exportShowRowNumber\">\n                </mat-checkbox>                \n              </div>\n              <!--/mat-form-field-->\n              <!--/section-->\n              <mat-divider class=\"section-separator\"></mat-divider>\n              <section class=\"overlayExportFooter\">\n                <button mat-raised-button color=\"accent\" (click)=\"isPanelExportOpen = false\">Annuler</button>\n                <button mat-raised-button color=\"primary\" (click)=\"export()\">Exporter</button>\n              </section>\n            </div>\n          </ng-template>\n\n          <button [disabled]=\"false\" matTooltip=\"Import data\" matTooltipPosition=\"above\" (click)=\"navigateToImportView()\">\n            <mat-icon color=\"primary\">publish</mat-icon>\n          </button>\n        </div>\n      </mat-toolbar-row>\n    </mat-toolbar>\n  </div>\n\n  <section class=\"datatable-container-default-css mat-elevation-z8\" tabindex=\"0\">\n    <table #myTable mat-table [dataSource]=\"dataSource\" matSort matSortDisableClear *ngIf=\"true\">\n      <ng-container *ngFor=\"let col of getColumnsToDisplay()\" [matColumnDef]=\"col.field\">\n        <!--span *ngIf=\"col.width\"-->\n        <th mat-header-cell *matHeaderCellDef [ngClass]=\"[col.styleClassHeader?col.styleClassHeader:'']\" mat-sort-header\n          [ngStyle]=\"{\n            width: col.css_width ? col.css_width + '%' : null,\n            'text-align': col.css_textAlign ? col.css_textAlign : null\n          }\">\n          {{ col.header }}\n        </th>\n        <td [ngStyle]=\"{\n            width: col.css_width ? col.css_width + '%' : null,\n            'text-align': col.css_textAlign ? col.css_textAlign : null\n          }\" mat-cell *matCellDef=\"let element\">\n          {{ element[col.field] }}\n        </td>\n      </ng-container>\n\n      <tr mat-header-row class=\"datatable-header-default-css\"\n        *matHeaderRowDef=\"getColumnsNameToDisplay(); sticky: true\"></tr>\n      <tr mat-row *matRowDef=\"let myRowData; columns: getColumnsNameToDisplay()\"\n        [ngClass]=\"{ selectedRowCss: isSelectedDataRow(myRowData) }\" (click)=\"rowClicked(myRowData)\"\n        (dblclick)=\"rowDblClicked(myRowData)\"></tr>\n    </table>\n  </section>\n  <div class=\"wrapper-paginator\">\n    <sgc-ng-paginator [totalElements]=\"dataSource.totalRecords\" [(taillePage)]=\"nbRowsPage\"\n      [(indexPageCourant)]=\"pageCourant\" [listeTaillesPages]=\"[5, 10, 15, 20, 25, 30, 40, 50]\"\n      (onPaginatorChangeEvent)=\"handlePaginatorChangeEvent($event)\"></sgc-ng-paginator>\n  </div>\n  <!--/div>\n\n  <div *ngIf=\"isTypeViewList_Report() && crudDataService_Report\">\n    <div class=\"report-toolbar-css\">\n      <mat-toolbar>\n        <mat-toolbar-row class=\"toolbar-row-title-css\">\n          <div>\n            <p>{{ crudDataService_Report.titreReportView }}</p>\n          </div>\n          <div>\n            <ng-container\n              *ngTemplateOutlet=\"customToolbarButtons\"\n            ></ng-container>\n          </div> </mat-toolbar-row\n      ></mat-toolbar>\n      <section\n        class=\"report-container-default-css mat-elevation-z8\"\n        tabindex=\"0\"\n      >\n        REPORT VIEW LIST\n      </section>\n    </div>\n\n    <div *ngIf=\"isTypeViewList_Statistics() && crudDataService_Statistics\">\n      <div class=\"statistics-toolbar-css\">\n        <mat-toolbar>\n          <mat-toolbar-row class=\"toolbar-row-title-css\">\n            <div>\n              <p>{{ crudDataService_Statistics.titreStatisticsView }}</p>\n            </div>\n            <div>\n              <ng-container\n                *ngTemplateOutlet=\"customToolbarButtons\"\n              ></ng-container>\n            </div> </mat-toolbar-row\n        ></mat-toolbar>\n        <section\n          class=\"statistics-container-default-css mat-elevation-z8\"\n          tabindex=\"0\"\n        >\n          STATISTICS VIEW LIST\n        </section>\n      </div>\n    </div>\n  </div-->\n</div>", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media (prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media (forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.main-div{display:flex;flex-direction:column;width:100%;height:calc(var(--heightViewCrud) - 10px);min-height:calc(var(--heightViewCrud) - 10px);overflow-y:hidden}.datatable-container-default-css{width:100%!important;height:calc(20px + calc(calc(var(--heightViewCrud) - 10px) - (80px + 35px + 20px)));min-height:calc(20px + calc(calc(var(--heightViewCrud) - 10px) - (80px + 35px + 20px)));padding:0;overflow-y:scroll;overflow-x:clip}.datatable-container-default-css .mat-table{width:100%!important}.datatable-container-default-css th,.datatable-container-default-css .datatable-header-default-css{padding:2px!important;font-weight:700!important;border-style:solid;border-width:1px thin 1em;height:20px!important;min-height:20px!important;background-color:#3f51b5;color:#fff}.datatable-container-default-css th .mat-icon .mat-icon-button{color:#fff}.datatable-container-default-css .mat-mdc-row{height:45px!important;min-height:45px!important}.datatable-container-default-css .mat-mdc-row:nth-child(2n){background-color:#f1f8e9}.datatable-container-default-css .mat-mdc-row:hover{background-color:#ede7f6}.datatable-container-default-css .selectedRowCss{background-color:violet}.datatable-container-default-css .selectedRowCss:nth-child(2n){background-color:violet}.datatable-container-default-css .selectedRowCss:hover{background-color:violet}.datatable-container-default-css .mat-mdc-cell{padding:1px!important;font-size:.98em;border-style:solid;border-width:1px;border-color:#d3d3d3}.datatable-toolbar-css{height:80px!important;min-height:80px!important;width:100%;padding:0}.toolbar-row-title-css{height:40px!important;min-height:40px!important;background-color:#ede7f6;padding:4px;display:flex;flex-direction:row;justify-content:space-between}.toolbar-row-title-css .mat-icon{color:inherit!important}.toolbar-row-title-css .mat-icon-button{border-style:solid;border-width:1px}.datatable-toolbar-row-filter-css{height:40px!important;min-height:40px!important;padding:0}.datatable-toolbar-css .my-toolbar-spacer{flex:1 1 auto}.datatable-filter-default-css{height:40px!important;line-height:40px!important;width:100%;background-color:#f1f8e9!important;padding:0;margin:0;border-radius:6px;display:flex;flex-direction:row}.datatable-filter-default-css input{height:36px;line-height:36px;width:100%;font-size:14px;padding:1px 4px;margin:0;border:0px;border-bottom:1px solid;background:none}.wrapper-action-buttons{background-color:#c5e1a5;height:40px;padding:0}.wrapper-action-buttons button{margin:auto;min-width:50px;min-height:100%}.wrapper-paginator{height:35px;min-height:35px;width:100%;padding:0!important;background-color:#c5cae9}.center{position:absolute;top:50%;left:50%;-moz-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);transform:translate(-50%) translateY(-50%)}.overlay{height:100vh;width:100%;background-color:#00000049;z-index:10;top:0;left:0;position:fixed;transition-delay:2s}.color_green{color:#0f0}.overlayExportContainer{display:flex;flex-direction:column;flex-wrap:wrap;background:#ede7f6;padding:5px;border:2px solid;border-radius:5px}.overlayRow{display:flex;flex-direction:row;justify-content:space-between;gap:20px}.overlayRow label{font-weight:700}.overlayRow .mat-checkbox-label{font-weight:700;margin-right:5px}.overlayExportFooter{display:flex;flex-direction:row;justify-content:flex-end;gap:30px}.overlayExportFooter .export-button{background:#3f51b5;color:#fff}.overlayExportFooter .cancel-button{background:#9575cd;color:#fff}.section-separator{margin-top:2px;margin-bottom:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i6.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl],      input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatButton, selector: "    button[mat-button], button[mat-raised-button], button[mat-flat-button],    button[mat-stroked-button]  ", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i11.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i11.MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i13.SgcNgPaginatorComponent, selector: "sgc-ng-paginator", inputs: ["justifyAlignItems", "labelNbreElementPage", "listeTaillesPages", "labelPageCourant", "labelTotalPages", "totalElements", "indexPageCourant", "taillePage"], outputs: ["indexPageCourantChange", "taillePageChange", "onPaginatorChangeEvent"] }, { kind: "component", type: i14.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i14.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i15.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i15.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i16.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i16.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i17.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i18.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: "pipe", type: i3.AsyncPipe, name: "async" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListComponent, decorators: [{
            type: Component,
            args: [{ selector: 'sgc-ng-crud-view-list', standalone: false, template: "<ng-template #customToolbarButtons>\n  <button mat-stroked-button matToolTip=\"List Data\" aria-label=\"List Data\" (click)=\"resetTypeViewListTo_DataGrid()\">\n    <mat-icon class=\"color_green\">list_alt</mat-icon>\n  </button>\n  <button mat-stroked-button matToolTip=\"Report Data\" aria-label=\"Report Data\" [disabled]=\"!crudDataService_Report\"\n    (click)=\"resetTypeViewListTo_Report()\">\n    <mat-icon>library_books</mat-icon>\n  </button>\n  <button mat-stroked-button matToolTip=\"Statistics\" aria-label=\"Statistics\" [disabled]=\"!crudDataService_Statistics\"\n    (click)=\"resetTypeViewListTo_Statistics()\">\n    <mat-icon>equalizer</mat-icon>\n  </button>\n</ng-template>\n\n<div class=\"main-div\" style=\"--heightViewCrud: {{ css_heightMainDiv }}\">\n  <!--div *ngIf=\"isTypeViewList_DataGrid()\"-->\n  <p>MA DATA TABLE</p>\n  <div class=\"spinner-container overlay\" *ngIf=\"dataSource.loading$ | async\">\n    <div class=\"center\">\n      <!--mat-spinner></mat-spinner-->\n      <mat-progress-spinner diameter=\"100\" mode=\"indeterminate\"></mat-progress-spinner>\n    </div>\n  </div>\n\n  <div class=\"datatable-toolbar-css\">\n    <mat-toolbar>\n      <mat-toolbar-row class=\"toolbar-row-title-css\">\n        <div>\n          <p>{{ crudDataService_List.titreViewDataList }}</p>\n        </div>\n        <div>\n          <ng-container *ngTemplateOutlet=\"customToolbarButtons\"></ng-container>\n        </div>\n      </mat-toolbar-row>\n      <mat-toolbar-row class=\"datatable-toolbar-row-filter-css\">\n        <div class=\"datatable-filter-default-css\">\n          <!--mat-form-field floatLabel=\"never\" appearance=\"standard\" class=\"datatable-filter-default-css\"-->\n          <!--mat-form-field appearance=\"standard\"  class=\"datatable-filter-default-css\" -->\n          <input matInput type=\"search\" (keydown.enter)=\"applyGlobalFilter($event)\" [(ngModel)]=\"searchGlobalInputValue\"\n            placeholder=\"search text\" class=\"searchInputCss\" #input />\n          <div>\n            <button *ngIf=\"searchGlobalInputValue\" mat-icon-button color=\"warn\" aria-label=\"Clear\"\n              (click)=\"resetGlobalFilter($event)\">\n              <mat-icon>close</mat-icon>\n            </button>\n            <button mat-icon-button color=\"accent\" (click)=\"applyGlobalFilter($event)\">\n              <mat-icon>search</mat-icon>\n            </button>\n          </div>\n          <!--/mat-form-field-->\n        </div>\n        <span class=\"my-toolbar-spacer\"></span>\n        <div class=\"wrapper-action-buttons\">\n          <button [disabled]=\"false\" matTooltip=\"Create-2\" matTooltipPosition=\"above\" (click)=\"navigateToCreateView()\">\n            <mat-icon color=\"primary\">add_circle</mat-icon>\n          </button>\n          <button [disabled]=\"!crudDataService_List.selectedData\" matTooltip=\"Edit\" matTooltipPosition=\"above\"\n            (click)=\"navigateToEditView()\">\n            <mat-icon color=\"primary\">create</mat-icon>\n          </button>\n          <button [disabled]=\"!crudDataService_List.selectedData\" matTooltip=\"Delete\" matTooltipPosition=\"above\"\n            (click)=\"deleteData()\">\n            <mat-icon color=\"warn\">delete</mat-icon>\n          </button>\n          \n\n          <button cdkOverlayOrigin #myExportOriginOverlay=\"cdkOverlayOrigin\"\n            (click)=\"isPanelExportOpen = !isPanelExportOpen\" [disabled]=\"false\" matTooltip=\"Export data\"\n            matTooltipPosition=\"above\" aria-label=\"Export data\">\n            <mat-icon color=\"primary\">browser_updated</mat-icon>\n          </button>\n          <ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"myExportOriginOverlay\"\n            [cdkConnectedOverlayOpen]=\"isPanelExportOpen\" cdkConnectedOverlayWidth=\"35%\"\n            >\n            <div class=\"overlayExportContainer\">\n              <!--section class=\"overlayExportBody\"-->\n              <!--mat-form-field-->\n              <div class=\"overlayRow\">\n                <label id=\"format-export-label\">Format export</label>\n                <mat-radio-group aria-labelledby=\"format-export-label\" class=\"format-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportFormat\">\n                  <mat-radio-button *ngFor=\"let fmtExport of listeTypeExportFormat\" class=\"format-export-radio-button\"\n                    [value]=\"fmtExport.value\">{{fmtExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n              <!--/mat-form-field-->\n\n              <!--mat-form-field-->\n              <div class=\"overlayRow\" *ngIf=\"!isSelectedTypeExportFormat_CSV()\">\n                <label id=\"pageorientation-export-label\">Orientation page</label>\n                <mat-radio-group aria-labelledby=\"pageorientation-export-label\" class=\"orientation-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportPageOrientation\">\n                  <mat-radio-button *ngFor=\"let orientExport of listeTypeExportOrientationPage\"\n                    class=\"orientation-export-radio-button\"\n                    [value]=\"orientExport.value\">{{orientExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"header-data-export\">Header data</label>\n                <mat-radio-group aria-labelledby=\"header-data-export\" class=\"header-data-export-radio-group\"\n                  [(ngModel)]=\"selectedExportOption.exportHeaderDataValueFrom\">\n                  <mat-radio-button *ngFor=\"let headerDataValueExport of listeTypeExportHeaderDataValueFrom\"\n                    class=\"header-data-export-radio-button\"\n                    [value]=\"headerDataValueExport.value\">{{headerDataValueExport.label}}</mat-radio-button>\n                </mat-radio-group>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"custom-cols-export\">Customize columns</label>\n                <mat-select aria-labelledby=\"custom-cols-export\" [(ngModel)]=\"selectedExportOption.exportListeColsData\" multiple>\n                  <mat-option *ngFor=\"let col of listeAllColsExport\" [value]=\"col.value\">{{col.value}}</mat-option>\n                </mat-select>\n              </div>\n\n              <div class=\"overlayRow\">\n                <label id=\"custom-row-number-export\">Add row number</label>\n                <mat-checkbox aria-labelledby=\"custom-row-number-export\" class=\"custom-row-number-export-class\" [(ngModel)]=\"selectedExportOption.exportShowRowNumber\">\n                </mat-checkbox>                \n              </div>\n              <!--/mat-form-field-->\n              <!--/section-->\n              <mat-divider class=\"section-separator\"></mat-divider>\n              <section class=\"overlayExportFooter\">\n                <button mat-raised-button color=\"accent\" (click)=\"isPanelExportOpen = false\">Annuler</button>\n                <button mat-raised-button color=\"primary\" (click)=\"export()\">Exporter</button>\n              </section>\n            </div>\n          </ng-template>\n\n          <button [disabled]=\"false\" matTooltip=\"Import data\" matTooltipPosition=\"above\" (click)=\"navigateToImportView()\">\n            <mat-icon color=\"primary\">publish</mat-icon>\n          </button>\n        </div>\n      </mat-toolbar-row>\n    </mat-toolbar>\n  </div>\n\n  <section class=\"datatable-container-default-css mat-elevation-z8\" tabindex=\"0\">\n    <table #myTable mat-table [dataSource]=\"dataSource\" matSort matSortDisableClear *ngIf=\"true\">\n      <ng-container *ngFor=\"let col of getColumnsToDisplay()\" [matColumnDef]=\"col.field\">\n        <!--span *ngIf=\"col.width\"-->\n        <th mat-header-cell *matHeaderCellDef [ngClass]=\"[col.styleClassHeader?col.styleClassHeader:'']\" mat-sort-header\n          [ngStyle]=\"{\n            width: col.css_width ? col.css_width + '%' : null,\n            'text-align': col.css_textAlign ? col.css_textAlign : null\n          }\">\n          {{ col.header }}\n        </th>\n        <td [ngStyle]=\"{\n            width: col.css_width ? col.css_width + '%' : null,\n            'text-align': col.css_textAlign ? col.css_textAlign : null\n          }\" mat-cell *matCellDef=\"let element\">\n          {{ element[col.field] }}\n        </td>\n      </ng-container>\n\n      <tr mat-header-row class=\"datatable-header-default-css\"\n        *matHeaderRowDef=\"getColumnsNameToDisplay(); sticky: true\"></tr>\n      <tr mat-row *matRowDef=\"let myRowData; columns: getColumnsNameToDisplay()\"\n        [ngClass]=\"{ selectedRowCss: isSelectedDataRow(myRowData) }\" (click)=\"rowClicked(myRowData)\"\n        (dblclick)=\"rowDblClicked(myRowData)\"></tr>\n    </table>\n  </section>\n  <div class=\"wrapper-paginator\">\n    <sgc-ng-paginator [totalElements]=\"dataSource.totalRecords\" [(taillePage)]=\"nbRowsPage\"\n      [(indexPageCourant)]=\"pageCourant\" [listeTaillesPages]=\"[5, 10, 15, 20, 25, 30, 40, 50]\"\n      (onPaginatorChangeEvent)=\"handlePaginatorChangeEvent($event)\"></sgc-ng-paginator>\n  </div>\n  <!--/div>\n\n  <div *ngIf=\"isTypeViewList_Report() && crudDataService_Report\">\n    <div class=\"report-toolbar-css\">\n      <mat-toolbar>\n        <mat-toolbar-row class=\"toolbar-row-title-css\">\n          <div>\n            <p>{{ crudDataService_Report.titreReportView }}</p>\n          </div>\n          <div>\n            <ng-container\n              *ngTemplateOutlet=\"customToolbarButtons\"\n            ></ng-container>\n          </div> </mat-toolbar-row\n      ></mat-toolbar>\n      <section\n        class=\"report-container-default-css mat-elevation-z8\"\n        tabindex=\"0\"\n      >\n        REPORT VIEW LIST\n      </section>\n    </div>\n\n    <div *ngIf=\"isTypeViewList_Statistics() && crudDataService_Statistics\">\n      <div class=\"statistics-toolbar-css\">\n        <mat-toolbar>\n          <mat-toolbar-row class=\"toolbar-row-title-css\">\n            <div>\n              <p>{{ crudDataService_Statistics.titreStatisticsView }}</p>\n            </div>\n            <div>\n              <ng-container\n                *ngTemplateOutlet=\"customToolbarButtons\"\n              ></ng-container>\n            </div> </mat-toolbar-row\n        ></mat-toolbar>\n        <section\n          class=\"statistics-container-default-css mat-elevation-z8\"\n          tabindex=\"0\"\n        >\n          STATISTICS VIEW LIST\n        </section>\n      </div>\n    </div>\n  </div-->\n</div>", styles: [".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%;z-index:1000}.cdk-overlay-backdrop{position:absolute;inset:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation;z-index:1000;transition:opacity .4s cubic-bezier(.25,.8,.25,1)}@media (prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media (forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px;z-index:1000}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}html{--mat-badge-text-font: Roboto, sans-serif;--mat-badge-line-height: 22px;--mat-badge-text-size: 12px;--mat-badge-text-weight: 600;--mat-badge-small-size-text-size: 9px;--mat-badge-small-size-line-height: 16px;--mat-badge-large-size-text-size: 24px;--mat-badge-large-size-line-height: 28px}.mat-h1,.mat-headline-5,.mat-typography .mat-h1,.mat-typography .mat-headline-5,.mat-typography h1{font:400 24px/32px Roboto,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-headline-6,.mat-typography .mat-h2,.mat-typography .mat-headline-6,.mat-typography h2{font:500 20px/32px Roboto,sans-serif;letter-spacing:.0125em;margin:0 0 16px}.mat-h3,.mat-subtitle-1,.mat-typography .mat-h3,.mat-typography .mat-subtitle-1,.mat-typography h3{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em;margin:0 0 16px}.mat-h4,.mat-body-1,.mat-typography .mat-h4,.mat-typography .mat-body-1,.mat-typography h4{font:400 16px/24px Roboto,sans-serif;letter-spacing:.03125em;margin:0 0 16px}.mat-h5,.mat-typography .mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography .mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,sans-serif;margin:0 0 12px}.mat-body-strong,.mat-subtitle-2,.mat-typography .mat-body-strong,.mat-typography .mat-subtitle-2{font:500 14px/22px Roboto,sans-serif;letter-spacing:.0071428571em}.mat-body,.mat-body-2,.mat-typography .mat-body,.mat-typography .mat-body-2,.mat-typography{font:400 14px/20px Roboto,sans-serif;letter-spacing:.0178571429em}.mat-body p,.mat-body-2 p,.mat-typography .mat-body p,.mat-typography .mat-body-2 p,.mat-typography p{margin:0 0 12px}.mat-small,.mat-caption,.mat-typography .mat-small,.mat-typography .mat-caption{font:400 12px/20px Roboto,sans-serif;letter-spacing:.0333333333em}.mat-headline-1,.mat-typography .mat-headline-1{font:300 96px/96px Roboto,sans-serif;letter-spacing:-.015625em;margin:0 0 56px}.mat-headline-2,.mat-typography .mat-headline-2{font:300 60px/60px Roboto,sans-serif;letter-spacing:-.0083333333em;margin:0 0 64px}.mat-headline-3,.mat-typography .mat-headline-3{font:400 48px/50px Roboto,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-headline-4,.mat-typography .mat-headline-4{font:400 34px/40px Roboto,sans-serif;letter-spacing:.0073529412em;margin:0 0 64px}html{--mat-bottom-sheet-container-text-font: Roboto, sans-serif;--mat-bottom-sheet-container-text-line-height: 20px;--mat-bottom-sheet-container-text-size: 14px;--mat-bottom-sheet-container-text-tracking: .0178571429em;--mat-bottom-sheet-container-text-weight: 400}html{--mat-legacy-button-toggle-label-text-font: Roboto, sans-serif;--mat-legacy-button-toggle-label-text-line-height: 24px;--mat-legacy-button-toggle-label-text-size: 16px;--mat-legacy-button-toggle-label-text-tracking: .03125em;--mat-legacy-button-toggle-label-text-weight: 400}html{--mat-standard-button-toggle-label-text-font: Roboto, sans-serif;--mat-standard-button-toggle-label-text-line-height: 24px;--mat-standard-button-toggle-label-text-size: 16px;--mat-standard-button-toggle-label-text-tracking: .03125em;--mat-standard-button-toggle-label-text-weight: 400}html{--mat-datepicker-calendar-text-font: Roboto, sans-serif;--mat-datepicker-calendar-text-size: 13px;--mat-datepicker-calendar-body-label-text-size: 14px;--mat-datepicker-calendar-body-label-text-weight: 500;--mat-datepicker-calendar-period-button-text-size: 14px;--mat-datepicker-calendar-period-button-text-weight: 500;--mat-datepicker-calendar-header-text-size: 11px;--mat-datepicker-calendar-header-text-weight: 400}html{--mat-expansion-header-text-font: Roboto, sans-serif;--mat-expansion-header-text-size: 14px;--mat-expansion-header-text-weight: 500;--mat-expansion-header-text-line-height: inherit;--mat-expansion-header-text-tracking: inherit;--mat-expansion-container-text-font: Roboto, sans-serif;--mat-expansion-container-text-line-height: 20px;--mat-expansion-container-text-size: 14px;--mat-expansion-container-text-tracking: .0178571429em;--mat-expansion-container-text-weight: 400}html{--mat-grid-list-tile-header-primary-text-size: 14px;--mat-grid-list-tile-header-secondary-text-size: 12px;--mat-grid-list-tile-footer-primary-text-size: 14px;--mat-grid-list-tile-footer-secondary-text-size: 12px}html{--mat-stepper-container-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-font: Roboto, sans-serif;--mat-stepper-header-label-text-size: 14px;--mat-stepper-header-label-text-weight: 400;--mat-stepper-header-error-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-size: 16px;--mat-stepper-header-selected-state-label-text-weight: 400}html{--mat-toolbar-title-text-font: Roboto, sans-serif;--mat-toolbar-title-text-line-height: 32px;--mat-toolbar-title-text-size: 20px;--mat-toolbar-title-text-tracking: .0125em;--mat-toolbar-title-text-weight: 500}html{--mat-tree-node-text-font: Roboto, sans-serif;--mat-tree-node-text-size: 14px;--mat-tree-node-text-weight: 400}html{--mat-option-label-text-font: Roboto, sans-serif;--mat-option-label-text-line-height: 24px;--mat-option-label-text-size: 16px;--mat-option-label-text-tracking: .03125em;--mat-option-label-text-weight: 400}html{--mat-optgroup-label-text-font: Roboto, sans-serif;--mat-optgroup-label-text-line-height: 24px;--mat-optgroup-label-text-size: 16px;--mat-optgroup-label-text-tracking: .03125em;--mat-optgroup-label-text-weight: 400}html{--mat-card-title-text-font: Roboto, sans-serif;--mat-card-title-text-line-height: 32px;--mat-card-title-text-size: 20px;--mat-card-title-text-tracking: .0125em;--mat-card-title-text-weight: 500;--mat-card-subtitle-text-font: Roboto, sans-serif;--mat-card-subtitle-text-line-height: 22px;--mat-card-subtitle-text-size: 14px;--mat-card-subtitle-text-tracking: .0071428571em;--mat-card-subtitle-text-weight: 500}html{--mdc-plain-tooltip-supporting-text-font: Roboto, sans-serif;--mdc-plain-tooltip-supporting-text-size: 12px;--mdc-plain-tooltip-supporting-text-weight: 400;--mdc-plain-tooltip-supporting-text-tracking: .0333333333em}html{--mdc-filled-text-field-label-text-font: Roboto, sans-serif;--mdc-filled-text-field-label-text-size: 16px;--mdc-filled-text-field-label-text-tracking: .03125em;--mdc-filled-text-field-label-text-weight: 400}html{--mdc-outlined-text-field-label-text-font: Roboto, sans-serif;--mdc-outlined-text-field-label-text-size: 16px;--mdc-outlined-text-field-label-text-tracking: .03125em;--mdc-outlined-text-field-label-text-weight: 400}html{--mat-form-field-container-text-font: Roboto, sans-serif;--mat-form-field-container-text-line-height: 24px;--mat-form-field-container-text-size: 16px;--mat-form-field-container-text-tracking: .03125em;--mat-form-field-container-text-weight: 400;--mat-form-field-outlined-label-text-populated-size: 16px;--mat-form-field-subscript-text-font: Roboto, sans-serif;--mat-form-field-subscript-text-line-height: 20px;--mat-form-field-subscript-text-size: 12px;--mat-form-field-subscript-text-tracking: .0333333333em;--mat-form-field-subscript-text-weight: 400}html{--mat-select-trigger-text-font: Roboto, sans-serif;--mat-select-trigger-text-line-height: 24px;--mat-select-trigger-text-size: 16px;--mat-select-trigger-text-tracking: .03125em;--mat-select-trigger-text-weight: 400}html{--mdc-dialog-subhead-font: Roboto, sans-serif;--mdc-dialog-subhead-line-height: 32px;--mdc-dialog-subhead-size: 20px;--mdc-dialog-subhead-weight: 500;--mdc-dialog-subhead-tracking: .0125em;--mdc-dialog-supporting-text-font: Roboto, sans-serif;--mdc-dialog-supporting-text-line-height: 24px;--mdc-dialog-supporting-text-size: 16px;--mdc-dialog-supporting-text-weight: 400;--mdc-dialog-supporting-text-tracking: .03125em}.mat-mdc-standard-chip{--mdc-chip-label-text-font: Roboto, sans-serif;--mdc-chip-label-text-line-height: 20px;--mdc-chip-label-text-size: 14px;--mdc-chip-label-text-tracking: .0178571429em;--mdc-chip-label-text-weight: 400}html .mat-mdc-slide-toggle{--mat-switch-label-text-font: Roboto, sans-serif;--mat-switch-label-text-line-height: 20px;--mat-switch-label-text-size: 14px;--mat-switch-label-text-tracking: .0178571429em;--mat-switch-label-text-weight: 400}html{--mat-radio-label-text-font: Roboto, sans-serif;--mat-radio-label-text-line-height: 20px;--mat-radio-label-text-size: 14px;--mat-radio-label-text-tracking: .0178571429em;--mat-radio-label-text-weight: 400}html{--mdc-slider-label-label-text-font: Roboto, sans-serif;--mdc-slider-label-label-text-size: 14px;--mdc-slider-label-label-text-line-height: 22px;--mdc-slider-label-label-text-tracking: .0071428571em;--mdc-slider-label-label-text-weight: 500}html{--mat-menu-item-label-text-font: Roboto, sans-serif;--mat-menu-item-label-text-size: 16px;--mat-menu-item-label-text-tracking: .03125em;--mat-menu-item-label-text-line-height: 24px;--mat-menu-item-label-text-weight: 400}html{--mdc-list-list-item-label-text-font: Roboto, sans-serif;--mdc-list-list-item-label-text-line-height: 24px;--mdc-list-list-item-label-text-size: 16px;--mdc-list-list-item-label-text-tracking: .03125em;--mdc-list-list-item-label-text-weight: 400;--mdc-list-list-item-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-supporting-text-line-height: 20px;--mdc-list-list-item-supporting-text-size: 14px;--mdc-list-list-item-supporting-text-tracking: .0178571429em;--mdc-list-list-item-supporting-text-weight: 400;--mdc-list-list-item-trailing-supporting-text-font: Roboto, sans-serif;--mdc-list-list-item-trailing-supporting-text-line-height: 20px;--mdc-list-list-item-trailing-supporting-text-size: 12px;--mdc-list-list-item-trailing-supporting-text-tracking: .0333333333em;--mdc-list-list-item-trailing-supporting-text-weight: 400}.mdc-list-group__subheader{font:400 16px/28px Roboto,sans-serif;letter-spacing:.009375em}html{--mat-paginator-container-text-font: Roboto, sans-serif;--mat-paginator-container-text-line-height: 20px;--mat-paginator-container-text-size: 12px;--mat-paginator-container-text-tracking: .0333333333em;--mat-paginator-container-text-weight: 400;--mat-paginator-select-trigger-text-size: 12px}.mat-mdc-tab-header{--mat-tab-header-label-text-font: Roboto, sans-serif;--mat-tab-header-label-text-size: 14px;--mat-tab-header-label-text-tracking: .0892857143em;--mat-tab-header-label-text-line-height: 36px;--mat-tab-header-label-text-weight: 500}html{--mat-checkbox-label-text-font: Roboto, sans-serif;--mat-checkbox-label-text-line-height: 20px;--mat-checkbox-label-text-size: 14px;--mat-checkbox-label-text-tracking: .0178571429em;--mat-checkbox-label-text-weight: 400}html{--mdc-text-button-label-text-font: Roboto, sans-serif;--mdc-text-button-label-text-size: 14px;--mdc-text-button-label-text-tracking: .0892857143em;--mdc-text-button-label-text-weight: 500;--mdc-text-button-label-text-transform: none}html{--mdc-filled-button-label-text-font: Roboto, sans-serif;--mdc-filled-button-label-text-size: 14px;--mdc-filled-button-label-text-tracking: .0892857143em;--mdc-filled-button-label-text-weight: 500;--mdc-filled-button-label-text-transform: none}html{--mdc-protected-button-label-text-font: Roboto, sans-serif;--mdc-protected-button-label-text-size: 14px;--mdc-protected-button-label-text-tracking: .0892857143em;--mdc-protected-button-label-text-weight: 500;--mdc-protected-button-label-text-transform: none}html{--mdc-outlined-button-label-text-font: Roboto, sans-serif;--mdc-outlined-button-label-text-size: 14px;--mdc-outlined-button-label-text-tracking: .0892857143em;--mdc-outlined-button-label-text-weight: 500;--mdc-outlined-button-label-text-transform: none}html{--mdc-extended-fab-label-text-font: Roboto, sans-serif;--mdc-extended-fab-label-text-size: 14px;--mdc-extended-fab-label-text-tracking: .0892857143em;--mdc-extended-fab-label-text-weight: 500}html{--mdc-snackbar-supporting-text-font: Roboto, sans-serif;--mdc-snackbar-supporting-text-line-height: 20px;--mdc-snackbar-supporting-text-size: 14px;--mdc-snackbar-supporting-text-weight: 400}html{--mat-table-header-headline-font: Roboto, sans-serif;--mat-table-header-headline-line-height: 22px;--mat-table-header-headline-size: 14px;--mat-table-header-headline-weight: 500;--mat-table-header-headline-tracking: .0071428571em;--mat-table-row-item-label-text-font: Roboto, sans-serif;--mat-table-row-item-label-text-line-height: 20px;--mat-table-row-item-label-text-size: 14px;--mat-table-row-item-label-text-weight: 400;--mat-table-row-item-label-text-tracking: .0178571429em;--mat-table-footer-supporting-text-font: Roboto, sans-serif;--mat-table-footer-supporting-text-line-height: 20px;--mat-table-footer-supporting-text-size: 14px;--mat-table-footer-supporting-text-weight: 400;--mat-table-footer-supporting-text-tracking: .0178571429em}.main-div{display:flex;flex-direction:column;width:100%;height:calc(var(--heightViewCrud) - 10px);min-height:calc(var(--heightViewCrud) - 10px);overflow-y:hidden}.datatable-container-default-css{width:100%!important;height:calc(20px + calc(calc(var(--heightViewCrud) - 10px) - (80px + 35px + 20px)));min-height:calc(20px + calc(calc(var(--heightViewCrud) - 10px) - (80px + 35px + 20px)));padding:0;overflow-y:scroll;overflow-x:clip}.datatable-container-default-css .mat-table{width:100%!important}.datatable-container-default-css th,.datatable-container-default-css .datatable-header-default-css{padding:2px!important;font-weight:700!important;border-style:solid;border-width:1px thin 1em;height:20px!important;min-height:20px!important;background-color:#3f51b5;color:#fff}.datatable-container-default-css th .mat-icon .mat-icon-button{color:#fff}.datatable-container-default-css .mat-mdc-row{height:45px!important;min-height:45px!important}.datatable-container-default-css .mat-mdc-row:nth-child(2n){background-color:#f1f8e9}.datatable-container-default-css .mat-mdc-row:hover{background-color:#ede7f6}.datatable-container-default-css .selectedRowCss{background-color:violet}.datatable-container-default-css .selectedRowCss:nth-child(2n){background-color:violet}.datatable-container-default-css .selectedRowCss:hover{background-color:violet}.datatable-container-default-css .mat-mdc-cell{padding:1px!important;font-size:.98em;border-style:solid;border-width:1px;border-color:#d3d3d3}.datatable-toolbar-css{height:80px!important;min-height:80px!important;width:100%;padding:0}.toolbar-row-title-css{height:40px!important;min-height:40px!important;background-color:#ede7f6;padding:4px;display:flex;flex-direction:row;justify-content:space-between}.toolbar-row-title-css .mat-icon{color:inherit!important}.toolbar-row-title-css .mat-icon-button{border-style:solid;border-width:1px}.datatable-toolbar-row-filter-css{height:40px!important;min-height:40px!important;padding:0}.datatable-toolbar-css .my-toolbar-spacer{flex:1 1 auto}.datatable-filter-default-css{height:40px!important;line-height:40px!important;width:100%;background-color:#f1f8e9!important;padding:0;margin:0;border-radius:6px;display:flex;flex-direction:row}.datatable-filter-default-css input{height:36px;line-height:36px;width:100%;font-size:14px;padding:1px 4px;margin:0;border:0px;border-bottom:1px solid;background:none}.wrapper-action-buttons{background-color:#c5e1a5;height:40px;padding:0}.wrapper-action-buttons button{margin:auto;min-width:50px;min-height:100%}.wrapper-paginator{height:35px;min-height:35px;width:100%;padding:0!important;background-color:#c5cae9}.center{position:absolute;top:50%;left:50%;-moz-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);transform:translate(-50%) translateY(-50%)}.overlay{height:100vh;width:100%;background-color:#00000049;z-index:10;top:0;left:0;position:fixed;transition-delay:2s}.color_green{color:#0f0}.overlayExportContainer{display:flex;flex-direction:column;flex-wrap:wrap;background:#ede7f6;padding:5px;border:2px solid;border-radius:5px}.overlayRow{display:flex;flex-direction:row;justify-content:space-between;gap:20px}.overlayRow label{font-weight:700}.overlayRow .mat-checkbox-label{font-weight:700;margin-right:5px}.overlayExportFooter{display:flex;flex-direction:row;justify-content:flex-end;gap:30px}.overlayExportFooter .export-button{background:#3f51b5;color:#fff}.overlayExportFooter .cancel-button{background:#9575cd;color:#fff}.section-separator{margin-top:2px;margin-bottom:5px}\n"] }]
        }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.NotificationService }, { type: i2.FiltreRechercheService }], propDecorators: { css_heightMainDiv: [{
                type: Input
            }], crudDataService_List: [{
                type: Input
            }], crudDataService_Report: [{
                type: Input
            }], crudDataService_Statistics: [{
                type: Input
            }], useRoutingForNavigate: [{
                type: Input
            }], selectedTypeViewList: [{
                type: Input
            }], sort: [{
                type: ViewChild,
                args: [MatSort]
            }] } });

/*const routes: Routes = [
  {
    path: '',
    component: SgcNgCrudViewListComponent,
  },
];*/
class SgcNgCrudViewListModule {
    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListModule, declarations: [SgcNgCrudViewListComponent], imports: [CommonModule,
            FormsModule,
            ReactiveFormsModule,
            RouterModule,
            MatTableModule,
            MatSortModule,
            MatProgressSpinnerModule,
            MatIconModule,
            MatSnackBarModule,
            MatDialogModule,
            MatFormFieldModule,
            MatInputModule,
            MatButtonModule,
            MatToolbarModule,
            MatTooltipModule,
            MatMenuModule,
            SgcNgPaginatorModule,
            OverlayModule,
            MatRadioModule,
            MatDividerModule,
            MatCheckboxModule,
            MatSelectModule
            //RouterModule.forChild(routes),
        ], exports: [SgcNgCrudViewListComponent,
            MatTableModule,
            MatSortModule,
            MatProgressSpinnerModule,
            MatIconModule,
            MatSnackBarModule,
            MatDialogModule,
            MatFormFieldModule,
            MatInputModule,
            MatButtonModule,
            MatToolbarModule,
            MatTooltipModule,
            MatMenuModule,
            SgcNgPaginatorModule,
            OverlayModule,
            MatRadioModule,
            MatDividerModule,
            MatCheckboxModule,
            MatSelectModule] }); }
    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListModule, imports: [CommonModule,
            FormsModule,
            ReactiveFormsModule,
            RouterModule,
            MatTableModule,
            MatSortModule,
            MatProgressSpinnerModule,
            MatIconModule,
            MatSnackBarModule,
            MatDialogModule,
            MatFormFieldModule,
            MatInputModule,
            MatButtonModule,
            MatToolbarModule,
            MatTooltipModule,
            MatMenuModule,
            SgcNgPaginatorModule,
            OverlayModule,
            MatRadioModule,
            MatDividerModule,
            MatCheckboxModule,
            MatSelectModule
            //RouterModule.forChild(routes),
            , MatTableModule,
            MatSortModule,
            MatProgressSpinnerModule,
            MatIconModule,
            MatSnackBarModule,
            MatDialogModule,
            MatFormFieldModule,
            MatInputModule,
            MatButtonModule,
            MatToolbarModule,
            MatTooltipModule,
            MatMenuModule,
            SgcNgPaginatorModule,
            OverlayModule,
            MatRadioModule,
            MatDividerModule,
            MatCheckboxModule,
            MatSelectModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SgcNgCrudViewListModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [SgcNgCrudViewListComponent],
                    imports: [
                        CommonModule,
                        FormsModule,
                        ReactiveFormsModule,
                        RouterModule,
                        MatTableModule,
                        MatSortModule,
                        MatProgressSpinnerModule,
                        MatIconModule,
                        MatSnackBarModule,
                        MatDialogModule,
                        MatFormFieldModule,
                        MatInputModule,
                        MatButtonModule,
                        MatToolbarModule,
                        MatTooltipModule,
                        MatMenuModule,
                        SgcNgPaginatorModule,
                        OverlayModule,
                        MatRadioModule,
                        MatDividerModule,
                        MatCheckboxModule,
                        MatSelectModule
                        //RouterModule.forChild(routes),
                    ],
                    exports: [
                        SgcNgCrudViewListComponent,
                        MatTableModule,
                        MatSortModule,
                        MatProgressSpinnerModule,
                        MatIconModule,
                        MatSnackBarModule,
                        MatDialogModule,
                        MatFormFieldModule,
                        MatInputModule,
                        MatButtonModule,
                        MatToolbarModule,
                        MatTooltipModule,
                        MatMenuModule,
                        SgcNgPaginatorModule,
                        OverlayModule,
                        MatRadioModule,
                        MatDividerModule,
                        MatCheckboxModule,
                        MatSelectModule
                    ],
                }]
        }] });

/*
 * Public API Surface of sgc-ng-crud-view-list
 */

/**
 * Generated bundle index. Do not edit.
 */

export { CrudDataService_ReportView, CrudDataService_StatisticsView, CrudDataSource, SgcNgCrudViewListComponent, SgcNgCrudViewListModule, SgcNgCrudViewListService, TypeViewList };
//# sourceMappingURL=sgc-ng-crud-view-list.mjs.map