UNPKG

upfront-editable

Version:
66 lines (57 loc) 2.21 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _cursor = _interopRequireDefault(require("./cursor")); var _selection = _interopRequireDefault(require("./selection")); /** RangeContainer * * primarily used to compare ranges * its designed to work with undefined ranges as well * so we can easily compare them without checking for undefined * all the time */ var RangeContainer = /*#__PURE__*/function () { function RangeContainer(editableHost, rangyRange) { (0, _classCallCheck2["default"])(this, RangeContainer); this.host = editableHost && editableHost.jquery ? editableHost[0] : editableHost; this.range = rangyRange; this.isAnythingSelected = rangyRange !== undefined; this.isCursor = this.isAnythingSelected && rangyRange.collapsed; this.isSelection = this.isAnythingSelected && !this.isCursor; } (0, _createClass2["default"])(RangeContainer, [{ key: "getCursor", value: function getCursor() { if (this.isCursor) return new _cursor["default"](this.host, this.range); } }, { key: "getSelection", value: function getSelection() { if (this.isSelection) return new _selection["default"](this.host, this.range); } }, { key: "forceCursor", value: function forceCursor() { if (!this.isSelection) return this.getCursor(); return this.getSelection().deleteContent(); } }, { key: "isDifferentFrom", value: function isDifferentFrom() { var otherRangeContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new RangeContainer(); var self = this.range; var other = otherRangeContainer.range; if (self && other) return !self.equals(other); if (!self && !other) return false; return true; } }]); return RangeContainer; }(); exports["default"] = RangeContainer; module.exports = exports.default;