protected function defaults()
    {
        return [
            'options'       => ['placeholder' => 'Search for a repo ...'],
            'pluginOptions' => [
                'allowClear'              => true,
                'minimumInputLength'      => 0,
                'minimumResultsForSearch' => 'Infinity',
                'ajax'                    => [
                    'dataType'       => 'json',
                    'delay'          => 250,
                    'data'           => new JavaScriptExpression($this->ajaxData()),
                    'processResults' => new JavaScriptExpression($this->processResults()),
                    'cache'          => true
                ],
                'escapeMarkup'            => new JavaScriptExpression($this->escapeMarkup()),
                'templateResult'          => new JavaScriptExpression($this->templateResult()),
                'templateSelection'       => new JavaScriptExpression($this->templateSelection()),
            ],
        ];
    }