hasPrimaryInput = true; $this->isCode = !empty($params['isCode']); if ( !empty($params['inputType']) ) { $this->inputType = $params['inputType']; } $this->useTextInputBinding = !empty($params['useTextInputBinding']); } public function renderContent(Renderer $renderer, EvaluationContext $context) { $classes = array('regular-text'); if ( $this->isCode ) { $classes[] = 'code'; } $classes[] = 'ame-text-input-control'; $value = $this->getMainSettingValue(null, $context); //phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- buildInputElement() is safe echo $this->buildInputElement( $context, array( 'type' => $this->inputType, 'value' => ($value === null) ? '' : $value, 'class' => $classes, 'style' => $this->styles, 'data-bind' => $this->makeKoDataBind(array_merge([ ($this->useTextInputBinding ? 'textInput' : 'value') => $this->getKoObservableExpression($value), ], $this->getKoEnableBinding())), ) ); //phpcs:enable $this->outputSiblingDescription($context); } protected function getKoComponentParams(EvaluationContext $context): array { $params = parent::getKoComponentParams($context); $params['isCode'] = $this->isCode; $params['inputType'] = $this->inputType; if ( $this->useTextInputBinding ) { $params['useTextInputBinding'] = $this->useTextInputBinding; } return $params; } }