devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
66 lines (64 loc) • 2.33 kB
JavaScript
/**
* DevExtreme (cjs/__internal/ui/html_editor/modules/m_imageCursor.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 _events_engine = _interopRequireDefault(require("../../../../common/core/events/core/events_engine"));
var _index = require("../../../../common/core/events/utils/index");
var _devextremeQuill = _interopRequireDefault(require("devextreme-quill"));
var _m_base = _interopRequireDefault(require("./m_base"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
const MODULE_NAMESPACE = "dxHtmlEditorImageCursor";
const clickEvent = (0, _index.addNamespace)("dxclick", MODULE_NAMESPACE);
let ImageCursorModule = _m_base.default;
if (_devextremeQuill.default) {
ImageCursorModule = class extends _m_base.default {
constructor(quill, options) {
super(quill, options);
this.addCleanCallback(this.clean.bind(this));
this._attachEvents()
}
_attachEvents() {
_events_engine.default.on(this.quill.root, clickEvent, this._clickHandler.bind(this))
}
_detachEvents() {
_events_engine.default.off(this.quill.root, clickEvent)
}
_clickHandler(e) {
if (this._isAllowedTarget(e.target)) {
this._adjustSelection(e)
}
}
_isAllowedTarget(targetElement) {
return this._isImage(targetElement)
}
_isImage(targetElement) {
return "IMG" === targetElement.tagName.toUpperCase()
}
_adjustSelection(e) {
const blot = this.quill.scroll.find(e.target);
if (blot) {
const index = blot.offset(this.quill.scroll);
this.quill.setSelection(index + 1, 0)
} else {
this.quill.setSelection(0, 0)
}
}
clean() {
this._detachEvents()
}
}
}
var _default = exports.default = ImageCursorModule;