matrix-react-sdk
Version:
SDK for matrix.org using React
111 lines (108 loc) • 14.5 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2019, 2020 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
class ResizeItem {
constructor(handle, resizer, sizer, container) {
(0, _defineProperty2.default)(this, "domNode", void 0);
(0, _defineProperty2.default)(this, "id", void 0);
(0, _defineProperty2.default)(this, "reverse", void 0);
this.resizer = resizer;
this.sizer = sizer;
this.container = container;
this.reverse = resizer.isReverseResizeHandle(handle);
if (container) {
this.domNode = container;
} else {
this.domNode = this.reverse ? handle.nextElementSibling : handle.previousElementSibling;
}
this.id = handle.getAttribute("data-id");
}
copyWith(handle, resizer, sizer, container) {
const Ctor = this.constructor;
return new Ctor(handle, resizer, sizer, container);
}
advance(forwards) {
// opposite direction from fromResizeHandle to get back to handle
let handle = this.reverse ? this.domNode.previousElementSibling : this.domNode.nextElementSibling;
const moveNext = forwards !== this.reverse; // xor
// iterate at least once to avoid infinite loop
do {
if (moveNext) {
handle = handle?.nextElementSibling;
} else {
handle = handle?.previousElementSibling;
}
} while (handle && !this.resizer.isResizeHandle(handle));
if (handle) {
const nextHandle = this.copyWith(handle, this.resizer, this.sizer);
nextHandle.reverse = this.reverse;
return nextHandle;
}
}
next() {
return this.advance(true);
}
previous() {
return this.advance(false);
}
size() {
return this.sizer.getItemSize(this.domNode);
}
offset() {
return this.sizer.getItemOffset(this.domNode);
}
start() {
this.sizer.start(this.domNode);
}
finish() {
this.sizer.finish(this.domNode);
}
getSize() {
return this.sizer.getDesiredItemSize(this.domNode);
}
setRawSize(size) {
this.sizer.setItemSize(this.domNode, size);
}
setSize(size) {
this.setRawSize(`${Math.round(size)}px`);
this.resizer.config?.onResized?.(size, this.id, this.domNode);
}
clearSize() {
this.sizer.clearItemSize(this.domNode);
this.resizer.config?.onResized?.(null, this.id, this.domNode);
}
first() {
if (!this.domNode.parentElement?.children) {
return;
}
const firstHandle = Array.from(this.domNode.parentElement.children).find(el => {
return this.resizer.isResizeHandle(el);
});
if (firstHandle) {
return this.copyWith(firstHandle, this.resizer, this.sizer);
}
}
last() {
if (!this.domNode.parentElement?.children) {
return;
}
const lastHandle = Array.from(this.domNode.parentElement.children).reverse().find(el => {
return this.resizer.isResizeHandle(el);
});
if (lastHandle) {
return this.copyWith(lastHandle, this.resizer, this.sizer);
}
}
}
exports.default = ResizeItem;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXNpemVJdGVtIiwiY29uc3RydWN0b3IiLCJoYW5kbGUiLCJyZXNpemVyIiwic2l6ZXIiLCJjb250YWluZXIiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInJldmVyc2UiLCJpc1JldmVyc2VSZXNpemVIYW5kbGUiLCJkb21Ob2RlIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImlkIiwiZ2V0QXR0cmlidXRlIiwiY29weVdpdGgiLCJDdG9yIiwiYWR2YW5jZSIsImZvcndhcmRzIiwibW92ZU5leHQiLCJpc1Jlc2l6ZUhhbmRsZSIsIm5leHRIYW5kbGUiLCJuZXh0IiwicHJldmlvdXMiLCJzaXplIiwiZ2V0SXRlbVNpemUiLCJvZmZzZXQiLCJnZXRJdGVtT2Zmc2V0Iiwic3RhcnQiLCJmaW5pc2giLCJnZXRTaXplIiwiZ2V0RGVzaXJlZEl0ZW1TaXplIiwic2V0UmF3U2l6ZSIsInNldEl0ZW1TaXplIiwic2V0U2l6ZSIsIk1hdGgiLCJyb3VuZCIsImNvbmZpZyIsIm9uUmVzaXplZCIsImNsZWFyU2l6ZSIsImNsZWFySXRlbVNpemUiLCJmaXJzdCIsInBhcmVudEVsZW1lbnQiLCJjaGlsZHJlbiIsImZpcnN0SGFuZGxlIiwiQXJyYXkiLCJmcm9tIiwiZmluZCIsImVsIiwibGFzdCIsImxhc3RIYW5kbGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc2l6ZXIvaXRlbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVzaXplciwgeyBJQ29uZmlnIH0gZnJvbSBcIi4vcmVzaXplclwiO1xuaW1wb3J0IFNpemVyIGZyb20gXCIuL3NpemVyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc2l6ZUl0ZW08QyBleHRlbmRzIElDb25maWc+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9tTm9kZTogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIHByb3RlY3RlZCByZXZlcnNlOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBoYW5kbGU6IEhUTUxFbGVtZW50LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcmVzaXplcjogUmVzaXplcjxDLCBhbnk+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZXI6IFNpemVyLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29udGFpbmVyPzogSFRNTEVsZW1lbnQsXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmV2ZXJzZSA9IHJlc2l6ZXIuaXNSZXZlcnNlUmVzaXplSGFuZGxlKGhhbmRsZSk7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9tTm9kZSA9IGNvbnRhaW5lcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZG9tTm9kZSA9IDxIVE1MRWxlbWVudD4odGhpcy5yZXZlcnNlID8gaGFuZGxlLm5leHRFbGVtZW50U2libGluZyA6IGhhbmRsZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlkID0gaGFuZGxlLmdldEF0dHJpYnV0ZShcImRhdGEtaWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5V2l0aChcbiAgICAgICAgaGFuZGxlOiBIVE1MRWxlbWVudCxcbiAgICAgICAgcmVzaXplcjogUmVzaXplcjxDLCBhbnk+LFxuICAgICAgICBzaXplcjogU2l6ZXIsXG4gICAgICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50LFxuICAgICk6IFJlc2l6ZUl0ZW08Qz4ge1xuICAgICAgICBjb25zdCBDdG9yID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVzaXplSXRlbTtcbiAgICAgICAgcmV0dXJuIG5ldyBDdG9yKGhhbmRsZSwgcmVzaXplciwgc2l6ZXIsIGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZHZhbmNlKGZvcndhcmRzOiBib29sZWFuKTogUmVzaXplSXRlbTxDPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIG9wcG9zaXRlIGRpcmVjdGlvbiBmcm9tIGZyb21SZXNpemVIYW5kbGUgdG8gZ2V0IGJhY2sgdG8gaGFuZGxlXG4gICAgICAgIGxldCBoYW5kbGU6IEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcy5yZXZlcnNlXG4gICAgICAgICAgICA/IHRoaXMuZG9tTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXG4gICAgICAgICAgICA6IHRoaXMuZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgIGNvbnN0IG1vdmVOZXh0ID0gZm9yd2FyZHMgIT09IHRoaXMucmV2ZXJzZTsgLy8geG9yXG4gICAgICAgIC8vIGl0ZXJhdGUgYXQgbGVhc3Qgb25jZSB0byBhdm9pZCBpbmZpbml0ZSBsb29wXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmIChtb3ZlTmV4dCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZSA9IGhhbmRsZT8ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYW5kbGUgPSBoYW5kbGU/LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKGhhbmRsZSAmJiAhdGhpcy5yZXNpemVyLmlzUmVzaXplSGFuZGxlKDxIVE1MRWxlbWVudD5oYW5kbGUpKTtcblxuICAgICAgICBpZiAoaGFuZGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0SGFuZGxlID0gdGhpcy5jb3B5V2l0aCg8SFRNTEVsZW1lbnQ+aGFuZGxlLCB0aGlzLnJlc2l6ZXIsIHRoaXMuc2l6ZXIpO1xuICAgICAgICAgICAgbmV4dEhhbmRsZS5yZXZlcnNlID0gdGhpcy5yZXZlcnNlO1xuICAgICAgICAgICAgcmV0dXJuIG5leHRIYW5kbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCgpOiBSZXNpemVJdGVtPEM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmlvdXMoKTogUmVzaXplSXRlbTxDPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemVyLmdldEl0ZW1TaXplKHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplci5nZXRJdGVtT2Zmc2V0KHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpemVyLnN0YXJ0KHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmlzaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaXplci5maW5pc2godGhpcy5kb21Ob2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2l6ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplci5nZXREZXNpcmVkSXRlbVNpemUodGhpcy5kb21Ob2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UmF3U2l6ZShzaXplOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaXplci5zZXRJdGVtU2l6ZSh0aGlzLmRvbU5vZGUsIHNpemUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTaXplKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFJhd1NpemUoYCR7TWF0aC5yb3VuZChzaXplKX1weGApO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuY29uZmlnPy5vblJlc2l6ZWQ/LihzaXplLCB0aGlzLmlkLCB0aGlzLmRvbU5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2l6ZXIuY2xlYXJJdGVtU2l6ZSh0aGlzLmRvbU5vZGUpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuY29uZmlnPy5vblJlc2l6ZWQ/LihudWxsLCB0aGlzLmlkLCB0aGlzLmRvbU5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaXJzdCgpOiBSZXNpemVJdGVtPEM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvbU5vZGUucGFyZW50RWxlbWVudD8uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaXJzdEhhbmRsZSA9IEFycmF5LmZyb20odGhpcy5kb21Ob2RlLnBhcmVudEVsZW1lbnQuY2hpbGRyZW4pLmZpbmQoKGVsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNpemVyLmlzUmVzaXplSGFuZGxlKDxIVE1MRWxlbWVudD5lbCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZmlyc3RIYW5kbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvcHlXaXRoKDxIVE1MRWxlbWVudD5maXJzdEhhbmRsZSwgdGhpcy5yZXNpemVyLCB0aGlzLnNpemVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBsYXN0KCk6IFJlc2l6ZUl0ZW08Qz4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZS5wYXJlbnRFbGVtZW50Py5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RIYW5kbGUgPSBBcnJheS5mcm9tKHRoaXMuZG9tTm9kZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgLmZpbmQoKGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplci5pc1Jlc2l6ZUhhbmRsZSg8SFRNTEVsZW1lbnQ+ZWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChsYXN0SGFuZGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb3B5V2l0aCg8SFRNTEVsZW1lbnQ+bGFzdEhhbmRsZSwgdGhpcy5yZXNpemVyLCB0aGlzLnNpemVyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFLZSxNQUFNQSxVQUFVLENBQW9CO0VBS3hDQyxXQUFXQSxDQUNkQyxNQUFtQixFQUNIQyxPQUF3QixFQUN4QkMsS0FBWSxFQUNaQyxTQUF1QixFQUN6QztJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQTtJQUFBLEtBSGtCSixPQUF3QixHQUF4QkEsT0FBd0I7SUFBQSxLQUN4QkMsS0FBWSxHQUFaQSxLQUFZO0lBQUEsS0FDWkMsU0FBdUIsR0FBdkJBLFNBQXVCO0lBRXZDLElBQUksQ0FBQ0csT0FBTyxHQUFHTCxPQUFPLENBQUNNLHFCQUFxQixDQUFDUCxNQUFNLENBQUM7SUFDcEQsSUFBSUcsU0FBUyxFQUFFO01BQ1gsSUFBSSxDQUFDSyxPQUFPLEdBQUdMLFNBQVM7SUFDNUIsQ0FBQyxNQUFNO01BQ0gsSUFBSSxDQUFDSyxPQUFP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QUksRUFBRSxJQUFJLENBQUNYLEVBQUUsRUFBRSxJQUFJLENBQUNILE9BQU8sQ0FBQztFQUNqRTtFQUVPNkIsU0FBU0EsQ0FBQSxFQUFTO0lBQ3JCLElBQUksQ0FBQ25DLEtBQUssQ0FBQ29DLGFBQWEsQ0FBQyxJQUFJLENBQUM5QixPQUFPLENBQUM7SUFDdEMsSUFBSSxDQUFDUCxPQUFPLENBQUNrQyxNQUFNLEVBQUVDLFNBQVMsR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQ0gsT0FBTyxDQUFDO0VBQ2pFO0VBRU8rQixLQUFLQSxDQUFBLEVBQThCO0lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMvQixPQUFPLENBQUNnQyxhQUFhLEVBQUVDLFFBQVEsRUFBRTtNQUN2QztJQUNKO0lBQ0EsTUFBTUMsV0FBVyxHQUFHQyxLQUFLLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUNwQyxPQUFPLENBQUNnQyxhQUFhLENBQUNDLFFBQVEsQ0FBQyxDQUFDSSxJQUFJLENBQUVDLEVBQUUsSUFBSztNQUM3RSxPQUFPLElBQUksQ0FBQzdDLE9BQU8sQ0FBQ2lCLGNBQWMsQ0FBYzRCLEVBQUUsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFDRixJQUFJSixXQUFXLEVBQUU7TUFDYixPQUFPLElBQUksQ0FBQzdCLFFBQVEsQ0FBYzZCLFdBQVcsRUFBRSxJQUFJLENBQUN6QyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDNUU7RUFDSjtFQUVPNkMsSUFBSUEsQ0FBQSxFQUE4QjtJQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDdkMsT0FBTyxDQUFDZ0MsYUFBYSxFQUFFQyxRQUFRLEVBQUU7TUFDdkM7SUFDSjtJQUNBLE1BQU1PLFVBQVUsR0FBR0wsS0FBSyxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDcEMsT0FBTyxDQUFDZ0MsYUFBYSxDQUFDQyxRQUFRLENBQUMsQ0FDN0RuQyxPQUFPLENBQUMsQ0FBQyxDQUNUdUMsSUFBSSxDQUFFQyxFQUFFLElBQUs7TUFDVixPQUFPLElBQUksQ0FBQzdDLE9BQU8sQ0FBQ2lCLGNBQWMsQ0FBYzRCLEVBQUUsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFDTixJQUFJRSxVQUFVLEVBQUU7TUFDWixPQUFPLElBQUksQ0FBQ25DLFFBQVEsQ0FBY21DLFVBQVUsRUFBRSxJQUFJLENBQUMvQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDM0U7RUFDSjtBQUNKO0FBQUMrQyxPQUFBLENBQUE1QyxPQUFBLEdBQUFQLFVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=