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.
1 lines • 77.7 kB
Source Map (JSON)
{"version":3,"file":"sgc-ng-crud-view-list.mjs","sources":["../../../projects/sgc-ng-crud-view-list/src/lib/sgc-ng-crud-view-list.service.ts","../../../projects/sgc-ng-crud-view-list/src/lib/model/sg-ng-model.ts","../../../projects/sgc-ng-crud-view-list/src/lib/sgc-ng-crud-view-list.component.ts","../../../projects/sgc-ng-crud-view-list/src/lib/sgc-ng-crud-view-list.component.html","../../../projects/sgc-ng-crud-view-list/src/lib/sgc-ng-crud-view-list.module.ts","../../../projects/sgc-ng-crud-view-list/src/public-api.ts","../../../projects/sgc-ng-crud-view-list/src/sgc-ng-crud-view-list.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SgcNgCrudViewListService {\n\n constructor() { }\n}","import { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport {\n CrudDataService,\n CrudDataService_ListView,\n PaginateReponseAPI,\n ParamFindData,\n TypeCrudView,\n} from 'sgc-share-lib';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n//-----------------------------------------------\nexport enum TypeViewList {\n DATAGRID_VIEW = 0,\n REPORT_VIEW = 1,\n STATISTICS_VIEW = 2,\n}\n\n//--------------------------------------\n\nexport class CrudDataSource<TDataList> implements DataSource<TDataList> {\n private dataSubject: BehaviorSubject<TDataList[]> = new BehaviorSubject<\n TDataList[]\n >([]);\n private loadingSubject = new BehaviorSubject<boolean>(false);\n public totalRecords: number = 0;\n //public pageCourant: number = 0;\n //public reponseAPI?:PaginateReponseAPI<TDataList[]>;\n\n public loading$ = this.loadingSubject.asObservable();\n\n constructor(protected crudDataService: CrudDataService_ListView<TDataList>) {}\n\n connect(collectionViewer: CollectionViewer): Observable<TDataList[]> {\n return this.dataSubject.asObservable();\n }\n\n disconnect(collectionViewer: CollectionViewer): void {\n this.dataSubject.complete();\n this.loadingSubject.complete();\n }\n\n loadData(findParams: ParamFindData) {\n this.loadingSubject.next(true);\n\n /*this.crudDataService.findLessons(courseId, filter, sortDirection,\n pageIndex, pageSize).pipe(\n catchError(() => of([])),\n finalize(() => this.loadingSubject.next(false))\n )\n .subscribe(lessons => this.dataSubject.next(lessons));*/\n this.crudDataService\n .findDataFromServer(findParams) /*.pipe(\n catchError(() => of([])),\n finalize(() => this.loadingSubject.next(false))\n )*/\n .subscribe({\n next: (response: PaginateReponseAPI<TDataList[]>) => {\n console.log('***** CRUDDATASOURCE - LOADDATA - response subscribe');\n console.log(response);\n if (response.reponseOK) {\n /*this.dataSource.data = response.data.pageData;\n this.totalRecords = response.data.totalRecords;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;*/\n\n this.totalRecords = response.data.totalRecords;\n this.dataSubject.next(response.data.pageData);\n //this.reponseAPI=response;\n this.loadingSubject.next(false);\n return;\n } else {\n //this.notificationService.error(response.message);\n console.log(response);\n this.loadingSubject.next(false);\n return;\n }\n },\n error: (err) => {\n console.log(\n '***** CRUDDATASOURCE - LOADDATA - response subscribe ERROR'\n );\n console.log(err);\n this.loadingSubject.next(false);\n return;\n //return of([]);\n },\n complete: () => {\n console.log(\n '***** CRUDDATASOURCE - LOADDATA - response subscribe COMPLETE'\n );\n this.loadingSubject.next(false);\n return;\n },\n });\n }\n}\n\n//-------------------------------------------------------------------\n/**\n *\n */\nexport class CrudDataService_ReportView<TDataExport> extends CrudDataService<\n any,\n any,\n any,\n any,\n TDataExport\n> {\n titreReportView!: string;\n urlNavigatePageListView!: string;\n\n constructor(\n myHttpClient: HttpClient,\n myDataKeyField: string,\n myTitreView?: string,\n myUrlNavigateListView?: string\n ) {\n super(myHttpClient, myDataKeyField, TypeCrudView.REPORT);\n this.titreReportView = myTitreView ? myTitreView : 'REPORT VIEW';\n this.urlNavigatePageListView = myUrlNavigateListView\n ? myUrlNavigateListView\n : '';\n }\n}\n\n//-------------------------------------------------------------------\n/**\n *\n */\nexport class CrudDataService_StatisticsView<TDataList> extends CrudDataService<\n TDataList,\n any,\n any,\n any,\n any\n> {\n titreStatisticsView!: string;\n urlNavigatePageListView!: string;\n\n constructor(\n myHttpClient: HttpClient,\n myDataKeyField: string,\n myTitreView?: string,\n myUrlNavigateListView?: string\n ) {\n super(myHttpClient, myDataKeyField, TypeCrudView.REPORT);\n this.titreStatisticsView = myTitreView ? myTitreView : 'STATISTICS VIEW';\n this.urlNavigatePageListView = myUrlNavigateListView\n ? myUrlNavigateListView\n : '';\n }\n}\n","import {\n Component,\n OnInit,\n OnDestroy,\n ViewChild,\n AfterViewInit,\n Input,\n} from '@angular/core';\nimport {\n ColumnDatatableFilterValue,\n ParamFindData,\n TColumnDataTableDef,\n Enum_FilterOperator,\n TypeFieldDataView,\n CrudDataService_ListView,\n ANDFilters,\n CrudFiltreRecherche,\n Enum_FilterMatchMode,\n ExportListDataParams,\n FiltreRequete,\n ORofAndFilters,\n ResponseResolveCrudList,\n isColTypeBooleen,\n isColTypeDate,\n isColTypeNombre,\n isColTypeTexte,\n FiltreRechercheService,\n NotificationService,\n readProperty,\n TOptionListeSelectValues,\n getListeTypeExportFormat,\n getListeTypeExportOrientation,\n TOptionExportData,\n TExportFormat,\n TExportPageOrientation,\n getListeTypeExportHeaderDataValueFrom,\n TExportHeaderDataValueFrom,\n} from 'sgc-share-lib';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { ActivatedRoute, Router } from '@angular/router';\n\n//import { LazyLoadEvent, ConfirmationService, MessageService, MenuItem, FilterMatchMode } from 'primeng/api';\nimport * as fileSaver from 'file-saver';\n//import { MenuDataService } from '../../core/services/app-svc/menu-data.service';\n//import { CrudDataService } from '../../core/services/utils/crud.service';\n//import { RouteStateService } from '../../core/services/app-svc/route-state.service';\n//import { NotificationService } from '../../core/services/app-svc/notification.service';\n//import { ReloadViewService } from '../../core/services/app-svc/reload-view.service';\n//import { UserContextService } from '../../core/services/app-svc/user-context.service';\n//import { LegacyPageEvent as PageEvent } from '@angular/material/legacy-paginator';\nimport { MatSort } from '@angular/material/sort';\nimport {\n CrudDataService_ReportView,\n CrudDataService_StatisticsView,\n CrudDataSource,\n TypeViewList,\n} from './model/sg-ng-model';\nimport { PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'sgc-ng-crud-view-list',\n templateUrl: './sgc-ng-crud-view-list.component.html',\n styleUrls: ['./sgc-ng-crud-view-list.component.scss'],\n standalone: false\n})\nexport class SgcNgCrudViewListComponent<TDataList, TDataImport, TDataExport>\n implements OnInit, AfterViewInit, OnDestroy {\n @Input() css_heightMainDiv: string = '300';\n @Input() crudDataService_List!: CrudDataService_ListView<TDataList>;\n @Input() crudDataService_Report?: CrudDataService_ReportView<TDataExport>;\n @Input()\n crudDataService_Statistics?: CrudDataService_StatisticsView<TDataList>;\n @Input() useRoutingForNavigate: boolean = false;\n @Input() selectedTypeViewList: TypeViewList = TypeViewList.DATAGRID_VIEW;\n\n isMenuVisible: boolean = true;\n isPanelExportOpen: boolean = false;\n toggleMenuSubscription!: Subscription;\n loadingSubscription!: Subscription;\n\n listeTypeExportFormat: Array<TOptionListeSelectValues> = getListeTypeExportFormat();\n listeTypeExportOrientationPage: Array<TOptionListeSelectValues> = getListeTypeExportOrientation();\n listeTypeExportHeaderDataValueFrom: Array<TOptionListeSelectValues> = getListeTypeExportHeaderDataValueFrom();\n selectedExportOption: TOptionExportData = { exportFormat: TExportFormat.EXCEL, exportPageOrientation: TExportPageOrientation.PORTRAIT, exportHeaderDataValueFrom: TExportHeaderDataValueFrom.FIELD_LABEL, exportListeColsData: [], exportShowRowNumber: false };\n //selectedColsExport: Array<string>=[];\n listeAllColsExport: Array<TOptionListeSelectValues> = [];\n\n changeActiveMenuSubscription!: Subscription;\n //tabMenu: TabMenuData = undefined;\n\n //****************************************************************\n //**** Variables à initialiser à partir du service CRUD ***********************\n svc_dataKeyField!: string;\n svc_titreViewDataList?: string;\n svc_cols: Array<TColumnDataTableDef> = [];\n svc_exportColumns?: any[];\n svc_globalFiltersColumns!: string[];\n svc_urlNavigatePageCreateOrEdit?: string;\n svc_urlNavigatePageImport?: string;\n\n //********************************************************************\n nbRowsPage!: number;\n pageCourant: number = 0;\n totalRecords: number = 0;\n //selectedData?: TDataList;\n\n pageEvent?: PageEvent;\n\n listeColsGlobalFilter: string[] = [];\n paramsFindData!: ParamFindData;\n\n dataSource!: CrudDataSource<TDataList>;\n //@ViewChild(MatPaginator) paginator!: MatPaginator | null;\n @ViewChild(MatSort) sort!: MatSort | null;\n\n showCreateButton: boolean = true;\n showEditButton: boolean = true;\n showDeleteButton: boolean = true;\n showImportButton: boolean = false;\n showMaintenanceButton: boolean = false;\n showExportButton: boolean = false;\n\n filtreRechercheSubscription!: Subscription;\n filtres: ORofAndFilters = [];\n staticFiltres: ORofAndFilters = [];\n crudFiltreRecherhe: CrudFiltreRecherche = new CrudFiltreRecherche();\n searchGlobalInputValue!: string;\n\n //heightCssMainDiv!: string;\n\n //itemsExportButton: MenuItem[];\n //itemsMaintenanceButton: MenuItem[];\n\n exportParams: ExportListDataParams = {\n title: 'Liste des données',\n useLandscape: false,\n useHeaderDataFieldName: false,\n addNumeroOrdre: false,\n listeColsData: [],\n periodeReference: '',\n };\n //currentArb: Number = 0;\n //currentCecId: Number = 0;\n\n constructor(\n //protected menuDataService: MenuDataService,\n protected route: ActivatedRoute,\n protected router: Router,\n //protected routeStateService: RouteStateService,\n /*protected crudDataService: CrudDataService<\n TDataList,\n TDataCreate,\n TDataEdit,\n TDataImport,\n TDataExport\n >,*/\n protected readonly notificationService: NotificationService,\n protected filtreRechercheService: FiltreRechercheService //protected reloadViewService: ReloadViewService, //protected userCtxtService: UserContextService\n ) { }\n\n myInit = (): void => {\n this.crudDataService_List.myInit_ListView();\n this.listeAllColsExport = this.crudDataService_List.cols_Datatable.map(elt => ({ label: elt.header, value: elt.field } as TOptionListeSelectValues))\n this.selectedExportOption.exportListeColsData = this.crudDataService_List.cols_Datatable.filter(elt => elt.visible == true).map(elt => elt.field);\n };\n\n onPrepareList = (responseResolveData: any): void => {\n this.crudDataService_List.onPrepare_ListView(responseResolveData);\n };\n\n setStaticParameters = (): void => {\n this.crudDataService_List.setStaticParameters_ListView();\n };\n\n afterDelete = (): void => {\n this.crudFiltreRecherhe.validateChangeFiltre(this.filtres);\n };\n\n ngOnInit(): void {\n console.log(\n '******** SgcNgCrudViewListComponent -- NGONINIT -- css_heightMainDiv ******************'\n );\n console.log(this.css_heightMainDiv);\n //this.heightCssMainDiv = this.css_heightMainDiv;\n //-----------------------------\n //this.nbRowsPage = this.crudDataService.nbRowsDatatablePage;\n this.resetParamsFindData();\n this.dataSource = new CrudDataSource(this.crudDataService_List);\n\n this.svc_dataKeyField = this.crudDataService_List.dataKeyField;\n this.svc_titreViewDataList = this.crudDataService_List.titreViewDataList;\n this.svc_cols = this.crudDataService_List.cols_Datatable;\n this.svc_exportColumns = this.crudDataService_List.exportColumns\n ? this.crudDataService_List.exportColumns\n : this.svc_cols.map((col) => ({\n title: col.header,\n dataKey: col.field,\n }));\n this.svc_globalFiltersColumns = this.crudDataService_List\n .globalFiltersColumns\n ? this.crudDataService_List.globalFiltersColumns\n : this.svc_cols\n .filter((col1) => col1.visible == true)\n .map((col2) => col2.field);\n this.svc_urlNavigatePageCreateOrEdit =\n this.crudDataService_List.urlNavigatePageCreateOrEdit;\n this.svc_urlNavigatePageImport =\n this.crudDataService_List.urlNavigatePageImport;\n //-------------------------------------\n this.crudDataService_List.navigateToEdit_Subject.next(false);\n this.crudDataService_List.navigateToCreate_Subject.next(false);\n this.crudDataService_List.navigateToImport_Subject.next(false);\n //------------------------------------\n console.log(\n '**** VIEW CRUD COMPONENT LISTENER - NGONINIT - get constantscss*****'\n );\n\n /*if (this.heightCssMainDiv == undefined) {\n this.heightCssMainDiv = readProperty('heightMiddleView');\n console.log(\n '**** VIEW CRUD COMPONENT LISTENER - NGONINIT - get heightCssMainDiv*****'\n );\n console.log(this.heightCssMainDiv);\n }*/\n //-------------------------------------\n /*//----- Commentaires du 21/11/2023 ----\n this.showMaintenanceButton =\n this.userCtxtService.priveFN_isShowButtonMaintenance();\n\n this.isMenuVisible = this.menuDataService.visible;\n this.toggleMenuSubscription = this.menuDataService.toggleSideBar.subscribe(\n (data: any) => {\n console.log('**** VIEW CRUD COMPONENT LISTENER - NGONINIT *****');\n console.log(data);\n this.isMenuVisible = data;\n }\n );*/\n\n let responseResolve: ResponseResolveCrudList =\n this.route.snapshot.data['listData'];\n console.log('****** GENERIC VIEW - ResponseResolve *******');\n console.log(responseResolve);\n this.onPrepareList(responseResolve?.response);\n this.myInit();\n\n console.log('****** GENERIC VIEW - SVC_COLS *******');\n console.log(this.svc_cols);\n\n console.log(\n '****** GENERIC VIEW - BEFORE filtreRechercheSubscription *******'\n );\n console.log(this.crudFiltreRecherhe.reloadOnFiltreChange);\n this.filtreRechercheSubscription =\n this.crudFiltreRecherhe.reloadOnFiltreChange.subscribe(\n (data: string[]) => {\n console.log('****** GENERIC VIEW - BEFORE ONFETCH *******');\n this.onFetch();\n }\n );\n this.onFetch();\n console.log(\n '****** GENERIC VIEW - AFTER filtreRechercheSubscription *******'\n );\n }\n\n\n\n ngAfterViewInit(): void {\n // If the user changes the sort order, reset back to the first page.\n /*this.sort?.sortChange.subscribe({\n next() {\n if (this.paginator != undefined) this.paginator.pageIndex = 0;\n },\n });\n\n this.paginator?.page.pipe(tap(() => this.onFetch())).subscribe();*/\n /*if (this.heightCssMainDiv == undefined) {\n this.heightCssMainDiv = readProperty('heightMiddleView') + 'px';\n console.log(\n '**** VIEW CRUD COMPONENT LISTENER - NGAFTERVIEWINIT - get heightCssMainDiv*****'\n );\n console.log(this.heightCssMainDiv);\n //this.heightCssMainDiv = \"300px\";\n }*/\n }\n\n ngOnDestroy(): void {\n this.filtreRechercheSubscription.unsubscribe();\n //this.toggleMenuSubscription.unsubscribe();\n }\n\n refreshParamsFindData(): void {\n this.paramsFindData = {\n listeFiltres: this.filtres,\n page: this.pageCourant,\n size: this.nbRowsPage,\n };\n }\n\n resetParamsFindData() {\n this.searchGlobalInputValue = '';\n this.pageCourant = 0;\n this.nbRowsPage = this.crudDataService_List.nbRowsDataTableByPage;\n this.filtres = this.staticFiltres;\n this.refreshParamsFindData();\n }\n\n /*handlePageEvent(e: PageEvent) {\n this.pageEvent = e;\n this.totalRecords = e.length;\n this.nbRowsPage = e.pageSize;\n this.pageCourant = e.pageIndex;\n this.onFetch();\n }*/\n\n handlePaginatorChangeEvent(e?: any) {\n console.log(\n '**** VIEW CRUD COMPONENT - handlePaginatorChangeEvent - indexpage - NbRowsPage '\n );\n console.log(e);\n console.log(this.pageCourant);\n console.log(this.nbRowsPage);\n this.onFetch();\n }\n\n applyGlobalFilter(event: Event) {\n //const filterValue = (event.target as HTMLInputElement).value;\n const filterValue = this.searchGlobalInputValue;\n console.log(\n '**** VIEW CRUD COMPONENT LISTENER - APPLYFILTER --- Show filter value : '\n );\n console.log(filterValue);\n if (filterValue) {\n let myMapFilter: Map<string, ColumnDatatableFilterValue> = new Map();\n //myMapFilter.set(this.svc_dataKeyField,{operator:TFilterOperator.EQUALS,value:filterValue} as ColumnDatatableFilterValue);\n myMapFilter.set(this.svc_globalFiltersColumns.join(','), {\n operator: Enum_FilterOperator.EQUALS,\n value: filterValue,\n } as ColumnDatatableFilterValue);\n this.paramsFindData.filters = myMapFilter;\n } else {\n this.paramsFindData.filters = undefined;\n }\n this.onFetch();\n }\n\n resetGlobalFilter(event: Event) {\n this.searchGlobalInputValue = '';\n this.applyGlobalFilter(event);\n }\n\n /*updateFilterData(filterdata: any) {\n console.log('******** VIEW CRUD - UPDATE FILTRE *************');\n console.log(filterdata);\n this.filtres = filterdata;\n this.crudFiltreRecherhe.validateChangeFiltre(this.filtres);\n }*/\n\n /*getColumnsFilters(): Array<TColumnDataTableDef> {\n return this.svc_cols.filter(\n (elt1) => elt1.listFilterOperators != undefined\n );\n }*/\n\n getColumnsToDisplay(): Array<TColumnDataTableDef> {\n return this.svc_cols.filter(elt => elt.visible == true);\n //return this.svc_cols.filter(elt => elt.visible==true).map(elt => ({...elt, header:'list_'+elt.field}));\n }\n\n getColumnsNameToDisplay(): Array<string> {\n return this.getColumnsToDisplay().map((elt1) => elt1.field);\n }\n\n /*************************************************************/\n /** */\n combineStaticFiltertoFilter() {\n this.setStaticParameters();\n console.log(\n '****** VIEW CRUD COMPONENT - COMBINESTATICFILTERTOFILTER - Show staticParameters *****'\n );\n console.log(this.staticFiltres);\n if (this.staticFiltres != undefined && this.staticFiltres.length > 0) {\n if (this.filtres == undefined || this.filtres.length == 0) {\n this.filtres = this.staticFiltres;\n } else {\n let newFiltres: ORofAndFilters = [];\n this.filtres.forEach((orPredicates) => {\n this.staticFiltres.forEach((staticOrPredicates: ANDFilters) => {\n newFiltres.push({\n value: [...orPredicates.value, ...staticOrPredicates.value],\n visible: orPredicates.visible,\n });\n });\n });\n this.filtres = newFiltres;\n }\n }\n }\n\n /*************************************************************/\n /** */\n combineDatatableFilterValues() {\n if (this.filtres == undefined) {\n this.filtres = [];\n }\n let dtFilters: Map<string, ColumnDatatableFilterValue>;\n dtFilters = this.paramsFindData.filters\n ? this.paramsFindData.filters\n : new Map(); //?.((value) => value != undefined);\n\n console.log(\n '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Show FilterValues *****'\n );\n console.log(dtFilters);\n console.log(dtFilters.size);\n console.log(dtFilters.entries());\n\n if (dtFilters != undefined && dtFilters.size > 0) {\n //----- Construire le filtre du Datatable ----\n\n //----- Initialiser le nouveau prédicat avec les prédicats déjà contenus dans le filtre actuel ---\n let newOrOfAndFilters: ORofAndFilters = [];\n if (this.filtres.length > 0) {\n this.filtres.forEach((orPredicates) => {\n newOrOfAndFilters.push({\n value: [...orPredicates.value],\n visible: orPredicates.visible,\n });\n });\n }\n\n for (let [dtfilterKey, dtfilterValue] of dtFilters.entries()) {\n console.log(\n '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Entry Map filtervalue *****'\n );\n console.log(dtfilterKey + ' : ' + dtfilterValue.value);\n\n let colsFilterStr: string[] = [];\n colsFilterStr = dtfilterKey.split(',');\n\n for (let colfilterstr of colsFilterStr) {\n let colFilter: TColumnDataTableDef | undefined = this.svc_cols.find(\n (col) => col.field == colfilterstr\n );\n\n let newAndFilter: ANDFilters = { value: [], visible: true };\n\n if (\n dtfilterValue.value != undefined &&\n dtfilterValue.value.length != 0 &&\n colFilter != undefined\n ) {\n let colFilterOperator: Enum_FilterOperator = dtfilterValue.operator;\n\n if (colFilter.typeData == TypeFieldDataView.TEXTE) {\n colFilterOperator = Enum_FilterOperator.CONTAINS;\n }\n newAndFilter.value.push({\n name: colfilterstr,\n value: dtfilterValue.value,\n operator: colFilterOperator,\n active: true,\n ignoreWhenNull: true,\n } as FiltreRequete);\n }\n\n console.log(\n '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - AndFilter *****'\n );\n console.log(newAndFilter);\n\n newOrOfAndFilters.push({\n value: [...newAndFilter.value],\n visible: true,\n });\n }\n\n console.log(\n '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - OrOfAndFilters *****'\n );\n console.log(newOrOfAndFilters);\n\n /*let colFilter: TColumnDataTableDef | undefined = this.svc_cols.find(\n (col) => col.field == dtfilterKey\n );\n if (\n dtfilterValue.value != undefined &&\n colFilter != undefined &&\n (colFilter.typeData != TypeFieldData.TEXTE ||\n dtfilterValue.value != '')\n ) {\n newAndFilter.value.push({\n name: dtfilterKey,\n value: dtfilterValue.value,\n operator: dtfilterValue.operator,\n active: true,\n ignoreWhenNull: true,\n } as FiltreRequete);\n }\n console.log(\n '****** VIEW CRUD COMPONENT - combineDatatableFilterValues - Filtres *****'\n );\n console.log(newAndFilter);\n */\n }\n\n //----- Mettre à jour le filtre principal en fonction des données du filtre du Datatable ----\n\n if (newOrOfAndFilters.length > 0) {\n this.filtres = newOrOfAndFilters;\n }\n }\n }\n\n /*************************************************************/\n /** */\n onFetch() {\n console.log(\n '******** VIEW CRUD - ONFETCH (initLoadingSubject to true before fetching data) ************'\n );\n //this.resetParamsFindData();\n this.filtres = [];\n this.combineStaticFiltertoFilter();\n this.combineDatatableFilterValues();\n this.refreshParamsFindData();\n\n console.log('******** VIEW CRUD - ONFETCH (critères) ************');\n console.log(this.filtres);\n\n console.log(\n '******** VIEW CRUD - ONFETCH (critères as string) ************'\n );\n console.log(this.paramsFindData);\n\n this.dataSource.loadData(this.paramsFindData);\n this.crudDataService_List.selectedData = undefined;\n\n /*setTimeout(() => {\n this.crudDataService\n .findDataFromServer(this.paramsFindData)\n .subscribe((response) => {\n console.log('RECHERCHE DATA - ONFETCH');\n console.log(response);\n if (response.reponseOK) {\n this.dataSource.data = response.data.pageData;\n this.totalRecords = response.data.totalRecords;\n this.dataSource.paginator = this.paginator;\n this.dataSource.sort = this.sort;\n this.loadingSubject.next(false);\n return;\n } else {\n this.notificationService.error(response.message);\n console.log(response);\n this.loadingSubject.next(false);\n return;\n }\n });\n }, 1000);*/\n }\n\n /*************************************************************/\n /** */\n navigateToEditView() {\n console.log('***** VIEW CRUD COMPONENT : EDIT DATA ******');\n console.log('***** ROW DATA ******');\n console.log(this.crudDataService_List.selectedData);\n if (this.crudDataService_List.selectedData != undefined) {\n if (this.useRoutingForNavigate) {\n this.router.navigate([this.svc_urlNavigatePageCreateOrEdit], {\n queryParams: {\n id: this.crudDataService_List.getIDValue(\n this.crudDataService_List.selectedData\n ), //.get(this.svc_dataKeyField),\n urlPage: this.svc_urlNavigatePageCreateOrEdit,\n },\n });\n } else {\n this.crudDataService_List.navigateToEdit_Subject.next(true);\n }\n //this.routeStateService.add(this.menudataService.menuitem_.label, this.menudataService.menuitem_detailcontrat.routerLink, { idMenu: this.menudataService.menuitem_detailcontrat.id, params: {numContrat: \"\"+rowData?.connum.toString()}}, true);\n }\n return;\n }\n\n /*************************************************************/\n /** */\n navigateToCreateView() {\n console.log('***** VIEW CRUD COMPONENT : CREATE DATA ******');\n //console.log('***** EVENT ******');\n //console.log(event);\n if (this.useRoutingForNavigate) {\n this.router.navigate([this.svc_urlNavigatePageCreateOrEdit], {\n queryParams: { urlPage: this.svc_urlNavigatePageCreateOrEdit },\n });\n } else {\n this.crudDataService_List.navigateToCreate_Subject.next(true);\n }\n //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);\n return;\n }\n\n /*************************************************************/\n /** */\n navigateToImportView() {\n console.log('***** VIEW CRUD COMPONENT : Navigate to Import View ******');\n //console.log('***** EVENT ******');\n //console.log(event);\n console.log(this.svc_urlNavigatePageImport);\n\n if (this.useRoutingForNavigate) {\n if (this.svc_urlNavigatePageImport != null) {\n this.router.navigate([this.svc_urlNavigatePageImport], {\n queryParams: { urlPage: this.svc_urlNavigatePageImport },\n });\n //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);\n }\n }else {\n this.crudDataService_List.navigateToImport_Subject.next(true);\n }\n }\n\n /*************************************************************/\n /** */\n deleteData() {\n console.log('***** VIEW CRUD COMPONENT : DELETE DATA ******');\n console.log('***** ROWDATA ******');\n console.log(this.crudDataService_List.selectedData);\n if (this.crudDataService_List.selectedData != undefined) {\n const idRowData: any = this.crudDataService_List.getIDValue(\n this.crudDataService_List.selectedData\n );\n this.notificationService.confirmation(\n 'Voulez-vous supprimer cette enregistrement? ',\n 'Confirmation suppression',\n () => {\n this.crudDataService_List\n .deleteById(idRowData)\n .subscribe((response) => {\n if (response.reponseOK) {\n //this.filtreRechercheService.validateChangeFiltre(undefined)\n this.afterDelete();\n this.notificationService.success(response.message);\n //this.loading = false;\n return;\n } else {\n console.log('--- Error1 ---');\n console.log(response.message);\n this.notificationService.error(response.message);\n return;\n }\n }); /*.catch(\n (error) => {\n this.toastService.addSingle('error', '', 'Erreur système - suppression des données!');\n console.log(\"--- Error2 ---\");\n console.log(error);\n //this.loading = false;\n return;\n });*/\n }\n );\n }\n return;\n }\n\n /*************************************************************/\n /** */\n /*clearAllData() {\n console.log('***** VIEW CRUD COMPONENT : CLEAR ALL DATA ******');\n\n this.notificationService.confirmation(\n 'Attention! vous allez effacer la liste des enregistrements? ',\n 'Confirmation suppression',\n () => {\n this.crudDataService.deleteAll().subscribe((response) => {\n if (response.reponseOK) {\n //this.filtreRechercheService.validateChangeFiltre(undefined)\n this.afterDelete();\n this.notificationService.success(response.message);\n return;\n } else {\n console.log('--- Error1 ---');\n console.log(response.message);\n this.notificationService.error(response.message);\n return;\n }\n });\n }\n );\n return;\n }*/\n\n /*************************************************************/\n rowClicked(mySelectedRowData: TDataList) {\n console.log('***** VIEW CRUD COMPONENT -- RowClicked ******');\n console.log(mySelectedRowData);\n\n this.crudDataService_List.selectedData = mySelectedRowData;\n }\n\n rowDblClicked(mySelectedRowData: TDataList) {\n console.log('***** VIEW CRUD COMPONENT -- RowDblClicked ******');\n console.log(mySelectedRowData);\n this.crudDataService_List.selectedData = mySelectedRowData;\n this.navigateToEditView();\n }\n\n isSelectedDataRow(myrow: TDataList) {\n return this.crudDataService_List.selectedData == myrow;\n }\n /** */\n isColTypeDate(col: TColumnDataTableDef) {\n return isColTypeDate(col);\n }\n\n isColTypeBooleen(col: TColumnDataTableDef) {\n return isColTypeBooleen(col);\n }\n\n isColTypeNombre(col: TColumnDataTableDef) {\n return isColTypeNombre(col);\n }\n\n isColTypeTexte(col: TColumnDataTableDef) {\n return isColTypeTexte(col);\n }\n\n //********************************************************* */\n actionCustomGridView() {\n console.log(\n '******** VIEWCRUD PERSONNALISER GRILLE AFFICHAGE ******************'\n );\n }\n //********************************************************* */\n /*exportPDF() {\n this.export('pdf');\n }\n\n exportEXCEL() {\n this.export('xlsx');\n }\n\n exportCSV() {\n this.export('csv');\n }*/\n //-----------\n export() {\n const typeExport: string = this.selectedExportOption.exportFormat;\n const orientationExport: boolean = this.selectedExportOption.exportPageOrientation === TExportPageOrientation.LANDSCAPE ? true : false;\n const headerValueUseExport: boolean = this.selectedExportOption.exportHeaderDataValueFrom === TExportHeaderDataValueFrom.FIELD_NAME ? true : false;\n\n console.log('******** VIEWCRUD EXPORT -- ExportParams ***************');\n console.log(this.exportParams);\n\n this.exportParams.title = this.crudDataService_List.titreViewDataList\n this.exportParams.useLandscape = orientationExport;\n this.exportParams.useHeaderDataFieldName = headerValueUseExport;\n this.exportParams.addNumeroOrdre = this.selectedExportOption.exportShowRowNumber;\n this.exportParams.listeColsData = this.selectedExportOption.exportListeColsData;\n\n this.crudDataService_List\n .exportData(\n typeExport,\n this.exportParams,\n this.paramsFindData.listeFiltres\n )\n .subscribe({\n next: (res) => {\n console.log(\n '************** VIEWCRUD - EXPORT ***********************'\n );\n console.log(res);\n\n const blob = new Blob([res.body], {\n type: res.headers.get('content-type'),\n });\n const filename: string = res.headers\n .get('content-disposition')\n ?.split('filename=')[1];\n console.log(\n '************** VIEWCRUD - EXPORT - FILEOUTPUT NAME***********************'\n );\n console.log(filename);\n this.isPanelExportOpen = false;\n fileSaver.saveAs(blob, filename);\n },\n error: (error) => {\n console.log(\n '************** VIEWCRUD - EXPORT -- ERROR ***********************'\n );\n console.log(error);\n this.notificationService.error('Echec export.');\n },\n });\n }\n\n /*************************************************************/\n\n getFilterTypeFromTypeFieldData(typefielddata: TypeFieldDataView): string {\n if (TypeFieldDataView.TEXTE == typefielddata) {\n return 'text';\n } else if (TypeFieldDataView.NOMBRE == typefielddata) {\n return 'numeric';\n } else if (TypeFieldDataView.BOOLEEN == typefielddata) {\n return 'boolean';\n } else if (TypeFieldDataView.DATE_HEURE == typefielddata) {\n return 'date';\n } /*else if (TypeFieldDataView.HEURE == typefielddata) {\n return 'text';\n } else if (TypeFieldDataView.FILE_DOC == typefielddata) {\n return 'text';\n }else if (TypeFieldDataView.FILE_IMAGE == typefielddata) {\n return 'date';\n }*/ else {\n return 'text';\n }\n }\n\n /*************************************************************/\n getDefaultFilterMatchmodeFromTypeFieldData(\n typefielddata: TypeFieldDataView\n ): string {\n if (TypeFieldDataView.TEXTE == typefielddata) {\n return Enum_FilterMatchMode.CONTAINS;\n } else if (TypeFieldDataView.NOMBRE == typefielddata) {\n return Enum_FilterMatchMode.EXACT;\n } else if (TypeFieldDataView.BOOLEEN == typefielddata) {\n return Enum_FilterMatchMode.EXACT;\n } else if (TypeFieldDataView.DATE_HEURE == typefielddata) {\n return Enum_FilterMatchMode.EXACT;\n } else {\n return Enum_FilterMatchMode.EXACT;\n }\n }\n //---------------------------\n /*getColWidth(col:TColumnDataTableDef):number{\n return col.width?col.width:0\n }*/\n\n //-----------------------------------------------------\n isTypeViewList_DataGrid(): boolean {\n //return false;\n return this.selectedTypeViewList == TypeViewList.DATAGRID_VIEW;\n }\n\n resetTypeViewListTo_DataGrid() {\n this.selectedTypeViewList = TypeViewList.DATAGRID_VIEW;\n this.onTypeViewListChange();\n }\n\n isTypeViewList_Report(): boolean {\n return this.selectedTypeViewList == TypeViewList.REPORT_VIEW;\n }\n\n resetTypeViewListTo_Report() {\n this.selectedTypeViewList = TypeViewList.REPORT_VIEW;\n this.onTypeViewListChange();\n }\n\n isTypeViewList_Statistics(): boolean {\n return this.selectedTypeViewList == TypeViewList.STATISTICS_VIEW;\n }\n\n resetTypeViewListTo_Statistics() {\n console.log(\"********* SGC-NG-CRUD-VIEW-LIST-COMPONENT --> resetTypeViewListTo_Statistics 1 **************\");\n console.log(this.selectedTypeViewList);\n this.selectedTypeViewList = TypeViewList.STATISTICS_VIEW;\n console.log(\"********* SGC-NG-CRUD-VIEW-LIST-COMPONENT --> resetTypeViewListTo_Statistics 2 **************\");\n console.log(this.selectedTypeViewList);\n this.onTypeViewListChange();\n }\n\n private onTypeViewListChange(): void { }\n\n isSelectedTypeExportFormat_CSV(): boolean {\n return this.selectedExportOption?.exportFormat == TExportFormat.CSV;\n }\n\n}\n","<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>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { SgcNgCrudViewListComponent } from './sgc-ng-crud-view-list.component';\nimport { SgcNgPaginatorModule } from 'sgc-ng-paginator';\nimport { RouterModule, Routes } from '@angular/router';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSelectModule } from '@angular/material/select';\n\n/*const routes: Routes = [\n {\n path: '',\n component: SgcNgCrudViewListComponent,\n },\n];*/\n\n@NgModule({\n declarations: [SgcNgCrudViewListComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n RouterModule,\n MatTableModule,\n MatSortModule,\n MatProgressSpinnerModule,\n MatIconModule,\n MatSnackBarModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatMenuModule,\n SgcNgPaginatorModule,\n OverlayModule,\n MatRadioModule,\n MatDividerModule,\n MatCheckboxModule,\n MatSelectModule\n //RouterModule.forChild(routes),\n ],\n exports: [\n SgcNgCrudViewListComponent,\n MatTableModule,\n MatSortModule,\n MatProgressSpinnerModule,\n MatIconModule,\n MatSnackBarModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatButtonModule,\n MatToolbarModule,\n MatTooltipModule,\n MatMenuModule,\n SgcNgPaginatorModule,\n OverlayModule,\n MatRadioModule,\n MatDividerModule,\n MatCheckboxModule,\n MatSelectModule\n ],\n})\nexport class SgcNgCrudViewListModule { }\n","/*\n * Public API Surface of sgc-ng-crud-view-list\n */\n\nexport * from './lib/sgc-ng-crud-view-list.service';\nexport * from './lib/sgc-ng-crud-view-list.component';\nexport * from './lib/sgc-ng-crud-view-list.module';\nexport * from './lib/model/sg-ng-model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}