<?php
  /**
   * Common control library 0.1 for Conjuro.
   */
  return [
    new class("admin-title") extends Control{
      protected function renderControl($meta,$data) {
        ?>
          <div id="<?=$meta['id']?>" class="admin-title <?=$meta['class']?>"><?=$meta["title"]?>
            <?php if ($meta['left']) foreach($meta['left'] as $child) c()->renderContent($child,$data); ?>
          </div>
          <div class="admin-title-right <?=$meta['class']?>">&nbsp;<i class="fa-solid fa-gear btn-ico"></i></div>
          <div class="clear"></div>
        <?php
      }
    },
    new class("admin-panel-buttons") extends Control{
      protected function renderControl($meta,$data) {
        foreach(m("Admin")->do("get-panel-links") as $lnk){
          c()->control("admin-panel-button")->render($lnk,$data);
        }
      }
    },
    new class("admin-panel-button") extends Control{
      protected function renderControl($meta,$data) {
        echo '<div class="admin-panel-button">';
        echo '<i class="admin-panel-button-icon fa-solid fa-'.$meta['icon'].'"></i>';
        echo '<a class="admin-panel-button-link" href="'.$meta["link"].'">'.$meta["title"].'</a>';
        echo '</div>';
      }
    },
    new class("admin-tile") extends Control{
      protected function renderControl($meta,$data) {
        ?>
          <div class="admin-tile <?=$meta['class']?>">
            <div class="admin-tile-header"><?=$meta['title']?></div>
            <div class="admin-tile-body">
              <?php if ($meta['content']) foreach($meta['content'] as $child) c()->renderContent($child,$data); ?>
            </div>
          </div><!-- Tile -->
        <?php
      }
    },
    new class("builder") extends Control{
      // Para medir el layout usar una clase Page falsa que genere metricas sobre el uso del layout

      protected function renderControl($meta,$data) {
        ?>
        <div class="page-builder layout vertical">
<script>
  var page=<?=json_encode($data['page'])?>;
</script>
          <div class="layout horizontal right"><span><?=$data['page-id']?></span></div>
          <div class="layout horizontal gap">
            <div class="main layout vertical">
              <div class="caption">Archivo base (layout):</div>
              <div class="info">Archivo base sobre la que se configura la página.</div>
              <input name="p-layout" value="<?=$data['page']['layout']?>">
            </div>
            <div class="main layout vertical">
              <div class="caption">Controladores de página:</div>
              <div class="info">Modulos a ejecutar al inicio de la página, los módilos se ejecutaran en el orden indicado.</div>
              <div class="layout vertical">
                <div id="controller-item-template">
                  <div data-#="module"></div>
                  <div data-#="action"></div>
                  <i class="fa-solid fa-trash"></i>
                </div>
              </div>
            </div>
            <div class="main layout vertical">
              <div class="caption">Librerías de cotroles</div>
              <div class="info">Librerías de controles a cargar, los controles disponibles dependen de las librarias cargadas.</div>
              <div class="layout vertical">
                <div id="control-lib-item-template">
                  <div data-#=""></div>
                  <i class="fa-solid fa-trash"></i>
                </div>
              </div>
            </div>
          </div>
        </div>
        <?php
      }
    },
  ];
?>