Форк Rambox
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

116 lines
2.7 KiB

// There is no clear way to support multi-thumb sliders
// in accessible applications, so we default to support
// only single-slider ones
/** */
Ext.define('Ext.aria.slider.Multi', {
override: 'Ext.slider.Multi',
/**
* @cfg {Number} [tipHideTimeout=1000] Timeout in ms after which
* the slider tip will be hidden.
*/
tipHideTimeout: 1000,
animate: false,
tabIndex: 0,
ariaGetRenderAttributes: function() {
var me = this,
attrs;
attrs = me.callParent();
attrs['aria-minvalue'] = me.minValue;
attrs['aria-maxvalue'] = me.maxValue;
attrs['aria-valuenow'] = me.getValue(0);
return attrs;
},
getSubTplData: function() {
var me = this,
fmt = Ext.util.Format.attributes,
data, attrs;
data = me.callParent(arguments);
attrs = me.ariaGetRenderAttributes();
// Role is rendered separately
delete attrs.role;
data.inputAttrTpl = fmt(attrs);
return data;
},
onKeyDown: function(e) {
var me = this,
key, value;
if (me.disabled || me.thumbs.length !== 1) {
e.preventDefault();
return;
}
key = e.getKey();
switch (key) {
case e.HOME:
e.stopEvent();
me.setValue(0, me.minValue, undefined, true);
return;
case e.END:
e.stopEvent();
me.setValue(0, me.maxValue, undefined, true);
return;
case e.PAGE_UP:
e.stopEvent();
value = me.getValue(0) - me.keyIncrement * 10;
me.setValue(0, value, undefined, true);
return;
case e.PAGE_DOWN:
e.stopEvent();
value = me.getValue(0) + me.keyIncrement * 10;
me.setValue(0, value, undefined, true);
return;
}
me.callParent(arguments);
},
setMinValue: function(value) {
var me = this;
me.callParent(arguments);
me.ariaUpdate({
'aria-minvalue': value
});
},
setMaxValue: function(value) {
var me = this;
me.callParent(arguments);
me.ariaUpdate({
'aria-maxvalue': value
});
},
setValue: function(index, value) {
var me = this;
me.callParent(arguments);
if (index === 0) {
me.ariaUpdate({
'aria-valuenow': value
});
}
}
});