<?php
namespace nur\v\plugins;

use nur\v\BasePlugin;
use nur\v\js;

/**
 * Class setfocusPlugin: activer le focus sur un élément de formulaire
 */
class setfocusPlugin extends BasePlugin {
  const HAVE_JQUERY = true;

  function __construct(?string $selector=null, ?bool $cond=null, bool $select=true) {
    if ($selector === null) $selector = "input:text, textarea, select";
    if ($cond === null) $cond = $selector? true: false;
    $this->selector = $selector;
    $this->cond = $cond;
    $this->select = $select;
  }

  /**
   * @var string sélecteur pour le composant concerné. par défaut, prendre le
   * premier élément de formulaire de type text, textarea ou select
   */
  protected $selector;

  /** @var bool ce plugin est-il activé? */
  protected $cond;

  /** @var bool faut-il sélectionner le contenu de l'élément de formulaire? */
  protected $select;

  function printJquery(): void {
    if (!$this->cond) return;
    ?>
var $fi = $(<?=js::qv($this->selector)?>).filter(":first"); $fi.focus()
<?php if ($this->select): ?>
if ($fi.is("input")) $fi.select();
<?php endif; ?>
<?php
  }
}