|  | <div class="bmc-table__container"> | 
|  | <table-toolbar  ng-if="$ctrl.selectable" | 
|  | selection-count="$ctrl.selectedRows.size" | 
|  | active="$ctrl.selectedRows.size > 0" | 
|  | actions="$ctrl.batchActions" | 
|  | emit-action="$ctrl.onEmitBatchAction(action)" | 
|  | emit-close="$ctrl.onToolbarClose()" | 
|  | ng-animate-children="true"> | 
|  | </table-toolbar> | 
|  | <table  class="bmc-table {{$ctrl.size}}" | 
|  | ng-class="{ | 
|  | 'bmc-table--sortable': $ctrl.sortable, | 
|  | 'bmc-table--expandable': $ctrl.expandable, | 
|  | 'bmc-table--selectable': $ctrl.selectable, | 
|  | 'bmc-table--row-actions-enabled': '$ctrl.rowActionsEnabled', | 
|  | }"> | 
|  | <thead class="bmc-table__head"> | 
|  | <!-- Header row --> | 
|  | <tr> | 
|  | <!-- Expandable empty cell --> | 
|  | <th ng-if="$ctrl.expandable" | 
|  | class="bmc-table__column-header"></th> | 
|  | <!-- Select checkbox --> | 
|  | <th ng-if="$ctrl.selectable" | 
|  | class="bmc-table__column-header"> | 
|  | <table-checkbox ng-model="$ctrl.selectHeaderCheckbox" | 
|  | indeterminate="$ctrl.someSelected" | 
|  | emit-change="$ctrl.onHeaderSelectChange(checked)"> | 
|  | </table-checkbox> | 
|  | </th> | 
|  | <!-- Header items --> | 
|  | <th ng-repeat="headerItem in $ctrl.header track by $index" | 
|  | class="bmc-table__column-header"> | 
|  | <span ng-if="!$ctrl.sortable || !headerItem.sortable"> | 
|  | {{headerItem.label}} | 
|  | </span> | 
|  | <span ng-if="$ctrl.sortable && headerItem.sortable" | 
|  | ng-click="$ctrl.onClickSort($index)" | 
|  | class="bmc-table__column-header--sortable"> | 
|  | {{headerItem.label}} | 
|  | <!-- Sort icons --> | 
|  | <button class="sort-icon" | 
|  | type="button" | 
|  | aria-label="sort {{headerItem.label}}"> | 
|  | <icon file="icon-arrow--up.svg" | 
|  | ng-if="$index === $ctrl.activeSort" | 
|  | ng-class="{ | 
|  | 'sort-icon--descending': !$ctrl.sortAscending, | 
|  | 'sort-icon--ascending' : $ctrl.sortAscending }" | 
|  | class="sort-icon--active" | 
|  | aria-hidden="true"></icon> | 
|  | <span ng-if="$index !== $ctrl.activeSort" | 
|  | class="sort-icon--inactive" | 
|  | aria-hidden="true"> | 
|  | <icon file="icon-arrow--up.svg"></icon> | 
|  | <icon file="icon-arrow--down.svg"></icon> | 
|  | </span> | 
|  | </button> | 
|  | </span> | 
|  | </th> | 
|  | <!-- Row actions empty cell --> | 
|  | <th ng-if="$ctrl.rowActionsEnabled" | 
|  | class="bmc-table__column-header"></th> | 
|  | </tr> | 
|  | </thead> | 
|  | <tbody class="bmc-table__body"> | 
|  | <!-- Data rows --> | 
|  | <tr ng-if="$ctrl.data.length > 0" | 
|  | ng-repeat-start="row in $ctrl.data track by $index" | 
|  | class="bmc-table__row" | 
|  | ng-class="{ | 
|  | 'bmc-table__row--expanded': $ctrl.expandedRows.has($index), | 
|  | 'bmc-table__row--selected': $ctrl.selectedRows.has($index), | 
|  | }"> | 
|  | <!-- Row expansion trigger --> | 
|  | <td ng-if="$ctrl.expandable" | 
|  | class="bmc-table__cell"> | 
|  | <button type="button" | 
|  | class="btn  btn--expand" | 
|  | aria-label="expand row" | 
|  | ng-click="$ctrl.onClickExpand($index)"> | 
|  | <icon file="icon-chevron-right.svg" aria-hidden="true"></icon> | 
|  | </button> | 
|  | </td> | 
|  | <!-- Row checkbox --> | 
|  | <td ng-if="$ctrl.selectable" | 
|  | class="bmc-table__cell"> | 
|  | <table-checkbox ng-if="row.selectable" | 
|  | ng-model="row.selected" | 
|  | emit-change="$ctrl.onRowSelectChange($index)"> | 
|  | </table-checkbox> | 
|  | </td> | 
|  | <!-- Row item --> | 
|  | <td ng-repeat="item in row.uiData track by $index" | 
|  | class="bmc-table__cell"> | 
|  | <ng-bind-html ng-bind-html="item"></ng-bind-html> | 
|  | </td> | 
|  | <!-- Row Actions --> | 
|  | <td ng-if="$ctrl.rowActionsEnabled" | 
|  | class="bmc-table__cell  bmc-table__row-actions"> | 
|  | <table-actions | 
|  | actions="row.actions" | 
|  | emit-action="$ctrl.onEmitRowAction(action, row)"> | 
|  | </table-actions> | 
|  | </td> | 
|  | </tr> | 
|  | <!-- Expansion row --> | 
|  | <tr ng-repeat-end | 
|  | ng-if="$ctrl.expandedRows.has($index)" | 
|  | class="bmc-table__expansion-row"> | 
|  | <td class="bmc-table__cell"></td> | 
|  | <td class="bmc-table__cell" | 
|  | colspan="{{$ctrl.header.length + $ctrl.sortable + | 
|  | $ctrl.expandable + $ctrl.rowActionsEnabled}}"> | 
|  | <ng-bind-html | 
|  | ng-bind-html="row.expandContent || 'No data'"> | 
|  | </ng-bind-html> | 
|  | </td> | 
|  | </tr> | 
|  | <!-- Empty table --> | 
|  | <tr ng-if="$ctrl.data.length === 0" | 
|  | class="bmc-table__expansion-row"> | 
|  | <td class="bmc-table__cell" | 
|  | colspan="{{$ctrl.header.length + $ctrl.sortable + | 
|  | $ctrl.expandable + $ctrl.rowActionsEnabled}}"> | 
|  | No data | 
|  | </td> | 
|  | </tr> | 
|  | </tbody> | 
|  | </table> | 
|  | </div> |