devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
62 lines (61 loc) • 2.11 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (viewer\accessibility\_breadcrumbsKeyboardHelper.js)
* Version: 24.2.7
* Build date: Apr 29, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { AccessibilityControlElementBase, AccessibilityKeyboardHelperBase } from '@devexpress/analytics-core/analytics-internal-native';
export class BreadcrumbsKeyboardHelper extends AccessibilityKeyboardHelperBase {
constructor(_breadcrumbsModel) {
super();
this._breadcrumbsModel = _breadcrumbsModel;
this.controlElementClassName = 'dxrd-breadcrumb-item';
this.addDisposable(this._breadcrumbsModel.events.on('listItemsChanged', () => {
this._initialize();
}));
}
_initialize() {
this._initTimeout && clearTimeout(this._initTimeout);
this._initTimeout = setTimeout(() => {
this.initialize();
}, 1);
}
bindHandler(el) {
super.bindHandler(el);
this._initialize();
}
initialize() {
super.initialize();
this.setTabIndexes('-1');
if (this.controlElements && this.controlElements.length) {
this.controlElements[0].setTabIndex('0');
}
}
createControlElement(element, index) {
return new AccessibilityControlElementBase(element);
}
itemHandleEnterKey(e, index) {
if (this.controlElements && this.controlElements[index]) {
this.controlElements[index].element?.click();
return true;
}
return false;
}
itemHandleDownArrowKey(e, index) {
this.setTabIndexes('-1');
this.setFocusToNext(index, true);
return true;
}
itemHandleLeftArrowKey(e, index) {
return this.itemHandleUpArrowKey(e, index);
}
itemHandleUpArrowKey(e, index) {
this.setTabIndexes('-1');
this.setFocusToPrevious(index, true);
return true;
}
itemHandleRightArrowKey(e, index) {
return this.itemHandleDownArrowKey(e, index);
}
}