{"__symbolic":"module","version":4,"metadata":{"MatDynamicTableModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":19,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":24,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":26,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":28,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":29,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":30,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":31,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":32,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":33,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":34,"character":4},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":36,"character":4},{"__symbolic":"reference","module":"@bd-innovations/pipe-collection","name":"TimeAgoPipeModule","line":38,"character":4},{"__symbolic":"reference","module":"@bd-innovations/pipe-collection","name":"RandomGradientPipeModule","line":39,"character":4},{"__symbolic":"reference","module":"@bd-innovations/pipe-collection","name":"NullOrUndefinedHandlerPipeModule","line":40,"character":4},{"__symbolic":"reference","module":"@bd-innovations/directive-collection","name":"DomElementValidatorDirectiveModule","line":41,"character":4},{"__symbolic":"reference","module":"@bd-innovations/directive-collection","name":"ShortPressDirectiveModule","line":42,"character":4}],"exports":[{"__symbolic":"reference","name":"ɵa"}],"providers":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":48,"character":4},{"__symbolic":"reference","name":"ɵc"}]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["serviceConfig"],"value":{"ngModule":{"__symbolic":"reference","name":"MatDynamicTableModule"},"providers":[{"__symbolic":"reference","name":"ɵc"},{"provide":{"__symbolic":"reference","name":"ɵb"},"useValue":{"__symbolic":"reference","name":"serviceConfig"}}]}},"forChild":{"__symbolic":"function","parameters":["serviceConfig"],"value":{"ngModule":{"__symbolic":"reference","name":"MatDynamicTableModule"},"providers":[{"__symbolic":"reference","name":"ɵc"},{"provide":{"__symbolic":"reference","name":"ɵb"},"useValue":{"__symbolic":"reference","name":"serviceConfig"}}]}}}},"MatDynamicTableComponentConfig":{"__symbolic":"interface"},"MatDynamicTableModuleConfig":{"__symbolic":"interface"},"ActionColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"IconColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"AvatarColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"AvatarColumnConfig":{"__symbolic":"interface"},"BaseColumn":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"BaseColumnConfig":{"__symbolic":"interface"},"ButtonColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"ButtonColumnConfig":{"__symbolic":"interface"},"DateColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null,{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"DateConfig":{"__symbolic":"interface"},"DropdownColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ObjectColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null,{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"DropdownConfig":{"__symbolic":"interface"},"Icon":{"__symbolic":"interface"},"IconColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"IconColumnConfig":{"__symbolic":"interface"},"ObjectColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TextColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null,{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"ObjectConfig":{"__symbolic":"interface"},"TextColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"BaseColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"TextColumnConfig":{"__symbolic":"interface"},"UuIdColumn":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"TextColumn"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","name":"any"}]}],"get":[{"__symbolic":"method"}]}},"UuIdColumnConfig":{"__symbolic":"interface"},"ApiCallModel":{"__symbolic":"interface"},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"bd-mat-dynamic-table","animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":20,"character":4},"arguments":["detailExpand",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":21,"character":6},"arguments":["collapsed",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":21,"character":25},"arguments":[{"height":"0px","minHeight":"0","display":"none"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":22,"character":6},"arguments":["expanded",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":22,"character":24},"arguments":[{"height":"*"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":23,"character":6},"arguments":["expanded <=> collapsed",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":23,"character":43},"arguments":["225ms cubic-bezier(0.4, 0.0, 0.2, 1)"]}]}]]}],"template":"<div [ngClass]=\"service.moduleConfig.wrapper\">\n  <div *ngIf=\"componentConfig.search\" class=\"filter-wrapper\">\n    <span [innerHTML]=\"service.moduleConfig.search\"\n          class=\"search-icon-wrapper\"></span>\n    <input [formControl]=\"searchCtrl\"\n           [placeholder]=\"componentConfig.search?.placeholder | translate\">\n  </div>\n\n  <table [dataSource]=\"dataSource\" mat-table matSort multiTemplateDataRows>\n\n    <ng-container *ngFor=\"let column of componentConfig.columns\">\n      <ng-container [matColumnDef]=\"column['title']\">\n\n        <th *matHeaderCellDef\n            [disabled]=\"column._columnType === 'AvatarColumn' || column._columnType === 'ButtonColumn'\"\n            mat-header-cell\n            mat-sort-header>\n          <span *ngIf=\"column._columnType !== 'AvatarColumn' && column._columnType !==  'ButtonColumn'\">\n            {{componentConfig.translatePath ? ((componentConfig.translatePath + '.' + column['title']) | translate) : column['title']}}\n          </span>\n        </th>\n\n        <td *matCellDef=\"let element; let i = dataIndex\"\n            mat-cell>\n          <ng-container [ngSwitch]=\"column._columnType\">\n\n            <!-- Avatar Column -->\n            <ng-container *ngSwitchCase=\"'AvatarColumn'\">\n              <span [ngClass]=\"element[column['title']] | randomGradient\"\n                    class=\"avatar-wrapper\">\n                <span class=\"avatar\">\n                  {{element[column['title']] | nullOrUndefinedHandler:'?'}}\n                </span>\n              </span>\n            </ng-container>\n\n            <!-- Text Column -->\n            <ng-container *ngSwitchCase=\"'TextColumn'\">\n              <span>\n                {{element[column['title']] | nullOrUndefinedHandler:'-'}}\n              </span>\n            </ng-container>\n\n            <!-- Icon Column -->\n            <ng-container *ngSwitchCase=\"'IconColumn'\">\n              <span [outerHTML]=\"element[column['title']] | nullOrUndefinedHandler:'-'\"></span>\n            </ng-container>\n\n            <!-- Object Column -->\n            <ng-container *ngSwitchCase=\"'ObjectColumn'\">\n              {{element[column['title']] | nullOrUndefinedHandler:'-' }}\n            </ng-container>\n\n            <!-- Date Column -->\n            <ng-container *ngSwitchCase=\"'DateColumn'\">\n              <ng-container *ngIf=\"column['timeAgo']; else withoutTimeAgo\">\n                {{element[column['title']] | timeAgo | nullOrUndefinedHandler:'-'}}\n              </ng-container>\n              <ng-template #withoutTimeAgo>\n                {{element[column['title']] | date:column['format'] | nullOrUndefinedHandler:'-'}}\n              </ng-template>\n            </ng-container>\n\n            <!-- UuID Column -->\n            <ng-container *ngSwitchCase=\"'UuIdColumn'\">\n              {{element[column['title']] | nullOrUndefinedHandler:'-' }}\n            </ng-container>\n\n            <!-- Button Column -->\n            <ng-container *ngSwitchCase=\"'ButtonColumn'\">\n              <ng-container [ngSwitch]=\"column['type']\">\n\n                <ng-container *ngSwitchCase=\"'details'\">\n                  <ng-container *bdDomElementValidator=\"componentConfig.roles?.open\">\n                    <button mat-icon-button aria-label=\"Open details\" (bdShortPress)=\"onDetailsClick(i); $event.stopPropagation()\">\n                      <span [innerHTML]=\"service.moduleConfig.details\"></span>\n                    </button>\n                  </ng-container>\n                </ng-container>\n\n                <ng-container *ngSwitchCase=\"'edit'\">\n                  <ng-container *bdDomElementValidator=\"componentConfig.roles?.edit\">\n                    <button mat-icon-button aria-label=\"Edit\" (bdShortPress)=\"onEditClick(i); $event.stopPropagation()\">\n                      <span [innerHTML]=\"service.moduleConfig.edit\"></span>\n                    </button>\n                  </ng-container>\n                </ng-container>\n\n                <ng-container *ngSwitchCase=\"'delete'\">\n                  <ng-container *bdDomElementValidator=\"componentConfig.roles?.delete\">\n                    <button mat-icon-button aria-label=\"Delete\" (bdShortPress)=\"onDeleteClick(i); $event.stopPropagation()\">\n                      <span [innerHTML]=\"service.moduleConfig.delete\"></span>\n                    </button>\n                  </ng-container>\n                </ng-container>\n\n                <ng-container *ngSwitchCase=\"'download'\">\n                  <ng-container *bdDomElementValidator=\"componentConfig.roles?.download\">\n                    <button mat-icon-button aria-label=\"Download\" (bdShortPress)=\"onDownloadClick(i); $event.stopPropagation()\">\n                      <span [innerHTML]=\"service.moduleConfig.download\"></span>\n                    </button>\n                  </ng-container>\n                </ng-container>\n\n              </ng-container>\n            </ng-container>\n\n          </ng-container>\n        </td>\n\n      </ng-container>\n    </ng-container>\n\n    <ng-container matColumnDef=\"expandedDetail\">\n      <td *matCellDef=\"let element; let i = dataIndex\" [attr.colspan]=\"componentConfig.displayColumns.length\" mat-cell>\n        <div [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n             class=\"element-detail\">\n\n          <div *ngIf=\"componentConfig.expandedRef\" class=\"element-content\">\n            <ng-container\n              [ngTemplateOutletContext]=\"{element: data[i]}\"\n              [ngTemplateOutlet]=\"componentConfig.expandedRef\">\n            </ng-container>\n          </div>\n\n        </div>\n      </td>\n    </ng-container>\n\n    <tr *matHeaderRowDef=\"componentConfig.displayColumns\" mat-header-row></tr>\n    <tr (click)=\"expandedElement = expandedElement === element ? null : element\"\n        (bdShortPress)=\"onDetailsClick(i)\"\n        *matRowDef=\"let element; let i = dataIndex; columns: componentConfig.displayColumns;\"\n        [ngClass]=\"{'expanded-row': expandedElement === element}\"\n        mat-row>\n    </tr>\n    <tr *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"detail-row\" mat-row></tr>\n\n  </table>\n\n  <mat-paginator></mat-paginator>\n</div>\n","styles":[".search-icon-wrapper{padding-right:5px}.avatar-wrapper{width:40px;height:40px;border-radius:50%;display:table-cell!important;vertical-align:middle;text-align:center}.avatar-wrapper .avatar{font-weight:600;color:#fff;text-align:center}table{width:100%}tr.detail-row{height:0}.element-detail{overflow:hidden;display:flex}.element-detail .element-content{padding:8px;width:100%}.gradient-strawberry{background-image:linear-gradient(45deg,#fe0b46,#ffab96)}.gradient-orange{background-image:linear-gradient(45deg,#c471f3,#f671cd)}.gradient-dawn{background-image:linear-gradient(45deg,#f3904f,#3b4371)}.gradient-shdow-night{background-image:linear-gradient(45deg,#000,#53346d)}.gradient-man-of-steel{background-image:linear-gradient(45deg,#780206,#061161)}.gradient-flickr{background-image:linear-gradient(45deg,#33001b,#ff0084)}.gradient-ibiza-sunset{background-image:linear-gradient(45deg,#ee0979,#ff6a00)}.gradient-politics{background-image:linear-gradient(45deg,#2196f3,#f44336)}"]}]}],"members":{"data":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"componentConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"matPaginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":36,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":36,"character":13}]}]}],"matSort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatSort","line":37,"character":13}]}]}],"details":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":3}}]}],"edit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"delete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":43,"character":3}}]}],"download":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":44,"character":3}}]}],"apiCall":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":45,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵc"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onDetailsClick":[{"__symbolic":"method"}],"onEditClick":[{"__symbolic":"method"}],"onDeleteClick":[{"__symbolic":"method"}],"onDownloadClick":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":61},"arguments":["MatDynamicTableModuleConfig"]},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":15},"arguments":[{"__symbolic":"reference","name":"ɵb"}]}]],"parameters":[{"__symbolic":"reference","name":"MatDynamicTableModuleConfig"}]}],"getParsedData":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}}},"origins":{"MatDynamicTableModule":"./lib/mat-dynamic-table/mat-dynamic-table.module","MatDynamicTableComponentConfig":"./lib/mat-dynamic-table/configs/mat-dynamic-table-component.config","MatDynamicTableModuleConfig":"./lib/mat-dynamic-table/configs/mat-dynamic-table-module.config","ActionColumn":"./lib/shared/columns/action-column.model","AvatarColumn":"./lib/shared/columns/avatar-column.model","AvatarColumnConfig":"./lib/shared/columns/avatar-column.model","BaseColumn":"./lib/shared/columns/base-column.model","BaseColumnConfig":"./lib/shared/columns/base-column.model","ButtonColumn":"./lib/shared/columns/button-column.model","ButtonColumnConfig":"./lib/shared/columns/button-column.model","DateColumn":"./lib/shared/columns/date-column.model","DateConfig":"./lib/shared/columns/date-column.model","DropdownColumn":"./lib/shared/columns/dropdown-column.model","DropdownConfig":"./lib/shared/columns/dropdown-column.model","Icon":"./lib/shared/columns/icon-column.model","IconColumn":"./lib/shared/columns/icon-column.model","IconColumnConfig":"./lib/shared/columns/icon-column.model","ObjectColumn":"./lib/shared/columns/object-column.model","ObjectConfig":"./lib/shared/columns/object-column.model","TextColumn":"./lib/shared/columns/text-column.model","TextColumnConfig":"./lib/shared/columns/text-column.model","UuIdColumn":"./lib/shared/columns/uu-id-column.model","UuIdColumnConfig":"./lib/shared/columns/uu-id-column.model","ApiCallModel":"./lib/shared/models/api-call.model","ɵa":"./lib/mat-dynamic-table/mat-dynamic-table.component","ɵb":"./lib/mat-dynamic-table/mat-dynamic-table.service","ɵc":"./lib/mat-dynamic-table/mat-dynamic-table.service"},"importAs":"bd-dynamic-tables"}