import { Component } from '@angular/core'; @Component({ selector: 'cm-table-doc-3', templateUrl: 'table-doc-3.component.html' }) export class TableDoc3Component { _allChecked = false; _disabledButton = true; _checkedNumber = 0; _displayData: Array = []; _operating = false; _dataSet: any = []; _indeterminate = false; _displayDataChange($event: any) { this._displayData = $event; } _refreshStatus() { const allChecked = this._displayData.every(value => value.checked === true); const allUnChecked = this._displayData.every(value => !value.checked); this._allChecked = allChecked; this._indeterminate = (!allChecked) && (!allUnChecked); this._disabledButton = !this._dataSet.some((value: any) => value.checked); this._checkedNumber = this._dataSet.filter((value: any) => value.checked).length; } _checkAll(value: any) { if (value) { this._displayData.forEach(data => data.checked = true); } else { this._displayData.forEach(data => data.checked = false); } this._refreshStatus(); } _operateData() { this._operating = true; setTimeout(_ => { this._dataSet.forEach((value: any) => value.checked = false); this._refreshStatus(); this._operating = false; }, 1000); } ngOnInit() { for (let i = 0; i < 46; i++) { this._dataSet.push({ key: i, name: `Edward King ${i}`, age: 32, address: `London, Park Lane no. ${i}`, }); } } }