grid = $grid; } public function style(string $style) { $this->style = $style; return $this; } public function background(string $value) { $this->background = $value; return $this; } public function click(bool $value = true) { $this->rowClickable = $value; return $this; } public function titleColumn(string $value) { $this->titleColumn = $value; return $this; } public function renderHeader() { return << HTML; } public function renderColumn($row, $id) { $this->setupScript(); return << EOT; } protected function setupScript() { $clickable = $this->rowClickable ? 'true' : 'false'; $background = $this->background ?: Admin::color()->dark20(); Admin::script( <<grid->getRowName()}-checkbox', selectAllSelector: '.{$this->grid->getSelectAllName()}', clickRow: {$clickable}, background: '{$background}', }); Dcat.grid.addSelector(selector, '{$this->grid->getName()}'); JS ); } protected function getTitle($row, $id) { if ($key = $this->titleColumn) { $label = Arr::get($row->toArray(), $key); if ($label !== null && $label !== '') { return $label; } return $id; } $label = $row->name ?: $row->title; return $label ?: ($row->username ?: $id); } }