'addon', 'text' => $item))); elseif(is_array($item)) $item = new item(set($item)); elseif($item instanceof node || is_null($item)) return $item; list($control, $type) = $item->prop(array('control', 'type')); if(is_array($control)) { $controlProps = $control; if(isset($control['control'])) { $control = $control['control']; unset($controlProps['control']); $item->setProp('control', $control); } $item->setProp($controlProps); } if(is_null($control) && !is_null($type)) { $control = $type; $type = null; $item->setProp('control', $control); $item->setProp('type', null); } if($control === 'addon') return h::span(setClass('input-group-addon'), set($item->props->skip('control,text')), $item->prop('text')); if($control === 'span') return h::span(setClass('px-2 h-8 flex items-center'), set($item->props->skip('control,text')), $item->prop('text')); if($control === 'btn') return new btn(set($item->props->skip('control'))); if($control === 'picker') return new picker(set($item->props->skip('control'))); if($control === 'datePicker') return new datePicker(set($item->props->skip('control'))); if(!empty($control)) return createWg($control, set($item->props->skip('control')), 'input'); return new input(set::type($control), set($item->props->skip('control'))); } protected function build() { list($items, $seg) = $this->prop(['items', 'seg']); $children = $this->children(); return div ( setClass('input-group', $seg ? 'input-group-segment' : null), set($this->getRestProps()), is_array($items) ? array_map(array($this, 'onBuildItem'), $items) : null, is_array($children) ? array_map(array($this, 'onBuildItem'), $children) : null ); } }