devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
70 lines (69 loc) • 2.42 kB
JavaScript
/**
* DevExtreme (esm/__internal/ui/splitter/splitter_item.js)
* Version: 24.2.7
* Build date: Mon Apr 28 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import Guid from "../../../core/guid";
import $ from "../../../core/renderer";
import CollectionWidgetItem from "../../ui/collection/item";
import ResizeHandle from "./resize_handle";
class SplitterItem extends CollectionWidgetItem {
constructor($element, options, rawData) {
super($element, options, rawData);
this._owner = options.owner
}
_renderResizeHandle() {
if (this._shouldHaveResizeHandle()) {
const id = `dx_${new Guid}`;
this._setIdAttr(id);
const config = this._owner._getResizeHandleConfig(id);
this._resizeHandle = this._owner._createComponent($("<div>"), ResizeHandle, config);
if (this._resizeHandle && this._$element) {
$(this._resizeHandle.element()).insertAfter(this._$element)
}
}
}
_shouldHaveResizeHandle() {
var _this$_rawData;
return false !== (null === (_this$_rawData = this._rawData) || void 0 === _this$_rawData ? void 0 : _this$_rawData.visible) && !this.isLast()
}
updateResizeHandle() {
if (this._shouldHaveResizeHandle()) {
if (this.getResizeHandle()) {
return
}
this._renderResizeHandle()
} else {
this._removeIdAttr();
this._removeResizeHandle()
}
}
_setIdAttr(id) {
this._$element.attr("id", id)
}
_removeIdAttr() {
this._$element.attr("id", null)
}
getIndex() {
return this._owner._getIndexByItemData(this._rawData)
}
getResizeHandle() {
return this._resizeHandle
}
_removeResizeHandle() {
var _this$getResizeHandle;
null === (_this$getResizeHandle = this.getResizeHandle()) || void 0 === _this$getResizeHandle || _this$getResizeHandle.$element().remove();
delete this._resizeHandle
}
isLast() {
return this._owner._isLastVisibleItem(this.getIndex())
}
_dispose() {
this._removeResizeHandle();
super._dispose()
}
}
export default SplitterItem;