UNPKG

upfront-editable

Version:
75 lines (59 loc) 2.27 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _cursor = require('./cursor'); var _cursor2 = _interopRequireDefault(_cursor); var _selection = require('./selection'); var _selection2 = _interopRequireDefault(_selection); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** 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 = function () { function RangeContainer(editableHost, rangyRange) { (0, _classCallCheck3.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, _createClass3.default)(RangeContainer, [{ key: 'getCursor', value: function getCursor() { if (this.isCursor) return new _cursor2.default(this.host, this.range); } }, { key: 'getSelection', value: function getSelection() { if (this.isSelection) return new _selection2.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;