public function renderWidget()
{
$this->initI18N(__DIR__);
$this->pluginOptions['theme'] = $this->theme;
$multiple = ArrayHelper::getValue($this->pluginOptions, 'multiple', false);
unset($this->pluginOptions['multiple']);
$multiple = ArrayHelper::getValue($this->options, 'multiple', $multiple);
$this->options['multiple'] = $multiple;
if (!empty($this->addon) || empty($this->pluginOptions['width'])) {
$this->pluginOptions['width'] = '100%';
}
if ($this->hideSearch) {
$this->pluginOptions['minimumResultsForSearch'] = new JsExpression('Infinity');
}
$this->initPlaceholder();
if (!isset($this->data)) {
if (!isset($this->value) && !isset($this->initValueText)) {
$this->data = [];
} else {
if ($multiple) {
$key = isset($this->value) && is_array($this->value) ? $this->value : [];
} else {
$key = isset($this->value) ? $this->value : '';
}
$val = isset($this->initValueText) ? $this->initValueText : $key;
$this->data = $multiple ? array_combine($key, $val) : [$key => $val];
}
}
Html::addCssClass($this->options, 'form-control');
$this->initLanguage('language', true);
$this->renderToggleAll();
$this->registerAssets();
$this->renderInput();
}