public function registerClientScript()
{
$js = [];
$view = $this->getView();
// @codeCoverageIgnoreStart
if ($this->language !== null) {
$this->clientOptions['language'] = $this->language;
DatePickerLanguageAsset::register($view)->js[] = 'bootstrap-datepicker.' . $this->language . '.min.js';
} else {
DateRangePickerAsset::register($view);
}
// @codeCoverageIgnoreEnd
$id = $this->options['id'];
$selector = ";jQuery('#{$id}').parent()";
if ($this->form && $this->hasModel()) {
// @codeCoverageIgnoreStart
$selector .= '.parent()';
$class = "field-" . Html::getInputId($this->model, $this->attribute);
$js[] = "{$selector}.closest('.{$class}').removeClass('{$class}');";
// @codeCoverageIgnoreEnd
}
$options = !empty($this->clientOptions) ? Json::encode($this->clientOptions) : '';
$js[] = "{$selector}.datepicker({$options});";
// @codeCoverageIgnoreStart
if (!empty($this->clientEvents)) {
foreach ($this->clientEvents as $event => $handler) {
$js[] = "{$selector}.on('{$event}', {$handler});";
}
}
// @codeCoverageIgnoreEnd
$view->registerJs(implode("\n", $js));
}