{"__symbolic":"module","version":4,"metadata":{"ClvAdvancedTableService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"ClvAdvancedTableComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"clv-advanced-table","template":"\n    <div *ngIf=\"params?.canShowSingleSearch\" [class]=\"params?.selectSingleClass\">\n      <div><ng-content select=\".clv-tleft-head, clv-tleft-head\"></ng-content></div>\n      <div>\n        <mat-form-field class=\"d-inline-block\" [style.width]=\"'60%'\">\n          <input #minp (keyup)=\"handleSingleChange(minp?.value)\"\n                 (blur)=\"handleSingleBlurChange(minp?.value)\"\n                 (change)=\"handleSingleBlurChange(minp?.value)\"\n                 placeholder=\"{{params?.placeholderSearchPrefixLabel}}\"\n                 [attr.aria-label]=\"params?.placeholderSearchPrefixLabel\"\n                 matInput>\n        </mat-form-field>\n        <mat-form-field class=\"d-inline-block\" [style.width]=\"'40%'\">\n          <mat-select #filterSelection\n                      [value]=\"params?.canShowSingleSearch ? params?.firstColumnCanSingleSearch.name : null\"\n                      (selectionChange)=\"handleSelectionChange($event.value)\">\n            <ng-container  *ngFor=\"let item of params?.columns\">\n              <mat-option *ngIf=\"item && item?.canSingleSearch\"\n                          [value]=\"item?.name\">{{item?.title}}</mat-option>\n            </ng-container>\n          </mat-select>\n        </mat-form-field>\n      </div>\n    </div>\n    <button mat-button>\n    </button>\n    <table #table [class]=\"params?.tableClass\">\n      <thead [class]=\"params?.headerClass\">\n      <tr>\n        <th scope=\"col\" width=\"20px\" style=\"cursor: pointer;\" (click)=\"refresh?.emit()\">\n          <mat-icon>refresh</mat-icon>\n        </th>\n        <th scope=\"col\" width=\"{{column?.size}}\" *ngFor=\"let column of params?.columns\">{{column?.title}}</th>\n      </tr>\n      </thead>\n      <tbody *ngIf=\"params?.canShowMultiSearch\" [class]=\"params?.searchZoneClass\">\n        <tr>\n          <td></td>\n          <td *ngFor=\"let column of params?.columns\">\n            <mat-form-field *ngIf=\"column?.canSearch\">\n              <input matInput #searchInput [placeholder]=\"params?.placeholderSearchPrefixLabel+' '+column?.title\"\n              (blur)=\"handleChange(searchInput?.value, column)\"/>\n            </mat-form-field>\n          </td>\n        </tr>\n      </tbody>\n      <ng-content #trs *ngIf=\"params?.datas && params?.datas?.length > 0; else no_data\" select=\"clv-tr, .clv-tr\"></ng-content>\n      <ng-content select=\"clv-tfoot .clv-tfoot\"></ng-content>\n    </table>\n\n    <ng-template #no_data>\n      <tbody [class]=\"params?.noDataZoneClass\">\n        <tr>\n          <td colspan=\"100%\" style=\"text-align: center;\">{{params?.noDataLabel}}</td>\n        </tr>\n      </tbody>\n    </ng-template>\n\n    <mat-paginator *ngIf=\"!params?.pagination?.hide\" (page)=\"handlePage($event)\" [length]=\"params?.pagination?.length\"\n                   [pageSize]=\"params?.pagination?.pageSize\"\n                   [pageSizeOptions]=\"params.pagination?.pageSizeOptions\">\n    </mat-paginator>\n  ","styles":["\n    .select-single-class {\n      padding: 15px;\n      margin-top: 10px;\n      margin-bottom: 10px;\n      display: flex;\n      justify-content: space-between;\n      background: white;\n    }\n\n    .tr-pair-class {\n      background: white;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .tr-impair-class {\n      color: #000000 !important;\n      background: #85baf5 !important;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .table-class {\n      width: 100%;\n      margin-bottom: 1rem;\n      color: #212529;\n      border-collapse: collapse;\n    }\n\n    .header-class {\n      color: #ffffff !important;\n      background: #0054ee !important\n    }\n\n    .footer-class {\n      color: #ffffff !important;\n      background: #2685ee !important\n    }\n\n    .button-class {\n      color: #ffffff !important;\n      background: #145523 !important;\n    }\n\n    .button-minus-class {\n      color: #ffffff !important;\n      background: #921925 !important;\n    }\n\n    .search-zone-class {\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n\n    .detail-class {\n      color: #000000 !important;\n      background: #cccccc !important;\n    }\n\n    .no-data-zone-class {\n      background: white;\n    }\n  "]}]}],"members":{"table":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":137,"character":3},"arguments":["table"]}]}],"trs":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":138,"character":3},"arguments":[{"__symbolic":"reference","name":"ClvTrComponent"}]}]}],"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":139,"character":3},"arguments":["params"]}]}],"page":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":140,"character":3}}]}],"search":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":141,"character":3}}]}],"refresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":142,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorIntl","line":146,"character":36}]}],"ngOnInit":[{"__symbolic":"method"}],"handlePage":[{"__symbolic":"method"}],"handleChange":[{"__symbolic":"method"}],"handleSingleChange":[{"__symbolic":"method"}],"handleSelectionChange":[{"__symbolic":"method"}],"handleSingleBlurChange":[{"__symbolic":"method"}]}},"ClvTableParamsModel":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"getTrClass":[{"__symbolic":"method"}],"getColumn":[{"__symbolic":"method"}]},"statics":{"bodyClass":"","rowsClass":"","tableClass":"table-class mat-elevation-3z","searchZoneClass":"search-zone-class","selectSingleClass":"select-single-class","footerClass":"footer-class","headerClass":"header-class","trPairClass":"tr-pair-class","noDataZoneClass":"no-data-zone-class","trImpairClass":"tr-impair-class","placeholderSearchPrefixLabel":"Rechercher par","noDataLabel":"Aucune donnée disponible pour le moment"}},"ClvTableColumnField":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"boolean"}]}],"setCanSingleSearch":[{"__symbolic":"method"}]}},"ClvTablePagination":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"number"}]},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"number"},{"__symbolic":"reference","name":"boolean"}]}]},"statics":{"pageSize":10,"pageSizeOptions":[5,10,25,50,100],"itemsPerPageLabel":"Elements par Page","previousPageLabel":"Page précédante","nextPageLabel":"Page suivante","firstPageLabel":"Première page","lastPageLabel":"Dernière page","lengths":10,"hide":false}},"ClvDetailParams":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"boolean"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"string"}]}]},"statics":{"detailClass":"detail-class","detailButtonClass":"button-class","detailButtonMinusClass":"button-minus-class"}},"ClvTrComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"clv-tr","template":"\n    <tr [class]=\"params?.getTrClass(id)\">\n      <td>\n        <button mat-button [class]=\"'mat-button ' + params?.details?.detailButtonClass\"\n                *ngIf=\"!detailState && params?.details?.detail\" (click)=\"openDetail()\">+</button>\n        <button mat-button [class]=\"'mat-button ' + params.details?.detailButtonMinusClass\"\n                *ngIf=\"detailState && params?.details?.detail\"\n                (click)=\"closeDetail()\">-\n        </button>\n      </td>\n      <ng-content select=\"clv-td, .clv-td\"></ng-content>\n    </tr>\n    <tr [class]=\"params?.details?.detailClass\" @detailAnim *ngIf=\"params?.details?.detail && detailState\">\n      <td colspan=\"100%\" *ngIf=\"detailState\">\n        <ng-content *ngIf=\"detailState\" select=\"clv-tdetail, clv-tdetail\"></ng-content>\n      </td>\n    </tr>\n  ","styles":["\n    :host {\n      display: table-row-group;\n      vertical-align: middle;\n      border-color: inherit;\n    }\n    .select-single-class {\n      padding: 15px;\n      margin-top: 10px;\n      margin-bottom: 10px;\n      display: flex;\n      justify-content: space-between;\n      background: white;\n    }\n\n    .tr-pair-class {\n      background: white;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .tr-impair-class {\n      color: #000000 !important;\n      background: #85baf5 !important;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .table-class {\n      width: 100%;\n      margin-bottom: 1rem;\n      color: #212529;\n      border-collapse: collapse;\n    }\n\n    .header-class {\n      color: #ffffff !important;\n      background: #0054ee !important\n    }\n\n    .footer-class {\n      color: #ffffff !important;\n      background: #2685ee !important\n    }\n\n    .button-class {\n      color: #ffffff !important;\n      background: #145523 !important;\n    }\n\n    .button-minus-class {\n      color: #ffffff !important;\n      background: #921925 !important;\n    }\n\n    .search-zone-class {\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n\n    .detail-class {\n      color: #000000 !important;\n      background: #cccccc !important;\n    }\n\n    .no-data-zone-class {\n      background: white;\n    }\n  "],"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":95,"character":4},"arguments":["detailAnim",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":96,"character":6},"arguments":[":enter",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":97,"character":8},"arguments":[{"transformOrigin":"top","transform":"rotateX(90deg)"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":98,"character":8},"arguments":["0.5s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":98,"character":24},"arguments":[{"transformOrigin":"top","transform":"rotateX(0deg)"}]}]}]]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":100,"character":6},"arguments":[":leave",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":101,"character":8},"arguments":["0.5s",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":101,"character":24},"arguments":[{"transformOrigin":"top","transform":"rotateX(90deg)"}]}]}]]}]]}]}]}],"members":{"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":107,"character":3},"arguments":["params"]}]}],"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":108,"character":3},"arguments":["data"]}]}],"id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":109,"character":3},"arguments":["id"]}]}],"onDetailOpened":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":111,"character":3}}]}],"onDetailClosed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":112,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"openDetail":[{"__symbolic":"method"}],"closeDetail":[{"__symbolic":"method"}]}},"ClvTdComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"clv-td","template":"<ng-content></ng-content>","styles":["\n    :host {\n      display: table-cell;\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n    .select-single-class {\n      padding: 15px;\n      margin-top: 10px;\n      margin-bottom: 10px;\n      display: flex;\n      justify-content: space-between;\n      background: white;\n    }\n\n    .tr-pair-class {\n      background: white;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .tr-impair-class {\n      color: #000000 !important;\n      background: #85baf5 !important;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .table-class {\n      width: 100%;\n      margin-bottom: 1rem;\n      color: #212529;\n      border-collapse: collapse;\n    }\n\n    .header-class {\n      color: #ffffff !important;\n      background: #0054ee !important\n    }\n\n    .footer-class {\n      color: #ffffff !important;\n      background: #2685ee !important\n    }\n\n    .button-class {\n      color: #ffffff !important;\n      background: #145523 !important;\n    }\n\n    .button-minus-class {\n      color: #ffffff !important;\n      background: #921925 !important;\n    }\n\n    .search-zone-class {\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n\n    .detail-class {\n      color: #000000 !important;\n      background: #cccccc !important;\n    }\n\n    .no-data-zone-class {\n      background: white;\n    }\n  "]}]}],"members":{}},"ClvTfootComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"clv-tfoot","template":"\n    <tr [class]=\"params?.footerClass\">\n      <td></td>\n      <ng-content select=\"clv-td, .clv-td\"></ng-content>\n    </tr>","styles":["\n    :host {\n      display: table-footer-group;\n    }\n    .select-single-class {\n      padding: 15px;\n      margin-top: 10px;\n      margin-bottom: 10px;\n      display: flex;\n      justify-content: space-between;\n      background: white;\n    }\n\n    .tr-pair-class {\n      background: white;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .tr-impair-class {\n      color: #000000 !important;\n      background: #85baf5 !important;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .table-class {\n      width: 100%;\n      margin-bottom: 1rem;\n      color: #212529;\n      border-collapse: collapse;\n    }\n\n    .header-class {\n      color: #ffffff !important;\n      background: #0054ee !important\n    }\n\n    .footer-class {\n      color: #ffffff !important;\n      background: #2685ee !important\n    }\n\n    .button-class {\n      color: #ffffff !important;\n      background: #145523 !important;\n    }\n\n    .button-minus-class {\n      color: #ffffff !important;\n      background: #921925 !important;\n    }\n\n    .search-zone-class {\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n\n    .detail-class {\n      color: #000000 !important;\n      background: #cccccc !important;\n    }\n\n    .no-data-zone-class {\n      background: white;\n    }\n  "]}]}],"members":{"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3},"arguments":["params"]}]}]}},"ClvTdetailComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"clv-tdetail","template":"\n    <ng-content></ng-content>\n  ","styles":["\n    :host {\n      display: block;\n      padding: .75rem;\n      vertical-align: top;\n    }\n    .select-single-class {\n      padding: 15px;\n      margin-top: 10px;\n      margin-bottom: 10px;\n      display: flex;\n      justify-content: space-between;\n      background: white;\n    }\n\n    .tr-pair-class {\n      background: white;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .tr-impair-class {\n      color: #000000 !important;\n      background: #85baf5 !important;\n      width: auto;\n      min-width: auto;\n      font-size: 20px;\n    }\n    .table-class {\n      width: 100%;\n      margin-bottom: 1rem;\n      color: #212529;\n      border-collapse: collapse;\n    }\n\n    .header-class {\n      color: #ffffff !important;\n      background: #0054ee !important\n    }\n\n    .footer-class {\n      color: #ffffff !important;\n      background: #2685ee !important\n    }\n\n    .button-class {\n      color: #ffffff !important;\n      background: #145523 !important;\n    }\n\n    .button-minus-class {\n      color: #ffffff !important;\n      background: #921925 !important;\n    }\n\n    .search-zone-class {\n      padding: .75rem;\n      vertical-align: top;\n      border-top: 1px solid #dee2e6;\n    }\n\n    .detail-class {\n      color: #000000 !important;\n      background: #cccccc !important;\n    }\n\n    .no-data-zone-class {\n      background: white;\n    }\n  "]}]}],"members":{"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":80,"character":3},"arguments":["params"]}]}],"__ctor__":[{"__symbolic":"constructor"}]}},"ClvAdvancedTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":18,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ClvAdvancedTableComponent"},{"__symbolic":"reference","name":"ClvTrComponent"},{"__symbolic":"reference","name":"ClvTdComponent"},{"__symbolic":"reference","name":"ClvTfootComponent"},{"__symbolic":"reference","name":"ClvTdetailComponent"},{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":22,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":23,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":27,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatIconModule","line":29,"character":4}],"exports":[{"__symbolic":"reference","name":"ClvAdvancedTableComponent"},{"__symbolic":"reference","name":"ClvTrComponent"},{"__symbolic":"reference","name":"ClvTdComponent"},{"__symbolic":"reference","name":"ClvTfootComponent"},{"__symbolic":"reference","name":"ClvTdetailComponent"},{"__symbolic":"reference","name":"ɵa"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":2,"character":1},"arguments":[{"selector":"clv-tleft-head","template":"<ng-content></ng-content>","styles":["\n  "]}]}],"members":{}}},"origins":{"ClvAdvancedTableService":"./lib/clv-advanced-table.service","ClvAdvancedTableComponent":"./lib/clv-advanced-table.component","ClvTableParamsModel":"./lib/clv-table-params.model","ClvTableColumnField":"./lib/clv-table-params.model","ClvTablePagination":"./lib/clv-table-params.model","ClvDetailParams":"./lib/clv-table-params.model","ClvTrComponent":"./lib/clv-tr.component","ClvTdComponent":"./lib/clv-td.component","ClvTfootComponent":"./lib/clv-tfoot.component","ClvTdetailComponent":"./lib/clv-tdetail.component","ClvAdvancedTableModule":"./lib/clv-advanced-table.module","ɵa":"./lib/clv-tleft-head.component"},"importAs":"clv-advanced-table"}