<?php namespace ColibriWP\Theme\Customizer\Controls; use ColibriWP\Theme\Core\Utils; class ColorControl extends VueControl { public $type = 'colibri-color'; public $alpha = true; protected $inline_content_template = true; public static function sanitize( $value, $control_data, $default = '' ) { if ( ! is_string( $value ) ) { return '#000000'; } $alpha = Utils::pathGet( $control_data, 'alpha', true ); $value = trim( $value ); if ( ! $alpha ) { if ( strpos( $value, '#' ) === 0 ) { return sanitize_hex_color( $value ); } else { if ( strpos( $value, 'rgb(' ) === 0 ) { $color = str_replace( ' ', '', $value ); sscanf( $color, 'rgb(%d,%d,%d)', $red, $green, $blue ); return 'rgb(' . $red . ',' . $green . ',' . $blue . ')'; } if ( strpos( $value, 'rgba(' ) === 0 ) { $color = str_replace( ' ', '', $value ); sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); return 'rgb(' . $red . ',' . $green . ',' . $blue . ')'; } } } else { if ( strpos( $value, 'rgba' ) !== 0 ) { return ''; } else { $color = str_replace( ' ', '', $value ); sscanf( $color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha ); return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')'; } } } public function json() { $json = parent::json(); $json['alpha'] = $this->alpha; return $json; } protected function printVueContent() { ?> <el-color-picker v-model="value" :size="size" :show-alpha="alpha" @change="setValue" @active-change="activeChange" <# (data.alpha == false) ? '': print('show-alpha') #> > </el-color-picker> <?php } }