public function registerAssets()
{
$id = $this->options['id'];
$this->registerAssetBundle();
$isMultiple = $this->options['multiple'];
$options = Json::encode(['themeCss' => ".select2-container--{$this->theme}", 'sizeCss' => empty($this->addon) && $this->size !== self::MEDIUM ? 'input-' . $this->size : '', 'doReset' => static::parseBool($this->changeOnReset), 'doToggle' => static::parseBool($isMultiple && $this->showToggleAll), 'doOrder' => static::parseBool($isMultiple && $this->maintainOrder)]);
$this->_s2OptionsVar = 's2options_' . hash('crc32', $options);
$this->options['data-s2-options'] = $this->_s2OptionsVar;
$view = $this->getView();
$view->registerJs("var {$this->_s2OptionsVar} = {$options};", View::POS_HEAD);
if ($this->maintainOrder) {
$val = Json::encode(is_array($this->value) ? $this->value : [$this->value]);
$view->registerJs("initS2Order('{$id}',{$val});");
}
$this->registerPlugin($this->pluginName, "jQuery('#{$id}')", "initS2Loading('{$id}','{$this->_s2OptionsVar}')");
}