inputName = $inputName; $this->inputLabel = $inputLabel; parent::__construct( "input" ,array( "name" => $this->inputName ,"type" => "checkbox" ,"class" => "toggle__input" ) ); } private function getLabelToggleInput( string $forIdHtml ,$label ) { $htmlLabel = new Html("label", array("for" => $forIdHtml ) ); $spanToggleTrack = new Html( "span" ,array( "class" => "toggle-track" ) ); $htmlLabel->add( $spanToggleTrack ); $spanToggleIndicator = new Html( "span" ,array( "class" => "toggle-indicator" ) ); $spanToggleTrack->add( $spanToggleIndicator ); $spanCheckMark = new Html( "span" ,array( "class" => "checkMark" ) ); $spanToggleIndicator->add( $spanCheckMark ); $svg = new Html( "svg" ,array( "viewBox" => "0 0 24 24" ,"role" => "presentation","aria-hidden" =>"true" ) ); $spanCheckMark->add( $svg ); $path = new Html( "path" ,array( "d" => "M9.86 18a1 1 0 01-.73-.32l-4.86-5.17a1.001 1.001 0 011.46-1.37l4.12 4.39 8.41-9.2a1 1 0 111.48 1.34l-9.14 10a1 1 0 01-.73.33h-.01z" ) ); $svg->add( $path ); $htmlLabel->add( $label ); return $htmlLabel; } public function __toXml( int $nbSpace = 0 ,array &$parents = null ) : string { $uniqIdInput = uniqid(); $this->setParam( "id" ,$uniqIdInput ); $xmlData = parent::__toXml( $nbSpace ,$parents ); $xmlData.= $this->getLabelToggleInput( $uniqIdInput ,$this->inputLabel ); return $xmlData; } public function getClassName( bool $fqcn=null ) : string { return self::getStaticClassName( $fqcn ); } public static function getStaticClassName( bool $fqcn=null ) : string { return $fqcn ? parent::getStaticClassName( $fqcn ).self::CLASS_SEPARATOR.__CLASS__ : __CLASS__; } } ?>