tdesign-mobile-vue
Version:
tdesign-mobile-vue
55 lines (47 loc) • 2.09 kB
JavaScript
/**
* tdesign v1.7.0
* (c) 2024 TDesign Group
* @license MIT
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
var vue = require('vue');
var vanilla = require('@use-gesture/vanilla');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
var Gesture = vanilla.createGesture([vanilla.dragAction, vanilla.pinchAction]);
function useGesture(config) {
var gesture = vue.ref(null);
var destroy = function destroy() {
var _gesture$value, _gesture$value$destro;
return (_gesture$value = gesture.value) === null || _gesture$value === void 0 || (_gesture$value$destro = _gesture$value.destroy) === null || _gesture$value$destro === void 0 ? void 0 : _gesture$value$destro.call(_gesture$value);
};
vue.watch(function () {
return [config === null || config === void 0 ? void 0 : config.destroyInvisible, config === null || config === void 0 ? void 0 : config.visible];
}, function (_ref) {
var _ref2 = _slicedToArray__default["default"](_ref, 2),
destroyInvisible = _ref2[0],
visible = _ref2[1];
if (destroyInvisible && !visible) {
destroy();
}
});
vue.onUnmounted(function () {
var _gesture$value2, _gesture$value2$destr;
(_gesture$value2 = gesture.value) === null || _gesture$value2 === void 0 || (_gesture$value2$destr = _gesture$value2.destroy) === null || _gesture$value2$destr === void 0 || _gesture$value2$destr.call(_gesture$value2);
});
var create = function create(target, handler) {
var config2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
gesture.value = new Gesture(target, handler, config2);
returns.gesture = gesture.value;
};
var returns = vue.reactive({
gesture: gesture.value,
destroy: destroy,
create: create
});
return returns;
}
exports.useGesture = useGesture;
//# sourceMappingURL=index.js.map