tdesign-mobile-vue
Version:
tdesign-mobile-vue
91 lines (87 loc) • 2.63 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
import _createClass from '@babel/runtime/helpers/createClass';
import _defineProperty from '@babel/runtime/helpers/defineProperty';
import { nextTick } from 'vue';
function getTouch(el, x, y) {
return {
identifier: Date.now(),
target: el,
pageX: x,
pageY: y,
clientX: x,
clientY: y,
radiusX: 2.5,
radiusY: 2.5,
rotationAngle: 10,
force: 0.5
};
}
function trigger(wrapper, eventName) {
var x = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
var y = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
var el = "element" in wrapper ? wrapper.element : wrapper;
var touchList = options.touchList || [getTouch(el, x, y)];
if (options.x || options.y) {
touchList.push(getTouch(el, options.x, options.y));
}
var event = document.createEvent("CustomEvent");
event.initCustomEvent(eventName, true, true, {});
Object.assign(event, {
clientX: x,
clientY: y,
touches: touchList,
targetTouches: touchList,
changedTouches: touchList
});
el.dispatchEvent(event);
return nextTick();
}
var MockResizeObserver = /*#__PURE__*/function () {
function MockResizeObserver(callback) {
var _this = this;
_classCallCheck(this, MockResizeObserver);
_defineProperty(this, "_callback", void 0);
_defineProperty(this, "_element", void 0);
_defineProperty(this, "trigger", function (event) {
var _event$width = event.width,
width = _event$width === void 0 ? 0 : _event$width,
_event$height = event.height,
height = _event$height === void 0 ? 0 : _event$height;
_this._callback([{
contentRect: {
width: width,
height: height
}
}]);
});
this._callback = callback;
}
return _createClass(MockResizeObserver, [{
key: "observe",
value: function observe(element) {
this._element = element;
this._element.addEventListener("resize", this.trigger);
}
}, {
key: "unobserve",
value: function unobserve() {
this._element.removeEventListener("resize", this.trigger);
}
}, {
key: "disconnect",
value: function disconnect() {
if (this._element) {
this._element.removeEventListener("resize", this.trigger);
}
this._element = null;
}
}]);
}();
export { MockResizeObserver, trigger };
//# sourceMappingURL=utils.js.map