devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
98 lines (96 loc) • 3.71 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/radio_group/m_radio_collection.js)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _renderer = _interopRequireDefault(require("../../../core/renderer"));
var _common = require("../../../core/utils/common");
var _extend = require("../../../core/utils/extend");
var _ui = _interopRequireDefault(require("../../../ui/editor/ui.data_expression"));
var _m_collection_widget = _interopRequireDefault(require("../../ui/collection/m_collection_widget.edit"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const RADIO_BUTTON_CHECKED_CLASS = "dx-radiobutton-checked";
const RADIO_BUTTON_ICON_CHECKED_CLASS = "dx-radiobutton-icon-checked";
const RADIO_BUTTON_ICON_CLASS = "dx-radiobutton-icon";
const RADIO_BUTTON_ICON_DOT_CLASS = "dx-radiobutton-icon-dot";
const RADIO_VALUE_CONTAINER_CLASS = "dx-radio-value-container";
const RADIO_BUTTON_CLASS = "dx-radiobutton";
class RadioCollection extends _m_collection_widget.default {
_focusTarget() {
return (0, _renderer.default)(this.element()).parent()
}
_nullValueSelectionSupported() {
return true
}
_getDefaultOptions() {
const defaultOptions = super._getDefaultOptions();
return (0, _extend.extend)(defaultOptions, _ui.default._dataExpressionDefaultOptions(), {
_itemAttributes: {
role: "radio"
}
})
}
_initMarkup() {
super._initMarkup();
(0, _common.deferRender)((() => {
this._itemElements().addClass("dx-radiobutton")
}))
}
_keyboardEventBindingTarget() {
return this._focusTarget()
}
_postprocessRenderItem(args) {
const {
itemData: {
html: html
},
itemElement: itemElement
} = args;
if (!html) {
const $radio = (0, _renderer.default)("<div>").addClass("dx-radiobutton-icon");
(0, _renderer.default)("<div>").addClass("dx-radiobutton-icon-dot").appendTo($radio);
const $radioContainer = (0, _renderer.default)("<div>").append($radio).addClass("dx-radio-value-container");
(0, _renderer.default)(itemElement).prepend($radioContainer)
}
super._postprocessRenderItem(args)
}
_processSelectableItem($itemElement, isSelected) {
super._processSelectableItem($itemElement, isSelected);
$itemElement.toggleClass("dx-radiobutton-checked", isSelected).find(".dx-radiobutton-icon").first().toggleClass("dx-radiobutton-icon-checked", isSelected);
this.setAria("checked", isSelected, $itemElement)
}
_refreshContent() {
this._prepareContent();
this._renderContent()
}
_supportedKeys() {
const parent = super._supportedKeys();
return (0, _extend.extend)({}, parent, {
enter(e) {
e.preventDefault();
return parent.enter.apply(this, arguments)
},
space(e) {
e.preventDefault();
return parent.space.apply(this, arguments)
}
})
}
_itemElements() {
return this._itemContainer().children(this._itemSelector())
}
_setAriaSelectionAttribute() {}
}
var _default = exports.default = RadioCollection;