Ejemplo n.º 1
0
 /**
  * @param Selector|string $selector
  *
  * @return static
  * @throws Exception
  */
 public function filter($selector)
 {
     $selector = $selector instanceof Selector || is_callable($selector) ? $selector : Selector::fromString($selector);
     $filter = is_callable($selector) ? $selector : function (ElementInterface $el) use($selector) {
         return $el->matches($selector);
     };
     return new static(array_filter($this->elements, $filter));
 }
Ejemplo n.º 2
0
 /**
  * @param Selector|string $selector
  * @param \Tale\Tree\Node|null $parent
  * @param array|null           $children
  *
  * @return static
  * @throws \Exception
  */
 public static function fromSelector($selector, Node $parent = null, array $children = null)
 {
     $selector = $selector instanceof Selector ? $selector : Selector::fromString($selector);
     $tag = $selector->getName();
     $el = new static($tag ? $tag : 'div', $selector->getAttributes(), $parent, $children);
     if ($id = $selector->getId()) {
         $el->setId($id);
     }
     if ($classes = $selector->getClasses()) {
         foreach ($classes as $class) {
             $el->appendClass($class);
         }
     }
     return $el;
 }