devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
130 lines (128 loc) • 4.96 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/diagram/ui.diagram.scroll_view.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 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 _m_widget_utils = require("../../../__internal/grids/pivot_grid/m_widget_utils");
var _renderer = _interopRequireDefault(require("../../../core/renderer"));
var _size = require("../../../core/utils/size");
var _widget = _interopRequireDefault(require("../../core/widget/widget"));
var _diagram = require("../../ui/diagram/diagram.importer");
var _scroll_view = _interopRequireDefault(require("../../ui/scroll_view/scroll_view"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
class DiagramScrollView extends _widget.default {
_init() {
super._init();
const {
EventDispatcher: EventDispatcher
} = (0, _diagram.getDiagram)();
this.onScroll = new EventDispatcher;
this._createOnCreateDiagramAction()
}
_initMarkup() {
super._initMarkup();
const $scrollViewWrapper = (0, _renderer.default)("<div>").appendTo(this.$element());
const options = {
direction: "both",
bounceEnabled: false,
scrollByContent: false,
onScroll: _ref => {
let {
scrollOffset: scrollOffset
} = _ref;
this._raiseOnScroll(scrollOffset.left, scrollOffset.top)
}
};
const {
useNativeScrolling: useNativeScrolling
} = this.option();
if (void 0 !== useNativeScrolling) {
options.useNative = useNativeScrolling
}
this._scrollView = this._createComponent($scrollViewWrapper, _scroll_view.default, options);
this._onCreateDiagramAction({
$parent: (0, _renderer.default)(this._scrollView.content()),
scrollView: this
})
}
setScroll(left, top) {
var _this$_scrollView;
null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView || _this$_scrollView.scrollTo({
left: left,
top: top
});
this._raiseOnScrollWithoutPoint()
}
offsetScroll(left, top) {
var _this$_scrollView2;
null === (_this$_scrollView2 = this._scrollView) || void 0 === _this$_scrollView2 || _this$_scrollView2.scrollBy({
left: left,
top: top
});
this._raiseOnScrollWithoutPoint()
}
getSize() {
var _this$_scrollView3;
const {
Size: Size
} = (0, _diagram.getDiagram)();
const $element = null === (_this$_scrollView3 = this._scrollView) || void 0 === _this$_scrollView3 ? void 0 : _this$_scrollView3.$element();
return new Size(Math.floor((0, _size.getWidth)($element)), Math.floor((0, _size.getHeight)($element)))
}
getScrollContainer() {
var _this$_scrollView4;
return null === (_this$_scrollView4 = this._scrollView) || void 0 === _this$_scrollView4 ? void 0 : _this$_scrollView4.$element()[0]
}
getScrollBarWidth() {
const {
useNativeScrolling: useNativeScrolling
} = this.option();
return useNativeScrolling ? (0, _m_widget_utils.calculateScrollbarWidth)() : 0
}
detachEvents() {}
_raiseOnScroll(left, top) {
const {
Point: Point
} = (0, _diagram.getDiagram)();
this.onScroll.raise("notifyScrollChanged", () => new Point(left, top))
}
_raiseOnScrollWithoutPoint() {
const {
Point: Point
} = (0, _diagram.getDiagram)();
this.onScroll.raise("notifyScrollChanged", () => {
var _this$_scrollView5, _this$_scrollView6;
return new Point(null === (_this$_scrollView5 = this._scrollView) || void 0 === _this$_scrollView5 ? void 0 : _this$_scrollView5.scrollLeft(), null === (_this$_scrollView6 = this._scrollView) || void 0 === _this$_scrollView6 ? void 0 : _this$_scrollView6.scrollTop())
})
}
_createOnCreateDiagramAction() {
this._onCreateDiagramAction = this._createActionByOption("onCreateDiagram")
}
_optionChanged(args) {
const {
name: name
} = args;
switch (name) {
case "onCreateDiagram":
this._createOnCreateDiagramAction();
break;
case "useNativeScrolling":
break;
default:
super._optionChanged(args)
}
}
}
var _default = exports.default = DiagramScrollView;