}
public function getSize() {
- return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 45;
+ return $this->mParams['size'] ?? 45;
}
public function getSpellCheck() {
- $val = isset( $this->mParams['spellcheck'] ) ? $this->mParams['spellcheck'] : null;
+ $val = $this->mParams['spellcheck'] ?? null;
if ( is_bool( $val ) ) {
// "spellcheck" attribute literally requires "true" or "false" to work.
return $val === true ? 'true' : 'false';
'type',
'min',
'max',
- 'pattern',
- 'title',
'step',
- 'list',
+ 'title',
'maxlength',
'tabindex',
'disabled',
'required',
'autofocus',
- 'multiple',
'readonly',
'autocomplete',
+ // Only used in HTML mode:
+ 'pattern',
+ 'list',
+ 'multiple',
];
$attribs += $this->getAttributes( $allowedParams );
}
protected function getType( &$attribs ) {
- $type = isset( $attribs['type'] ) ? $attribs['type'] : 'text';
+ $type = $attribs['type'] ?? 'text';
unset( $attribs['type'] );
# Implement tiny differences between some field variants
switch ( $this->mParams['type'] ) {
case 'int':
$type = 'number';
+ $attribs['step'] = 1;
break;
case 'float':
$type = 'number';
# @todo Enforce pattern, step, required, readonly on the server side as
# well
$allowedParams = [
+ 'type',
+ 'min',
+ 'max',
+ 'step',
+ 'title',
+ 'maxlength',
+ 'tabindex',
+ 'disabled',
+ 'required',
'autofocus',
+ 'readonly',
+ 'autocomplete',
+ // Only used in OOUI mode:
'autosize',
- 'disabled',
'flags',
'indicator',
- 'maxlength',
- 'readonly',
- 'required',
- 'tabindex',
- 'type',
- 'autocomplete',
];
$attribs += OOUI\Element::configFromHtmlAttributes(
}
$type = $this->getType( $attribs );
+ if ( isset( $attribs['step'] ) && $attribs['step'] === 'any' ) {
+ $attribs['step'] = null;
+ }
return $this->getInputWidget( [
'id' => $this->mID,