92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * @author          Tassos Marinos <info@tassos.gr>
 | |
|  * @link            https://www.tassos.gr
 | |
|  * @copyright       Copyright © 2024 Tassos All Rights Reserved
 | |
|  * @license         GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
 | |
|  */
 | |
| 
 | |
| namespace NRFramework\Widgets;
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| /**
 | |
|  *  Signature
 | |
|  */
 | |
| class Signature extends Widget
 | |
| {
 | |
| 	/**
 | |
| 	 * Widget default options
 | |
| 	 *
 | |
| 	 * @var array
 | |
| 	 */
 | |
| 	protected $widget_options = [
 | |
| 		// The base64 image data of the signature. 
 | |
| 		'value' => '',
 | |
| 
 | |
| 		// The width of the signature in pixels or empty for auto width. The width will be taken from the signature container.
 | |
| 		'width' => '',
 | |
| 
 | |
| 		// The height of the signature in pixels.
 | |
| 		'height' => '300px',
 | |
| 
 | |
| 		// The background color of the signature.
 | |
| 		'background_color' => '#ffffff',
 | |
| 
 | |
| 		// The border color of the canvas.
 | |
| 		'border_color' => '#dedede',
 | |
| 
 | |
| 		/**
 | |
| 		 * The border radius of the canvas.
 | |
| 		 * 
 | |
| 		 * Example values: 0, 0px, 50px, 50%
 | |
| 		 */
 | |
| 		'border_radius' => 0,
 | |
| 
 | |
| 		/**
 | |
| 		 * The border width of the canvas.
 | |
| 		 * 
 | |
| 		 * Example values: 0, 1px, 5px
 | |
| 		 */
 | |
| 		'border_width' => '1px',
 | |
| 
 | |
| 		// Whether to show the horizontal line within the canvas
 | |
| 		'show_line' => true,
 | |
| 		
 | |
| 		/**
 | |
| 		 * The line color.
 | |
| 		 * 
 | |
| 		 * If `null`, retrieves the value from `border_color`
 | |
| 		 */
 | |
| 		'line_color' => null,
 | |
| 		
 | |
| 		// The pen color
 | |
| 		'pen_color' => '#000'
 | |
| 	];
 | |
| 
 | |
| 	/**
 | |
| 	 * Class constructor
 | |
| 	 *
 | |
| 	 * @param array $options
 | |
| 	 */
 | |
| 	public function __construct($options = [])
 | |
| 	{
 | |
| 		parent::__construct($options);
 | |
| 
 | |
| 		if ($this->options['readonly'])
 | |
| 		{
 | |
| 			$this->options['css_class'] .= ' readonly';
 | |
| 		}
 | |
| 
 | |
| 		if (!empty($this->options['value']))
 | |
| 		{
 | |
| 			$this->options['css_class'] .= ' painted has-value';
 | |
| 		}
 | |
| 		
 | |
| 		if ($this->options['show_line'])
 | |
| 		{
 | |
| 			$this->options['css_class'] .= ' show-line';
 | |
| 		}
 | |
| 	}
 | |
| } |