StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10512 lines
355 KiB
10512 lines
355 KiB
4 years ago
|
/**
|
||
|
* interact.js 1.8.4
|
||
|
*
|
||
|
* Copyright (c) 2012-2020 Taye Adeyemi <dev@taye.me>
|
||
|
* Released under the MIT License.
|
||
|
* https://raw.github.com/taye/interact.js/master/LICENSE
|
||
|
*/
|
||
|
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.interact = f()}})(function(){var define,module,exports;
|
||
|
var createModuleFactory = function createModuleFactory(t){var e;return function(r){return e||t(e={exports:{},parent:r},e.exports),e.exports}};
|
||
|
var _$scope_24 = createModuleFactory(function (module, exports) {
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
/* common-shake removed: exports.createScope = */ void createScope;
|
||
|
/* common-shake removed: exports.initScope = */ void initScope;
|
||
|
exports.Scope = exports.ActionName = void 0;
|
||
|
|
||
|
var _domObjects = _interopRequireDefault(_$domObjects_50);
|
||
|
|
||
|
var utils = _interopRequireWildcard(_$index_56);
|
||
|
|
||
|
var _defaultOptions = _interopRequireDefault(_$defaultOptions_20);
|
||
|
|
||
|
var _Eventable = _interopRequireDefault(_$Eventable_14);
|
||
|
|
||
|
var _Interactable = _interopRequireDefault(_$Interactable_16);
|
||
|
|
||
|
var _InteractableSet = _interopRequireDefault(_$InteractableSet_17);
|
||
|
|
||
|
var _InteractEvent = _interopRequireDefault(_$InteractEvent_15);
|
||
|
|
||
|
var _interactions = _interopRequireDefault(_$interactions_23({}));
|
||
|
|
||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||
|
|
||
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
||
|
|
||
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||
|
|
||
|
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
|
||
|
|
||
|
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
||
|
|
||
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||
|
|
||
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
||
|
|
||
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||
|
|
||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var win = utils.win,
|
||
|
browser = utils.browser,
|
||
|
raf = utils.raf,
|
||
|
events = utils.events;
|
||
|
var ActionName;
|
||
|
exports.ActionName = ActionName;
|
||
|
|
||
|
(function (ActionName) {})(ActionName || (exports.ActionName = ActionName = {}));
|
||
|
|
||
|
function createScope() {
|
||
|
return new Scope();
|
||
|
}
|
||
|
|
||
|
var Scope =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
// main window
|
||
|
// main document
|
||
|
// main window
|
||
|
// all documents being listened to
|
||
|
function Scope() {
|
||
|
var _this = this;
|
||
|
|
||
|
_classCallCheck(this, Scope);
|
||
|
|
||
|
_defineProperty(this, "id", "__interact_scope_".concat(Math.floor(Math.random() * 100)));
|
||
|
|
||
|
_defineProperty(this, "listenerMaps", []);
|
||
|
|
||
|
_defineProperty(this, "browser", browser);
|
||
|
|
||
|
_defineProperty(this, "events", events);
|
||
|
|
||
|
_defineProperty(this, "utils", utils);
|
||
|
|
||
|
_defineProperty(this, "defaults", utils.clone(_defaultOptions["default"]));
|
||
|
|
||
|
_defineProperty(this, "Eventable", _Eventable["default"]);
|
||
|
|
||
|
_defineProperty(this, "actions", {
|
||
|
names: [],
|
||
|
methodDict: {},
|
||
|
eventTypes: []
|
||
|
});
|
||
|
|
||
|
_defineProperty(this, "InteractEvent", _InteractEvent["default"]);
|
||
|
|
||
|
_defineProperty(this, "Interactable", void 0);
|
||
|
|
||
|
_defineProperty(this, "interactables", new _InteractableSet["default"](this));
|
||
|
|
||
|
_defineProperty(this, "_win", void 0);
|
||
|
|
||
|
_defineProperty(this, "document", void 0);
|
||
|
|
||
|
_defineProperty(this, "window", void 0);
|
||
|
|
||
|
_defineProperty(this, "documents", []);
|
||
|
|
||
|
_defineProperty(this, "_plugins", {
|
||
|
list: [],
|
||
|
map: {}
|
||
|
});
|
||
|
|
||
|
_defineProperty(this, "onWindowUnload", function (event) {
|
||
|
return _this.removeDocument(event.target);
|
||
|
});
|
||
|
|
||
|
var scope = this;
|
||
|
|
||
|
this.Interactable =
|
||
|
/*#__PURE__*/
|
||
|
function (_InteractableBase) {
|
||
|
_inherits(Interactable, _InteractableBase);
|
||
|
|
||
|
function Interactable() {
|
||
|
_classCallCheck(this, Interactable);
|
||
|
|
||
|
return _possibleConstructorReturn(this, _getPrototypeOf(Interactable).apply(this, arguments));
|
||
|
}
|
||
|
|
||
|
_createClass(Interactable, [{
|
||
|
key: "set",
|
||
|
value: function set(options) {
|
||
|
_get(_getPrototypeOf(Interactable.prototype), "set", this).call(this, options);
|
||
|
|
||
|
scope.fire('interactable:set', {
|
||
|
options: options,
|
||
|
interactable: this
|
||
|
});
|
||
|
return this;
|
||
|
}
|
||
|
}, {
|
||
|
key: "unset",
|
||
|
value: function unset() {
|
||
|
_get(_getPrototypeOf(Interactable.prototype), "unset", this).call(this);
|
||
|
|
||
|
for (var i = scope.interactions.list.length - 1; i >= 0; i--) {
|
||
|
var interaction = scope.interactions.list[i];
|
||
|
|
||
|
if (interaction.interactable === this) {
|
||
|
interaction.stop();
|
||
|
scope.fire('interactions:destroy', {
|
||
|
interaction: interaction
|
||
|
});
|
||
|
interaction.destroy();
|
||
|
|
||
|
if (scope.interactions.list.length > 2) {
|
||
|
scope.interactions.list.splice(i, 1);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
scope.fire('interactable:unset', {
|
||
|
interactable: this
|
||
|
});
|
||
|
}
|
||
|
}, {
|
||
|
key: "_defaults",
|
||
|
get: function get() {
|
||
|
return scope.defaults;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Interactable;
|
||
|
}(_Interactable["default"]);
|
||
|
}
|
||
|
|
||
|
_createClass(Scope, [{
|
||
|
key: "addListeners",
|
||
|
value: function addListeners(map, id) {
|
||
|
this.listenerMaps.push({
|
||
|
id: id,
|
||
|
map: map
|
||
|
});
|
||
|
}
|
||
|
}, {
|
||
|
key: "fire",
|
||
|
value: function fire(name, arg) {
|
||
|
for (var _i = 0; _i < this.listenerMaps.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = this.listenerMaps[_i];
|
||
|
var _ref2 = _ref,
|
||
|
listener = _ref2.map[name];
|
||
|
|
||
|
if (!!listener && listener(arg, this, name) === false) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "init",
|
||
|
value: function init(window) {
|
||
|
return initScope(this, window);
|
||
|
}
|
||
|
}, {
|
||
|
key: "pluginIsInstalled",
|
||
|
value: function pluginIsInstalled(plugin) {
|
||
|
return this._plugins.map[plugin.id] || this._plugins.list.indexOf(plugin) !== -1;
|
||
|
}
|
||
|
}, {
|
||
|
key: "usePlugin",
|
||
|
value: function usePlugin(plugin, options) {
|
||
|
if (this.pluginIsInstalled(plugin)) {
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (plugin.id) {
|
||
|
this._plugins.map[plugin.id] = plugin;
|
||
|
}
|
||
|
|
||
|
this._plugins.list.push(plugin);
|
||
|
|
||
|
if (plugin.install) {
|
||
|
plugin.install(this, options);
|
||
|
}
|
||
|
|
||
|
if (plugin.listeners && plugin.before) {
|
||
|
var _index = 0;
|
||
|
var len = this.listenerMaps.length;
|
||
|
var before = plugin.before.reduce(function (acc, id) {
|
||
|
acc[id] = true;
|
||
|
return acc;
|
||
|
}, {});
|
||
|
|
||
|
for (; _index < len; _index++) {
|
||
|
var otherId = this.listenerMaps[_index].id;
|
||
|
|
||
|
if (before[otherId]) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.listenerMaps.splice(_index, 0, {
|
||
|
id: plugin.id,
|
||
|
map: plugin.listeners
|
||
|
});
|
||
|
} else if (plugin.listeners) {
|
||
|
this.listenerMaps.push({
|
||
|
id: plugin.id,
|
||
|
map: plugin.listeners
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
}, {
|
||
|
key: "addDocument",
|
||
|
value: function addDocument(doc, options) {
|
||
|
// do nothing if document is already known
|
||
|
if (this.getDocIndex(doc) !== -1) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
var window = win.getWindow(doc);
|
||
|
options = options ? utils.extend({}, options) : {};
|
||
|
this.documents.push({
|
||
|
doc: doc,
|
||
|
options: options
|
||
|
});
|
||
|
events.documents.push(doc); // don't add an unload event for the main document
|
||
|
// so that the page may be cached in browser history
|
||
|
|
||
|
if (doc !== this.document) {
|
||
|
events.add(window, 'unload', this.onWindowUnload);
|
||
|
}
|
||
|
|
||
|
this.fire('scope:add-document', {
|
||
|
doc: doc,
|
||
|
window: window,
|
||
|
scope: this,
|
||
|
options: options
|
||
|
});
|
||
|
}
|
||
|
}, {
|
||
|
key: "removeDocument",
|
||
|
value: function removeDocument(doc) {
|
||
|
var index = this.getDocIndex(doc);
|
||
|
var window = win.getWindow(doc);
|
||
|
var options = this.documents[index].options;
|
||
|
events.remove(window, 'unload', this.onWindowUnload);
|
||
|
this.documents.splice(index, 1);
|
||
|
events.documents.splice(index, 1);
|
||
|
this.fire('scope:remove-document', {
|
||
|
doc: doc,
|
||
|
window: window,
|
||
|
scope: this,
|
||
|
options: options
|
||
|
});
|
||
|
}
|
||
|
}, {
|
||
|
key: "getDocIndex",
|
||
|
value: function getDocIndex(doc) {
|
||
|
for (var i = 0; i < this.documents.length; i++) {
|
||
|
if (this.documents[i].doc === doc) {
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return -1;
|
||
|
}
|
||
|
}, {
|
||
|
key: "getDocOptions",
|
||
|
value: function getDocOptions(doc) {
|
||
|
var docIndex = this.getDocIndex(doc);
|
||
|
return docIndex === -1 ? null : this.documents[docIndex].options;
|
||
|
}
|
||
|
}, {
|
||
|
key: "now",
|
||
|
value: function now() {
|
||
|
return (this.window.Date || Date).now();
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Scope;
|
||
|
}();
|
||
|
|
||
|
exports.Scope = Scope;
|
||
|
|
||
|
function initScope(scope, window) {
|
||
|
win.init(window);
|
||
|
|
||
|
_domObjects["default"].init(window);
|
||
|
|
||
|
browser.init(window);
|
||
|
raf.init(window);
|
||
|
events.init(window);
|
||
|
scope.usePlugin(_interactions["default"]);
|
||
|
scope.document = window.document;
|
||
|
scope.window = window;
|
||
|
return scope;
|
||
|
}
|
||
|
|
||
|
});
|
||
|
var _$interactions_23 = createModuleFactory(function (module, exports) {
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports["default"] = void 0;
|
||
|
|
||
|
var _browser = _interopRequireDefault(_$browser_48);
|
||
|
|
||
|
var _domObjects = _interopRequireDefault(_$domObjects_50);
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("@interactjs/utils/domUtils"); */;
|
||
|
|
||
|
var _events = _interopRequireDefault(_$events_52);
|
||
|
|
||
|
var pointerUtils = _interopRequireWildcard(_$pointerUtils_61);
|
||
|
|
||
|
var _Interaction = _interopRequireDefault(_$Interaction_18({}));
|
||
|
|
||
|
var _interactionFinder = _interopRequireDefault(_$interactionFinder_22);
|
||
|
|
||
|
var _scope = _$scope_24({});
|
||
|
|
||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||
|
|
||
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
||
|
|
||
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
||
|
|
||
|
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||
|
|
||
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
||
|
|
||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
||
|
|
||
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||
|
|
||
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||
|
|
||
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
||
|
|
||
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||
|
|
||
|
var methodNames = ['pointerDown', 'pointerMove', 'pointerUp', 'updatePointer', 'removePointer', 'windowBlur'];
|
||
|
|
||
|
function install(scope) {
|
||
|
var listeners = {};
|
||
|
|
||
|
for (var _i = 0; _i < methodNames.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = methodNames[_i];
|
||
|
var method = _ref;
|
||
|
listeners[method] = doOnInteractions(method, scope);
|
||
|
}
|
||
|
|
||
|
var pEventTypes = _browser["default"].pEventTypes;
|
||
|
var docEvents;
|
||
|
|
||
|
if (_domObjects["default"].PointerEvent) {
|
||
|
docEvents = [{
|
||
|
type: pEventTypes.down,
|
||
|
listener: releasePointersOnRemovedEls
|
||
|
}, {
|
||
|
type: pEventTypes.down,
|
||
|
listener: listeners.pointerDown
|
||
|
}, {
|
||
|
type: pEventTypes.move,
|
||
|
listener: listeners.pointerMove
|
||
|
}, {
|
||
|
type: pEventTypes.up,
|
||
|
listener: listeners.pointerUp
|
||
|
}, {
|
||
|
type: pEventTypes.cancel,
|
||
|
listener: listeners.pointerUp
|
||
|
}];
|
||
|
} else {
|
||
|
docEvents = [{
|
||
|
type: 'mousedown',
|
||
|
listener: listeners.pointerDown
|
||
|
}, {
|
||
|
type: 'mousemove',
|
||
|
listener: listeners.pointerMove
|
||
|
}, {
|
||
|
type: 'mouseup',
|
||
|
listener: listeners.pointerUp
|
||
|
}, {
|
||
|
type: 'touchstart',
|
||
|
listener: releasePointersOnRemovedEls
|
||
|
}, {
|
||
|
type: 'touchstart',
|
||
|
listener: listeners.pointerDown
|
||
|
}, {
|
||
|
type: 'touchmove',
|
||
|
listener: listeners.pointerMove
|
||
|
}, {
|
||
|
type: 'touchend',
|
||
|
listener: listeners.pointerUp
|
||
|
}, {
|
||
|
type: 'touchcancel',
|
||
|
listener: listeners.pointerUp
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
docEvents.push({
|
||
|
type: 'blur',
|
||
|
listener: function listener(event) {
|
||
|
for (var _i2 = 0; _i2 < scope.interactions.list.length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = scope.interactions.list[_i2];
|
||
|
var interaction = _ref2;
|
||
|
interaction.documentBlur(event);
|
||
|
}
|
||
|
}
|
||
|
}); // for ignoring browser's simulated mouse events
|
||
|
|
||
|
scope.prevTouchTime = 0;
|
||
|
|
||
|
scope.Interaction =
|
||
|
/*#__PURE__*/
|
||
|
function (_InteractionBase) {
|
||
|
_inherits(Interaction, _InteractionBase);
|
||
|
|
||
|
function Interaction() {
|
||
|
_classCallCheck(this, Interaction);
|
||
|
|
||
|
return _possibleConstructorReturn(this, _getPrototypeOf(Interaction).apply(this, arguments));
|
||
|
}
|
||
|
|
||
|
_createClass(Interaction, [{
|
||
|
key: "_now",
|
||
|
value: function _now() {
|
||
|
return scope.now();
|
||
|
}
|
||
|
}, {
|
||
|
key: "pointerMoveTolerance",
|
||
|
get: function get() {
|
||
|
return scope.interactions.pointerMoveTolerance;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
scope.interactions.pointerMoveTolerance = value;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Interaction;
|
||
|
}(_Interaction["default"]);
|
||
|
|
||
|
scope.interactions = {
|
||
|
// all active and idle interactions
|
||
|
list: [],
|
||
|
"new": function _new(options) {
|
||
|
options.scopeFire = function (name, arg) {
|
||
|
return scope.fire(name, arg);
|
||
|
};
|
||
|
|
||
|
var interaction = new scope.Interaction(options);
|
||
|
scope.interactions.list.push(interaction);
|
||
|
return interaction;
|
||
|
},
|
||
|
listeners: listeners,
|
||
|
docEvents: docEvents,
|
||
|
pointerMoveTolerance: 1
|
||
|
};
|
||
|
|
||
|
function releasePointersOnRemovedEls() {
|
||
|
// for all inactive touch interactions with pointers down
|
||
|
for (var _i3 = 0; _i3 < scope.interactions.list.length; _i3++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = scope.interactions.list[_i3];
|
||
|
var interaction = _ref3;
|
||
|
|
||
|
if (!interaction.pointerIsDown || interaction.pointerType !== 'touch' || interaction._interacting) {
|
||
|
continue;
|
||
|
} // if a pointer is down on an element that is no longer in the DOM tree
|
||
|
|
||
|
|
||
|
var _loop = function _loop() {
|
||
|
_ref4 = interaction.pointers[_i4];
|
||
|
var pointer = _ref4;
|
||
|
|
||
|
if (!scope.documents.some(function (_ref5) {
|
||
|
var doc = _ref5.doc;
|
||
|
return (0, _$domUtils_51.nodeContains)(doc, pointer.downTarget);
|
||
|
})) {
|
||
|
// remove the pointer from the interaction
|
||
|
interaction.removePointer(pointer.pointer, pointer.event);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
for (var _i4 = 0; _i4 < interaction.pointers.length; _i4++) {
|
||
|
var _ref4;
|
||
|
|
||
|
_loop();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function doOnInteractions(method, scope) {
|
||
|
return function (event) {
|
||
|
var interactions = scope.interactions.list;
|
||
|
var pointerType = pointerUtils.getPointerType(event);
|
||
|
|
||
|
var _pointerUtils$getEven = pointerUtils.getEventTargets(event),
|
||
|
_pointerUtils$getEven2 = _slicedToArray(_pointerUtils$getEven, 2),
|
||
|
eventTarget = _pointerUtils$getEven2[0],
|
||
|
curEventTarget = _pointerUtils$getEven2[1];
|
||
|
|
||
|
var matches = []; // [ [pointer, interaction], ...]
|
||
|
|
||
|
if (/^touch/.test(event.type)) {
|
||
|
scope.prevTouchTime = scope.now();
|
||
|
|
||
|
for (var _i5 = 0; _i5 < event.changedTouches.length; _i5++) {
|
||
|
var _ref6;
|
||
|
|
||
|
_ref6 = event.changedTouches[_i5];
|
||
|
var changedTouch = _ref6;
|
||
|
var pointer = changedTouch;
|
||
|
var pointerId = pointerUtils.getPointerId(pointer);
|
||
|
var searchDetails = {
|
||
|
pointer: pointer,
|
||
|
pointerId: pointerId,
|
||
|
pointerType: pointerType,
|
||
|
eventType: event.type,
|
||
|
eventTarget: eventTarget,
|
||
|
curEventTarget: curEventTarget,
|
||
|
scope: scope
|
||
|
};
|
||
|
var interaction = getInteraction(searchDetails);
|
||
|
matches.push([searchDetails.pointer, searchDetails.eventTarget, searchDetails.curEventTarget, interaction]);
|
||
|
}
|
||
|
} else {
|
||
|
var invalidPointer = false;
|
||
|
|
||
|
if (!_browser["default"].supportsPointerEvent && /mouse/.test(event.type)) {
|
||
|
// ignore mouse events while touch interactions are active
|
||
|
for (var i = 0; i < interactions.length && !invalidPointer; i++) {
|
||
|
invalidPointer = interactions[i].pointerType !== 'mouse' && interactions[i].pointerIsDown;
|
||
|
} // try to ignore mouse events that are simulated by the browser
|
||
|
// after a touch event
|
||
|
|
||
|
|
||
|
invalidPointer = invalidPointer || scope.now() - scope.prevTouchTime < 500 || // on iOS and Firefox Mobile, MouseEvent.timeStamp is zero if simulated
|
||
|
event.timeStamp === 0;
|
||
|
}
|
||
|
|
||
|
if (!invalidPointer) {
|
||
|
var _searchDetails = {
|
||
|
pointer: event,
|
||
|
pointerId: pointerUtils.getPointerId(event),
|
||
|
pointerType: pointerType,
|
||
|
eventType: event.type,
|
||
|
curEventTarget: curEventTarget,
|
||
|
eventTarget: eventTarget,
|
||
|
scope: scope
|
||
|
};
|
||
|
|
||
|
var _interaction = getInteraction(_searchDetails);
|
||
|
|
||
|
matches.push([_searchDetails.pointer, _searchDetails.eventTarget, _searchDetails.curEventTarget, _interaction]);
|
||
|
}
|
||
|
} // eslint-disable-next-line no-shadow
|
||
|
|
||
|
|
||
|
for (var _i6 = 0; _i6 < matches.length; _i6++) {
|
||
|
var _matches$_i = _slicedToArray(matches[_i6], 4),
|
||
|
_pointer = _matches$_i[0],
|
||
|
_eventTarget = _matches$_i[1],
|
||
|
_curEventTarget = _matches$_i[2],
|
||
|
_interaction2 = _matches$_i[3];
|
||
|
|
||
|
_interaction2[method](_pointer, event, _eventTarget, _curEventTarget);
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getInteraction(searchDetails) {
|
||
|
var pointerType = searchDetails.pointerType,
|
||
|
scope = searchDetails.scope;
|
||
|
|
||
|
var foundInteraction = _interactionFinder["default"].search(searchDetails);
|
||
|
|
||
|
var signalArg = {
|
||
|
interaction: foundInteraction,
|
||
|
searchDetails: searchDetails
|
||
|
};
|
||
|
scope.fire('interactions:find', signalArg);
|
||
|
return signalArg.interaction || scope.interactions["new"]({
|
||
|
pointerType: pointerType
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function onDocSignal(_ref7, eventMethodName) {
|
||
|
var doc = _ref7.doc,
|
||
|
scope = _ref7.scope,
|
||
|
options = _ref7.options;
|
||
|
var docEvents = scope.interactions.docEvents;
|
||
|
var eventMethod = _events["default"][eventMethodName];
|
||
|
|
||
|
if (scope.browser.isIOS && !options.events) {
|
||
|
options.events = {
|
||
|
passive: false
|
||
|
};
|
||
|
} // delegate event listener
|
||
|
|
||
|
|
||
|
for (var eventType in _events["default"].delegatedEvents) {
|
||
|
eventMethod(doc, eventType, _events["default"].delegateListener);
|
||
|
eventMethod(doc, eventType, _events["default"].delegateUseCapture, true);
|
||
|
}
|
||
|
|
||
|
var eventOptions = options && options.events;
|
||
|
|
||
|
for (var _i7 = 0; _i7 < docEvents.length; _i7++) {
|
||
|
var _ref8;
|
||
|
|
||
|
_ref8 = docEvents[_i7];
|
||
|
var _ref9 = _ref8,
|
||
|
_type = _ref9.type,
|
||
|
listener = _ref9.listener;
|
||
|
eventMethod(doc, _type, listener, eventOptions);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var _default = {
|
||
|
id: 'core/interactions',
|
||
|
install: install,
|
||
|
listeners: {
|
||
|
'scope:add-document': function scopeAddDocument(arg) {
|
||
|
return onDocSignal(arg, 'add');
|
||
|
},
|
||
|
'scope:remove-document': function scopeRemoveDocument(arg) {
|
||
|
return onDocSignal(arg, 'remove');
|
||
|
}
|
||
|
},
|
||
|
onDocSignal: onDocSignal,
|
||
|
doOnInteractions: doOnInteractions,
|
||
|
methodNames: methodNames
|
||
|
};
|
||
|
exports["default"] = _default;
|
||
|
|
||
|
});
|
||
|
var _$Interaction_18 = createModuleFactory(function (module, exports) {
|
||
|
"use strict";
|
||
|
|
||
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
Object.defineProperty(exports, "PointerInfo", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _PointerInfo["default"];
|
||
|
}
|
||
|
});
|
||
|
exports["default"] = exports.Interaction = exports._ProxyMethods = exports._ProxyValues = void 0;
|
||
|
|
||
|
var utils = _interopRequireWildcard(_$index_56);
|
||
|
|
||
|
var _InteractEvent = _interopRequireWildcard(_$InteractEvent_15);
|
||
|
|
||
|
var _PointerInfo = _interopRequireDefault(_$PointerInfo_19);
|
||
|
|
||
|
var _scope = _$scope_24({});
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var _ProxyValues;
|
||
|
|
||
|
exports._ProxyValues = _ProxyValues;
|
||
|
|
||
|
(function (_ProxyValues) {
|
||
|
_ProxyValues["interactable"] = "";
|
||
|
_ProxyValues["element"] = "";
|
||
|
_ProxyValues["prepared"] = "";
|
||
|
_ProxyValues["pointerIsDown"] = "";
|
||
|
_ProxyValues["pointerWasMoved"] = "";
|
||
|
_ProxyValues["_proxy"] = "";
|
||
|
})(_ProxyValues || (exports._ProxyValues = _ProxyValues = {}));
|
||
|
|
||
|
var _ProxyMethods;
|
||
|
|
||
|
exports._ProxyMethods = _ProxyMethods;
|
||
|
|
||
|
(function (_ProxyMethods) {
|
||
|
_ProxyMethods["start"] = "";
|
||
|
_ProxyMethods["move"] = "";
|
||
|
_ProxyMethods["end"] = "";
|
||
|
_ProxyMethods["stop"] = "";
|
||
|
_ProxyMethods["interacting"] = "";
|
||
|
})(_ProxyMethods || (exports._ProxyMethods = _ProxyMethods = {}));
|
||
|
|
||
|
var idCounter = 0;
|
||
|
|
||
|
var Interaction =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
_createClass(Interaction, [{
|
||
|
key: "pointerMoveTolerance",
|
||
|
// current interactable being interacted with
|
||
|
// the target element of the interactable
|
||
|
// action that's ready to be fired on next move event
|
||
|
// keep track of added pointers
|
||
|
// pointerdown/mousedown/touchstart event
|
||
|
// previous action event
|
||
|
get: function get() {
|
||
|
return 1;
|
||
|
}
|
||
|
/**
|
||
|
* @alias Interaction.prototype.move
|
||
|
*/
|
||
|
|
||
|
}]);
|
||
|
|
||
|
/** */
|
||
|
function Interaction(_ref) {
|
||
|
var _this = this;
|
||
|
|
||
|
var pointerType = _ref.pointerType,
|
||
|
scopeFire = _ref.scopeFire;
|
||
|
|
||
|
_classCallCheck(this, Interaction);
|
||
|
|
||
|
_defineProperty(this, "interactable", null);
|
||
|
|
||
|
_defineProperty(this, "element", null);
|
||
|
|
||
|
_defineProperty(this, "rect", void 0);
|
||
|
|
||
|
_defineProperty(this, "_rects", void 0);
|
||
|
|
||
|
_defineProperty(this, "edges", void 0);
|
||
|
|
||
|
_defineProperty(this, "_scopeFire", void 0);
|
||
|
|
||
|
_defineProperty(this, "prepared", {
|
||
|
name: null,
|
||
|
axis: null,
|
||
|
edges: null
|
||
|
});
|
||
|
|
||
|
_defineProperty(this, "pointerType", void 0);
|
||
|
|
||
|
_defineProperty(this, "pointers", []);
|
||
|
|
||
|
_defineProperty(this, "downEvent", null);
|
||
|
|
||
|
_defineProperty(this, "downPointer", {});
|
||
|
|
||
|
_defineProperty(this, "_latestPointer", {
|
||
|
pointer: null,
|
||
|
event: null,
|
||
|
eventTarget: null
|
||
|
});
|
||
|
|
||
|
_defineProperty(this, "prevEvent", null);
|
||
|
|
||
|
_defineProperty(this, "pointerIsDown", false);
|
||
|
|
||
|
_defineProperty(this, "pointerWasMoved", false);
|
||
|
|
||
|
_defineProperty(this, "_interacting", false);
|
||
|
|
||
|
_defineProperty(this, "_ending", false);
|
||
|
|
||
|
_defineProperty(this, "_stopped", true);
|
||
|
|
||
|
_defineProperty(this, "_proxy", null);
|
||
|
|
||
|
_defineProperty(this, "simulation", null);
|
||
|
|
||
|
_defineProperty(this, "doMove", utils.warnOnce(function (signalArg) {
|
||
|
this.move(signalArg);
|
||
|
}, 'The interaction.doMove() method has been renamed to interaction.move()'));
|
||
|
|
||
|
_defineProperty(this, "coords", {
|
||
|
// Starting InteractEvent pointer coordinates
|
||
|
start: utils.pointer.newCoords(),
|
||
|
// Previous native pointer move event coordinates
|
||
|
prev: utils.pointer.newCoords(),
|
||
|
// current native pointer move event coordinates
|
||
|
cur: utils.pointer.newCoords(),
|
||
|
// Change in coordinates and time of the pointer
|
||
|
delta: utils.pointer.newCoords(),
|
||
|
// pointer velocity
|
||
|
velocity: utils.pointer.newCoords()
|
||
|
});
|
||
|
|
||
|
_defineProperty(this, "_id", idCounter++);
|
||
|
|
||
|
this._scopeFire = scopeFire;
|
||
|
this.pointerType = pointerType;
|
||
|
var that = this;
|
||
|
this._proxy = {};
|
||
|
|
||
|
var _loop = function _loop(key) {
|
||
|
Object.defineProperty(_this._proxy, key, {
|
||
|
get: function get() {
|
||
|
return that[key];
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
for (var key in _ProxyValues) {
|
||
|
_loop(key);
|
||
|
}
|
||
|
|
||
|
var _loop2 = function _loop2(_key) {
|
||
|
Object.defineProperty(_this._proxy, _key, {
|
||
|
value: function value() {
|
||
|
return that[_key].apply(that, arguments);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
for (var _key in _ProxyMethods) {
|
||
|
_loop2(_key);
|
||
|
}
|
||
|
|
||
|
this._scopeFire('interactions:new', {
|
||
|
interaction: this
|
||
|
});
|
||
|
}
|
||
|
|
||
|
_createClass(Interaction, [{
|
||
|
key: "pointerDown",
|
||
|
value: function pointerDown(pointer, event, eventTarget) {
|
||
|
var pointerIndex = this.updatePointer(pointer, event, eventTarget, true);
|
||
|
|
||
|
this._scopeFire('interactions:down', {
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
pointerIndex: pointerIndex,
|
||
|
type: 'down',
|
||
|
interaction: this
|
||
|
});
|
||
|
}
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(target)
|
||
|
* .draggable({
|
||
|
* // disable the default drag start by down->move
|
||
|
* manualStart: true
|
||
|
* })
|
||
|
* // start dragging after the user holds the pointer down
|
||
|
* .on('hold', function (event) {
|
||
|
* var interaction = event.interaction
|
||
|
*
|
||
|
* if (!interaction.interacting()) {
|
||
|
* interaction.start({ name: 'drag' },
|
||
|
* event.interactable,
|
||
|
* event.currentTarget)
|
||
|
* }
|
||
|
* })
|
||
|
* ```
|
||
|
*
|
||
|
* Start an action with the given Interactable and Element as tartgets. The
|
||
|
* action must be enabled for the target Interactable and an appropriate
|
||
|
* number of pointers must be held down - 1 for drag/resize, 2 for gesture.
|
||
|
*
|
||
|
* Use it with `interactable.<action>able({ manualStart: false })` to always
|
||
|
* [start actions manually](https://github.com/taye/interact.js/issues/114)
|
||
|
*
|
||
|
* @param {object} action The action to be performed - drag, resize, etc.
|
||
|
* @param {Interactable} target The Interactable to target
|
||
|
* @param {Element} element The DOM Element to target
|
||
|
* @return {object} interact
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "start",
|
||
|
value: function start(action, interactable, element) {
|
||
|
if (this.interacting() || !this.pointerIsDown || this.pointers.length < (action.name === _scope.ActionName.Gesture ? 2 : 1) || !interactable.options[action.name].enabled) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
utils.copyAction(this.prepared, action);
|
||
|
this.interactable = interactable;
|
||
|
this.element = element;
|
||
|
this.rect = interactable.getRect(element);
|
||
|
this.edges = utils.extend({}, this.prepared.edges);
|
||
|
this._stopped = false;
|
||
|
this._interacting = this._doPhase({
|
||
|
interaction: this,
|
||
|
event: this.downEvent,
|
||
|
phase: _InteractEvent.EventPhase.Start
|
||
|
}) && !this._stopped;
|
||
|
return this._interacting;
|
||
|
}
|
||
|
}, {
|
||
|
key: "pointerMove",
|
||
|
value: function pointerMove(pointer, event, eventTarget) {
|
||
|
if (!this.simulation && !(this.modifiers && this.modifiers.endResult)) {
|
||
|
this.updatePointer(pointer, event, eventTarget, false);
|
||
|
utils.pointer.setCoords(this.coords.cur, this.pointers.map(function (p) {
|
||
|
return p.pointer;
|
||
|
}), this._now());
|
||
|
}
|
||
|
|
||
|
var duplicateMove = this.coords.cur.page.x === this.coords.prev.page.x && this.coords.cur.page.y === this.coords.prev.page.y && this.coords.cur.client.x === this.coords.prev.client.x && this.coords.cur.client.y === this.coords.prev.client.y;
|
||
|
var dx;
|
||
|
var dy; // register movement greater than pointerMoveTolerance
|
||
|
|
||
|
if (this.pointerIsDown && !this.pointerWasMoved) {
|
||
|
dx = this.coords.cur.client.x - this.coords.start.client.x;
|
||
|
dy = this.coords.cur.client.y - this.coords.start.client.y;
|
||
|
this.pointerWasMoved = utils.hypot(dx, dy) > this.pointerMoveTolerance;
|
||
|
}
|
||
|
|
||
|
var signalArg = {
|
||
|
pointer: pointer,
|
||
|
pointerIndex: this.getPointerIndex(pointer),
|
||
|
event: event,
|
||
|
type: 'move',
|
||
|
eventTarget: eventTarget,
|
||
|
dx: dx,
|
||
|
dy: dy,
|
||
|
duplicate: duplicateMove,
|
||
|
interaction: this
|
||
|
};
|
||
|
|
||
|
if (!duplicateMove) {
|
||
|
// set pointer coordinate, time changes and velocity
|
||
|
utils.pointer.setCoordDeltas(this.coords.delta, this.coords.prev, this.coords.cur);
|
||
|
utils.pointer.setCoordVelocity(this.coords.velocity, this.coords.delta);
|
||
|
}
|
||
|
|
||
|
this._scopeFire('interactions:move', signalArg);
|
||
|
|
||
|
if (!duplicateMove) {
|
||
|
// if interacting, fire an 'action-move' signal etc
|
||
|
if (this.interacting()) {
|
||
|
signalArg.type = null;
|
||
|
this.move(signalArg);
|
||
|
}
|
||
|
|
||
|
if (this.pointerWasMoved) {
|
||
|
utils.pointer.copyCoords(this.coords.prev, this.coords.cur);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(target)
|
||
|
* .draggable(true)
|
||
|
* .on('dragmove', function (event) {
|
||
|
* if (someCondition) {
|
||
|
* // change the snap settings
|
||
|
* event.interactable.draggable({ snap: { targets: [] }})
|
||
|
* // fire another move event with re-calculated snap
|
||
|
* event.interaction.move()
|
||
|
* }
|
||
|
* })
|
||
|
* ```
|
||
|
*
|
||
|
* Force a move of the current action at the same coordinates. Useful if
|
||
|
* snap/restrict has been changed and you want a movement with the new
|
||
|
* settings.
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "move",
|
||
|
value: function move(signalArg) {
|
||
|
if (!signalArg || !signalArg.event) {
|
||
|
utils.pointer.setZeroCoords(this.coords.delta);
|
||
|
}
|
||
|
|
||
|
signalArg = utils.extend({
|
||
|
pointer: this._latestPointer.pointer,
|
||
|
event: this._latestPointer.event,
|
||
|
eventTarget: this._latestPointer.eventTarget,
|
||
|
interaction: this
|
||
|
}, signalArg || {});
|
||
|
signalArg.phase = _InteractEvent.EventPhase.Move;
|
||
|
|
||
|
this._doPhase(signalArg);
|
||
|
} // End interact move events and stop auto-scroll unless simulation is running
|
||
|
|
||
|
}, {
|
||
|
key: "pointerUp",
|
||
|
value: function pointerUp(pointer, event, eventTarget, curEventTarget) {
|
||
|
var pointerIndex = this.getPointerIndex(pointer);
|
||
|
|
||
|
if (pointerIndex === -1) {
|
||
|
pointerIndex = this.updatePointer(pointer, event, eventTarget, false);
|
||
|
}
|
||
|
|
||
|
var type = /cancel$/i.test(event.type) ? 'cancel' : 'up';
|
||
|
|
||
|
this._scopeFire("interactions:".concat(type), {
|
||
|
pointer: pointer,
|
||
|
pointerIndex: pointerIndex,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
type: type,
|
||
|
curEventTarget: curEventTarget,
|
||
|
interaction: this
|
||
|
});
|
||
|
|
||
|
if (!this.simulation) {
|
||
|
this.end(event);
|
||
|
}
|
||
|
|
||
|
this.pointerIsDown = false;
|
||
|
this.removePointer(pointer, event);
|
||
|
}
|
||
|
}, {
|
||
|
key: "documentBlur",
|
||
|
value: function documentBlur(event) {
|
||
|
this.end(event);
|
||
|
|
||
|
this._scopeFire('interactions:blur', {
|
||
|
event: event,
|
||
|
type: 'blur',
|
||
|
interaction: this
|
||
|
});
|
||
|
}
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(target)
|
||
|
* .draggable(true)
|
||
|
* .on('move', function (event) {
|
||
|
* if (event.pageX > 1000) {
|
||
|
* // end the current action
|
||
|
* event.interaction.end()
|
||
|
* // stop all further listeners from being called
|
||
|
* event.stopImmediatePropagation()
|
||
|
* }
|
||
|
* })
|
||
|
* ```
|
||
|
*
|
||
|
* @param {PointerEvent} [event]
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "end",
|
||
|
value: function end(event) {
|
||
|
this._ending = true;
|
||
|
event = event || this._latestPointer.event;
|
||
|
var endPhaseResult;
|
||
|
|
||
|
if (this.interacting()) {
|
||
|
endPhaseResult = this._doPhase({
|
||
|
event: event,
|
||
|
interaction: this,
|
||
|
phase: _InteractEvent.EventPhase.End
|
||
|
});
|
||
|
}
|
||
|
|
||
|
this._ending = false;
|
||
|
|
||
|
if (endPhaseResult === true) {
|
||
|
this.stop();
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "currentAction",
|
||
|
value: function currentAction() {
|
||
|
return this._interacting ? this.prepared.name : null;
|
||
|
}
|
||
|
}, {
|
||
|
key: "interacting",
|
||
|
value: function interacting() {
|
||
|
return this._interacting;
|
||
|
}
|
||
|
/** */
|
||
|
|
||
|
}, {
|
||
|
key: "stop",
|
||
|
value: function stop() {
|
||
|
this._scopeFire('interactions:stop', {
|
||
|
interaction: this
|
||
|
});
|
||
|
|
||
|
this.interactable = this.element = null;
|
||
|
this._interacting = false;
|
||
|
this._stopped = true;
|
||
|
this.prepared.name = this.prevEvent = null;
|
||
|
}
|
||
|
}, {
|
||
|
key: "getPointerIndex",
|
||
|
value: function getPointerIndex(pointer) {
|
||
|
var pointerId = utils.pointer.getPointerId(pointer); // mouse and pen interactions may have only one pointer
|
||
|
|
||
|
return this.pointerType === 'mouse' || this.pointerType === 'pen' ? this.pointers.length - 1 : utils.arr.findIndex(this.pointers, function (curPointer) {
|
||
|
return curPointer.id === pointerId;
|
||
|
});
|
||
|
}
|
||
|
}, {
|
||
|
key: "getPointerInfo",
|
||
|
value: function getPointerInfo(pointer) {
|
||
|
return this.pointers[this.getPointerIndex(pointer)];
|
||
|
}
|
||
|
}, {
|
||
|
key: "updatePointer",
|
||
|
value: function updatePointer(pointer, event, eventTarget, down) {
|
||
|
var id = utils.pointer.getPointerId(pointer);
|
||
|
var pointerIndex = this.getPointerIndex(pointer);
|
||
|
var pointerInfo = this.pointers[pointerIndex];
|
||
|
down = down === false ? false : down || /(down|start)$/i.test(event.type);
|
||
|
|
||
|
if (!pointerInfo) {
|
||
|
pointerInfo = new _PointerInfo["default"](id, pointer, event, null, null);
|
||
|
pointerIndex = this.pointers.length;
|
||
|
this.pointers.push(pointerInfo);
|
||
|
} else {
|
||
|
pointerInfo.pointer = pointer;
|
||
|
}
|
||
|
|
||
|
if (down) {
|
||
|
this.pointerIsDown = true;
|
||
|
|
||
|
if (!this.interacting()) {
|
||
|
utils.pointer.setCoords(this.coords.start, this.pointers.map(function (p) {
|
||
|
return p.pointer;
|
||
|
}), this._now());
|
||
|
utils.pointer.copyCoords(this.coords.cur, this.coords.start);
|
||
|
utils.pointer.copyCoords(this.coords.prev, this.coords.start);
|
||
|
utils.pointer.pointerExtend(this.downPointer, pointer);
|
||
|
this.downEvent = event;
|
||
|
pointerInfo.downTime = this.coords.cur.timeStamp;
|
||
|
pointerInfo.downTarget = eventTarget;
|
||
|
this.pointerWasMoved = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this._updateLatestPointer(pointer, event, eventTarget);
|
||
|
|
||
|
this._scopeFire('interactions:update-pointer', {
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
down: down,
|
||
|
pointerInfo: pointerInfo,
|
||
|
pointerIndex: pointerIndex,
|
||
|
interaction: this
|
||
|
});
|
||
|
|
||
|
return pointerIndex;
|
||
|
}
|
||
|
}, {
|
||
|
key: "removePointer",
|
||
|
value: function removePointer(pointer, event) {
|
||
|
var pointerIndex = this.getPointerIndex(pointer);
|
||
|
|
||
|
if (pointerIndex === -1) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var pointerInfo = this.pointers[pointerIndex];
|
||
|
|
||
|
this._scopeFire('interactions:remove-pointer', {
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: null,
|
||
|
pointerIndex: pointerIndex,
|
||
|
pointerInfo: pointerInfo,
|
||
|
interaction: this
|
||
|
});
|
||
|
|
||
|
this.pointers.splice(pointerIndex, 1);
|
||
|
}
|
||
|
}, {
|
||
|
key: "_updateLatestPointer",
|
||
|
value: function _updateLatestPointer(pointer, event, eventTarget) {
|
||
|
this._latestPointer.pointer = pointer;
|
||
|
this._latestPointer.event = event;
|
||
|
this._latestPointer.eventTarget = eventTarget;
|
||
|
}
|
||
|
}, {
|
||
|
key: "destroy",
|
||
|
value: function destroy() {
|
||
|
this._latestPointer.pointer = null;
|
||
|
this._latestPointer.event = null;
|
||
|
this._latestPointer.eventTarget = null;
|
||
|
}
|
||
|
}, {
|
||
|
key: "_createPreparedEvent",
|
||
|
value: function _createPreparedEvent(event, phase, preEnd, type) {
|
||
|
var actionName = this.prepared.name;
|
||
|
return new _InteractEvent["default"](this, event, actionName, phase, this.element, null, preEnd, type);
|
||
|
}
|
||
|
}, {
|
||
|
key: "_fireEvent",
|
||
|
value: function _fireEvent(iEvent) {
|
||
|
this.interactable.fire(iEvent);
|
||
|
|
||
|
if (!this.prevEvent || iEvent.timeStamp >= this.prevEvent.timeStamp) {
|
||
|
this.prevEvent = iEvent;
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "_doPhase",
|
||
|
value: function _doPhase(signalArg) {
|
||
|
var event = signalArg.event,
|
||
|
phase = signalArg.phase,
|
||
|
preEnd = signalArg.preEnd,
|
||
|
type = signalArg.type;
|
||
|
var rect = this.rect,
|
||
|
delta = this.coords.delta;
|
||
|
|
||
|
if (rect && phase === _InteractEvent.EventPhase.Move) {
|
||
|
// update the rect modifications
|
||
|
var edges = this.edges || this.prepared.edges || {
|
||
|
left: true,
|
||
|
right: true,
|
||
|
top: true,
|
||
|
bottom: true
|
||
|
};
|
||
|
utils.rect.addEdges(edges, rect, delta[this.interactable.options.deltaSource]);
|
||
|
rect.width = rect.right - rect.left;
|
||
|
rect.height = rect.bottom - rect.top;
|
||
|
}
|
||
|
|
||
|
var beforeResult = this._scopeFire("interactions:before-action-".concat(phase), signalArg);
|
||
|
|
||
|
if (beforeResult === false) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
var iEvent = signalArg.iEvent = this._createPreparedEvent(event, phase, preEnd, type);
|
||
|
|
||
|
this._scopeFire("interactions:action-".concat(phase), signalArg);
|
||
|
|
||
|
if (phase === 'start') {
|
||
|
this.prevEvent = iEvent;
|
||
|
}
|
||
|
|
||
|
this._fireEvent(iEvent);
|
||
|
|
||
|
this._scopeFire("interactions:after-action-".concat(phase), signalArg);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
}, {
|
||
|
key: "_now",
|
||
|
value: function _now() {
|
||
|
return Date.now();
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Interaction;
|
||
|
}();
|
||
|
|
||
|
exports.Interaction = Interaction;
|
||
|
var _default = Interaction;
|
||
|
exports["default"] = _default;
|
||
|
|
||
|
});
|
||
|
var _$domObjects_50 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$domObjects_50, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$domObjects_50["default"] = void 0;
|
||
|
var domObjects = {
|
||
|
init: init,
|
||
|
document: null,
|
||
|
DocumentFragment: null,
|
||
|
SVGElement: null,
|
||
|
SVGSVGElement: null,
|
||
|
SVGElementInstance: null,
|
||
|
Element: null,
|
||
|
HTMLElement: null,
|
||
|
Event: null,
|
||
|
Touch: null,
|
||
|
PointerEvent: null
|
||
|
};
|
||
|
|
||
|
function blank() {}
|
||
|
|
||
|
var _default = domObjects;
|
||
|
_$domObjects_50["default"] = _default;
|
||
|
|
||
|
function init(window) {
|
||
|
var win = window;
|
||
|
domObjects.document = win.document;
|
||
|
domObjects.DocumentFragment = win.DocumentFragment || blank;
|
||
|
domObjects.SVGElement = win.SVGElement || blank;
|
||
|
domObjects.SVGSVGElement = win.SVGSVGElement || blank;
|
||
|
domObjects.SVGElementInstance = win.SVGElementInstance || blank;
|
||
|
domObjects.Element = win.Element || blank;
|
||
|
domObjects.HTMLElement = win.HTMLElement || domObjects.Element;
|
||
|
domObjects.Event = win.Event;
|
||
|
domObjects.Touch = win.Touch || blank;
|
||
|
domObjects.PointerEvent = win.PointerEvent || win.MSPointerEvent;
|
||
|
}
|
||
|
|
||
|
var _$arr_47 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$arr_47, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$arr_47.contains = contains;
|
||
|
_$arr_47.remove = remove;
|
||
|
_$arr_47.merge = merge;
|
||
|
_$arr_47.from = from;
|
||
|
_$arr_47.findIndex = findIndex;
|
||
|
_$arr_47.find = find;
|
||
|
|
||
|
function contains(array, target) {
|
||
|
return array.indexOf(target) !== -1;
|
||
|
}
|
||
|
|
||
|
function remove(array, target) {
|
||
|
return array.splice(array.indexOf(target), 1);
|
||
|
}
|
||
|
|
||
|
function merge(target, source) {
|
||
|
for (var _i = 0; _i < source.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = source[_i];
|
||
|
var item = _ref;
|
||
|
target.push(item);
|
||
|
}
|
||
|
|
||
|
return target;
|
||
|
}
|
||
|
|
||
|
function from(source) {
|
||
|
return merge([], source);
|
||
|
}
|
||
|
|
||
|
function findIndex(array, func) {
|
||
|
for (var i = 0; i < array.length; i++) {
|
||
|
if (func(array[i], i, array)) {
|
||
|
return i;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return -1;
|
||
|
}
|
||
|
|
||
|
function find(array, func) {
|
||
|
return array[findIndex(array, func)];
|
||
|
}
|
||
|
|
||
|
var _$isWindow_58 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$isWindow_58, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$isWindow_58["default"] = void 0;
|
||
|
|
||
|
var ___default_58 = function _default(thing) {
|
||
|
return !!(thing && thing.Window) && thing instanceof thing.Window;
|
||
|
};
|
||
|
|
||
|
_$isWindow_58["default"] = ___default_58;
|
||
|
|
||
|
var _$window_66 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$window_66, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$window_66.init = __init_66;
|
||
|
_$window_66.getWindow = getWindow;
|
||
|
_$window_66["default"] = void 0;
|
||
|
|
||
|
var _isWindow = _interopRequireDefault(_$isWindow_58);
|
||
|
|
||
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var win = {
|
||
|
realWindow: undefined,
|
||
|
window: undefined,
|
||
|
getWindow: getWindow,
|
||
|
init: __init_66
|
||
|
};
|
||
|
|
||
|
function __init_66(window) {
|
||
|
// get wrapped window if using Shadow DOM polyfill
|
||
|
win.realWindow = window; // create a TextNode
|
||
|
|
||
|
var el = window.document.createTextNode(''); // check if it's wrapped by a polyfill
|
||
|
|
||
|
if (el.ownerDocument !== window.document && typeof window.wrap === 'function' && window.wrap(el) === el) {
|
||
|
// use wrapped window
|
||
|
window = window.wrap(window);
|
||
|
}
|
||
|
|
||
|
win.window = window;
|
||
|
}
|
||
|
|
||
|
if (typeof window === 'undefined') {
|
||
|
win.window = undefined;
|
||
|
win.realWindow = undefined;
|
||
|
} else {
|
||
|
__init_66(window);
|
||
|
}
|
||
|
|
||
|
function getWindow(node) {
|
||
|
if ((0, _isWindow["default"])(node)) {
|
||
|
return node;
|
||
|
}
|
||
|
|
||
|
var rootNode = node.ownerDocument || node;
|
||
|
return rootNode.defaultView || win.window;
|
||
|
}
|
||
|
|
||
|
win.init = __init_66;
|
||
|
var ___default_66 = win;
|
||
|
_$window_66["default"] = ___default_66;
|
||
|
|
||
|
var _$is_57 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$is_57, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$is_57.array = _$is_57.plainObject = _$is_57.element = _$is_57.string = _$is_57.bool = _$is_57.number = _$is_57.func = _$is_57.object = _$is_57.docFrag = _$is_57.window = void 0;
|
||
|
|
||
|
var ___isWindow_57 = ___interopRequireDefault_57(_$isWindow_58);
|
||
|
|
||
|
var _window2 = ___interopRequireDefault_57(_$window_66);
|
||
|
|
||
|
function ___interopRequireDefault_57(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
||
|
|
||
|
var __window_57 = function window(thing) {
|
||
|
return thing === _window2["default"].window || (0, ___isWindow_57["default"])(thing);
|
||
|
};
|
||
|
|
||
|
_$is_57.window = __window_57;
|
||
|
|
||
|
var docFrag = function docFrag(thing) {
|
||
|
return object(thing) && thing.nodeType === 11;
|
||
|
};
|
||
|
|
||
|
_$is_57.docFrag = docFrag;
|
||
|
|
||
|
var object = function object(thing) {
|
||
|
return !!thing && _typeof(thing) === 'object';
|
||
|
};
|
||
|
|
||
|
_$is_57.object = object;
|
||
|
|
||
|
var func = function func(thing) {
|
||
|
return typeof thing === 'function';
|
||
|
};
|
||
|
|
||
|
_$is_57.func = func;
|
||
|
|
||
|
var number = function number(thing) {
|
||
|
return typeof thing === 'number';
|
||
|
};
|
||
|
|
||
|
_$is_57.number = number;
|
||
|
|
||
|
var bool = function bool(thing) {
|
||
|
return typeof thing === 'boolean';
|
||
|
};
|
||
|
|
||
|
_$is_57.bool = bool;
|
||
|
|
||
|
var string = function string(thing) {
|
||
|
return typeof thing === 'string';
|
||
|
};
|
||
|
|
||
|
_$is_57.string = string;
|
||
|
|
||
|
var element = function element(thing) {
|
||
|
if (!thing || _typeof(thing) !== 'object') {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
var _window = _window2["default"].getWindow(thing) || _window2["default"].window;
|
||
|
|
||
|
return /object|function/.test(_typeof(_window.Element)) ? thing instanceof _window.Element // DOM2
|
||
|
: thing.nodeType === 1 && typeof thing.nodeName === 'string';
|
||
|
};
|
||
|
|
||
|
_$is_57.element = element;
|
||
|
|
||
|
var plainObject = function plainObject(thing) {
|
||
|
return object(thing) && !!thing.constructor && /function Object\b/.test(thing.constructor.toString());
|
||
|
};
|
||
|
|
||
|
_$is_57.plainObject = plainObject;
|
||
|
|
||
|
var array = function array(thing) {
|
||
|
return object(thing) && typeof thing.length !== 'undefined' && func(thing.splice);
|
||
|
};
|
||
|
|
||
|
_$is_57.array = array;
|
||
|
|
||
|
var _$browser_48 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_48(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_48 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_48 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_48(obj); }
|
||
|
|
||
|
Object.defineProperty(_$browser_48, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$browser_48["default"] = void 0;
|
||
|
|
||
|
var _domObjects = ___interopRequireDefault_48(_$domObjects_50);
|
||
|
|
||
|
var is = _interopRequireWildcard(_$is_57);
|
||
|
|
||
|
var _window = ___interopRequireDefault_48(_$window_66);
|
||
|
|
||
|
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_48(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_48(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var browser = {
|
||
|
init: __init_48,
|
||
|
supportsTouch: null,
|
||
|
supportsPointerEvent: null,
|
||
|
isIOS7: null,
|
||
|
isIOS: null,
|
||
|
isIe9: null,
|
||
|
isOperaMobile: null,
|
||
|
prefixedMatchesSelector: null,
|
||
|
pEventTypes: null,
|
||
|
wheelEvent: null
|
||
|
};
|
||
|
|
||
|
function __init_48(window) {
|
||
|
var Element = _domObjects["default"].Element;
|
||
|
var navigator = _window["default"].window.navigator; // Does the browser support touch input?
|
||
|
|
||
|
browser.supportsTouch = 'ontouchstart' in window || is.func(window.DocumentTouch) && _domObjects["default"].document instanceof window.DocumentTouch; // Does the browser support PointerEvents
|
||
|
|
||
|
browser.supportsPointerEvent = navigator.pointerEnabled !== false && !!_domObjects["default"].PointerEvent;
|
||
|
browser.isIOS = /iP(hone|od|ad)/.test(navigator.platform); // scrolling doesn't change the result of getClientRects on iOS 7
|
||
|
|
||
|
browser.isIOS7 = /iP(hone|od|ad)/.test(navigator.platform) && /OS 7[^\d]/.test(navigator.appVersion);
|
||
|
browser.isIe9 = /MSIE 9/.test(navigator.userAgent); // Opera Mobile must be handled differently
|
||
|
|
||
|
browser.isOperaMobile = navigator.appName === 'Opera' && browser.supportsTouch && /Presto/.test(navigator.userAgent); // prefix matchesSelector
|
||
|
|
||
|
browser.prefixedMatchesSelector = 'matches' in Element.prototype ? 'matches' : 'webkitMatchesSelector' in Element.prototype ? 'webkitMatchesSelector' : 'mozMatchesSelector' in Element.prototype ? 'mozMatchesSelector' : 'oMatchesSelector' in Element.prototype ? 'oMatchesSelector' : 'msMatchesSelector';
|
||
|
browser.pEventTypes = browser.supportsPointerEvent ? _domObjects["default"].PointerEvent === window.MSPointerEvent ? {
|
||
|
up: 'MSPointerUp',
|
||
|
down: 'MSPointerDown',
|
||
|
over: 'mouseover',
|
||
|
out: 'mouseout',
|
||
|
move: 'MSPointerMove',
|
||
|
cancel: 'MSPointerCancel'
|
||
|
} : {
|
||
|
up: 'pointerup',
|
||
|
down: 'pointerdown',
|
||
|
over: 'pointerover',
|
||
|
out: 'pointerout',
|
||
|
move: 'pointermove',
|
||
|
cancel: 'pointercancel'
|
||
|
} : null; // because Webkit and Opera still use 'mousewheel' event type
|
||
|
|
||
|
browser.wheelEvent = 'onmousewheel' in _domObjects["default"].document ? 'mousewheel' : 'wheel';
|
||
|
}
|
||
|
|
||
|
var ___default_48 = browser;
|
||
|
_$browser_48["default"] = ___default_48;
|
||
|
|
||
|
var _$domUtils_51 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_51(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_51 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_51 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_51(obj); }
|
||
|
|
||
|
Object.defineProperty(_$domUtils_51, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$domUtils_51.nodeContains = nodeContains;
|
||
|
_$domUtils_51.closest = closest;
|
||
|
_$domUtils_51.parentNode = parentNode;
|
||
|
_$domUtils_51.matchesSelector = matchesSelector;
|
||
|
_$domUtils_51.indexOfDeepestElement = indexOfDeepestElement;
|
||
|
_$domUtils_51.matchesUpTo = matchesUpTo;
|
||
|
_$domUtils_51.getActualElement = getActualElement;
|
||
|
_$domUtils_51.getScrollXY = getScrollXY;
|
||
|
_$domUtils_51.getElementClientRect = getElementClientRect;
|
||
|
_$domUtils_51.getElementRect = getElementRect;
|
||
|
_$domUtils_51.getPath = getPath;
|
||
|
_$domUtils_51.trySelector = trySelector;
|
||
|
|
||
|
var _browser = ___interopRequireDefault_51(_$browser_48);
|
||
|
|
||
|
var ___domObjects_51 = ___interopRequireDefault_51(_$domObjects_50);
|
||
|
|
||
|
var __is_51 = ___interopRequireWildcard_51(_$is_57);
|
||
|
|
||
|
var ___window_51 = ___interopRequireWildcard_51(_$window_66);
|
||
|
|
||
|
function ___getRequireWildcardCache_51() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_51 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_51(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_51(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_51(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_51(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function nodeContains(parent, child) {
|
||
|
while (child) {
|
||
|
if (child === parent) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
child = child.parentNode;
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function closest(element, selector) {
|
||
|
while (__is_51.element(element)) {
|
||
|
if (matchesSelector(element, selector)) {
|
||
|
return element;
|
||
|
}
|
||
|
|
||
|
element = parentNode(element);
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
function parentNode(node) {
|
||
|
var parent = node.parentNode;
|
||
|
|
||
|
if (__is_51.docFrag(parent)) {
|
||
|
// skip past #shado-root fragments
|
||
|
// tslint:disable-next-line
|
||
|
while ((parent = parent.host) && __is_51.docFrag(parent)) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
return parent;
|
||
|
}
|
||
|
|
||
|
return parent;
|
||
|
}
|
||
|
|
||
|
function matchesSelector(element, selector) {
|
||
|
// remove /deep/ from selectors if shadowDOM polyfill is used
|
||
|
if (___window_51["default"].window !== ___window_51["default"].realWindow) {
|
||
|
selector = selector.replace(/\/deep\//g, ' ');
|
||
|
}
|
||
|
|
||
|
return element[_browser["default"].prefixedMatchesSelector](selector);
|
||
|
}
|
||
|
|
||
|
var getParent = function getParent(el) {
|
||
|
return el.parentNode ? el.parentNode : el.host;
|
||
|
}; // Test for the element that's "above" all other qualifiers
|
||
|
|
||
|
|
||
|
function indexOfDeepestElement(elements) {
|
||
|
var deepestZoneParents = [];
|
||
|
var deepestZone = elements[0];
|
||
|
var index = deepestZone ? 0 : -1;
|
||
|
var i;
|
||
|
var n;
|
||
|
|
||
|
for (i = 1; i < elements.length; i++) {
|
||
|
var dropzone = elements[i]; // an element might belong to multiple selector dropzones
|
||
|
|
||
|
if (!dropzone || dropzone === deepestZone) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (!deepestZone) {
|
||
|
deepestZone = dropzone;
|
||
|
index = i;
|
||
|
continue;
|
||
|
} // check if the deepest or current are document.documentElement or document.rootElement
|
||
|
// - if the current dropzone is, do nothing and continue
|
||
|
|
||
|
|
||
|
if (dropzone.parentNode === dropzone.ownerDocument) {
|
||
|
continue;
|
||
|
} // - if deepest is, update with the current dropzone and continue to next
|
||
|
else if (deepestZone.parentNode === dropzone.ownerDocument) {
|
||
|
deepestZone = dropzone;
|
||
|
index = i;
|
||
|
continue;
|
||
|
} // compare zIndex of siblings
|
||
|
|
||
|
|
||
|
if (dropzone.parentNode === deepestZone.parentNode) {
|
||
|
var deepestZIndex = parseInt((0, ___window_51.getWindow)(deepestZone).getComputedStyle(deepestZone).zIndex, 10) || 0;
|
||
|
var dropzoneZIndex = parseInt((0, ___window_51.getWindow)(dropzone).getComputedStyle(dropzone).zIndex, 10) || 0;
|
||
|
|
||
|
if (dropzoneZIndex >= deepestZIndex) {
|
||
|
deepestZone = dropzone;
|
||
|
index = i;
|
||
|
}
|
||
|
|
||
|
continue;
|
||
|
} // populate the ancestry array for the latest deepest dropzone
|
||
|
|
||
|
|
||
|
if (!deepestZoneParents.length) {
|
||
|
var _parent = deepestZone;
|
||
|
var parentParent = void 0;
|
||
|
|
||
|
while ((parentParent = getParent(_parent)) && parentParent !== _parent.ownerDocument) {
|
||
|
deepestZoneParents.unshift(_parent);
|
||
|
_parent = parentParent;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var parent = void 0; // if this element is an svg element and the current deepest is an
|
||
|
// HTMLElement
|
||
|
|
||
|
if (deepestZone instanceof ___domObjects_51["default"].HTMLElement && dropzone instanceof ___domObjects_51["default"].SVGElement && !(dropzone instanceof ___domObjects_51["default"].SVGSVGElement)) {
|
||
|
if (dropzone === deepestZone.parentNode) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
parent = dropzone.ownerSVGElement;
|
||
|
} else {
|
||
|
parent = dropzone;
|
||
|
}
|
||
|
|
||
|
var dropzoneParents = [];
|
||
|
|
||
|
while (parent.parentNode !== parent.ownerDocument) {
|
||
|
dropzoneParents.unshift(parent);
|
||
|
parent = getParent(parent);
|
||
|
}
|
||
|
|
||
|
n = 0; // get (position of last common ancestor) + 1
|
||
|
|
||
|
while (dropzoneParents[n] && dropzoneParents[n] === deepestZoneParents[n]) {
|
||
|
n++;
|
||
|
}
|
||
|
|
||
|
var parents = [dropzoneParents[n - 1], dropzoneParents[n], deepestZoneParents[n]];
|
||
|
var child = parents[0].lastChild;
|
||
|
|
||
|
while (child) {
|
||
|
if (child === parents[1]) {
|
||
|
deepestZone = dropzone;
|
||
|
index = i;
|
||
|
deepestZoneParents = dropzoneParents;
|
||
|
break;
|
||
|
} else if (child === parents[2]) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
child = child.previousSibling;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return index;
|
||
|
}
|
||
|
|
||
|
function matchesUpTo(element, selector, limit) {
|
||
|
while (__is_51.element(element)) {
|
||
|
if (matchesSelector(element, selector)) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
element = parentNode(element);
|
||
|
|
||
|
if (element === limit) {
|
||
|
return matchesSelector(element, selector);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function getActualElement(element) {
|
||
|
return element instanceof ___domObjects_51["default"].SVGElementInstance ? element.correspondingUseElement : element;
|
||
|
}
|
||
|
|
||
|
function getScrollXY(relevantWindow) {
|
||
|
relevantWindow = relevantWindow || ___window_51["default"].window;
|
||
|
return {
|
||
|
x: relevantWindow.scrollX || relevantWindow.document.documentElement.scrollLeft,
|
||
|
y: relevantWindow.scrollY || relevantWindow.document.documentElement.scrollTop
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getElementClientRect(element) {
|
||
|
var clientRect = element instanceof ___domObjects_51["default"].SVGElement ? element.getBoundingClientRect() : element.getClientRects()[0];
|
||
|
return clientRect && {
|
||
|
left: clientRect.left,
|
||
|
right: clientRect.right,
|
||
|
top: clientRect.top,
|
||
|
bottom: clientRect.bottom,
|
||
|
width: clientRect.width || clientRect.right - clientRect.left,
|
||
|
height: clientRect.height || clientRect.bottom - clientRect.top
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getElementRect(element) {
|
||
|
var clientRect = getElementClientRect(element);
|
||
|
|
||
|
if (!_browser["default"].isIOS7 && clientRect) {
|
||
|
var scroll = getScrollXY(___window_51["default"].getWindow(element));
|
||
|
clientRect.left += scroll.x;
|
||
|
clientRect.right += scroll.x;
|
||
|
clientRect.top += scroll.y;
|
||
|
clientRect.bottom += scroll.y;
|
||
|
}
|
||
|
|
||
|
return clientRect;
|
||
|
}
|
||
|
|
||
|
function getPath(node) {
|
||
|
var path = [];
|
||
|
|
||
|
while (node) {
|
||
|
path.push(node);
|
||
|
node = parentNode(node);
|
||
|
}
|
||
|
|
||
|
return path;
|
||
|
}
|
||
|
|
||
|
function trySelector(value) {
|
||
|
if (!__is_51.string(value)) {
|
||
|
return false;
|
||
|
} // an exception will be raised if it is invalid
|
||
|
|
||
|
|
||
|
___domObjects_51["default"].document.querySelector(value);
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
var _$hypot_55 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$hypot_55, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$hypot_55["default"] = void 0;
|
||
|
|
||
|
var ___default_55 = function _default(x, y) {
|
||
|
return Math.sqrt(x * x + y * y);
|
||
|
};
|
||
|
|
||
|
_$hypot_55["default"] = ___default_55;
|
||
|
|
||
|
var _$pointerExtend_60 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$pointerExtend_60, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$pointerExtend_60["default"] = void 0;
|
||
|
|
||
|
function pointerExtend(dest, source) {
|
||
|
for (var prop in source) {
|
||
|
var prefixedPropREs = pointerExtend.prefixedPropREs;
|
||
|
var deprecated = false; // skip deprecated prefixed properties
|
||
|
|
||
|
for (var vendor in prefixedPropREs) {
|
||
|
if (prop.indexOf(vendor) === 0 && prefixedPropREs[vendor].test(prop)) {
|
||
|
deprecated = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!deprecated && typeof source[prop] !== 'function') {
|
||
|
dest[prop] = source[prop];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
pointerExtend.prefixedPropREs = {
|
||
|
webkit: /(Movement[XY]|Radius[XY]|RotationAngle|Force)$/,
|
||
|
moz: /(Pressure)$/
|
||
|
};
|
||
|
var ___default_60 = pointerExtend;
|
||
|
_$pointerExtend_60["default"] = ___default_60;
|
||
|
|
||
|
var _$pointerUtils_61 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_61(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_61 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_61 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_61(obj); }
|
||
|
|
||
|
Object.defineProperty(_$pointerUtils_61, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$pointerUtils_61.copyCoords = copyCoords;
|
||
|
_$pointerUtils_61.setCoordDeltas = setCoordDeltas;
|
||
|
_$pointerUtils_61.setCoordVelocity = setCoordVelocity;
|
||
|
_$pointerUtils_61.setZeroCoords = setZeroCoords;
|
||
|
_$pointerUtils_61.isNativePointer = isNativePointer;
|
||
|
_$pointerUtils_61.getXY = getXY;
|
||
|
_$pointerUtils_61.getPageXY = getPageXY;
|
||
|
_$pointerUtils_61.getClientXY = getClientXY;
|
||
|
_$pointerUtils_61.getPointerId = getPointerId;
|
||
|
_$pointerUtils_61.setCoords = setCoords;
|
||
|
_$pointerUtils_61.getTouchPair = getTouchPair;
|
||
|
_$pointerUtils_61.pointerAverage = pointerAverage;
|
||
|
_$pointerUtils_61.touchBBox = touchBBox;
|
||
|
_$pointerUtils_61.touchDistance = touchDistance;
|
||
|
_$pointerUtils_61.touchAngle = touchAngle;
|
||
|
_$pointerUtils_61.getPointerType = getPointerType;
|
||
|
_$pointerUtils_61.getEventTargets = getEventTargets;
|
||
|
_$pointerUtils_61.newCoords = newCoords;
|
||
|
_$pointerUtils_61.coordsToEvent = coordsToEvent;
|
||
|
Object.defineProperty(_$pointerUtils_61, "pointerExtend", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _pointerExtend["default"];
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var ___browser_61 = ___interopRequireDefault_61(_$browser_48);
|
||
|
|
||
|
var ___domObjects_61 = ___interopRequireDefault_61(_$domObjects_50);
|
||
|
|
||
|
var domUtils = ___interopRequireWildcard_61(_$domUtils_51);
|
||
|
|
||
|
var _hypot = ___interopRequireDefault_61(_$hypot_55);
|
||
|
|
||
|
var __is_61 = ___interopRequireWildcard_61(_$is_57);
|
||
|
|
||
|
var _pointerExtend = ___interopRequireDefault_61(_$pointerExtend_60);
|
||
|
|
||
|
function ___getRequireWildcardCache_61() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_61 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_61(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_61(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_61(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_61(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function copyCoords(dest, src) {
|
||
|
dest.page = dest.page || {};
|
||
|
dest.page.x = src.page.x;
|
||
|
dest.page.y = src.page.y;
|
||
|
dest.client = dest.client || {};
|
||
|
dest.client.x = src.client.x;
|
||
|
dest.client.y = src.client.y;
|
||
|
dest.timeStamp = src.timeStamp;
|
||
|
}
|
||
|
|
||
|
function setCoordDeltas(targetObj, prev, cur) {
|
||
|
targetObj.page.x = cur.page.x - prev.page.x;
|
||
|
targetObj.page.y = cur.page.y - prev.page.y;
|
||
|
targetObj.client.x = cur.client.x - prev.client.x;
|
||
|
targetObj.client.y = cur.client.y - prev.client.y;
|
||
|
targetObj.timeStamp = cur.timeStamp - prev.timeStamp;
|
||
|
}
|
||
|
|
||
|
function setCoordVelocity(targetObj, delta) {
|
||
|
var dt = Math.max(delta.timeStamp / 1000, 0.001);
|
||
|
targetObj.page.x = delta.page.x / dt;
|
||
|
targetObj.page.y = delta.page.y / dt;
|
||
|
targetObj.client.x = delta.client.x / dt;
|
||
|
targetObj.client.y = delta.client.y / dt;
|
||
|
targetObj.timeStamp = dt;
|
||
|
}
|
||
|
|
||
|
function setZeroCoords(targetObj) {
|
||
|
targetObj.page.x = 0;
|
||
|
targetObj.page.y = 0;
|
||
|
targetObj.client.x = 0;
|
||
|
targetObj.client.y = 0;
|
||
|
}
|
||
|
|
||
|
function isNativePointer(pointer) {
|
||
|
return pointer instanceof ___domObjects_61["default"].Event || pointer instanceof ___domObjects_61["default"].Touch;
|
||
|
} // Get specified X/Y coords for mouse or event.touches[0]
|
||
|
|
||
|
|
||
|
function getXY(type, pointer, xy) {
|
||
|
xy = xy || {};
|
||
|
type = type || 'page';
|
||
|
xy.x = pointer[type + 'X'];
|
||
|
xy.y = pointer[type + 'Y'];
|
||
|
return xy;
|
||
|
}
|
||
|
|
||
|
function getPageXY(pointer, page) {
|
||
|
page = page || {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
}; // Opera Mobile handles the viewport and scrolling oddly
|
||
|
|
||
|
if (___browser_61["default"].isOperaMobile && isNativePointer(pointer)) {
|
||
|
getXY('screen', pointer, page);
|
||
|
page.x += window.scrollX;
|
||
|
page.y += window.scrollY;
|
||
|
} else {
|
||
|
getXY('page', pointer, page);
|
||
|
}
|
||
|
|
||
|
return page;
|
||
|
}
|
||
|
|
||
|
function getClientXY(pointer, client) {
|
||
|
client = client || {};
|
||
|
|
||
|
if (___browser_61["default"].isOperaMobile && isNativePointer(pointer)) {
|
||
|
// Opera Mobile handles the viewport and scrolling oddly
|
||
|
getXY('screen', pointer, client);
|
||
|
} else {
|
||
|
getXY('client', pointer, client);
|
||
|
}
|
||
|
|
||
|
return client;
|
||
|
}
|
||
|
|
||
|
function getPointerId(pointer) {
|
||
|
return __is_61.number(pointer.pointerId) ? pointer.pointerId : pointer.identifier;
|
||
|
}
|
||
|
|
||
|
function setCoords(targetObj, pointers, timeStamp) {
|
||
|
var pointer = pointers.length > 1 ? pointerAverage(pointers) : pointers[0];
|
||
|
var tmpXY = {};
|
||
|
getPageXY(pointer, tmpXY);
|
||
|
targetObj.page.x = tmpXY.x;
|
||
|
targetObj.page.y = tmpXY.y;
|
||
|
getClientXY(pointer, tmpXY);
|
||
|
targetObj.client.x = tmpXY.x;
|
||
|
targetObj.client.y = tmpXY.y;
|
||
|
targetObj.timeStamp = timeStamp;
|
||
|
}
|
||
|
|
||
|
function getTouchPair(event) {
|
||
|
var touches = []; // array of touches is supplied
|
||
|
|
||
|
if (__is_61.array(event)) {
|
||
|
touches[0] = event[0];
|
||
|
touches[1] = event[1];
|
||
|
} // an event
|
||
|
else {
|
||
|
if (event.type === 'touchend') {
|
||
|
if (event.touches.length === 1) {
|
||
|
touches[0] = event.touches[0];
|
||
|
touches[1] = event.changedTouches[0];
|
||
|
} else if (event.touches.length === 0) {
|
||
|
touches[0] = event.changedTouches[0];
|
||
|
touches[1] = event.changedTouches[1];
|
||
|
}
|
||
|
} else {
|
||
|
touches[0] = event.touches[0];
|
||
|
touches[1] = event.touches[1];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return touches;
|
||
|
}
|
||
|
|
||
|
function pointerAverage(pointers) {
|
||
|
var average = {
|
||
|
pageX: 0,
|
||
|
pageY: 0,
|
||
|
clientX: 0,
|
||
|
clientY: 0,
|
||
|
screenX: 0,
|
||
|
screenY: 0
|
||
|
};
|
||
|
|
||
|
for (var _i = 0; _i < pointers.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = pointers[_i];
|
||
|
var pointer = _ref;
|
||
|
|
||
|
for (var _prop in average) {
|
||
|
average[_prop] += pointer[_prop];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
for (var prop in average) {
|
||
|
average[prop] /= pointers.length;
|
||
|
}
|
||
|
|
||
|
return average;
|
||
|
}
|
||
|
|
||
|
function touchBBox(event) {
|
||
|
if (!event.length && !(event.touches && event.touches.length > 1)) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var touches = getTouchPair(event);
|
||
|
var minX = Math.min(touches[0].pageX, touches[1].pageX);
|
||
|
var minY = Math.min(touches[0].pageY, touches[1].pageY);
|
||
|
var maxX = Math.max(touches[0].pageX, touches[1].pageX);
|
||
|
var maxY = Math.max(touches[0].pageY, touches[1].pageY);
|
||
|
return {
|
||
|
x: minX,
|
||
|
y: minY,
|
||
|
left: minX,
|
||
|
top: minY,
|
||
|
right: maxX,
|
||
|
bottom: maxY,
|
||
|
width: maxX - minX,
|
||
|
height: maxY - minY
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function touchDistance(event, deltaSource) {
|
||
|
var sourceX = deltaSource + 'X';
|
||
|
var sourceY = deltaSource + 'Y';
|
||
|
var touches = getTouchPair(event);
|
||
|
var dx = touches[0][sourceX] - touches[1][sourceX];
|
||
|
var dy = touches[0][sourceY] - touches[1][sourceY];
|
||
|
return (0, _hypot["default"])(dx, dy);
|
||
|
}
|
||
|
|
||
|
function touchAngle(event, deltaSource) {
|
||
|
var sourceX = deltaSource + 'X';
|
||
|
var sourceY = deltaSource + 'Y';
|
||
|
var touches = getTouchPair(event);
|
||
|
var dx = touches[1][sourceX] - touches[0][sourceX];
|
||
|
var dy = touches[1][sourceY] - touches[0][sourceY];
|
||
|
var angle = 180 * Math.atan2(dy, dx) / Math.PI;
|
||
|
return angle;
|
||
|
}
|
||
|
|
||
|
function getPointerType(pointer) {
|
||
|
return __is_61.string(pointer.pointerType) ? pointer.pointerType : __is_61.number(pointer.pointerType) ? [undefined, undefined, 'touch', 'pen', 'mouse'][pointer.pointerType] // if the PointerEvent API isn't available, then the "pointer" must
|
||
|
// be either a MouseEvent, TouchEvent, or Touch object
|
||
|
: /touch/.test(pointer.type) || pointer instanceof ___domObjects_61["default"].Touch ? 'touch' : 'mouse';
|
||
|
} // [ event.target, event.currentTarget ]
|
||
|
|
||
|
|
||
|
function getEventTargets(event) {
|
||
|
var path = __is_61.func(event.composedPath) ? event.composedPath() : event.path;
|
||
|
return [domUtils.getActualElement(path ? path[0] : event.target), domUtils.getActualElement(event.currentTarget)];
|
||
|
}
|
||
|
|
||
|
function newCoords() {
|
||
|
return {
|
||
|
page: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
},
|
||
|
client: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
},
|
||
|
timeStamp: 0
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function coordsToEvent(coords) {
|
||
|
var event = {
|
||
|
coords: coords,
|
||
|
|
||
|
get page() {
|
||
|
return this.coords.page;
|
||
|
},
|
||
|
|
||
|
get client() {
|
||
|
return this.coords.client;
|
||
|
},
|
||
|
|
||
|
get timeStamp() {
|
||
|
return this.coords.timeStamp;
|
||
|
},
|
||
|
|
||
|
get pageX() {
|
||
|
return this.coords.page.x;
|
||
|
},
|
||
|
|
||
|
get pageY() {
|
||
|
return this.coords.page.y;
|
||
|
},
|
||
|
|
||
|
get clientX() {
|
||
|
return this.coords.client.x;
|
||
|
},
|
||
|
|
||
|
get clientY() {
|
||
|
return this.coords.client.y;
|
||
|
},
|
||
|
|
||
|
get pointerId() {
|
||
|
return this.coords.pointerId;
|
||
|
},
|
||
|
|
||
|
get target() {
|
||
|
return this.coords.target;
|
||
|
},
|
||
|
|
||
|
get type() {
|
||
|
return this.coords.type;
|
||
|
},
|
||
|
|
||
|
get pointerType() {
|
||
|
return this.coords.pointerType;
|
||
|
},
|
||
|
|
||
|
get buttons() {
|
||
|
return this.coords.buttons;
|
||
|
}
|
||
|
|
||
|
};
|
||
|
return event;
|
||
|
}
|
||
|
|
||
|
var _$extend_53 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$extend_53, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$extend_53["default"] = extend;
|
||
|
|
||
|
function extend(dest, source) {
|
||
|
for (var prop in source) {
|
||
|
dest[prop] = source[prop];
|
||
|
}
|
||
|
|
||
|
var ret = dest;
|
||
|
return ret;
|
||
|
}
|
||
|
|
||
|
var _$rect_63 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_63(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_63 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_63 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_63(obj); }
|
||
|
|
||
|
Object.defineProperty(_$rect_63, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$rect_63.getStringOptionResult = getStringOptionResult;
|
||
|
_$rect_63.resolveRectLike = resolveRectLike;
|
||
|
_$rect_63.rectToXY = rectToXY;
|
||
|
_$rect_63.xywhToTlbr = xywhToTlbr;
|
||
|
_$rect_63.tlbrToXywh = tlbrToXywh;
|
||
|
_$rect_63.addEdges = addEdges;
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("./domUtils"); */;
|
||
|
|
||
|
var _extend = ___interopRequireDefault_63(_$extend_53);
|
||
|
|
||
|
var __is_63 = ___interopRequireWildcard_63(_$is_57);
|
||
|
|
||
|
function ___getRequireWildcardCache_63() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_63 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_63(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_63(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_63(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_63(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
||
|
|
||
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
||
|
|
||
|
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
||
|
|
||
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
||
|
|
||
|
function getStringOptionResult(value, target, element) {
|
||
|
if (value === 'parent') {
|
||
|
return (0, _$domUtils_51.parentNode)(element);
|
||
|
}
|
||
|
|
||
|
if (value === 'self') {
|
||
|
return target.getRect(element);
|
||
|
}
|
||
|
|
||
|
return (0, _$domUtils_51.closest)(element, value);
|
||
|
}
|
||
|
|
||
|
function resolveRectLike(value, target, element, functionArgs) {
|
||
|
var returnValue = value;
|
||
|
|
||
|
if (__is_63.string(returnValue)) {
|
||
|
returnValue = getStringOptionResult(returnValue, target, element);
|
||
|
} else if (__is_63.func(returnValue)) {
|
||
|
returnValue = returnValue.apply(void 0, _toConsumableArray(functionArgs));
|
||
|
}
|
||
|
|
||
|
if (__is_63.element(returnValue)) {
|
||
|
returnValue = (0, _$domUtils_51.getElementRect)(returnValue);
|
||
|
}
|
||
|
|
||
|
return returnValue;
|
||
|
}
|
||
|
|
||
|
function rectToXY(rect) {
|
||
|
return rect && {
|
||
|
x: 'x' in rect ? rect.x : rect.left,
|
||
|
y: 'y' in rect ? rect.y : rect.top
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function xywhToTlbr(rect) {
|
||
|
if (rect && !('left' in rect && 'top' in rect)) {
|
||
|
rect = (0, _extend["default"])({}, rect);
|
||
|
rect.left = rect.x || 0;
|
||
|
rect.top = rect.y || 0;
|
||
|
rect.right = rect.right || rect.left + rect.width;
|
||
|
rect.bottom = rect.bottom || rect.top + rect.height;
|
||
|
}
|
||
|
|
||
|
return rect;
|
||
|
}
|
||
|
|
||
|
function tlbrToXywh(rect) {
|
||
|
if (rect && !('x' in rect && 'y' in rect)) {
|
||
|
rect = (0, _extend["default"])({}, rect);
|
||
|
rect.x = rect.left || 0;
|
||
|
rect.y = rect.top || 0;
|
||
|
rect.width = rect.width || rect.right || 0 - rect.x;
|
||
|
rect.height = rect.height || rect.bottom || 0 - rect.y;
|
||
|
}
|
||
|
|
||
|
return rect;
|
||
|
}
|
||
|
|
||
|
function addEdges(edges, rect, delta) {
|
||
|
if (edges.left) {
|
||
|
rect.left += delta.x;
|
||
|
}
|
||
|
|
||
|
if (edges.right) {
|
||
|
rect.right += delta.x;
|
||
|
}
|
||
|
|
||
|
if (edges.top) {
|
||
|
rect.top += delta.y;
|
||
|
}
|
||
|
|
||
|
if (edges.bottom) {
|
||
|
rect.bottom += delta.y;
|
||
|
}
|
||
|
|
||
|
rect.width = rect.right - rect.left;
|
||
|
rect.height = rect.bottom - rect.top;
|
||
|
}
|
||
|
|
||
|
var _$clone_49 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_49(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_49 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_49 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_49(obj); }
|
||
|
|
||
|
Object.defineProperty(_$clone_49, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$clone_49["default"] = clone;
|
||
|
|
||
|
var arr = ___interopRequireWildcard_49(_$arr_47);
|
||
|
|
||
|
var __is_49 = ___interopRequireWildcard_49(_$is_57);
|
||
|
|
||
|
function ___getRequireWildcardCache_49() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_49 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_49(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_49(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_49(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function clone(source) {
|
||
|
var dest = {};
|
||
|
|
||
|
for (var prop in source) {
|
||
|
var value = source[prop];
|
||
|
|
||
|
if (__is_49.plainObject(value)) {
|
||
|
dest[prop] = clone(value);
|
||
|
} else if (__is_49.array(value)) {
|
||
|
dest[prop] = arr.from(value);
|
||
|
} else {
|
||
|
dest[prop] = value;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
var _$events_52 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_52(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_52 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_52 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_52(obj); }
|
||
|
|
||
|
Object.defineProperty(_$events_52, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$events_52["default"] = _$events_52.FakeEvent = void 0;
|
||
|
|
||
|
/* removed: var _$arr_47 = require("./arr"); */;
|
||
|
|
||
|
var __domUtils_52 = ___interopRequireWildcard_52(_$domUtils_51);
|
||
|
|
||
|
var __is_52 = ___interopRequireWildcard_52(_$is_57);
|
||
|
|
||
|
var ___pointerExtend_52 = ___interopRequireDefault_52(_$pointerExtend_60);
|
||
|
|
||
|
var pointerUtils = ___interopRequireWildcard_52(_$pointerUtils_61);
|
||
|
|
||
|
function ___interopRequireDefault_52(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_52() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_52 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_52(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_52(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_52(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
||
|
|
||
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
||
|
|
||
|
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||
|
|
||
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
||
|
|
||
|
var elements = [];
|
||
|
var targets = [];
|
||
|
var delegatedEvents = {};
|
||
|
var documents = [];
|
||
|
|
||
|
function add(element, type, listener, optionalArg) {
|
||
|
var options = getOptions(optionalArg);
|
||
|
var elementIndex = elements.indexOf(element);
|
||
|
var target = targets[elementIndex];
|
||
|
|
||
|
if (!target) {
|
||
|
target = {
|
||
|
events: {},
|
||
|
typeCount: 0
|
||
|
};
|
||
|
elementIndex = elements.push(element) - 1;
|
||
|
targets.push(target);
|
||
|
}
|
||
|
|
||
|
if (!target.events[type]) {
|
||
|
target.events[type] = [];
|
||
|
target.typeCount++;
|
||
|
}
|
||
|
|
||
|
if (element.removeEventListener && !(0, _$arr_47.contains)(target.events[type], listener)) {
|
||
|
element.addEventListener(type, listener, events.supportsOptions ? options : !!options.capture);
|
||
|
target.events[type].push(listener);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function __remove_52(element, type, listener, optionalArg) {
|
||
|
var options = getOptions(optionalArg);
|
||
|
var elementIndex = elements.indexOf(element);
|
||
|
var target = targets[elementIndex];
|
||
|
|
||
|
if (!target || !target.events) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (type === 'all') {
|
||
|
for (type in target.events) {
|
||
|
if (target.events.hasOwnProperty(type)) {
|
||
|
__remove_52(element, type, 'all');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (target.events[type]) {
|
||
|
var len = target.events[type].length;
|
||
|
|
||
|
if (listener === 'all') {
|
||
|
for (var i = 0; i < len; i++) {
|
||
|
__remove_52(element, type, target.events[type][i], options);
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
} else {
|
||
|
for (var _i = 0; _i < len; _i++) {
|
||
|
if (element.removeEventListener && target.events[type][_i] === listener) {
|
||
|
element.removeEventListener(type, listener, events.supportsOptions ? options : !!options.capture);
|
||
|
target.events[type].splice(_i, 1);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (target.events[type] && target.events[type].length === 0) {
|
||
|
target.events[type] = null;
|
||
|
target.typeCount--;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!target.typeCount) {
|
||
|
targets.splice(elementIndex, 1);
|
||
|
elements.splice(elementIndex, 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function addDelegate(selector, context, type, listener, optionalArg) {
|
||
|
var options = getOptions(optionalArg);
|
||
|
|
||
|
if (!delegatedEvents[type]) {
|
||
|
delegatedEvents[type] = {
|
||
|
contexts: [],
|
||
|
listeners: [],
|
||
|
selectors: []
|
||
|
}; // add delegate listener functions
|
||
|
|
||
|
for (var _i2 = 0; _i2 < documents.length; _i2++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = documents[_i2];
|
||
|
var doc = _ref;
|
||
|
add(doc, type, delegateListener);
|
||
|
add(doc, type, delegateUseCapture, true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var delegated = delegatedEvents[type];
|
||
|
var index;
|
||
|
|
||
|
for (index = delegated.selectors.length - 1; index >= 0; index--) {
|
||
|
if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (index === -1) {
|
||
|
index = delegated.selectors.length;
|
||
|
delegated.selectors.push(selector);
|
||
|
delegated.contexts.push(context);
|
||
|
delegated.listeners.push([]);
|
||
|
} // keep listener and capture and passive flags
|
||
|
|
||
|
|
||
|
delegated.listeners[index].push([listener, !!options.capture, options.passive]);
|
||
|
}
|
||
|
|
||
|
function removeDelegate(selector, context, type, listener, optionalArg) {
|
||
|
var options = getOptions(optionalArg);
|
||
|
var delegated = delegatedEvents[type];
|
||
|
var matchFound = false;
|
||
|
var index;
|
||
|
|
||
|
if (!delegated) {
|
||
|
return;
|
||
|
} // count from last index of delegated to 0
|
||
|
|
||
|
|
||
|
for (index = delegated.selectors.length - 1; index >= 0; index--) {
|
||
|
// look for matching selector and context Node
|
||
|
if (delegated.selectors[index] === selector && delegated.contexts[index] === context) {
|
||
|
var listeners = delegated.listeners[index]; // each item of the listeners array is an array: [function, capture, passive]
|
||
|
|
||
|
for (var i = listeners.length - 1; i >= 0; i--) {
|
||
|
var _listeners$i = _slicedToArray(listeners[i], 3),
|
||
|
fn = _listeners$i[0],
|
||
|
capture = _listeners$i[1],
|
||
|
passive = _listeners$i[2]; // check if the listener functions and capture and passive flags match
|
||
|
|
||
|
|
||
|
if (fn === listener && capture === !!options.capture && passive === options.passive) {
|
||
|
// remove the listener from the array of listeners
|
||
|
listeners.splice(i, 1); // if all listeners for this interactable have been removed
|
||
|
// remove the interactable from the delegated arrays
|
||
|
|
||
|
if (!listeners.length) {
|
||
|
delegated.selectors.splice(index, 1);
|
||
|
delegated.contexts.splice(index, 1);
|
||
|
delegated.listeners.splice(index, 1); // remove delegate function from context
|
||
|
|
||
|
__remove_52(context, type, delegateListener);
|
||
|
__remove_52(context, type, delegateUseCapture, true); // remove the arrays if they are empty
|
||
|
|
||
|
if (!delegated.selectors.length) {
|
||
|
delegatedEvents[type] = null;
|
||
|
}
|
||
|
} // only remove one listener
|
||
|
|
||
|
|
||
|
matchFound = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (matchFound) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
} // bound to the interactable context when a DOM event
|
||
|
// listener is added to a selector interactable
|
||
|
|
||
|
|
||
|
function delegateListener(event, optionalArg) {
|
||
|
var options = getOptions(optionalArg);
|
||
|
var fakeEvent = new FakeEvent(event);
|
||
|
var delegated = delegatedEvents[event.type];
|
||
|
|
||
|
var _pointerUtils$getEven = pointerUtils.getEventTargets(event),
|
||
|
_pointerUtils$getEven2 = _slicedToArray(_pointerUtils$getEven, 1),
|
||
|
eventTarget = _pointerUtils$getEven2[0];
|
||
|
|
||
|
var element = eventTarget; // climb up document tree looking for selector matches
|
||
|
|
||
|
while (__is_52.element(element)) {
|
||
|
for (var i = 0; i < delegated.selectors.length; i++) {
|
||
|
var selector = delegated.selectors[i];
|
||
|
var context = delegated.contexts[i];
|
||
|
|
||
|
if (__domUtils_52.matchesSelector(element, selector) && __domUtils_52.nodeContains(context, eventTarget) && __domUtils_52.nodeContains(context, element)) {
|
||
|
var listeners = delegated.listeners[i];
|
||
|
fakeEvent.currentTarget = element;
|
||
|
|
||
|
for (var _i3 = 0; _i3 < listeners.length; _i3++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = listeners[_i3];
|
||
|
|
||
|
var _ref3 = _ref2,
|
||
|
_ref4 = _slicedToArray(_ref3, 3),
|
||
|
fn = _ref4[0],
|
||
|
capture = _ref4[1],
|
||
|
passive = _ref4[2];
|
||
|
|
||
|
if (capture === !!options.capture && passive === options.passive) {
|
||
|
fn(fakeEvent);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
element = __domUtils_52.parentNode(element);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function delegateUseCapture(event) {
|
||
|
return delegateListener.call(this, event, true);
|
||
|
}
|
||
|
|
||
|
function getOptions(param) {
|
||
|
return __is_52.object(param) ? param : {
|
||
|
capture: param
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var FakeEvent =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
function FakeEvent(originalEvent) {
|
||
|
_classCallCheck(this, FakeEvent);
|
||
|
|
||
|
this.originalEvent = originalEvent;
|
||
|
|
||
|
_defineProperty(this, "currentTarget", void 0);
|
||
|
|
||
|
// duplicate the event so that currentTarget can be changed
|
||
|
(0, ___pointerExtend_52["default"])(this, originalEvent);
|
||
|
}
|
||
|
|
||
|
_createClass(FakeEvent, [{
|
||
|
key: "preventOriginalDefault",
|
||
|
value: function preventOriginalDefault() {
|
||
|
this.originalEvent.preventDefault();
|
||
|
}
|
||
|
}, {
|
||
|
key: "stopPropagation",
|
||
|
value: function stopPropagation() {
|
||
|
this.originalEvent.stopPropagation();
|
||
|
}
|
||
|
}, {
|
||
|
key: "stopImmediatePropagation",
|
||
|
value: function stopImmediatePropagation() {
|
||
|
this.originalEvent.stopImmediatePropagation();
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return FakeEvent;
|
||
|
}();
|
||
|
|
||
|
_$events_52.FakeEvent = FakeEvent;
|
||
|
var events = {
|
||
|
add: add,
|
||
|
remove: __remove_52,
|
||
|
addDelegate: addDelegate,
|
||
|
removeDelegate: removeDelegate,
|
||
|
delegateListener: delegateListener,
|
||
|
delegateUseCapture: delegateUseCapture,
|
||
|
delegatedEvents: delegatedEvents,
|
||
|
documents: documents,
|
||
|
supportsOptions: false,
|
||
|
supportsPassive: false,
|
||
|
_elements: elements,
|
||
|
_targets: targets,
|
||
|
init: function init(window) {
|
||
|
window.document.createElement('div').addEventListener('test', null, {
|
||
|
get capture() {
|
||
|
return events.supportsOptions = true;
|
||
|
},
|
||
|
|
||
|
get passive() {
|
||
|
return events.supportsPassive = true;
|
||
|
}
|
||
|
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
var ___default_52 = events;
|
||
|
_$events_52["default"] = ___default_52;
|
||
|
|
||
|
var _$getOriginXY_54 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$getOriginXY_54, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$getOriginXY_54["default"] = ___default_54;
|
||
|
|
||
|
/* removed: var _$rect_63 = require("./rect"); */;
|
||
|
|
||
|
function ___default_54(target, element, actionName) {
|
||
|
var actionOptions = target.options[actionName];
|
||
|
var actionOrigin = actionOptions && actionOptions.origin;
|
||
|
var origin = actionOrigin || target.options.origin;
|
||
|
var originRect = (0, _$rect_63.resolveRectLike)(origin, target, element, [target && element]);
|
||
|
return (0, _$rect_63.rectToXY)(originRect) || {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var _$normalizeListeners_59 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_59(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_59 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_59 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_59(obj); }
|
||
|
|
||
|
Object.defineProperty(_$normalizeListeners_59, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$normalizeListeners_59["default"] = normalize;
|
||
|
|
||
|
var ___extend_59 = ___interopRequireDefault_59(_$extend_53);
|
||
|
|
||
|
var __is_59 = ___interopRequireWildcard_59(_$is_57);
|
||
|
|
||
|
function ___getRequireWildcardCache_59() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_59 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_59(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_59(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_59(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_59(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function normalize(type, listeners, result) {
|
||
|
result = result || {};
|
||
|
|
||
|
if (__is_59.string(type) && type.search(' ') !== -1) {
|
||
|
type = split(type);
|
||
|
}
|
||
|
|
||
|
if (__is_59.array(type)) {
|
||
|
return type.reduce(function (acc, t) {
|
||
|
return (0, ___extend_59["default"])(acc, normalize(t, listeners, result));
|
||
|
}, result);
|
||
|
} // ({ type: fn }) -> ('', { type: fn })
|
||
|
|
||
|
|
||
|
if (__is_59.object(type)) {
|
||
|
listeners = type;
|
||
|
type = '';
|
||
|
}
|
||
|
|
||
|
if (__is_59.func(listeners)) {
|
||
|
result[type] = result[type] || [];
|
||
|
result[type].push(listeners);
|
||
|
} else if (__is_59.array(listeners)) {
|
||
|
for (var _i = 0; _i < listeners.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = listeners[_i];
|
||
|
var l = _ref;
|
||
|
normalize(type, l, result);
|
||
|
}
|
||
|
} else if (__is_59.object(listeners)) {
|
||
|
for (var prefix in listeners) {
|
||
|
var combinedTypes = split(prefix).map(function (p) {
|
||
|
return "".concat(type).concat(p);
|
||
|
});
|
||
|
normalize(combinedTypes, listeners[prefix], result);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
function split(type) {
|
||
|
return type.trim().split(/ +/);
|
||
|
}
|
||
|
|
||
|
var _$raf_62 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$raf_62, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$raf_62["default"] = void 0;
|
||
|
var lastTime = 0;
|
||
|
|
||
|
var _request;
|
||
|
|
||
|
var _cancel;
|
||
|
|
||
|
function __init_62(window) {
|
||
|
_request = window.requestAnimationFrame;
|
||
|
_cancel = window.cancelAnimationFrame;
|
||
|
|
||
|
if (!_request) {
|
||
|
var vendors = ['ms', 'moz', 'webkit', 'o'];
|
||
|
|
||
|
for (var _i = 0; _i < vendors.length; _i++) {
|
||
|
var vendor = vendors[_i];
|
||
|
_request = window["".concat(vendor, "RequestAnimationFrame")];
|
||
|
_cancel = window["".concat(vendor, "CancelAnimationFrame")] || window["".concat(vendor, "CancelRequestAnimationFrame")];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!_request) {
|
||
|
_request = function request(callback) {
|
||
|
var currTime = Date.now();
|
||
|
var timeToCall = Math.max(0, 16 - (currTime - lastTime)); // eslint-disable-next-line standard/no-callback-literal
|
||
|
|
||
|
var token = setTimeout(function () {
|
||
|
callback(currTime + timeToCall);
|
||
|
}, timeToCall);
|
||
|
lastTime = currTime + timeToCall;
|
||
|
return token;
|
||
|
};
|
||
|
|
||
|
_cancel = function cancel(token) {
|
||
|
return clearTimeout(token);
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var ___default_62 = {
|
||
|
request: function request(callback) {
|
||
|
return _request(callback);
|
||
|
},
|
||
|
cancel: function cancel(token) {
|
||
|
return _cancel(token);
|
||
|
},
|
||
|
init: __init_62
|
||
|
};
|
||
|
_$raf_62["default"] = ___default_62;
|
||
|
|
||
|
var _$index_56 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_56(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_56 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_56 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_56(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_56, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_56.warnOnce = warnOnce;
|
||
|
_$index_56._getQBezierValue = _getQBezierValue;
|
||
|
_$index_56.getQuadraticCurvePoint = getQuadraticCurvePoint;
|
||
|
_$index_56.easeOutQuad = easeOutQuad;
|
||
|
_$index_56.copyAction = copyAction;
|
||
|
Object.defineProperty(_$index_56, "win", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___window_56["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "browser", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___browser_56["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "clone", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _clone["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "events", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _events["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "extend", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___extend_56["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "getOriginXY", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _getOriginXY["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "hypot", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___hypot_56["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "normalizeListeners", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _normalizeListeners["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_56, "raf", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _raf["default"];
|
||
|
}
|
||
|
});
|
||
|
_$index_56.rect = _$index_56.pointer = _$index_56.is = _$index_56.dom = _$index_56.arr = void 0;
|
||
|
|
||
|
var __arr_56 = ___interopRequireWildcard_56(_$arr_47);
|
||
|
|
||
|
_$index_56.arr = __arr_56;
|
||
|
|
||
|
var dom = ___interopRequireWildcard_56(_$domUtils_51);
|
||
|
|
||
|
_$index_56.dom = dom;
|
||
|
|
||
|
var __is_56 = ___interopRequireWildcard_56(_$is_57);
|
||
|
|
||
|
_$index_56.is = __is_56;
|
||
|
|
||
|
var pointer = ___interopRequireWildcard_56(_$pointerUtils_61);
|
||
|
|
||
|
_$index_56.pointer = pointer;
|
||
|
|
||
|
var rect = ___interopRequireWildcard_56(_$rect_63);
|
||
|
|
||
|
_$index_56.rect = rect;
|
||
|
|
||
|
var ___window_56 = ___interopRequireDefault_56(_$window_66);
|
||
|
|
||
|
var ___browser_56 = ___interopRequireDefault_56(_$browser_48);
|
||
|
|
||
|
var _clone = ___interopRequireDefault_56(_$clone_49);
|
||
|
|
||
|
var _events = ___interopRequireDefault_56(_$events_52);
|
||
|
|
||
|
var ___extend_56 = ___interopRequireDefault_56(_$extend_53);
|
||
|
|
||
|
var _getOriginXY = ___interopRequireDefault_56(_$getOriginXY_54);
|
||
|
|
||
|
var ___hypot_56 = ___interopRequireDefault_56(_$hypot_55);
|
||
|
|
||
|
var _normalizeListeners = ___interopRequireDefault_56(_$normalizeListeners_59);
|
||
|
|
||
|
var _raf = ___interopRequireDefault_56(_$raf_62);
|
||
|
|
||
|
function ___interopRequireDefault_56(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_56() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_56 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_56(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_56(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_56(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function warnOnce(method, message) {
|
||
|
var warned = false; // eslint-disable-next-line no-shadow
|
||
|
|
||
|
return function () {
|
||
|
if (!warned) {
|
||
|
___window_56["default"].window.console.warn(message);
|
||
|
|
||
|
warned = true;
|
||
|
}
|
||
|
|
||
|
return method.apply(this, arguments);
|
||
|
};
|
||
|
} // http://stackoverflow.com/a/5634528/2280888
|
||
|
|
||
|
|
||
|
function _getQBezierValue(t, p1, p2, p3) {
|
||
|
var iT = 1 - t;
|
||
|
return iT * iT * p1 + 2 * iT * t * p2 + t * t * p3;
|
||
|
}
|
||
|
|
||
|
function getQuadraticCurvePoint(startX, startY, cpX, cpY, endX, endY, position) {
|
||
|
return {
|
||
|
x: _getQBezierValue(position, startX, cpX, endX),
|
||
|
y: _getQBezierValue(position, startY, cpY, endY)
|
||
|
};
|
||
|
} // http://gizma.com/easing/
|
||
|
|
||
|
|
||
|
function easeOutQuad(t, b, c, d) {
|
||
|
t /= d;
|
||
|
return -c * t * (t - 2) + b;
|
||
|
}
|
||
|
|
||
|
function copyAction(dest, src) {
|
||
|
dest.name = src.name;
|
||
|
dest.axis = src.axis;
|
||
|
dest.edges = src.edges;
|
||
|
return dest;
|
||
|
}
|
||
|
|
||
|
var _$defaultOptions_20 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$defaultOptions_20, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$defaultOptions_20["default"] = _$defaultOptions_20.defaults = void 0;
|
||
|
// tslint:disable no-empty-interface
|
||
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
||
|
// export interface Options extends BaseDefaults, PerActionDefaults {}
|
||
|
var defaults = {
|
||
|
base: {
|
||
|
preventDefault: 'auto',
|
||
|
deltaSource: 'page'
|
||
|
},
|
||
|
perAction: {
|
||
|
enabled: false,
|
||
|
origin: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
}
|
||
|
},
|
||
|
actions: {}
|
||
|
};
|
||
|
_$defaultOptions_20.defaults = defaults;
|
||
|
var ___default_20 = defaults;
|
||
|
_$defaultOptions_20["default"] = ___default_20;
|
||
|
|
||
|
var _$Eventable_14 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_14(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_14 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_14 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_14(obj); }
|
||
|
|
||
|
Object.defineProperty(_$Eventable_14, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$Eventable_14["default"] = void 0;
|
||
|
|
||
|
var __arr_14 = ___interopRequireWildcard_14(_$arr_47);
|
||
|
|
||
|
var ___extend_14 = ___interopRequireDefault_14(_$extend_53);
|
||
|
|
||
|
var ___normalizeListeners_14 = ___interopRequireDefault_14(_$normalizeListeners_59);
|
||
|
|
||
|
function ___interopRequireDefault_14(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_14() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_14 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_14(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_14(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_14(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___classCallCheck_14(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_14(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_14(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_14(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_14(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___defineProperty_14(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
function fireUntilImmediateStopped(event, listeners) {
|
||
|
for (var _i = 0; _i < listeners.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = listeners[_i];
|
||
|
var listener = _ref;
|
||
|
|
||
|
if (event.immediatePropagationStopped) {
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
listener(event);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var Eventable =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
function Eventable(options) {
|
||
|
___classCallCheck_14(this, Eventable);
|
||
|
|
||
|
___defineProperty_14(this, "options", void 0);
|
||
|
|
||
|
___defineProperty_14(this, "types", {});
|
||
|
|
||
|
___defineProperty_14(this, "propagationStopped", false);
|
||
|
|
||
|
___defineProperty_14(this, "immediatePropagationStopped", false);
|
||
|
|
||
|
___defineProperty_14(this, "global", void 0);
|
||
|
|
||
|
this.options = (0, ___extend_14["default"])({}, options || {});
|
||
|
}
|
||
|
|
||
|
___createClass_14(Eventable, [{
|
||
|
key: "fire",
|
||
|
value: function fire(event) {
|
||
|
var listeners;
|
||
|
var global = this.global; // Interactable#on() listeners
|
||
|
// tslint:disable no-conditional-assignment
|
||
|
|
||
|
if (listeners = this.types[event.type]) {
|
||
|
fireUntilImmediateStopped(event, listeners);
|
||
|
} // interact.on() listeners
|
||
|
|
||
|
|
||
|
if (!event.propagationStopped && global && (listeners = global[event.type])) {
|
||
|
fireUntilImmediateStopped(event, listeners);
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "on",
|
||
|
value: function on(type, listener) {
|
||
|
var listeners = (0, ___normalizeListeners_14["default"])(type, listener);
|
||
|
|
||
|
for (type in listeners) {
|
||
|
this.types[type] = __arr_14.merge(this.types[type] || [], listeners[type]);
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "off",
|
||
|
value: function off(type, listener) {
|
||
|
var listeners = (0, ___normalizeListeners_14["default"])(type, listener);
|
||
|
|
||
|
for (type in listeners) {
|
||
|
var eventList = this.types[type];
|
||
|
|
||
|
if (!eventList || !eventList.length) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
for (var _i2 = 0; _i2 < listeners[type].length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = listeners[type][_i2];
|
||
|
var subListener = _ref2;
|
||
|
|
||
|
var _index = eventList.indexOf(subListener);
|
||
|
|
||
|
if (_index !== -1) {
|
||
|
eventList.splice(_index, 1);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "getRect",
|
||
|
value: function getRect(_element) {
|
||
|
return null;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Eventable;
|
||
|
}();
|
||
|
|
||
|
var ___default_14 = Eventable;
|
||
|
_$Eventable_14["default"] = ___default_14;
|
||
|
|
||
|
var _$Interactable_16 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_16(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_16 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_16 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_16(obj); }
|
||
|
|
||
|
Object.defineProperty(_$Interactable_16, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$Interactable_16["default"] = _$Interactable_16.Interactable = void 0;
|
||
|
|
||
|
var __arr_16 = ___interopRequireWildcard_16(_$arr_47);
|
||
|
|
||
|
var ___browser_16 = ___interopRequireDefault_16(_$browser_48);
|
||
|
|
||
|
var ___clone_16 = ___interopRequireDefault_16(_$clone_49);
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("@interactjs/utils/domUtils"); */;
|
||
|
|
||
|
var ___events_16 = ___interopRequireDefault_16(_$events_52);
|
||
|
|
||
|
var ___extend_16 = ___interopRequireDefault_16(_$extend_53);
|
||
|
|
||
|
var __is_16 = ___interopRequireWildcard_16(_$is_57);
|
||
|
|
||
|
var ___normalizeListeners_16 = ___interopRequireDefault_16(_$normalizeListeners_59);
|
||
|
|
||
|
/* removed: var _$window_66 = require("@interactjs/utils/window"); */;
|
||
|
|
||
|
var _Eventable = ___interopRequireDefault_16(_$Eventable_14);
|
||
|
|
||
|
function ___interopRequireDefault_16(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_16() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_16 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_16(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_16(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_16(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___classCallCheck_16(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_16(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_16(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_16(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_16(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___defineProperty_16(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
/** */
|
||
|
var Interactable =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
___createClass_16(Interactable, [{
|
||
|
key: "_defaults",
|
||
|
get: function get() {
|
||
|
return {
|
||
|
base: {},
|
||
|
perAction: {},
|
||
|
actions: {}
|
||
|
};
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
/** */
|
||
|
function Interactable(target, options, defaultContext) {
|
||
|
___classCallCheck_16(this, Interactable);
|
||
|
|
||
|
___defineProperty_16(this, "options", void 0);
|
||
|
|
||
|
___defineProperty_16(this, "_actions", void 0);
|
||
|
|
||
|
___defineProperty_16(this, "target", void 0);
|
||
|
|
||
|
___defineProperty_16(this, "events", new _Eventable["default"]());
|
||
|
|
||
|
___defineProperty_16(this, "_context", void 0);
|
||
|
|
||
|
___defineProperty_16(this, "_win", void 0);
|
||
|
|
||
|
___defineProperty_16(this, "_doc", void 0);
|
||
|
|
||
|
this._actions = options.actions;
|
||
|
this.target = target;
|
||
|
this._context = options.context || defaultContext;
|
||
|
this._win = (0, _$window_66.getWindow)((0, _$domUtils_51.trySelector)(target) ? this._context : target);
|
||
|
this._doc = this._win.document;
|
||
|
this.set(options);
|
||
|
}
|
||
|
|
||
|
___createClass_16(Interactable, [{
|
||
|
key: "setOnEvents",
|
||
|
value: function setOnEvents(actionName, phases) {
|
||
|
if (__is_16.func(phases.onstart)) {
|
||
|
this.on("".concat(actionName, "start"), phases.onstart);
|
||
|
}
|
||
|
|
||
|
if (__is_16.func(phases.onmove)) {
|
||
|
this.on("".concat(actionName, "move"), phases.onmove);
|
||
|
}
|
||
|
|
||
|
if (__is_16.func(phases.onend)) {
|
||
|
this.on("".concat(actionName, "end"), phases.onend);
|
||
|
}
|
||
|
|
||
|
if (__is_16.func(phases.oninertiastart)) {
|
||
|
this.on("".concat(actionName, "inertiastart"), phases.oninertiastart);
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
}, {
|
||
|
key: "updatePerActionListeners",
|
||
|
value: function updatePerActionListeners(actionName, prev, cur) {
|
||
|
if (__is_16.array(prev) || __is_16.object(prev)) {
|
||
|
this.off(actionName, prev);
|
||
|
}
|
||
|
|
||
|
if (__is_16.array(cur) || __is_16.object(cur)) {
|
||
|
this.on(actionName, cur);
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "setPerAction",
|
||
|
value: function setPerAction(actionName, options) {
|
||
|
var defaults = this._defaults; // for all the default per-action options
|
||
|
|
||
|
for (var optionName_ in options) {
|
||
|
var optionName = optionName_;
|
||
|
var actionOptions = this.options[actionName];
|
||
|
var optionValue = options[optionName]; // remove old event listeners and add new ones
|
||
|
|
||
|
if (optionName === 'listeners') {
|
||
|
this.updatePerActionListeners(actionName, actionOptions.listeners, optionValue);
|
||
|
} // if the option value is an array
|
||
|
|
||
|
|
||
|
if (__is_16.array(optionValue)) {
|
||
|
actionOptions[optionName] = __arr_16.from(optionValue);
|
||
|
} // if the option value is an object
|
||
|
else if (__is_16.plainObject(optionValue)) {
|
||
|
// copy the object
|
||
|
actionOptions[optionName] = (0, ___extend_16["default"])(actionOptions[optionName] || {}, (0, ___clone_16["default"])(optionValue)); // set anabled field to true if it exists in the defaults
|
||
|
|
||
|
if (__is_16.object(defaults.perAction[optionName]) && 'enabled' in defaults.perAction[optionName]) {
|
||
|
actionOptions[optionName].enabled = optionValue.enabled !== false;
|
||
|
}
|
||
|
} // if the option value is a boolean and the default is an object
|
||
|
else if (__is_16.bool(optionValue) && __is_16.object(defaults.perAction[optionName])) {
|
||
|
actionOptions[optionName].enabled = optionValue;
|
||
|
} // if it's anything else, do a plain assignment
|
||
|
else {
|
||
|
actionOptions[optionName] = optionValue;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* The default function to get an Interactables bounding rect. Can be
|
||
|
* overridden using {@link Interactable.rectChecker}.
|
||
|
*
|
||
|
* @param {Element} [element] The element to measure.
|
||
|
* @return {object} The object's bounding rectangle.
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "getRect",
|
||
|
value: function getRect(element) {
|
||
|
element = element || (__is_16.element(this.target) ? this.target : null);
|
||
|
|
||
|
if (__is_16.string(this.target)) {
|
||
|
element = element || this._context.querySelector(this.target);
|
||
|
}
|
||
|
|
||
|
return (0, _$domUtils_51.getElementRect)(element);
|
||
|
}
|
||
|
/**
|
||
|
* Returns or sets the function used to calculate the interactable's
|
||
|
* element's rectangle
|
||
|
*
|
||
|
* @param {function} [checker] A function which returns this Interactable's
|
||
|
* bounding rectangle. See {@link Interactable.getRect}
|
||
|
* @return {function | object} The checker function or this Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "rectChecker",
|
||
|
value: function rectChecker(checker) {
|
||
|
if (__is_16.func(checker)) {
|
||
|
this.getRect = checker;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (checker === null) {
|
||
|
delete this.getRect;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.getRect;
|
||
|
}
|
||
|
}, {
|
||
|
key: "_backCompatOption",
|
||
|
value: function _backCompatOption(optionName, newValue) {
|
||
|
if ((0, _$domUtils_51.trySelector)(newValue) || __is_16.object(newValue)) {
|
||
|
this.options[optionName] = newValue;
|
||
|
|
||
|
for (var _i = 0; _i < this._actions.names.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = this._actions.names[_i];
|
||
|
var action = _ref;
|
||
|
this.options[action][optionName] = newValue;
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options[optionName];
|
||
|
}
|
||
|
/**
|
||
|
* Gets or sets the origin of the Interactable's element. The x and y
|
||
|
* of the origin will be subtracted from action event coordinates.
|
||
|
*
|
||
|
* @param {Element | object | string} [origin] An HTML or SVG Element whose
|
||
|
* rect will be used, an object eg. { x: 0, y: 0 } or string 'parent', 'self'
|
||
|
* or any CSS selector
|
||
|
*
|
||
|
* @return {object} The current origin or this Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "origin",
|
||
|
value: function origin(newValue) {
|
||
|
return this._backCompatOption('origin', newValue);
|
||
|
}
|
||
|
/**
|
||
|
* Returns or sets the mouse coordinate types used to calculate the
|
||
|
* movement of the pointer.
|
||
|
*
|
||
|
* @param {string} [newValue] Use 'client' if you will be scrolling while
|
||
|
* interacting; Use 'page' if you want autoScroll to work
|
||
|
* @return {string | object} The current deltaSource or this Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "deltaSource",
|
||
|
value: function deltaSource(newValue) {
|
||
|
if (newValue === 'page' || newValue === 'client') {
|
||
|
this.options.deltaSource = newValue;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.deltaSource;
|
||
|
}
|
||
|
/**
|
||
|
* Gets the selector context Node of the Interactable. The default is
|
||
|
* `window.document`.
|
||
|
*
|
||
|
* @return {Node} The context Node of this Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "context",
|
||
|
value: function context() {
|
||
|
return this._context;
|
||
|
}
|
||
|
}, {
|
||
|
key: "inContext",
|
||
|
value: function inContext(element) {
|
||
|
return this._context === element.ownerDocument || (0, _$domUtils_51.nodeContains)(this._context, element);
|
||
|
}
|
||
|
}, {
|
||
|
key: "testIgnoreAllow",
|
||
|
value: function testIgnoreAllow(options, targetNode, eventTarget) {
|
||
|
return !this.testIgnore(options.ignoreFrom, targetNode, eventTarget) && this.testAllow(options.allowFrom, targetNode, eventTarget);
|
||
|
}
|
||
|
}, {
|
||
|
key: "testAllow",
|
||
|
value: function testAllow(allowFrom, targetNode, element) {
|
||
|
if (!allowFrom) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
if (!__is_16.element(element)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (__is_16.string(allowFrom)) {
|
||
|
return (0, _$domUtils_51.matchesUpTo)(element, allowFrom, targetNode);
|
||
|
} else if (__is_16.element(allowFrom)) {
|
||
|
return (0, _$domUtils_51.nodeContains)(allowFrom, element);
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
}, {
|
||
|
key: "testIgnore",
|
||
|
value: function testIgnore(ignoreFrom, targetNode, element) {
|
||
|
if (!ignoreFrom || !__is_16.element(element)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (__is_16.string(ignoreFrom)) {
|
||
|
return (0, _$domUtils_51.matchesUpTo)(element, ignoreFrom, targetNode);
|
||
|
} else if (__is_16.element(ignoreFrom)) {
|
||
|
return (0, _$domUtils_51.nodeContains)(ignoreFrom, element);
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
/**
|
||
|
* Calls listeners for the given InteractEvent type bound globally
|
||
|
* and directly to this Interactable
|
||
|
*
|
||
|
* @param {InteractEvent} iEvent The InteractEvent object to be fired on this
|
||
|
* Interactable
|
||
|
* @return {Interactable} this Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "fire",
|
||
|
value: function fire(iEvent) {
|
||
|
this.events.fire(iEvent);
|
||
|
return this;
|
||
|
}
|
||
|
}, {
|
||
|
key: "_onOff",
|
||
|
value: function _onOff(method, typeArg, listenerArg, options) {
|
||
|
if (__is_16.object(typeArg) && !__is_16.array(typeArg)) {
|
||
|
options = listenerArg;
|
||
|
listenerArg = null;
|
||
|
}
|
||
|
|
||
|
var addRemove = method === 'on' ? 'add' : 'remove';
|
||
|
var listeners = (0, ___normalizeListeners_16["default"])(typeArg, listenerArg);
|
||
|
|
||
|
for (var type in listeners) {
|
||
|
if (type === 'wheel') {
|
||
|
type = ___browser_16["default"].wheelEvent;
|
||
|
}
|
||
|
|
||
|
for (var _i2 = 0; _i2 < listeners[type].length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = listeners[type][_i2];
|
||
|
var listener = _ref2;
|
||
|
|
||
|
// if it is an action event type
|
||
|
if (__arr_16.contains(this._actions.eventTypes, type)) {
|
||
|
this.events[method](type, listener);
|
||
|
} // delegated event
|
||
|
else if (__is_16.string(this.target)) {
|
||
|
___events_16["default"]["".concat(addRemove, "Delegate")](this.target, this._context, type, listener, options);
|
||
|
} // remove listener from this Interactable's element
|
||
|
else {
|
||
|
___events_16["default"][addRemove](this.target, type, listener, options);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
/**
|
||
|
* Binds a listener for an InteractEvent, pointerEvent or DOM event.
|
||
|
*
|
||
|
* @param {string | array | object} types The types of events to listen
|
||
|
* for
|
||
|
* @param {function | array | object} [listener] The event listener function(s)
|
||
|
* @param {object | boolean} [options] options object or useCapture flag for
|
||
|
* addEventListener
|
||
|
* @return {Interactable} This Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "on",
|
||
|
value: function on(types, listener, options) {
|
||
|
return this._onOff('on', types, listener, options);
|
||
|
}
|
||
|
/**
|
||
|
* Removes an InteractEvent, pointerEvent or DOM event listener.
|
||
|
*
|
||
|
* @param {string | array | object} types The types of events that were
|
||
|
* listened for
|
||
|
* @param {function | array | object} [listener] The event listener function(s)
|
||
|
* @param {object | boolean} [options] options object or useCapture flag for
|
||
|
* removeEventListener
|
||
|
* @return {Interactable} This Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "off",
|
||
|
value: function off(types, listener, options) {
|
||
|
return this._onOff('off', types, listener, options);
|
||
|
}
|
||
|
/**
|
||
|
* Reset the options of this Interactable
|
||
|
*
|
||
|
* @param {object} options The new settings to apply
|
||
|
* @return {object} This Interactable
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "set",
|
||
|
value: function set(options) {
|
||
|
var defaults = this._defaults;
|
||
|
|
||
|
if (!__is_16.object(options)) {
|
||
|
options = {};
|
||
|
}
|
||
|
|
||
|
this.options = (0, ___clone_16["default"])(defaults.base);
|
||
|
|
||
|
for (var actionName_ in this._actions.methodDict) {
|
||
|
var actionName = actionName_;
|
||
|
var methodName = this._actions.methodDict[actionName];
|
||
|
this.options[actionName] = {};
|
||
|
this.setPerAction(actionName, (0, ___extend_16["default"])((0, ___extend_16["default"])({}, defaults.perAction), defaults.actions[actionName]));
|
||
|
this[methodName](options[actionName]);
|
||
|
}
|
||
|
|
||
|
for (var setting in options) {
|
||
|
if (__is_16.func(this[setting])) {
|
||
|
this[setting](options[setting]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
/**
|
||
|
* Remove this interactable from the list of interactables and remove it's
|
||
|
* action capabilities and event listeners
|
||
|
*
|
||
|
* @return {interact}
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "unset",
|
||
|
value: function unset() {
|
||
|
___events_16["default"].remove(this.target, 'all');
|
||
|
|
||
|
if (__is_16.string(this.target)) {
|
||
|
// remove delegated events
|
||
|
for (var type in ___events_16["default"].delegatedEvents) {
|
||
|
var delegated = ___events_16["default"].delegatedEvents[type];
|
||
|
|
||
|
if (delegated.selectors[0] === this.target && delegated.contexts[0] === this._context) {
|
||
|
delegated.selectors.splice(0, 1);
|
||
|
delegated.contexts.splice(0, 1);
|
||
|
delegated.listeners.splice(0, 1);
|
||
|
}
|
||
|
|
||
|
___events_16["default"].remove(this._context, type, ___events_16["default"].delegateListener);
|
||
|
|
||
|
___events_16["default"].remove(this._context, type, ___events_16["default"].delegateUseCapture, true);
|
||
|
}
|
||
|
} else {
|
||
|
___events_16["default"].remove(this.target, 'all');
|
||
|
}
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return Interactable;
|
||
|
}();
|
||
|
|
||
|
_$Interactable_16.Interactable = Interactable;
|
||
|
var ___default_16 = Interactable;
|
||
|
_$Interactable_16["default"] = ___default_16;
|
||
|
|
||
|
var _$InteractableSet_17 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_17(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_17 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_17 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_17(obj); }
|
||
|
|
||
|
Object.defineProperty(_$InteractableSet_17, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$InteractableSet_17["default"] = void 0;
|
||
|
|
||
|
var __arr_17 = ___interopRequireWildcard_17(_$arr_47);
|
||
|
|
||
|
var __domUtils_17 = ___interopRequireWildcard_17(_$domUtils_51);
|
||
|
|
||
|
var ___extend_17 = ___interopRequireDefault_17(_$extend_53);
|
||
|
|
||
|
var __is_17 = ___interopRequireWildcard_17(_$is_57);
|
||
|
|
||
|
function ___interopRequireDefault_17(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_17() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_17 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_17(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_17(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_17(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___classCallCheck_17(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_17(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_17(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_17(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_17(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___defineProperty_17(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var InteractableSet =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
// all set interactables
|
||
|
function InteractableSet(scope) {
|
||
|
var _this = this;
|
||
|
|
||
|
___classCallCheck_17(this, InteractableSet);
|
||
|
|
||
|
this.scope = scope;
|
||
|
|
||
|
___defineProperty_17(this, "list", []);
|
||
|
|
||
|
___defineProperty_17(this, "selectorMap", {});
|
||
|
|
||
|
scope.addListeners({
|
||
|
'interactable:unset': function interactableUnset(_ref) {
|
||
|
var interactable = _ref.interactable;
|
||
|
var target = interactable.target,
|
||
|
context = interactable._context;
|
||
|
var targetMappings = __is_17.string(target) ? _this.selectorMap[target] : target[_this.scope.id];
|
||
|
var targetIndex = targetMappings.findIndex(function (m) {
|
||
|
return m.context === context;
|
||
|
});
|
||
|
|
||
|
if (targetMappings[targetIndex]) {
|
||
|
// Destroying mappingInfo's context and interactable
|
||
|
targetMappings[targetIndex].context = null;
|
||
|
targetMappings[targetIndex].interactable = null;
|
||
|
}
|
||
|
|
||
|
targetMappings.splice(targetIndex, 1);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
___createClass_17(InteractableSet, [{
|
||
|
key: "new",
|
||
|
value: function _new(target, options) {
|
||
|
options = (0, ___extend_17["default"])(options || {}, {
|
||
|
actions: this.scope.actions
|
||
|
});
|
||
|
var interactable = new this.scope.Interactable(target, options, this.scope.document);
|
||
|
var mappingInfo = {
|
||
|
context: interactable._context,
|
||
|
interactable: interactable
|
||
|
};
|
||
|
this.scope.addDocument(interactable._doc);
|
||
|
this.list.push(interactable);
|
||
|
|
||
|
if (__is_17.string(target)) {
|
||
|
if (!this.selectorMap[target]) {
|
||
|
this.selectorMap[target] = [];
|
||
|
}
|
||
|
|
||
|
this.selectorMap[target].push(mappingInfo);
|
||
|
} else {
|
||
|
if (!interactable.target[this.scope.id]) {
|
||
|
Object.defineProperty(target, this.scope.id, {
|
||
|
value: [],
|
||
|
configurable: true
|
||
|
});
|
||
|
}
|
||
|
|
||
|
target[this.scope.id].push(mappingInfo);
|
||
|
}
|
||
|
|
||
|
this.scope.fire('interactable:new', {
|
||
|
target: target,
|
||
|
options: options,
|
||
|
interactable: interactable,
|
||
|
win: this.scope._win
|
||
|
});
|
||
|
return interactable;
|
||
|
}
|
||
|
}, {
|
||
|
key: "get",
|
||
|
value: function get(target, options) {
|
||
|
var context = options && options.context || this.scope.document;
|
||
|
var isSelector = __is_17.string(target);
|
||
|
var targetMappings = isSelector ? this.selectorMap[target] : target[this.scope.id];
|
||
|
|
||
|
if (!targetMappings) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var found = __arr_17.find(targetMappings, function (m) {
|
||
|
return m.context === context && (isSelector || m.interactable.inContext(target));
|
||
|
});
|
||
|
return found && found.interactable;
|
||
|
}
|
||
|
}, {
|
||
|
key: "forEachMatch",
|
||
|
value: function forEachMatch(node, callback) {
|
||
|
for (var _i = 0; _i < this.list.length; _i++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = this.list[_i];
|
||
|
var _interactable = _ref2;
|
||
|
var ret = void 0;
|
||
|
|
||
|
if ((__is_17.string(_interactable.target) // target is a selector and the element matches
|
||
|
? __is_17.element(node) && __domUtils_17.matchesSelector(node, _interactable.target) : // target is the element
|
||
|
node === _interactable.target) && // the element is in context
|
||
|
_interactable.inContext(node)) {
|
||
|
ret = callback(_interactable);
|
||
|
}
|
||
|
|
||
|
if (ret !== undefined) {
|
||
|
return ret;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return InteractableSet;
|
||
|
}();
|
||
|
|
||
|
_$InteractableSet_17["default"] = InteractableSet;
|
||
|
|
||
|
var _$BaseEvent_13 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$BaseEvent_13, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$BaseEvent_13["default"] = _$BaseEvent_13.BaseEvent = _$BaseEvent_13.EventPhase = void 0;
|
||
|
|
||
|
function ___classCallCheck_13(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_13(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_13(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_13(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_13(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___defineProperty_13(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var EventPhase;
|
||
|
_$BaseEvent_13.EventPhase = EventPhase;
|
||
|
|
||
|
(function (EventPhase) {
|
||
|
EventPhase["Start"] = "start";
|
||
|
EventPhase["Move"] = "move";
|
||
|
EventPhase["End"] = "end";
|
||
|
EventPhase["_NONE"] = "";
|
||
|
})(EventPhase || (_$BaseEvent_13.EventPhase = EventPhase = {}));
|
||
|
|
||
|
var BaseEvent =
|
||
|
/*#__PURE__*/
|
||
|
function () {
|
||
|
___createClass_13(BaseEvent, [{
|
||
|
key: "interaction",
|
||
|
get: function get() {
|
||
|
return this._interaction._proxy;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
function BaseEvent(interaction) {
|
||
|
___classCallCheck_13(this, BaseEvent);
|
||
|
|
||
|
___defineProperty_13(this, "type", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "target", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "currentTarget", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "interactable", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "_interaction", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "timeStamp", void 0);
|
||
|
|
||
|
___defineProperty_13(this, "immediatePropagationStopped", false);
|
||
|
|
||
|
___defineProperty_13(this, "propagationStopped", false);
|
||
|
|
||
|
this._interaction = interaction;
|
||
|
}
|
||
|
|
||
|
___createClass_13(BaseEvent, [{
|
||
|
key: "preventDefault",
|
||
|
value: function preventDefault() {}
|
||
|
/**
|
||
|
* Don't call any other listeners (even on the current target)
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "stopPropagation",
|
||
|
value: function stopPropagation() {
|
||
|
this.propagationStopped = true;
|
||
|
}
|
||
|
/**
|
||
|
* Don't call listeners on the remaining targets
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "stopImmediatePropagation",
|
||
|
value: function stopImmediatePropagation() {
|
||
|
this.immediatePropagationStopped = this.propagationStopped = true;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return BaseEvent;
|
||
|
}();
|
||
|
|
||
|
_$BaseEvent_13.BaseEvent = BaseEvent;
|
||
|
var ___default_13 = BaseEvent;
|
||
|
_$BaseEvent_13["default"] = ___default_13;
|
||
|
|
||
|
var _$InteractEvent_15 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$InteractEvent_15, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$InteractEvent_15["default"] = _$InteractEvent_15.InteractEvent = _$InteractEvent_15.EventPhase = void 0;
|
||
|
|
||
|
var ___extend_15 = ___interopRequireDefault_15(_$extend_53);
|
||
|
|
||
|
var ___getOriginXY_15 = ___interopRequireDefault_15(_$getOriginXY_54);
|
||
|
|
||
|
var ___hypot_15 = ___interopRequireDefault_15(_$hypot_55);
|
||
|
|
||
|
var _BaseEvent2 = ___interopRequireDefault_15(_$BaseEvent_13);
|
||
|
|
||
|
var _defaultOptions = ___interopRequireDefault_15(_$defaultOptions_20);
|
||
|
|
||
|
function ___interopRequireDefault_15(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___typeof_15(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_15 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_15 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_15(obj); }
|
||
|
|
||
|
function ___classCallCheck_15(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_15(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_15(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_15(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_15(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function _possibleConstructorReturn(self, call) { if (call && (___typeof_15(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
||
|
|
||
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
||
|
|
||
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||
|
|
||
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
||
|
|
||
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
||
|
|
||
|
function ___defineProperty_15(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var __EventPhase_15;
|
||
|
_$InteractEvent_15.EventPhase = __EventPhase_15;
|
||
|
|
||
|
(function (EventPhase) {
|
||
|
EventPhase["Start"] = "start";
|
||
|
EventPhase["Move"] = "move";
|
||
|
EventPhase["End"] = "end";
|
||
|
EventPhase["_NONE"] = "";
|
||
|
})(__EventPhase_15 || (_$InteractEvent_15.EventPhase = __EventPhase_15 = {}));
|
||
|
|
||
|
var InteractEvent =
|
||
|
/*#__PURE__*/
|
||
|
function (_BaseEvent) {
|
||
|
_inherits(InteractEvent, _BaseEvent);
|
||
|
|
||
|
// drag
|
||
|
// resize
|
||
|
|
||
|
/** */
|
||
|
function InteractEvent(interaction, event, actionName, phase, element, related, preEnd, type) {
|
||
|
var _this;
|
||
|
|
||
|
___classCallCheck_15(this, InteractEvent);
|
||
|
|
||
|
_this = _possibleConstructorReturn(this, _getPrototypeOf(InteractEvent).call(this, interaction));
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "target", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "currentTarget", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "relatedTarget", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "screenX", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "screenY", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "button", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "buttons", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "ctrlKey", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "shiftKey", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "altKey", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "metaKey", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "page", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "client", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "delta", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "rect", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "x0", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "y0", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "t0", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "dt", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "duration", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "clientX0", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "clientY0", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "velocity", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "speed", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "swipe", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "timeStamp", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "dragEnter", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "dragLeave", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "axes", void 0);
|
||
|
|
||
|
___defineProperty_15(_assertThisInitialized(_this), "preEnd", void 0);
|
||
|
|
||
|
element = element || interaction.element;
|
||
|
var target = interaction.interactable;
|
||
|
var deltaSource = (target && target.options || _defaultOptions["default"]).deltaSource;
|
||
|
var origin = (0, ___getOriginXY_15["default"])(target, element, actionName);
|
||
|
var starting = phase === 'start';
|
||
|
var ending = phase === 'end';
|
||
|
var prevEvent = starting ? _assertThisInitialized(_this) : interaction.prevEvent;
|
||
|
var coords = starting ? interaction.coords.start : ending ? {
|
||
|
page: prevEvent.page,
|
||
|
client: prevEvent.client,
|
||
|
timeStamp: interaction.coords.cur.timeStamp
|
||
|
} : interaction.coords.cur;
|
||
|
_this.page = (0, ___extend_15["default"])({}, coords.page);
|
||
|
_this.client = (0, ___extend_15["default"])({}, coords.client);
|
||
|
_this.rect = (0, ___extend_15["default"])({}, interaction.rect);
|
||
|
_this.timeStamp = coords.timeStamp;
|
||
|
|
||
|
if (!ending) {
|
||
|
_this.page.x -= origin.x;
|
||
|
_this.page.y -= origin.y;
|
||
|
_this.client.x -= origin.x;
|
||
|
_this.client.y -= origin.y;
|
||
|
}
|
||
|
|
||
|
_this.ctrlKey = event.ctrlKey;
|
||
|
_this.altKey = event.altKey;
|
||
|
_this.shiftKey = event.shiftKey;
|
||
|
_this.metaKey = event.metaKey;
|
||
|
_this.button = event.button;
|
||
|
_this.buttons = event.buttons;
|
||
|
_this.target = element;
|
||
|
_this.currentTarget = element;
|
||
|
_this.relatedTarget = related || null;
|
||
|
_this.preEnd = preEnd;
|
||
|
_this.type = type || actionName + (phase || '');
|
||
|
_this.interactable = target;
|
||
|
_this.t0 = starting ? interaction.pointers[interaction.pointers.length - 1].downTime : prevEvent.t0;
|
||
|
_this.x0 = interaction.coords.start.page.x - origin.x;
|
||
|
_this.y0 = interaction.coords.start.page.y - origin.y;
|
||
|
_this.clientX0 = interaction.coords.start.client.x - origin.x;
|
||
|
_this.clientY0 = interaction.coords.start.client.y - origin.y;
|
||
|
|
||
|
if (starting || ending) {
|
||
|
_this.delta = {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
} else {
|
||
|
_this.delta = {
|
||
|
x: _this[deltaSource].x - prevEvent[deltaSource].x,
|
||
|
y: _this[deltaSource].y - prevEvent[deltaSource].y
|
||
|
};
|
||
|
}
|
||
|
|
||
|
_this.dt = interaction.coords.delta.timeStamp;
|
||
|
_this.duration = _this.timeStamp - _this.t0; // velocity and speed in pixels per second
|
||
|
|
||
|
_this.velocity = (0, ___extend_15["default"])({}, interaction.coords.velocity[deltaSource]);
|
||
|
_this.speed = (0, ___hypot_15["default"])(_this.velocity.x, _this.velocity.y);
|
||
|
_this.swipe = ending || phase === 'inertiastart' ? _this.getSwipe() : null;
|
||
|
return _this;
|
||
|
}
|
||
|
|
||
|
___createClass_15(InteractEvent, [{
|
||
|
key: "getSwipe",
|
||
|
value: function getSwipe() {
|
||
|
var interaction = this._interaction;
|
||
|
|
||
|
if (interaction.prevEvent.speed < 600 || this.timeStamp - interaction.prevEvent.timeStamp > 150) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var angle = 180 * Math.atan2(interaction.prevEvent.velocityY, interaction.prevEvent.velocityX) / Math.PI;
|
||
|
var overlap = 22.5;
|
||
|
|
||
|
if (angle < 0) {
|
||
|
angle += 360;
|
||
|
}
|
||
|
|
||
|
var left = 135 - overlap <= angle && angle < 225 + overlap;
|
||
|
var up = 225 - overlap <= angle && angle < 315 + overlap;
|
||
|
var right = !left && (315 - overlap <= angle || angle < 45 + overlap);
|
||
|
var down = !up && 45 - overlap <= angle && angle < 135 + overlap;
|
||
|
return {
|
||
|
up: up,
|
||
|
down: down,
|
||
|
left: left,
|
||
|
right: right,
|
||
|
angle: angle,
|
||
|
speed: interaction.prevEvent.speed,
|
||
|
velocity: {
|
||
|
x: interaction.prevEvent.velocityX,
|
||
|
y: interaction.prevEvent.velocityY
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
}, {
|
||
|
key: "preventDefault",
|
||
|
value: function preventDefault() {}
|
||
|
/**
|
||
|
* Don't call listeners on the remaining targets
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "stopImmediatePropagation",
|
||
|
value: function stopImmediatePropagation() {
|
||
|
this.immediatePropagationStopped = this.propagationStopped = true;
|
||
|
}
|
||
|
/**
|
||
|
* Don't call any other listeners (even on the current target)
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "stopPropagation",
|
||
|
value: function stopPropagation() {
|
||
|
this.propagationStopped = true;
|
||
|
}
|
||
|
}, {
|
||
|
key: "pageX",
|
||
|
get: function get() {
|
||
|
return this.page.x;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.page.x = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "pageY",
|
||
|
get: function get() {
|
||
|
return this.page.y;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.page.y = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "clientX",
|
||
|
get: function get() {
|
||
|
return this.client.x;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.client.x = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "clientY",
|
||
|
get: function get() {
|
||
|
return this.client.y;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.client.y = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "dx",
|
||
|
get: function get() {
|
||
|
return this.delta.x;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.delta.x = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "dy",
|
||
|
get: function get() {
|
||
|
return this.delta.y;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.delta.y = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "velocityX",
|
||
|
get: function get() {
|
||
|
return this.velocity.x;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.velocity.x = value;
|
||
|
}
|
||
|
}, {
|
||
|
key: "velocityY",
|
||
|
get: function get() {
|
||
|
return this.velocity.y;
|
||
|
},
|
||
|
set: function set(value) {
|
||
|
this.velocity.y = value;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return InteractEvent;
|
||
|
}(_BaseEvent2["default"]);
|
||
|
|
||
|
_$InteractEvent_15.InteractEvent = InteractEvent;
|
||
|
var ___default_15 = InteractEvent;
|
||
|
_$InteractEvent_15["default"] = ___default_15;
|
||
|
|
||
|
var _$PointerInfo_19 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$PointerInfo_19, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$PointerInfo_19["default"] = _$PointerInfo_19.PointerInfo = void 0;
|
||
|
|
||
|
function ___classCallCheck_19(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
/* eslint-disable @typescript-eslint/no-parameter-properties */
|
||
|
var PointerInfo = function PointerInfo(id, pointer, event, downTime, downTarget) {
|
||
|
___classCallCheck_19(this, PointerInfo);
|
||
|
|
||
|
this.id = id;
|
||
|
this.pointer = pointer;
|
||
|
this.event = event;
|
||
|
this.downTime = downTime;
|
||
|
this.downTarget = downTarget;
|
||
|
};
|
||
|
|
||
|
_$PointerInfo_19.PointerInfo = PointerInfo;
|
||
|
var ___default_19 = PointerInfo;
|
||
|
_$PointerInfo_19["default"] = ___default_19;
|
||
|
|
||
|
var _$interactionFinder_22 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_22(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_22 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_22 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_22(obj); }
|
||
|
|
||
|
Object.defineProperty(_$interactionFinder_22, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$interactionFinder_22["default"] = void 0;
|
||
|
|
||
|
var __dom_22 = ___interopRequireWildcard_22(_$domUtils_51);
|
||
|
|
||
|
function ___getRequireWildcardCache_22() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_22 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_22(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_22(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_22(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
var finder = {
|
||
|
methodOrder: ['simulationResume', 'mouseOrPen', 'hasPointer', 'idle'],
|
||
|
search: function search(details) {
|
||
|
for (var _i = 0; _i < finder.methodOrder.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = finder.methodOrder[_i];
|
||
|
var method = _ref;
|
||
|
var interaction = finder[method](details);
|
||
|
|
||
|
if (interaction) {
|
||
|
return interaction;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
},
|
||
|
// try to resume simulation with a new pointer
|
||
|
simulationResume: function simulationResume(_ref2) {
|
||
|
var pointerType = _ref2.pointerType,
|
||
|
eventType = _ref2.eventType,
|
||
|
eventTarget = _ref2.eventTarget,
|
||
|
scope = _ref2.scope;
|
||
|
|
||
|
if (!/down|start/i.test(eventType)) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
for (var _i2 = 0; _i2 < scope.interactions.list.length; _i2++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = scope.interactions.list[_i2];
|
||
|
var interaction = _ref3;
|
||
|
var element = eventTarget;
|
||
|
|
||
|
if (interaction.simulation && interaction.simulation.allowResume && interaction.pointerType === pointerType) {
|
||
|
while (element) {
|
||
|
// if the element is the interaction element
|
||
|
if (element === interaction.element) {
|
||
|
return interaction;
|
||
|
}
|
||
|
|
||
|
element = __dom_22.parentNode(element);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
},
|
||
|
// if it's a mouse or pen interaction
|
||
|
mouseOrPen: function mouseOrPen(_ref4) {
|
||
|
var pointerId = _ref4.pointerId,
|
||
|
pointerType = _ref4.pointerType,
|
||
|
eventType = _ref4.eventType,
|
||
|
scope = _ref4.scope;
|
||
|
|
||
|
if (pointerType !== 'mouse' && pointerType !== 'pen') {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var firstNonActive;
|
||
|
|
||
|
for (var _i3 = 0; _i3 < scope.interactions.list.length; _i3++) {
|
||
|
var _ref5;
|
||
|
|
||
|
_ref5 = scope.interactions.list[_i3];
|
||
|
var interaction = _ref5;
|
||
|
|
||
|
if (interaction.pointerType === pointerType) {
|
||
|
// if it's a down event, skip interactions with running simulations
|
||
|
if (interaction.simulation && !hasPointerId(interaction, pointerId)) {
|
||
|
continue;
|
||
|
} // if the interaction is active, return it immediately
|
||
|
|
||
|
|
||
|
if (interaction.interacting()) {
|
||
|
return interaction;
|
||
|
} // otherwise save it and look for another active interaction
|
||
|
else if (!firstNonActive) {
|
||
|
firstNonActive = interaction;
|
||
|
}
|
||
|
}
|
||
|
} // if no active mouse interaction was found use the first inactive mouse
|
||
|
// interaction
|
||
|
|
||
|
|
||
|
if (firstNonActive) {
|
||
|
return firstNonActive;
|
||
|
} // find any mouse or pen interaction.
|
||
|
// ignore the interaction if the eventType is a *down, and a simulation
|
||
|
// is active
|
||
|
|
||
|
|
||
|
for (var _i4 = 0; _i4 < scope.interactions.list.length; _i4++) {
|
||
|
var _ref6;
|
||
|
|
||
|
_ref6 = scope.interactions.list[_i4];
|
||
|
var _interaction = _ref6;
|
||
|
|
||
|
if (_interaction.pointerType === pointerType && !(/down/i.test(eventType) && _interaction.simulation)) {
|
||
|
return _interaction;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
},
|
||
|
// get interaction that has this pointer
|
||
|
hasPointer: function hasPointer(_ref7) {
|
||
|
var pointerId = _ref7.pointerId,
|
||
|
scope = _ref7.scope;
|
||
|
|
||
|
for (var _i5 = 0; _i5 < scope.interactions.list.length; _i5++) {
|
||
|
var _ref8;
|
||
|
|
||
|
_ref8 = scope.interactions.list[_i5];
|
||
|
var interaction = _ref8;
|
||
|
|
||
|
if (hasPointerId(interaction, pointerId)) {
|
||
|
return interaction;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
},
|
||
|
// get first idle interaction with a matching pointerType
|
||
|
idle: function idle(_ref9) {
|
||
|
var pointerType = _ref9.pointerType,
|
||
|
scope = _ref9.scope;
|
||
|
|
||
|
for (var _i6 = 0; _i6 < scope.interactions.list.length; _i6++) {
|
||
|
var _ref10;
|
||
|
|
||
|
_ref10 = scope.interactions.list[_i6];
|
||
|
var interaction = _ref10;
|
||
|
|
||
|
// if there's already a pointer held down
|
||
|
if (interaction.pointers.length === 1) {
|
||
|
var target = interaction.interactable; // don't add this pointer if there is a target interactable and it
|
||
|
// isn't gesturable
|
||
|
|
||
|
if (target && !(target.options.gesture && target.options.gesture.enabled)) {
|
||
|
continue;
|
||
|
}
|
||
|
} // maximum of 2 pointers per interaction
|
||
|
else if (interaction.pointers.length >= 2) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (!interaction.interacting() && pointerType === interaction.pointerType) {
|
||
|
return interaction;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function hasPointerId(interaction, pointerId) {
|
||
|
return interaction.pointers.some(function (_ref11) {
|
||
|
var id = _ref11.id;
|
||
|
return id === pointerId;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var ___default_22 = finder;
|
||
|
_$interactionFinder_22["default"] = ___default_22;
|
||
|
|
||
|
var _$drag_1 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_1(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_1 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_1 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_1(obj); }
|
||
|
|
||
|
Object.defineProperty(_$drag_1, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$drag_1["default"] = void 0;
|
||
|
|
||
|
var ___scope_1 = _$scope_24({});
|
||
|
|
||
|
var __arr_1 = ___interopRequireWildcard_1(_$arr_47);
|
||
|
|
||
|
var __is_1 = ___interopRequireWildcard_1(_$is_57);
|
||
|
|
||
|
function ___getRequireWildcardCache_1() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_1 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_1(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_1(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_1(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
___scope_1.ActionName.Drag = 'drag';
|
||
|
|
||
|
function __install_1(scope) {
|
||
|
var actions = scope.actions,
|
||
|
Interactable = scope.Interactable,
|
||
|
defaults = scope.defaults;
|
||
|
Interactable.prototype.draggable = drag.draggable;
|
||
|
actions[___scope_1.ActionName.Drag] = drag;
|
||
|
actions.names.push(___scope_1.ActionName.Drag);
|
||
|
__arr_1.merge(actions.eventTypes, ['dragstart', 'dragmove', 'draginertiastart', 'dragresume', 'dragend']);
|
||
|
actions.methodDict.drag = 'draggable';
|
||
|
defaults.actions.drag = drag.defaults;
|
||
|
}
|
||
|
|
||
|
function beforeMove(_ref) {
|
||
|
var interaction = _ref.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var axis = interaction.prepared.axis;
|
||
|
|
||
|
if (axis === 'x') {
|
||
|
interaction.coords.cur.page.y = interaction.coords.start.page.y;
|
||
|
interaction.coords.cur.client.y = interaction.coords.start.client.y;
|
||
|
interaction.coords.velocity.client.y = 0;
|
||
|
interaction.coords.velocity.page.y = 0;
|
||
|
} else if (axis === 'y') {
|
||
|
interaction.coords.cur.page.x = interaction.coords.start.page.x;
|
||
|
interaction.coords.cur.client.x = interaction.coords.start.client.x;
|
||
|
interaction.coords.velocity.client.x = 0;
|
||
|
interaction.coords.velocity.page.x = 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function move(_ref2) {
|
||
|
var iEvent = _ref2.iEvent,
|
||
|
interaction = _ref2.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var axis = interaction.prepared.axis;
|
||
|
|
||
|
if (axis === 'x' || axis === 'y') {
|
||
|
var opposite = axis === 'x' ? 'y' : 'x';
|
||
|
iEvent.page[opposite] = interaction.coords.start.page[opposite];
|
||
|
iEvent.client[opposite] = interaction.coords.start.client[opposite];
|
||
|
iEvent.delta[opposite] = 0;
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(element).draggable({
|
||
|
* onstart: function (event) {},
|
||
|
* onmove : function (event) {},
|
||
|
* onend : function (event) {},
|
||
|
*
|
||
|
* // the axis in which the first movement must be
|
||
|
* // for the drag sequence to start
|
||
|
* // 'xy' by default - any direction
|
||
|
* startAxis: 'x' || 'y' || 'xy',
|
||
|
*
|
||
|
* // 'xy' by default - don't restrict to one axis (move in any direction)
|
||
|
* // 'x' or 'y' to restrict movement to either axis
|
||
|
* // 'start' to restrict movement to the axis the drag started in
|
||
|
* lockAxis: 'x' || 'y' || 'xy' || 'start',
|
||
|
*
|
||
|
* // max number of drags that can happen concurrently
|
||
|
* // with elements of this Interactable. Infinity by default
|
||
|
* max: Infinity,
|
||
|
*
|
||
|
* // max number of drags that can target the same element+Interactable
|
||
|
* // 1 by default
|
||
|
* maxPerElement: 2
|
||
|
* })
|
||
|
*
|
||
|
* var isDraggable = interact('element').draggable(); // true
|
||
|
* ```
|
||
|
*
|
||
|
* Get or set whether drag actions can be performed on the target
|
||
|
*
|
||
|
* @alias Interactable.prototype.draggable
|
||
|
*
|
||
|
* @param {boolean | object} [options] true/false or An object with event
|
||
|
* listeners to be fired on drag events (object makes the Interactable
|
||
|
* draggable)
|
||
|
* @return {boolean | Interactable} boolean indicating if this can be the
|
||
|
* target of drag events, or this Interctable
|
||
|
*/
|
||
|
|
||
|
|
||
|
var draggable = function draggable(options) {
|
||
|
if (__is_1.object(options)) {
|
||
|
this.options.drag.enabled = options.enabled !== false;
|
||
|
this.setPerAction(___scope_1.ActionName.Drag, options);
|
||
|
this.setOnEvents(___scope_1.ActionName.Drag, options);
|
||
|
|
||
|
if (/^(xy|x|y|start)$/.test(options.lockAxis)) {
|
||
|
this.options.drag.lockAxis = options.lockAxis;
|
||
|
}
|
||
|
|
||
|
if (/^(xy|x|y)$/.test(options.startAxis)) {
|
||
|
this.options.drag.startAxis = options.startAxis;
|
||
|
}
|
||
|
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (__is_1.bool(options)) {
|
||
|
this.options.drag.enabled = options;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.drag;
|
||
|
};
|
||
|
|
||
|
var drag = {
|
||
|
id: 'actions/drag',
|
||
|
install: __install_1,
|
||
|
listeners: {
|
||
|
'interactions:before-action-move': beforeMove,
|
||
|
'interactions:action-resume': beforeMove,
|
||
|
// dragmove
|
||
|
'interactions:action-move': move,
|
||
|
'auto-start:check': function autoStartCheck(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
interactable = arg.interactable,
|
||
|
buttons = arg.buttons;
|
||
|
var dragOptions = interactable.options.drag;
|
||
|
|
||
|
if (!(dragOptions && dragOptions.enabled) || // check mouseButton setting if the pointer is down
|
||
|
interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & interactable.options.drag.mouseButtons) === 0) {
|
||
|
return undefined;
|
||
|
}
|
||
|
|
||
|
arg.action = {
|
||
|
name: ___scope_1.ActionName.Drag,
|
||
|
axis: dragOptions.lockAxis === 'start' ? dragOptions.startAxis : dragOptions.lockAxis
|
||
|
};
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
draggable: draggable,
|
||
|
beforeMove: beforeMove,
|
||
|
move: move,
|
||
|
defaults: {
|
||
|
startAxis: 'xy',
|
||
|
lockAxis: 'xy'
|
||
|
},
|
||
|
getCursor: function getCursor() {
|
||
|
return 'move';
|
||
|
}
|
||
|
};
|
||
|
var ___default_1 = drag;
|
||
|
_$drag_1["default"] = ___default_1;
|
||
|
|
||
|
var _$DropEvent_2 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$DropEvent_2, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$DropEvent_2["default"] = void 0;
|
||
|
|
||
|
var ___BaseEvent2_2 = ___interopRequireDefault_2(_$BaseEvent_13);
|
||
|
|
||
|
var __arr_2 = ___interopRequireWildcard_2(_$arr_47);
|
||
|
|
||
|
function ___getRequireWildcardCache_2() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_2 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_2(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_2(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_2(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_2(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___typeof_2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_2 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_2 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_2(obj); }
|
||
|
|
||
|
function ___classCallCheck_2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_2(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_2(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_2(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_2(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___possibleConstructorReturn_2(self, call) { if (call && (___typeof_2(call) === "object" || typeof call === "function")) { return call; } return ___assertThisInitialized_2(self); }
|
||
|
|
||
|
function ___getPrototypeOf_2(o) { ___getPrototypeOf_2 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ___getPrototypeOf_2(o); }
|
||
|
|
||
|
function ___assertThisInitialized_2(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||
|
|
||
|
function ___inherits_2(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ___setPrototypeOf_2(subClass, superClass); }
|
||
|
|
||
|
function ___setPrototypeOf_2(o, p) { ___setPrototypeOf_2 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ___setPrototypeOf_2(o, p); }
|
||
|
|
||
|
function ___defineProperty_2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var DropEvent =
|
||
|
/*#__PURE__*/
|
||
|
function (_BaseEvent) {
|
||
|
___inherits_2(DropEvent, _BaseEvent);
|
||
|
|
||
|
/**
|
||
|
* Class of events fired on dropzones during drags with acceptable targets.
|
||
|
*/
|
||
|
function DropEvent(dropState, dragEvent, type) {
|
||
|
var _this;
|
||
|
|
||
|
___classCallCheck_2(this, DropEvent);
|
||
|
|
||
|
_this = ___possibleConstructorReturn_2(this, ___getPrototypeOf_2(DropEvent).call(this, dragEvent._interaction));
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "target", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "dropzone", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "dragEvent", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "relatedTarget", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "draggable", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "timeStamp", void 0);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "propagationStopped", false);
|
||
|
|
||
|
___defineProperty_2(___assertThisInitialized_2(_this), "immediatePropagationStopped", false);
|
||
|
|
||
|
var _ref = type === 'dragleave' ? dropState.prev : dropState.cur,
|
||
|
element = _ref.element,
|
||
|
dropzone = _ref.dropzone;
|
||
|
|
||
|
_this.type = type;
|
||
|
_this.target = element;
|
||
|
_this.currentTarget = element;
|
||
|
_this.dropzone = dropzone;
|
||
|
_this.dragEvent = dragEvent;
|
||
|
_this.relatedTarget = dragEvent.target;
|
||
|
_this.draggable = dragEvent.interactable;
|
||
|
_this.timeStamp = dragEvent.timeStamp;
|
||
|
return _this;
|
||
|
}
|
||
|
/**
|
||
|
* If this is a `dropactivate` event, the dropzone element will be
|
||
|
* deactivated.
|
||
|
*
|
||
|
* If this is a `dragmove` or `dragenter`, a `dragleave` will be fired on the
|
||
|
* dropzone element and more.
|
||
|
*/
|
||
|
|
||
|
|
||
|
___createClass_2(DropEvent, [{
|
||
|
key: "reject",
|
||
|
value: function reject() {
|
||
|
var _this2 = this;
|
||
|
|
||
|
var dropState = this._interaction.dropState;
|
||
|
|
||
|
if (this.type !== 'dropactivate' && (!this.dropzone || dropState.cur.dropzone !== this.dropzone || dropState.cur.element !== this.target)) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
dropState.prev.dropzone = this.dropzone;
|
||
|
dropState.prev.element = this.target;
|
||
|
dropState.rejected = true;
|
||
|
dropState.events.enter = null;
|
||
|
this.stopImmediatePropagation();
|
||
|
|
||
|
if (this.type === 'dropactivate') {
|
||
|
var activeDrops = dropState.activeDrops;
|
||
|
var index = __arr_2.findIndex(activeDrops, function (_ref2) {
|
||
|
var dropzone = _ref2.dropzone,
|
||
|
element = _ref2.element;
|
||
|
return dropzone === _this2.dropzone && element === _this2.target;
|
||
|
});
|
||
|
dropState.activeDrops.splice(index, 1);
|
||
|
var deactivateEvent = new DropEvent(dropState, this.dragEvent, 'dropdeactivate');
|
||
|
deactivateEvent.dropzone = this.dropzone;
|
||
|
deactivateEvent.target = this.target;
|
||
|
this.dropzone.fire(deactivateEvent);
|
||
|
} else {
|
||
|
this.dropzone.fire(new DropEvent(dropState, this.dragEvent, 'dragleave'));
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
key: "preventDefault",
|
||
|
value: function preventDefault() {}
|
||
|
}, {
|
||
|
key: "stopPropagation",
|
||
|
value: function stopPropagation() {
|
||
|
this.propagationStopped = true;
|
||
|
}
|
||
|
}, {
|
||
|
key: "stopImmediatePropagation",
|
||
|
value: function stopImmediatePropagation() {
|
||
|
this.immediatePropagationStopped = this.propagationStopped = true;
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return DropEvent;
|
||
|
}(___BaseEvent2_2["default"]);
|
||
|
|
||
|
var ___default_2 = DropEvent;
|
||
|
_$DropEvent_2["default"] = ___default_2;
|
||
|
|
||
|
var _$index_3 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_3(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_3 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_3 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_3(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_3, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_3["default"] = void 0;
|
||
|
|
||
|
var ___Interactable_3 = ___interopRequireDefault_3(_$Interactable_16);
|
||
|
|
||
|
var ___scope_3 = _$scope_24({});
|
||
|
|
||
|
var __utils_3 = ___interopRequireWildcard_3(_$index_56);
|
||
|
|
||
|
var _drag = ___interopRequireDefault_3(_$drag_1);
|
||
|
|
||
|
var _DropEvent = ___interopRequireDefault_3(_$DropEvent_2);
|
||
|
|
||
|
function ___getRequireWildcardCache_3() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_3 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_3(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_3(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_3(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_3(scope) {
|
||
|
var actions = scope.actions,
|
||
|
interact = scope.interact,
|
||
|
Interactable = scope.Interactable,
|
||
|
defaults = scope.defaults;
|
||
|
scope.usePlugin(_drag["default"]);
|
||
|
/**
|
||
|
*
|
||
|
* ```js
|
||
|
* interact('.drop').dropzone({
|
||
|
* accept: '.can-drop' || document.getElementById('single-drop'),
|
||
|
* overlap: 'pointer' || 'center' || zeroToOne
|
||
|
* }
|
||
|
* ```
|
||
|
*
|
||
|
* Returns or sets whether draggables can be dropped onto this target to
|
||
|
* trigger drop events
|
||
|
*
|
||
|
* Dropzones can receive the following events:
|
||
|
* - `dropactivate` and `dropdeactivate` when an acceptable drag starts and ends
|
||
|
* - `dragenter` and `dragleave` when a draggable enters and leaves the dropzone
|
||
|
* - `dragmove` when a draggable that has entered the dropzone is moved
|
||
|
* - `drop` when a draggable is dropped into this dropzone
|
||
|
*
|
||
|
* Use the `accept` option to allow only elements that match the given CSS
|
||
|
* selector or element. The value can be:
|
||
|
*
|
||
|
* - **an Element** - only that element can be dropped into this dropzone.
|
||
|
* - **a string**, - the element being dragged must match it as a CSS selector.
|
||
|
* - **`null`** - accept options is cleared - it accepts any element.
|
||
|
*
|
||
|
* Use the `overlap` option to set how drops are checked for. The allowed
|
||
|
* values are:
|
||
|
*
|
||
|
* - `'pointer'`, the pointer must be over the dropzone (default)
|
||
|
* - `'center'`, the draggable element's center must be over the dropzone
|
||
|
* - a number from 0-1 which is the `(intersection area) / (draggable area)`.
|
||
|
* e.g. `0.5` for drop to happen when half of the area of the draggable is
|
||
|
* over the dropzone
|
||
|
*
|
||
|
* Use the `checker` option to specify a function to check if a dragged element
|
||
|
* is over this Interactable.
|
||
|
*
|
||
|
* @param {boolean | object | null} [options] The new options to be set.
|
||
|
* @return {boolean | Interactable} The current setting or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.dropzone = function (options) {
|
||
|
return dropzoneMethod(this, options);
|
||
|
};
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(target)
|
||
|
* .dropChecker(function(dragEvent, // related dragmove or dragend event
|
||
|
* event, // TouchEvent/PointerEvent/MouseEvent
|
||
|
* dropped, // bool result of the default checker
|
||
|
* dropzone, // dropzone Interactable
|
||
|
* dropElement, // dropzone elemnt
|
||
|
* draggable, // draggable Interactable
|
||
|
* draggableElement) {// draggable element
|
||
|
*
|
||
|
* return dropped && event.target.hasAttribute('allow-drop')
|
||
|
* }
|
||
|
* ```
|
||
|
*/
|
||
|
|
||
|
|
||
|
Interactable.prototype.dropCheck = function (dragEvent, event, draggable, draggableElement, dropElement, rect) {
|
||
|
return dropCheckMethod(this, dragEvent, event, draggable, draggableElement, dropElement, rect);
|
||
|
};
|
||
|
/**
|
||
|
* Returns or sets whether the dimensions of dropzone elements are calculated
|
||
|
* on every dragmove or only on dragstart for the default dropChecker
|
||
|
*
|
||
|
* @param {boolean} [newValue] True to check on each move. False to check only
|
||
|
* before start
|
||
|
* @return {boolean | interact} The current setting or interact
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.dynamicDrop = function (newValue) {
|
||
|
if (__utils_3.is.bool(newValue)) {
|
||
|
// if (dragging && scope.dynamicDrop !== newValue && !newValue) {
|
||
|
// calcRects(dropzones)
|
||
|
// }
|
||
|
scope.dynamicDrop = newValue;
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
return scope.dynamicDrop;
|
||
|
};
|
||
|
|
||
|
__utils_3.arr.merge(actions.eventTypes, ['dragenter', 'dragleave', 'dropactivate', 'dropdeactivate', 'dropmove', 'drop']);
|
||
|
actions.methodDict.drop = 'dropzone';
|
||
|
scope.dynamicDrop = false;
|
||
|
defaults.actions.drop = drop.defaults;
|
||
|
}
|
||
|
|
||
|
function collectDrops(_ref, draggableElement) {
|
||
|
var interactables = _ref.interactables;
|
||
|
var drops = []; // collect all dropzones and their elements which qualify for a drop
|
||
|
|
||
|
for (var _i = 0; _i < interactables.list.length; _i++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = interactables.list[_i];
|
||
|
var dropzone = _ref2;
|
||
|
|
||
|
if (!dropzone.options.drop.enabled) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
var accept = dropzone.options.drop.accept; // test the draggable draggableElement against the dropzone's accept setting
|
||
|
|
||
|
if (__utils_3.is.element(accept) && accept !== draggableElement || __utils_3.is.string(accept) && !__utils_3.dom.matchesSelector(draggableElement, accept) || __utils_3.is.func(accept) && !accept({
|
||
|
dropzone: dropzone,
|
||
|
draggableElement: draggableElement
|
||
|
})) {
|
||
|
continue;
|
||
|
} // query for new elements if necessary
|
||
|
|
||
|
|
||
|
var dropElements = __utils_3.is.string(dropzone.target) ? dropzone._context.querySelectorAll(dropzone.target) : __utils_3.is.array(dropzone.target) ? dropzone.target : [dropzone.target];
|
||
|
|
||
|
for (var _i2 = 0; _i2 < dropElements.length; _i2++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = dropElements[_i2];
|
||
|
var dropzoneElement = _ref3;
|
||
|
|
||
|
if (dropzoneElement !== draggableElement) {
|
||
|
drops.push({
|
||
|
dropzone: dropzone,
|
||
|
element: dropzoneElement
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return drops;
|
||
|
}
|
||
|
|
||
|
function fireActivationEvents(activeDrops, event) {
|
||
|
// loop through all active dropzones and trigger event
|
||
|
for (var _i3 = 0; _i3 < activeDrops.slice().length; _i3++) {
|
||
|
var _ref4;
|
||
|
|
||
|
_ref4 = activeDrops.slice()[_i3];
|
||
|
var _ref5 = _ref4,
|
||
|
dropzone = _ref5.dropzone,
|
||
|
element = _ref5.element;
|
||
|
event.dropzone = dropzone; // set current element as event target
|
||
|
|
||
|
event.target = element;
|
||
|
dropzone.fire(event);
|
||
|
event.propagationStopped = event.immediatePropagationStopped = false;
|
||
|
}
|
||
|
} // return a new array of possible drops. getActiveDrops should always be
|
||
|
// called when a drag has just started or a drag event happens while
|
||
|
// dynamicDrop is true
|
||
|
|
||
|
|
||
|
function getActiveDrops(scope, dragElement) {
|
||
|
// get dropzones and their elements that could receive the draggable
|
||
|
var activeDrops = collectDrops(scope, dragElement);
|
||
|
|
||
|
for (var _i4 = 0; _i4 < activeDrops.length; _i4++) {
|
||
|
var _ref6;
|
||
|
|
||
|
_ref6 = activeDrops[_i4];
|
||
|
var activeDrop = _ref6;
|
||
|
activeDrop.rect = activeDrop.dropzone.getRect(activeDrop.element);
|
||
|
}
|
||
|
|
||
|
return activeDrops;
|
||
|
}
|
||
|
|
||
|
function getDrop(_ref7, dragEvent, pointerEvent) {
|
||
|
var dropState = _ref7.dropState,
|
||
|
draggable = _ref7.interactable,
|
||
|
dragElement = _ref7.element;
|
||
|
var validDrops = []; // collect all dropzones and their elements which qualify for a drop
|
||
|
|
||
|
for (var _i5 = 0; _i5 < dropState.activeDrops.length; _i5++) {
|
||
|
var _ref8;
|
||
|
|
||
|
_ref8 = dropState.activeDrops[_i5];
|
||
|
var _ref9 = _ref8,
|
||
|
dropzone = _ref9.dropzone,
|
||
|
dropzoneElement = _ref9.element,
|
||
|
_rect = _ref9.rect;
|
||
|
validDrops.push(dropzone.dropCheck(dragEvent, pointerEvent, draggable, dragElement, dropzoneElement, _rect) ? dropzoneElement : null);
|
||
|
} // get the most appropriate dropzone based on DOM depth and order
|
||
|
|
||
|
|
||
|
var dropIndex = __utils_3.dom.indexOfDeepestElement(validDrops);
|
||
|
return dropState.activeDrops[dropIndex] || null;
|
||
|
}
|
||
|
|
||
|
function getDropEvents(interaction, _pointerEvent, dragEvent) {
|
||
|
var dropState = interaction.dropState;
|
||
|
var dropEvents = {
|
||
|
enter: null,
|
||
|
leave: null,
|
||
|
activate: null,
|
||
|
deactivate: null,
|
||
|
move: null,
|
||
|
drop: null
|
||
|
};
|
||
|
|
||
|
if (dragEvent.type === 'dragstart') {
|
||
|
dropEvents.activate = new _DropEvent["default"](dropState, dragEvent, 'dropactivate');
|
||
|
dropEvents.activate.target = null;
|
||
|
dropEvents.activate.dropzone = null;
|
||
|
}
|
||
|
|
||
|
if (dragEvent.type === 'dragend') {
|
||
|
dropEvents.deactivate = new _DropEvent["default"](dropState, dragEvent, 'dropdeactivate');
|
||
|
dropEvents.deactivate.target = null;
|
||
|
dropEvents.deactivate.dropzone = null;
|
||
|
}
|
||
|
|
||
|
if (dropState.rejected) {
|
||
|
return dropEvents;
|
||
|
}
|
||
|
|
||
|
if (dropState.cur.element !== dropState.prev.element) {
|
||
|
// if there was a previous dropzone, create a dragleave event
|
||
|
if (dropState.prev.dropzone) {
|
||
|
dropEvents.leave = new _DropEvent["default"](dropState, dragEvent, 'dragleave');
|
||
|
dragEvent.dragLeave = dropEvents.leave.target = dropState.prev.element;
|
||
|
dragEvent.prevDropzone = dropEvents.leave.dropzone = dropState.prev.dropzone;
|
||
|
} // if dropzone is not null, create a dragenter event
|
||
|
|
||
|
|
||
|
if (dropState.cur.dropzone) {
|
||
|
dropEvents.enter = new _DropEvent["default"](dropState, dragEvent, 'dragenter');
|
||
|
dragEvent.dragEnter = dropState.cur.element;
|
||
|
dragEvent.dropzone = dropState.cur.dropzone;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (dragEvent.type === 'dragend' && dropState.cur.dropzone) {
|
||
|
dropEvents.drop = new _DropEvent["default"](dropState, dragEvent, 'drop');
|
||
|
dragEvent.dropzone = dropState.cur.dropzone;
|
||
|
dragEvent.relatedTarget = dropState.cur.element;
|
||
|
}
|
||
|
|
||
|
if (dragEvent.type === 'dragmove' && dropState.cur.dropzone) {
|
||
|
dropEvents.move = new _DropEvent["default"](dropState, dragEvent, 'dropmove');
|
||
|
dropEvents.move.dragmove = dragEvent;
|
||
|
dragEvent.dropzone = dropState.cur.dropzone;
|
||
|
}
|
||
|
|
||
|
return dropEvents;
|
||
|
}
|
||
|
|
||
|
function fireDropEvents(interaction, events) {
|
||
|
var dropState = interaction.dropState;
|
||
|
var activeDrops = dropState.activeDrops,
|
||
|
cur = dropState.cur,
|
||
|
prev = dropState.prev;
|
||
|
|
||
|
if (events.leave) {
|
||
|
prev.dropzone.fire(events.leave);
|
||
|
}
|
||
|
|
||
|
if (events.move) {
|
||
|
cur.dropzone.fire(events.move);
|
||
|
}
|
||
|
|
||
|
if (events.enter) {
|
||
|
cur.dropzone.fire(events.enter);
|
||
|
}
|
||
|
|
||
|
if (events.drop) {
|
||
|
cur.dropzone.fire(events.drop);
|
||
|
}
|
||
|
|
||
|
if (events.deactivate) {
|
||
|
fireActivationEvents(activeDrops, events.deactivate);
|
||
|
}
|
||
|
|
||
|
dropState.prev.dropzone = cur.dropzone;
|
||
|
dropState.prev.element = cur.element;
|
||
|
}
|
||
|
|
||
|
function onEventCreated(_ref10, scope) {
|
||
|
var interaction = _ref10.interaction,
|
||
|
iEvent = _ref10.iEvent,
|
||
|
event = _ref10.event;
|
||
|
|
||
|
if (iEvent.type !== 'dragmove' && iEvent.type !== 'dragend') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var dropState = interaction.dropState;
|
||
|
|
||
|
if (scope.dynamicDrop) {
|
||
|
dropState.activeDrops = getActiveDrops(scope, interaction.element);
|
||
|
}
|
||
|
|
||
|
var dragEvent = iEvent;
|
||
|
var dropResult = getDrop(interaction, dragEvent, event); // update rejected status
|
||
|
|
||
|
dropState.rejected = dropState.rejected && !!dropResult && dropResult.dropzone === dropState.cur.dropzone && dropResult.element === dropState.cur.element;
|
||
|
dropState.cur.dropzone = dropResult && dropResult.dropzone;
|
||
|
dropState.cur.element = dropResult && dropResult.element;
|
||
|
dropState.events = getDropEvents(interaction, event, dragEvent);
|
||
|
}
|
||
|
|
||
|
function dropzoneMethod(interactable, options) {
|
||
|
if (__utils_3.is.object(options)) {
|
||
|
interactable.options.drop.enabled = options.enabled !== false;
|
||
|
|
||
|
if (options.listeners) {
|
||
|
var normalized = __utils_3.normalizeListeners(options.listeners); // rename 'drop' to '' as it will be prefixed with 'drop'
|
||
|
|
||
|
var corrected = Object.keys(normalized).reduce(function (acc, type) {
|
||
|
var correctedType = /^(enter|leave)/.test(type) ? "drag".concat(type) : /^(activate|deactivate|move)/.test(type) ? "drop".concat(type) : type;
|
||
|
acc[correctedType] = normalized[type];
|
||
|
return acc;
|
||
|
}, {});
|
||
|
interactable.off(interactable.options.drop.listeners);
|
||
|
interactable.on(corrected);
|
||
|
interactable.options.drop.listeners = corrected;
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondrop)) {
|
||
|
interactable.on('drop', options.ondrop);
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondropactivate)) {
|
||
|
interactable.on('dropactivate', options.ondropactivate);
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondropdeactivate)) {
|
||
|
interactable.on('dropdeactivate', options.ondropdeactivate);
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondragenter)) {
|
||
|
interactable.on('dragenter', options.ondragenter);
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondragleave)) {
|
||
|
interactable.on('dragleave', options.ondragleave);
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.func(options.ondropmove)) {
|
||
|
interactable.on('dropmove', options.ondropmove);
|
||
|
}
|
||
|
|
||
|
if (/^(pointer|center)$/.test(options.overlap)) {
|
||
|
interactable.options.drop.overlap = options.overlap;
|
||
|
} else if (__utils_3.is.number(options.overlap)) {
|
||
|
interactable.options.drop.overlap = Math.max(Math.min(1, options.overlap), 0);
|
||
|
}
|
||
|
|
||
|
if ('accept' in options) {
|
||
|
interactable.options.drop.accept = options.accept;
|
||
|
}
|
||
|
|
||
|
if ('checker' in options) {
|
||
|
interactable.options.drop.checker = options.checker;
|
||
|
}
|
||
|
|
||
|
return interactable;
|
||
|
}
|
||
|
|
||
|
if (__utils_3.is.bool(options)) {
|
||
|
interactable.options.drop.enabled = options;
|
||
|
return interactable;
|
||
|
}
|
||
|
|
||
|
return interactable.options.drop;
|
||
|
}
|
||
|
|
||
|
function dropCheckMethod(interactable, dragEvent, event, draggable, draggableElement, dropElement, rect) {
|
||
|
var dropped = false; // if the dropzone has no rect (eg. display: none)
|
||
|
// call the custom dropChecker or just return false
|
||
|
|
||
|
if (!(rect = rect || interactable.getRect(dropElement))) {
|
||
|
return interactable.options.drop.checker ? interactable.options.drop.checker(dragEvent, event, dropped, interactable, dropElement, draggable, draggableElement) : false;
|
||
|
}
|
||
|
|
||
|
var dropOverlap = interactable.options.drop.overlap;
|
||
|
|
||
|
if (dropOverlap === 'pointer') {
|
||
|
var origin = __utils_3.getOriginXY(draggable, draggableElement, ___scope_3.ActionName.Drag);
|
||
|
var page = __utils_3.pointer.getPageXY(dragEvent);
|
||
|
page.x += origin.x;
|
||
|
page.y += origin.y;
|
||
|
var horizontal = page.x > rect.left && page.x < rect.right;
|
||
|
var vertical = page.y > rect.top && page.y < rect.bottom;
|
||
|
dropped = horizontal && vertical;
|
||
|
}
|
||
|
|
||
|
var dragRect = draggable.getRect(draggableElement);
|
||
|
|
||
|
if (dragRect && dropOverlap === 'center') {
|
||
|
var cx = dragRect.left + dragRect.width / 2;
|
||
|
var cy = dragRect.top + dragRect.height / 2;
|
||
|
dropped = cx >= rect.left && cx <= rect.right && cy >= rect.top && cy <= rect.bottom;
|
||
|
}
|
||
|
|
||
|
if (dragRect && __utils_3.is.number(dropOverlap)) {
|
||
|
var overlapArea = Math.max(0, Math.min(rect.right, dragRect.right) - Math.max(rect.left, dragRect.left)) * Math.max(0, Math.min(rect.bottom, dragRect.bottom) - Math.max(rect.top, dragRect.top));
|
||
|
var overlapRatio = overlapArea / (dragRect.width * dragRect.height);
|
||
|
dropped = overlapRatio >= dropOverlap;
|
||
|
}
|
||
|
|
||
|
if (interactable.options.drop.checker) {
|
||
|
dropped = interactable.options.drop.checker(dragEvent, event, dropped, interactable, dropElement, draggable, draggableElement);
|
||
|
}
|
||
|
|
||
|
return dropped;
|
||
|
}
|
||
|
|
||
|
var drop = {
|
||
|
id: 'actions/drop',
|
||
|
install: __install_3,
|
||
|
listeners: {
|
||
|
'interactions:before-action-start': function interactionsBeforeActionStart(_ref11) {
|
||
|
var interaction = _ref11.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
interaction.dropState = {
|
||
|
cur: {
|
||
|
dropzone: null,
|
||
|
element: null
|
||
|
},
|
||
|
prev: {
|
||
|
dropzone: null,
|
||
|
element: null
|
||
|
},
|
||
|
rejected: null,
|
||
|
events: null,
|
||
|
activeDrops: []
|
||
|
};
|
||
|
},
|
||
|
'interactions:after-action-start': function interactionsAfterActionStart(_ref12, scope) {
|
||
|
var interaction = _ref12.interaction,
|
||
|
event = _ref12.event,
|
||
|
dragEvent = _ref12.iEvent;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var dropState = interaction.dropState; // reset active dropzones
|
||
|
|
||
|
dropState.activeDrops = null;
|
||
|
dropState.events = null;
|
||
|
dropState.activeDrops = getActiveDrops(scope, interaction.element);
|
||
|
dropState.events = getDropEvents(interaction, event, dragEvent);
|
||
|
|
||
|
if (dropState.events.activate) {
|
||
|
fireActivationEvents(dropState.activeDrops, dropState.events.activate);
|
||
|
scope.fire('actions/drop:start', {
|
||
|
interaction: interaction,
|
||
|
dragEvent: dragEvent
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
// FIXME proper signal types
|
||
|
'interactions:action-move': onEventCreated,
|
||
|
'interactions:action-end': onEventCreated,
|
||
|
'interactions:after-action-move': function fireDropAfterMove(_ref13, scope) {
|
||
|
var interaction = _ref13.interaction,
|
||
|
dragEvent = _ref13.iEvent;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
fireDropEvents(interaction, interaction.dropState.events);
|
||
|
scope.fire('actions/drop:move', {
|
||
|
interaction: interaction,
|
||
|
dragEvent: dragEvent
|
||
|
});
|
||
|
interaction.dropState.events = {};
|
||
|
},
|
||
|
'interactions:after-action-end': function interactionsAfterActionEnd(_ref14, scope) {
|
||
|
var interaction = _ref14.interaction,
|
||
|
dragEvent = _ref14.iEvent;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
fireDropEvents(interaction, interaction.dropState.events);
|
||
|
scope.fire('actions/drop:end', {
|
||
|
interaction: interaction,
|
||
|
dragEvent: dragEvent
|
||
|
});
|
||
|
},
|
||
|
'interactions:stop': function interactionsStop(_ref15) {
|
||
|
var interaction = _ref15.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var dropState = interaction.dropState;
|
||
|
|
||
|
if (dropState) {
|
||
|
dropState.activeDrops = null;
|
||
|
dropState.events = null;
|
||
|
dropState.cur.dropzone = null;
|
||
|
dropState.cur.element = null;
|
||
|
dropState.prev.dropzone = null;
|
||
|
dropState.prev.element = null;
|
||
|
dropState.rejected = false;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
getActiveDrops: getActiveDrops,
|
||
|
getDrop: getDrop,
|
||
|
getDropEvents: getDropEvents,
|
||
|
fireDropEvents: fireDropEvents,
|
||
|
defaults: {
|
||
|
enabled: false,
|
||
|
accept: null,
|
||
|
overlap: 'pointer'
|
||
|
}
|
||
|
};
|
||
|
var ___default_3 = drop;
|
||
|
_$index_3["default"] = ___default_3;
|
||
|
|
||
|
var _$gesture_4 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_4(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_4 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_4 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_4(obj); }
|
||
|
|
||
|
Object.defineProperty(_$gesture_4, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$gesture_4["default"] = void 0;
|
||
|
|
||
|
var ___InteractEvent_4 = ___interopRequireDefault_4(_$InteractEvent_15);
|
||
|
|
||
|
var ___scope_4 = _$scope_24({});
|
||
|
|
||
|
var __utils_4 = ___interopRequireWildcard_4(_$index_56);
|
||
|
|
||
|
function ___getRequireWildcardCache_4() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_4 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_4(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_4(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_4(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_4(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
___scope_4.ActionName.Gesture = 'gesture';
|
||
|
|
||
|
function __install_4(scope) {
|
||
|
var actions = scope.actions,
|
||
|
Interactable = scope.Interactable,
|
||
|
defaults = scope.defaults;
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(element).gesturable({
|
||
|
* onstart: function (event) {},
|
||
|
* onmove : function (event) {},
|
||
|
* onend : function (event) {},
|
||
|
*
|
||
|
* // limit multiple gestures.
|
||
|
* // See the explanation in {@link Interactable.draggable} example
|
||
|
* max: Infinity,
|
||
|
* maxPerElement: 1,
|
||
|
* })
|
||
|
*
|
||
|
* var isGestureable = interact(element).gesturable()
|
||
|
* ```
|
||
|
*
|
||
|
* Gets or sets whether multitouch gestures can be performed on the target
|
||
|
*
|
||
|
* @param {boolean | object} [options] true/false or An object with event
|
||
|
* listeners to be fired on gesture events (makes the Interactable gesturable)
|
||
|
* @return {boolean | Interactable} A boolean indicating if this can be the
|
||
|
* target of gesture events, or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.gesturable = function (options) {
|
||
|
if (__utils_4.is.object(options)) {
|
||
|
this.options.gesture.enabled = options.enabled !== false;
|
||
|
this.setPerAction(___scope_4.ActionName.Gesture, options);
|
||
|
this.setOnEvents(___scope_4.ActionName.Gesture, options);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (__utils_4.is.bool(options)) {
|
||
|
this.options.gesture.enabled = options;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.gesture;
|
||
|
};
|
||
|
|
||
|
actions[___scope_4.ActionName.Gesture] = gesture;
|
||
|
actions.names.push(___scope_4.ActionName.Gesture);
|
||
|
__utils_4.arr.merge(actions.eventTypes, ['gesturestart', 'gesturemove', 'gestureend']);
|
||
|
actions.methodDict.gesture = 'gesturable';
|
||
|
defaults.actions.gesture = gesture.defaults;
|
||
|
}
|
||
|
|
||
|
function updateGestureProps(_ref) {
|
||
|
var interaction = _ref.interaction,
|
||
|
iEvent = _ref.iEvent,
|
||
|
event = _ref.event,
|
||
|
phase = _ref.phase;
|
||
|
|
||
|
if (interaction.prepared.name !== 'gesture') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var pointers = interaction.pointers.map(function (p) {
|
||
|
return p.pointer;
|
||
|
});
|
||
|
var starting = phase === 'start';
|
||
|
var ending = phase === 'end';
|
||
|
var deltaSource = interaction.interactable.options.deltaSource;
|
||
|
iEvent.touches = [pointers[0], pointers[1]];
|
||
|
|
||
|
if (starting) {
|
||
|
iEvent.distance = __utils_4.pointer.touchDistance(pointers, deltaSource);
|
||
|
iEvent.box = __utils_4.pointer.touchBBox(pointers);
|
||
|
iEvent.scale = 1;
|
||
|
iEvent.ds = 0;
|
||
|
iEvent.angle = __utils_4.pointer.touchAngle(pointers, deltaSource);
|
||
|
iEvent.da = 0;
|
||
|
interaction.gesture.startDistance = iEvent.distance;
|
||
|
interaction.gesture.startAngle = iEvent.angle;
|
||
|
} else if (ending || event instanceof ___InteractEvent_4["default"]) {
|
||
|
var prevEvent = interaction.prevEvent;
|
||
|
iEvent.distance = prevEvent.distance;
|
||
|
iEvent.box = prevEvent.box;
|
||
|
iEvent.scale = prevEvent.scale;
|
||
|
iEvent.ds = 0;
|
||
|
iEvent.angle = prevEvent.angle;
|
||
|
iEvent.da = 0;
|
||
|
} else {
|
||
|
iEvent.distance = __utils_4.pointer.touchDistance(pointers, deltaSource);
|
||
|
iEvent.box = __utils_4.pointer.touchBBox(pointers);
|
||
|
iEvent.scale = iEvent.distance / interaction.gesture.startDistance;
|
||
|
iEvent.angle = __utils_4.pointer.touchAngle(pointers, deltaSource);
|
||
|
iEvent.ds = iEvent.scale - interaction.gesture.scale;
|
||
|
iEvent.da = iEvent.angle - interaction.gesture.angle;
|
||
|
}
|
||
|
|
||
|
interaction.gesture.distance = iEvent.distance;
|
||
|
interaction.gesture.angle = iEvent.angle;
|
||
|
|
||
|
if (__utils_4.is.number(iEvent.scale) && iEvent.scale !== Infinity && !isNaN(iEvent.scale)) {
|
||
|
interaction.gesture.scale = iEvent.scale;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var gesture = {
|
||
|
id: 'actions/gesture',
|
||
|
before: ['actions/drag', 'actions/resize'],
|
||
|
install: __install_4,
|
||
|
listeners: {
|
||
|
'interactions:action-start': updateGestureProps,
|
||
|
'interactions:action-move': updateGestureProps,
|
||
|
'interactions:action-end': updateGestureProps,
|
||
|
'interactions:new': function interactionsNew(_ref2) {
|
||
|
var interaction = _ref2.interaction;
|
||
|
interaction.gesture = {
|
||
|
angle: 0,
|
||
|
distance: 0,
|
||
|
scale: 1,
|
||
|
startAngle: 0,
|
||
|
startDistance: 0
|
||
|
};
|
||
|
},
|
||
|
'auto-start:check': function autoStartCheck(arg) {
|
||
|
if (arg.interaction.pointers.length < 2) {
|
||
|
return undefined;
|
||
|
}
|
||
|
|
||
|
var gestureOptions = arg.interactable.options.gesture;
|
||
|
|
||
|
if (!(gestureOptions && gestureOptions.enabled)) {
|
||
|
return undefined;
|
||
|
}
|
||
|
|
||
|
arg.action = {
|
||
|
name: ___scope_4.ActionName.Gesture
|
||
|
};
|
||
|
return false;
|
||
|
}
|
||
|
},
|
||
|
defaults: {},
|
||
|
getCursor: function getCursor() {
|
||
|
return '';
|
||
|
}
|
||
|
};
|
||
|
var ___default_4 = gesture;
|
||
|
_$gesture_4["default"] = ___default_4;
|
||
|
|
||
|
var _$resize_6 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_6(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_6 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_6 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_6(obj); }
|
||
|
|
||
|
Object.defineProperty(_$resize_6, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$resize_6["default"] = void 0;
|
||
|
|
||
|
var ___Interaction_6 = _$Interaction_18({});
|
||
|
|
||
|
var ___scope_6 = _$scope_24({});
|
||
|
|
||
|
var __arr_6 = ___interopRequireWildcard_6(_$arr_47);
|
||
|
|
||
|
var __dom_6 = ___interopRequireWildcard_6(_$domUtils_51);
|
||
|
|
||
|
var ___extend_6 = ___interopRequireDefault_6(_$extend_53);
|
||
|
|
||
|
var __is_6 = ___interopRequireWildcard_6(_$is_57);
|
||
|
|
||
|
function ___interopRequireDefault_6(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_6() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_6 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_6(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_6(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_6(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
___scope_6.ActionName.Resize = 'resize';
|
||
|
|
||
|
function __install_6(scope) {
|
||
|
var actions = scope.actions,
|
||
|
browser = scope.browser,
|
||
|
Interactable = scope.Interactable,
|
||
|
defaults = scope.defaults; // Less Precision with touch input
|
||
|
|
||
|
resize.cursors = initCursors(browser);
|
||
|
resize.defaultMargin = browser.supportsTouch || browser.supportsPointerEvent ? 20 : 10;
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(element).resizable({
|
||
|
* onstart: function (event) {},
|
||
|
* onmove : function (event) {},
|
||
|
* onend : function (event) {},
|
||
|
*
|
||
|
* edges: {
|
||
|
* top : true, // Use pointer coords to check for resize.
|
||
|
* left : false, // Disable resizing from left edge.
|
||
|
* bottom: '.resize-s',// Resize if pointer target matches selector
|
||
|
* right : handleEl // Resize if pointer target is the given Element
|
||
|
* },
|
||
|
*
|
||
|
* // Width and height can be adjusted independently. When `true`, width and
|
||
|
* // height are adjusted at a 1:1 ratio.
|
||
|
* square: false,
|
||
|
*
|
||
|
* // Width and height can be adjusted independently. When `true`, width and
|
||
|
* // height maintain the aspect ratio they had when resizing started.
|
||
|
* preserveAspectRatio: false,
|
||
|
*
|
||
|
* // a value of 'none' will limit the resize rect to a minimum of 0x0
|
||
|
* // 'negate' will allow the rect to have negative width/height
|
||
|
* // 'reposition' will keep the width/height positive by swapping
|
||
|
* // the top and bottom edges and/or swapping the left and right edges
|
||
|
* invert: 'none' || 'negate' || 'reposition'
|
||
|
*
|
||
|
* // limit multiple resizes.
|
||
|
* // See the explanation in the {@link Interactable.draggable} example
|
||
|
* max: Infinity,
|
||
|
* maxPerElement: 1,
|
||
|
* })
|
||
|
*
|
||
|
* var isResizeable = interact(element).resizable()
|
||
|
* ```
|
||
|
*
|
||
|
* Gets or sets whether resize actions can be performed on the target
|
||
|
*
|
||
|
* @param {boolean | object} [options] true/false or An object with event
|
||
|
* listeners to be fired on resize events (object makes the Interactable
|
||
|
* resizable)
|
||
|
* @return {boolean | Interactable} A boolean indicating if this can be the
|
||
|
* target of resize elements, or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.resizable = function (options) {
|
||
|
return resizable(this, options, scope);
|
||
|
};
|
||
|
|
||
|
actions[___scope_6.ActionName.Resize] = resize;
|
||
|
actions.names.push(___scope_6.ActionName.Resize);
|
||
|
__arr_6.merge(actions.eventTypes, ['resizestart', 'resizemove', 'resizeinertiastart', 'resizeresume', 'resizeend']);
|
||
|
actions.methodDict.resize = 'resizable';
|
||
|
defaults.actions.resize = resize.defaults;
|
||
|
}
|
||
|
|
||
|
function resizeChecker(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
interactable = arg.interactable,
|
||
|
element = arg.element,
|
||
|
rect = arg.rect,
|
||
|
buttons = arg.buttons;
|
||
|
|
||
|
if (!rect) {
|
||
|
return undefined;
|
||
|
}
|
||
|
|
||
|
var page = (0, ___extend_6["default"])({}, interaction.coords.cur.page);
|
||
|
var resizeOptions = interactable.options.resize;
|
||
|
|
||
|
if (!(resizeOptions && resizeOptions.enabled) || // check mouseButton setting if the pointer is down
|
||
|
interaction.pointerIsDown && /mouse|pointer/.test(interaction.pointerType) && (buttons & resizeOptions.mouseButtons) === 0) {
|
||
|
return undefined;
|
||
|
} // if using resize.edges
|
||
|
|
||
|
|
||
|
if (__is_6.object(resizeOptions.edges)) {
|
||
|
var resizeEdges = {
|
||
|
left: false,
|
||
|
right: false,
|
||
|
top: false,
|
||
|
bottom: false
|
||
|
};
|
||
|
|
||
|
for (var edge in resizeEdges) {
|
||
|
resizeEdges[edge] = checkResizeEdge(edge, resizeOptions.edges[edge], page, interaction._latestPointer.eventTarget, element, rect, resizeOptions.margin || resize.defaultMargin);
|
||
|
}
|
||
|
|
||
|
resizeEdges.left = resizeEdges.left && !resizeEdges.right;
|
||
|
resizeEdges.top = resizeEdges.top && !resizeEdges.bottom;
|
||
|
|
||
|
if (resizeEdges.left || resizeEdges.right || resizeEdges.top || resizeEdges.bottom) {
|
||
|
arg.action = {
|
||
|
name: ___scope_6.ActionName.Resize,
|
||
|
edges: resizeEdges
|
||
|
};
|
||
|
}
|
||
|
} else {
|
||
|
var right = resizeOptions.axis !== 'y' && page.x > rect.right - resize.defaultMargin;
|
||
|
var bottom = resizeOptions.axis !== 'x' && page.y > rect.bottom - resize.defaultMargin;
|
||
|
|
||
|
if (right || bottom) {
|
||
|
arg.action = {
|
||
|
name: 'resize',
|
||
|
axes: (right ? 'x' : '') + (bottom ? 'y' : '')
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return arg.action ? false : undefined;
|
||
|
}
|
||
|
|
||
|
function resizable(interactable, options, scope) {
|
||
|
if (__is_6.object(options)) {
|
||
|
interactable.options.resize.enabled = options.enabled !== false;
|
||
|
interactable.setPerAction(___scope_6.ActionName.Resize, options);
|
||
|
interactable.setOnEvents(___scope_6.ActionName.Resize, options);
|
||
|
|
||
|
if (__is_6.string(options.axis) && /^x$|^y$|^xy$/.test(options.axis)) {
|
||
|
interactable.options.resize.axis = options.axis;
|
||
|
} else if (options.axis === null) {
|
||
|
interactable.options.resize.axis = scope.defaults.actions.resize.axis;
|
||
|
}
|
||
|
|
||
|
if (__is_6.bool(options.preserveAspectRatio)) {
|
||
|
interactable.options.resize.preserveAspectRatio = options.preserveAspectRatio;
|
||
|
} else if (__is_6.bool(options.square)) {
|
||
|
interactable.options.resize.square = options.square;
|
||
|
}
|
||
|
|
||
|
return interactable;
|
||
|
}
|
||
|
|
||
|
if (__is_6.bool(options)) {
|
||
|
interactable.options.resize.enabled = options;
|
||
|
return interactable;
|
||
|
}
|
||
|
|
||
|
return interactable.options.resize;
|
||
|
}
|
||
|
|
||
|
function checkResizeEdge(name, value, page, element, interactableElement, rect, margin) {
|
||
|
// false, '', undefined, null
|
||
|
if (!value) {
|
||
|
return false;
|
||
|
} // true value, use pointer coords and element rect
|
||
|
|
||
|
|
||
|
if (value === true) {
|
||
|
// if dimensions are negative, "switch" edges
|
||
|
var width = __is_6.number(rect.width) ? rect.width : rect.right - rect.left;
|
||
|
var height = __is_6.number(rect.height) ? rect.height : rect.bottom - rect.top; // don't use margin greater than half the relevent dimension
|
||
|
|
||
|
margin = Math.min(margin, (name === 'left' || name === 'right' ? width : height) / 2);
|
||
|
|
||
|
if (width < 0) {
|
||
|
if (name === 'left') {
|
||
|
name = 'right';
|
||
|
} else if (name === 'right') {
|
||
|
name = 'left';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (height < 0) {
|
||
|
if (name === 'top') {
|
||
|
name = 'bottom';
|
||
|
} else if (name === 'bottom') {
|
||
|
name = 'top';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (name === 'left') {
|
||
|
return page.x < (width >= 0 ? rect.left : rect.right) + margin;
|
||
|
}
|
||
|
|
||
|
if (name === 'top') {
|
||
|
return page.y < (height >= 0 ? rect.top : rect.bottom) + margin;
|
||
|
}
|
||
|
|
||
|
if (name === 'right') {
|
||
|
return page.x > (width >= 0 ? rect.right : rect.left) - margin;
|
||
|
}
|
||
|
|
||
|
if (name === 'bottom') {
|
||
|
return page.y > (height >= 0 ? rect.bottom : rect.top) - margin;
|
||
|
}
|
||
|
} // the remaining checks require an element
|
||
|
|
||
|
|
||
|
if (!__is_6.element(element)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return __is_6.element(value) // the value is an element to use as a resize handle
|
||
|
? value === element // otherwise check if element matches value as selector
|
||
|
: __dom_6.matchesUpTo(element, value, interactableElement);
|
||
|
}
|
||
|
|
||
|
function initCursors(browser) {
|
||
|
return browser.isIe9 ? {
|
||
|
x: 'e-resize',
|
||
|
y: 's-resize',
|
||
|
xy: 'se-resize',
|
||
|
top: 'n-resize',
|
||
|
left: 'w-resize',
|
||
|
bottom: 's-resize',
|
||
|
right: 'e-resize',
|
||
|
topleft: 'se-resize',
|
||
|
bottomright: 'se-resize',
|
||
|
topright: 'ne-resize',
|
||
|
bottomleft: 'ne-resize'
|
||
|
} : {
|
||
|
x: 'ew-resize',
|
||
|
y: 'ns-resize',
|
||
|
xy: 'nwse-resize',
|
||
|
top: 'ns-resize',
|
||
|
left: 'ew-resize',
|
||
|
bottom: 'ns-resize',
|
||
|
right: 'ew-resize',
|
||
|
topleft: 'nwse-resize',
|
||
|
bottomright: 'nwse-resize',
|
||
|
topright: 'nesw-resize',
|
||
|
bottomleft: 'nesw-resize'
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function start(_ref) {
|
||
|
var iEvent = _ref.iEvent,
|
||
|
interaction = _ref.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var rect = interaction.rect;
|
||
|
interaction._rects = {
|
||
|
start: (0, ___extend_6["default"])({}, rect),
|
||
|
corrected: (0, ___extend_6["default"])({}, rect),
|
||
|
previous: (0, ___extend_6["default"])({}, rect),
|
||
|
delta: {
|
||
|
left: 0,
|
||
|
right: 0,
|
||
|
width: 0,
|
||
|
top: 0,
|
||
|
bottom: 0,
|
||
|
height: 0
|
||
|
}
|
||
|
};
|
||
|
iEvent.edges = interaction.prepared.edges;
|
||
|
iEvent.rect = interaction._rects.corrected;
|
||
|
iEvent.deltaRect = interaction._rects.delta;
|
||
|
}
|
||
|
|
||
|
function __move_6(_ref2) {
|
||
|
var iEvent = _ref2.iEvent,
|
||
|
interaction = _ref2.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var resizeOptions = interaction.interactable.options.resize;
|
||
|
var invert = resizeOptions.invert;
|
||
|
var invertible = invert === 'reposition' || invert === 'negate'; // eslint-disable-next-line no-shadow
|
||
|
|
||
|
var current = interaction.rect;
|
||
|
var _interaction$_rects = interaction._rects,
|
||
|
startRect = _interaction$_rects.start,
|
||
|
corrected = _interaction$_rects.corrected,
|
||
|
deltaRect = _interaction$_rects.delta,
|
||
|
previous = _interaction$_rects.previous;
|
||
|
(0, ___extend_6["default"])(previous, corrected);
|
||
|
|
||
|
if (invertible) {
|
||
|
// if invertible, copy the current rect
|
||
|
(0, ___extend_6["default"])(corrected, current);
|
||
|
|
||
|
if (invert === 'reposition') {
|
||
|
// swap edge values if necessary to keep width/height positive
|
||
|
if (corrected.top > corrected.bottom) {
|
||
|
var swap = corrected.top;
|
||
|
corrected.top = corrected.bottom;
|
||
|
corrected.bottom = swap;
|
||
|
}
|
||
|
|
||
|
if (corrected.left > corrected.right) {
|
||
|
var _swap = corrected.left;
|
||
|
corrected.left = corrected.right;
|
||
|
corrected.right = _swap;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
// if not invertible, restrict to minimum of 0x0 rect
|
||
|
corrected.top = Math.min(current.top, startRect.bottom);
|
||
|
corrected.bottom = Math.max(current.bottom, startRect.top);
|
||
|
corrected.left = Math.min(current.left, startRect.right);
|
||
|
corrected.right = Math.max(current.right, startRect.left);
|
||
|
}
|
||
|
|
||
|
corrected.width = corrected.right - corrected.left;
|
||
|
corrected.height = corrected.bottom - corrected.top;
|
||
|
|
||
|
for (var edge in corrected) {
|
||
|
deltaRect[edge] = corrected[edge] - previous[edge];
|
||
|
}
|
||
|
|
||
|
iEvent.edges = interaction.prepared.edges;
|
||
|
iEvent.rect = corrected;
|
||
|
iEvent.deltaRect = deltaRect;
|
||
|
}
|
||
|
|
||
|
function end(_ref3) {
|
||
|
var iEvent = _ref3.iEvent,
|
||
|
interaction = _ref3.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== 'resize' || !interaction.prepared.edges) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
iEvent.edges = interaction.prepared.edges;
|
||
|
iEvent.rect = interaction._rects.corrected;
|
||
|
iEvent.deltaRect = interaction._rects.delta;
|
||
|
}
|
||
|
|
||
|
function updateEventAxes(_ref4) {
|
||
|
var iEvent = _ref4.iEvent,
|
||
|
interaction = _ref4.interaction;
|
||
|
|
||
|
if (interaction.prepared.name !== ___scope_6.ActionName.Resize || !interaction.resizeAxes) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var options = interaction.interactable.options;
|
||
|
|
||
|
if (options.resize.square) {
|
||
|
if (interaction.resizeAxes === 'y') {
|
||
|
iEvent.delta.x = iEvent.delta.y;
|
||
|
} else {
|
||
|
iEvent.delta.y = iEvent.delta.x;
|
||
|
}
|
||
|
|
||
|
iEvent.axes = 'xy';
|
||
|
} else {
|
||
|
iEvent.axes = interaction.resizeAxes;
|
||
|
|
||
|
if (interaction.resizeAxes === 'x') {
|
||
|
iEvent.delta.y = 0;
|
||
|
} else if (interaction.resizeAxes === 'y') {
|
||
|
iEvent.delta.x = 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var resize = {
|
||
|
id: 'actions/resize',
|
||
|
before: ['actions/drag'],
|
||
|
install: __install_6,
|
||
|
listeners: {
|
||
|
'interactions:new': function interactionsNew(_ref5) {
|
||
|
var interaction = _ref5.interaction;
|
||
|
interaction.resizeAxes = 'xy';
|
||
|
},
|
||
|
'interactions:action-start': function interactionsActionStart(arg) {
|
||
|
start(arg);
|
||
|
updateEventAxes(arg);
|
||
|
},
|
||
|
'interactions:action-move': function interactionsActionMove(arg) {
|
||
|
__move_6(arg);
|
||
|
updateEventAxes(arg);
|
||
|
},
|
||
|
'interactions:action-end': end,
|
||
|
'auto-start:check': resizeChecker
|
||
|
},
|
||
|
defaults: {
|
||
|
square: false,
|
||
|
preserveAspectRatio: false,
|
||
|
axis: 'xy',
|
||
|
// use default margin
|
||
|
margin: NaN,
|
||
|
// object with props left, right, top, bottom which are
|
||
|
// true/false values to resize when the pointer is over that edge,
|
||
|
// CSS selectors to match the handles for each direction
|
||
|
// or the Elements for each handle
|
||
|
edges: null,
|
||
|
// a value of 'none' will limit the resize rect to a minimum of 0x0
|
||
|
// 'negate' will alow the rect to have negative width/height
|
||
|
// 'reposition' will keep the width/height positive by swapping
|
||
|
// the top and bottom edges and/or swapping the left and right edges
|
||
|
invert: 'none'
|
||
|
},
|
||
|
cursors: null,
|
||
|
getCursor: function getCursor(_ref6) {
|
||
|
var edges = _ref6.edges,
|
||
|
axis = _ref6.axis,
|
||
|
name = _ref6.name;
|
||
|
var cursors = resize.cursors;
|
||
|
var result = null;
|
||
|
|
||
|
if (axis) {
|
||
|
result = cursors[name + axis];
|
||
|
} else if (edges) {
|
||
|
var cursorKey = '';
|
||
|
var _arr = ['top', 'bottom', 'left', 'right'];
|
||
|
|
||
|
for (var _i = 0; _i < _arr.length; _i++) {
|
||
|
var edge = _arr[_i];
|
||
|
|
||
|
if (edges[edge]) {
|
||
|
cursorKey += edge;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
result = cursors[cursorKey];
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
},
|
||
|
defaultMargin: null
|
||
|
};
|
||
|
var ___default_6 = resize;
|
||
|
_$resize_6["default"] = ___default_6;
|
||
|
|
||
|
var _$index_5 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_5, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_5.install = __install_5;
|
||
|
Object.defineProperty(_$index_5, "drag", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___drag_5["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_5, "drop", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _index["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_5, "gesture", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _gesture["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_5, "resize", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _resize["default"];
|
||
|
}
|
||
|
});
|
||
|
_$index_5.id = void 0;
|
||
|
|
||
|
var ___drag_5 = ___interopRequireDefault_5(_$drag_1);
|
||
|
|
||
|
var _index = ___interopRequireDefault_5(_$index_3);
|
||
|
|
||
|
var _gesture = ___interopRequireDefault_5(_$gesture_4);
|
||
|
|
||
|
var _resize = ___interopRequireDefault_5(_$resize_6);
|
||
|
|
||
|
function ___interopRequireDefault_5(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_5(scope) {
|
||
|
scope.usePlugin(_gesture["default"]);
|
||
|
scope.usePlugin(_resize["default"]);
|
||
|
scope.usePlugin(___drag_5["default"]);
|
||
|
scope.usePlugin(_index["default"]);
|
||
|
}
|
||
|
|
||
|
var id = 'actions';
|
||
|
_$index_5.id = id;
|
||
|
|
||
|
var _$index_7 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_7(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_7 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_7 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_7(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_7, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_7.getContainer = getContainer;
|
||
|
_$index_7.getScroll = getScroll;
|
||
|
_$index_7.getScrollSize = getScrollSize;
|
||
|
_$index_7.getScrollSizeDelta = getScrollSizeDelta;
|
||
|
_$index_7["default"] = void 0;
|
||
|
|
||
|
var __domUtils_7 = ___interopRequireWildcard_7(_$domUtils_51);
|
||
|
|
||
|
var __is_7 = ___interopRequireWildcard_7(_$is_57);
|
||
|
|
||
|
var ___raf_7 = ___interopRequireDefault_7(_$raf_62);
|
||
|
|
||
|
/* removed: var _$rect_63 = require("@interactjs/utils/rect"); */;
|
||
|
|
||
|
/* removed: var _$window_66 = require("@interactjs/utils/window"); */;
|
||
|
|
||
|
function ___interopRequireDefault_7(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_7() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_7 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_7(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_7(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_7(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __install_7(scope) {
|
||
|
var defaults = scope.defaults,
|
||
|
actions = scope.actions;
|
||
|
scope.autoScroll = autoScroll;
|
||
|
|
||
|
autoScroll.now = function () {
|
||
|
return scope.now();
|
||
|
};
|
||
|
|
||
|
actions.eventTypes.push('autoscroll');
|
||
|
defaults.perAction.autoScroll = autoScroll.defaults;
|
||
|
}
|
||
|
|
||
|
var autoScroll = {
|
||
|
defaults: {
|
||
|
enabled: false,
|
||
|
margin: 60,
|
||
|
// the item that is scrolled (Window or HTMLElement)
|
||
|
container: null,
|
||
|
// the scroll speed in pixels per second
|
||
|
speed: 300
|
||
|
},
|
||
|
now: Date.now,
|
||
|
interaction: null,
|
||
|
i: 0,
|
||
|
// the handle returned by window.setInterval
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
// Direction each pulse is to scroll in
|
||
|
isScrolling: false,
|
||
|
prevTime: 0,
|
||
|
margin: 0,
|
||
|
speed: 0,
|
||
|
start: function start(interaction) {
|
||
|
autoScroll.isScrolling = true;
|
||
|
|
||
|
___raf_7["default"].cancel(autoScroll.i);
|
||
|
|
||
|
interaction.autoScroll = autoScroll;
|
||
|
autoScroll.interaction = interaction;
|
||
|
autoScroll.prevTime = autoScroll.now();
|
||
|
autoScroll.i = ___raf_7["default"].request(autoScroll.scroll);
|
||
|
},
|
||
|
stop: function stop() {
|
||
|
autoScroll.isScrolling = false;
|
||
|
|
||
|
if (autoScroll.interaction) {
|
||
|
autoScroll.interaction.autoScroll = null;
|
||
|
}
|
||
|
|
||
|
___raf_7["default"].cancel(autoScroll.i);
|
||
|
},
|
||
|
// scroll the window by the values in scroll.x/y
|
||
|
scroll: function scroll() {
|
||
|
var interaction = autoScroll.interaction;
|
||
|
var interactable = interaction.interactable,
|
||
|
element = interaction.element;
|
||
|
var actionName = interaction.prepared.name;
|
||
|
var options = interactable.options[actionName].autoScroll;
|
||
|
var container = getContainer(options.container, interactable, element);
|
||
|
var now = autoScroll.now(); // change in time in seconds
|
||
|
|
||
|
var dt = (now - autoScroll.prevTime) / 1000; // displacement
|
||
|
|
||
|
var s = options.speed * dt;
|
||
|
|
||
|
if (s >= 1) {
|
||
|
var scrollBy = {
|
||
|
x: autoScroll.x * s,
|
||
|
y: autoScroll.y * s
|
||
|
};
|
||
|
|
||
|
if (scrollBy.x || scrollBy.y) {
|
||
|
var prevScroll = getScroll(container);
|
||
|
|
||
|
if (__is_7.window(container)) {
|
||
|
container.scrollBy(scrollBy.x, scrollBy.y);
|
||
|
} else if (container) {
|
||
|
container.scrollLeft += scrollBy.x;
|
||
|
container.scrollTop += scrollBy.y;
|
||
|
}
|
||
|
|
||
|
var curScroll = getScroll(container);
|
||
|
var delta = {
|
||
|
x: curScroll.x - prevScroll.x,
|
||
|
y: curScroll.y - prevScroll.y
|
||
|
};
|
||
|
|
||
|
if (delta.x || delta.y) {
|
||
|
interactable.fire({
|
||
|
type: 'autoscroll',
|
||
|
target: element,
|
||
|
interactable: interactable,
|
||
|
delta: delta,
|
||
|
interaction: interaction,
|
||
|
container: container
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
autoScroll.prevTime = now;
|
||
|
}
|
||
|
|
||
|
if (autoScroll.isScrolling) {
|
||
|
___raf_7["default"].cancel(autoScroll.i);
|
||
|
|
||
|
autoScroll.i = ___raf_7["default"].request(autoScroll.scroll);
|
||
|
}
|
||
|
},
|
||
|
check: function check(interactable, actionName) {
|
||
|
var options = interactable.options;
|
||
|
return options[actionName].autoScroll && options[actionName].autoScroll.enabled;
|
||
|
},
|
||
|
onInteractionMove: function onInteractionMove(_ref) {
|
||
|
var interaction = _ref.interaction,
|
||
|
pointer = _ref.pointer;
|
||
|
|
||
|
if (!(interaction.interacting() && autoScroll.check(interaction.interactable, interaction.prepared.name))) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (interaction.simulation) {
|
||
|
autoScroll.x = autoScroll.y = 0;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var top;
|
||
|
var right;
|
||
|
var bottom;
|
||
|
var left;
|
||
|
var interactable = interaction.interactable,
|
||
|
element = interaction.element;
|
||
|
var actionName = interaction.prepared.name;
|
||
|
var options = interactable.options[actionName].autoScroll;
|
||
|
var container = getContainer(options.container, interactable, element);
|
||
|
|
||
|
if (__is_7.window(container)) {
|
||
|
left = pointer.clientX < autoScroll.margin;
|
||
|
top = pointer.clientY < autoScroll.margin;
|
||
|
right = pointer.clientX > container.innerWidth - autoScroll.margin;
|
||
|
bottom = pointer.clientY > container.innerHeight - autoScroll.margin;
|
||
|
} else {
|
||
|
var rect = __domUtils_7.getElementClientRect(container);
|
||
|
left = pointer.clientX < rect.left + autoScroll.margin;
|
||
|
top = pointer.clientY < rect.top + autoScroll.margin;
|
||
|
right = pointer.clientX > rect.right - autoScroll.margin;
|
||
|
bottom = pointer.clientY > rect.bottom - autoScroll.margin;
|
||
|
}
|
||
|
|
||
|
autoScroll.x = right ? 1 : left ? -1 : 0;
|
||
|
autoScroll.y = bottom ? 1 : top ? -1 : 0;
|
||
|
|
||
|
if (!autoScroll.isScrolling) {
|
||
|
// set the autoScroll properties to those of the target
|
||
|
autoScroll.margin = options.margin;
|
||
|
autoScroll.speed = options.speed;
|
||
|
autoScroll.start(interaction);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function getContainer(value, interactable, element) {
|
||
|
return (__is_7.string(value) ? (0, _$rect_63.getStringOptionResult)(value, interactable, element) : value) || (0, _$window_66.getWindow)(element);
|
||
|
}
|
||
|
|
||
|
function getScroll(container) {
|
||
|
if (__is_7.window(container)) {
|
||
|
container = window.document.body;
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
x: container.scrollLeft,
|
||
|
y: container.scrollTop
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getScrollSize(container) {
|
||
|
if (__is_7.window(container)) {
|
||
|
container = window.document.body;
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
x: container.scrollWidth,
|
||
|
y: container.scrollHeight
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getScrollSizeDelta(_ref2, func) {
|
||
|
var interaction = _ref2.interaction,
|
||
|
element = _ref2.element;
|
||
|
var scrollOptions = interaction && interaction.interactable.options[interaction.prepared.name].autoScroll;
|
||
|
|
||
|
if (!scrollOptions || !scrollOptions.enabled) {
|
||
|
func();
|
||
|
return {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var scrollContainer = getContainer(scrollOptions.container, interaction.interactable, element);
|
||
|
var prevSize = getScroll(scrollContainer);
|
||
|
func();
|
||
|
var curSize = getScroll(scrollContainer);
|
||
|
return {
|
||
|
x: curSize.x - prevSize.x,
|
||
|
y: curSize.y - prevSize.y
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var autoScrollPlugin = {
|
||
|
id: 'auto-scroll',
|
||
|
install: __install_7,
|
||
|
listeners: {
|
||
|
'interactions:new': function interactionsNew(_ref3) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
interaction.autoScroll = null;
|
||
|
},
|
||
|
'interactions:destroy': function interactionsDestroy(_ref4) {
|
||
|
var interaction = _ref4.interaction;
|
||
|
interaction.autoScroll = null;
|
||
|
autoScroll.stop();
|
||
|
|
||
|
if (autoScroll.interaction) {
|
||
|
autoScroll.interaction = null;
|
||
|
}
|
||
|
},
|
||
|
'interactions:stop': autoScroll.stop,
|
||
|
'interactions:action-move': function interactionsActionMove(arg) {
|
||
|
return autoScroll.onInteractionMove(arg);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
var ___default_7 = autoScrollPlugin;
|
||
|
_$index_7["default"] = ___default_7;
|
||
|
|
||
|
var _$InteractableMethods_8 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_8(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_8 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_8 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_8(obj); }
|
||
|
|
||
|
Object.defineProperty(_$InteractableMethods_8, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$InteractableMethods_8["default"] = void 0;
|
||
|
|
||
|
/* removed: var _$index_56 = require("@interactjs/utils/index"); */;
|
||
|
|
||
|
var __is_8 = ___interopRequireWildcard_8(_$is_57);
|
||
|
|
||
|
function ___getRequireWildcardCache_8() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_8 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_8(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_8(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_8(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __install_8(scope) {
|
||
|
var Interactable = scope.Interactable;
|
||
|
|
||
|
Interactable.prototype.getAction = function getAction(pointer, event, interaction, element) {
|
||
|
var action = defaultActionChecker(this, event, interaction, element, scope);
|
||
|
|
||
|
if (this.options.actionChecker) {
|
||
|
return this.options.actionChecker(pointer, event, action, this, element, interaction);
|
||
|
}
|
||
|
|
||
|
return action;
|
||
|
};
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact(element, { ignoreFrom: document.getElementById('no-action') })
|
||
|
* // or
|
||
|
* interact(element).ignoreFrom('input, textarea, a')
|
||
|
* ```
|
||
|
* @deprecated
|
||
|
* If the target of the `mousedown`, `pointerdown` or `touchstart` event or any
|
||
|
* of it's parents match the given CSS selector or Element, no
|
||
|
* drag/resize/gesture is started.
|
||
|
*
|
||
|
* Don't use this method. Instead set the `ignoreFrom` option for each action
|
||
|
* or for `pointerEvents`
|
||
|
*
|
||
|
* @example
|
||
|
* interact(targett)
|
||
|
* .draggable({
|
||
|
* ignoreFrom: 'input, textarea, a[href]'',
|
||
|
* })
|
||
|
* .pointerEvents({
|
||
|
* ignoreFrom: '[no-pointer]',
|
||
|
* })
|
||
|
*
|
||
|
* @param {string | Element | null} [newValue] a CSS selector string, an
|
||
|
* Element or `null` to not ignore any elements
|
||
|
* @return {string | Element | object} The current ignoreFrom value or this
|
||
|
* Interactable
|
||
|
*/
|
||
|
|
||
|
|
||
|
Interactable.prototype.ignoreFrom = (0, _$index_56.warnOnce)(function (newValue) {
|
||
|
return this._backCompatOption('ignoreFrom', newValue);
|
||
|
}, 'Interactable.ignoreFrom() has been deprecated. Use Interactble.draggable({ignoreFrom: newValue}).');
|
||
|
/**
|
||
|
* @deprecated
|
||
|
*
|
||
|
* A drag/resize/gesture is started only If the target of the `mousedown`,
|
||
|
* `pointerdown` or `touchstart` event or any of it's parents match the given
|
||
|
* CSS selector or Element.
|
||
|
*
|
||
|
* Don't use this method. Instead set the `allowFrom` option for each action
|
||
|
* or for `pointerEvents`
|
||
|
*
|
||
|
* @example
|
||
|
* interact(targett)
|
||
|
* .resizable({
|
||
|
* allowFrom: '.resize-handle',
|
||
|
* .pointerEvents({
|
||
|
* allowFrom: '.handle',,
|
||
|
* })
|
||
|
*
|
||
|
* @param {string | Element | null} [newValue] a CSS selector string, an
|
||
|
* Element or `null` to allow from any element
|
||
|
* @return {string | Element | object} The current allowFrom value or this
|
||
|
* Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.allowFrom = (0, _$index_56.warnOnce)(function (newValue) {
|
||
|
return this._backCompatOption('allowFrom', newValue);
|
||
|
}, 'Interactable.allowFrom() has been deprecated. Use Interactble.draggable({allowFrom: newValue}).');
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact('.resize-drag')
|
||
|
* .resizable(true)
|
||
|
* .draggable(true)
|
||
|
* .actionChecker(function (pointer, event, action, interactable, element, interaction) {
|
||
|
*
|
||
|
* if (interact.matchesSelector(event.target, '.drag-handle')) {
|
||
|
* // force drag with handle target
|
||
|
* action.name = drag
|
||
|
* }
|
||
|
* else {
|
||
|
* // resize from the top and right edges
|
||
|
* action.name = 'resize'
|
||
|
* action.edges = { top: true, right: true }
|
||
|
* }
|
||
|
*
|
||
|
* return action
|
||
|
* })
|
||
|
* ```
|
||
|
*
|
||
|
* Returns or sets the function used to check action to be performed on
|
||
|
* pointerDown
|
||
|
*
|
||
|
* @param {function | null} [checker] A function which takes a pointer event,
|
||
|
* defaultAction string, interactable, element and interaction as parameters
|
||
|
* and returns an object with name property 'drag' 'resize' or 'gesture' and
|
||
|
* optionally an `edges` object with boolean 'top', 'left', 'bottom' and right
|
||
|
* props.
|
||
|
* @return {Function | Interactable} The checker function or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.actionChecker = actionChecker;
|
||
|
/**
|
||
|
* Returns or sets whether the the cursor should be changed depending on the
|
||
|
* action that would be performed if the mouse were pressed and dragged.
|
||
|
*
|
||
|
* @param {boolean} [newValue]
|
||
|
* @return {boolean | Interactable} The current setting or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.styleCursor = styleCursor;
|
||
|
}
|
||
|
|
||
|
function defaultActionChecker(interactable, event, interaction, element, scope) {
|
||
|
var rect = interactable.getRect(element);
|
||
|
var buttons = event.buttons || {
|
||
|
0: 1,
|
||
|
1: 4,
|
||
|
3: 8,
|
||
|
4: 16
|
||
|
}[event.button];
|
||
|
var arg = {
|
||
|
action: null,
|
||
|
interactable: interactable,
|
||
|
interaction: interaction,
|
||
|
element: element,
|
||
|
rect: rect,
|
||
|
buttons: buttons
|
||
|
};
|
||
|
scope.fire('auto-start:check', arg);
|
||
|
return arg.action;
|
||
|
}
|
||
|
|
||
|
function styleCursor(newValue) {
|
||
|
if (__is_8.bool(newValue)) {
|
||
|
this.options.styleCursor = newValue;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (newValue === null) {
|
||
|
delete this.options.styleCursor;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.styleCursor;
|
||
|
}
|
||
|
|
||
|
function actionChecker(checker) {
|
||
|
if (__is_8.func(checker)) {
|
||
|
this.options.actionChecker = checker;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (checker === null) {
|
||
|
delete this.options.actionChecker;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.actionChecker;
|
||
|
}
|
||
|
|
||
|
var ___default_8 = {
|
||
|
id: 'auto-start/interactableMethods',
|
||
|
install: __install_8
|
||
|
};
|
||
|
_$InteractableMethods_8["default"] = ___default_8;
|
||
|
|
||
|
var _$base_9 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_9(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_9 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_9 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_9(obj); }
|
||
|
|
||
|
Object.defineProperty(_$base_9, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$base_9["default"] = void 0;
|
||
|
|
||
|
var __utils_9 = ___interopRequireWildcard_9(_$index_56);
|
||
|
|
||
|
var _InteractableMethods = ___interopRequireDefault_9(_$InteractableMethods_8);
|
||
|
|
||
|
function ___interopRequireDefault_9(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_9() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_9 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_9(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_9(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_9(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __install_9(scope) {
|
||
|
var interact = scope.interact,
|
||
|
defaults = scope.defaults;
|
||
|
scope.usePlugin(_InteractableMethods["default"]);
|
||
|
defaults.base.actionChecker = null;
|
||
|
defaults.base.styleCursor = true;
|
||
|
__utils_9.extend(defaults.perAction, {
|
||
|
manualStart: false,
|
||
|
max: Infinity,
|
||
|
maxPerElement: 1,
|
||
|
allowFrom: null,
|
||
|
ignoreFrom: null,
|
||
|
// only allow left button by default
|
||
|
// see https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons#Return_value
|
||
|
mouseButtons: 1
|
||
|
});
|
||
|
/**
|
||
|
* Returns or sets the maximum number of concurrent interactions allowed. By
|
||
|
* default only 1 interaction is allowed at a time (for backwards
|
||
|
* compatibility). To allow multiple interactions on the same Interactables and
|
||
|
* elements, you need to enable it in the draggable, resizable and gesturable
|
||
|
* `'max'` and `'maxPerElement'` options.
|
||
|
*
|
||
|
* @alias module:interact.maxInteractions
|
||
|
*
|
||
|
* @param {number} [newValue] Any number. newValue <= 0 means no interactions.
|
||
|
*/
|
||
|
|
||
|
interact.maxInteractions = function (newValue) {
|
||
|
return maxInteractions(newValue, scope);
|
||
|
};
|
||
|
|
||
|
scope.autoStart = {
|
||
|
// Allow this many interactions to happen simultaneously
|
||
|
maxInteractions: Infinity,
|
||
|
withinInteractionLimit: withinInteractionLimit,
|
||
|
cursorElement: null
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function prepareOnDown(_ref, scope) {
|
||
|
var interaction = _ref.interaction,
|
||
|
pointer = _ref.pointer,
|
||
|
event = _ref.event,
|
||
|
eventTarget = _ref.eventTarget;
|
||
|
|
||
|
if (interaction.interacting()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var actionInfo = getActionInfo(interaction, pointer, event, eventTarget, scope);
|
||
|
prepare(interaction, actionInfo, scope);
|
||
|
}
|
||
|
|
||
|
function prepareOnMove(_ref2, scope) {
|
||
|
var interaction = _ref2.interaction,
|
||
|
pointer = _ref2.pointer,
|
||
|
event = _ref2.event,
|
||
|
eventTarget = _ref2.eventTarget;
|
||
|
|
||
|
if (interaction.pointerType !== 'mouse' || interaction.pointerIsDown || interaction.interacting()) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var actionInfo = getActionInfo(interaction, pointer, event, eventTarget, scope);
|
||
|
prepare(interaction, actionInfo, scope);
|
||
|
}
|
||
|
|
||
|
function startOnMove(arg, scope) {
|
||
|
var interaction = arg.interaction;
|
||
|
|
||
|
if (!interaction.pointerIsDown || interaction.interacting() || !interaction.pointerWasMoved || !interaction.prepared.name) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
scope.fire('autoStart:before-start', arg);
|
||
|
var interactable = interaction.interactable;
|
||
|
var actionName = interaction.prepared.name;
|
||
|
|
||
|
if (actionName && interactable) {
|
||
|
// check manualStart and interaction limit
|
||
|
if (interactable.options[actionName].manualStart || !withinInteractionLimit(interactable, interaction.element, interaction.prepared, scope)) {
|
||
|
interaction.stop();
|
||
|
} else {
|
||
|
interaction.start(interaction.prepared, interactable, interaction.element);
|
||
|
setInteractionCursor(interaction, scope);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function clearCursorOnStop(_ref3, scope) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
var interactable = interaction.interactable;
|
||
|
|
||
|
if (interactable && interactable.options.styleCursor) {
|
||
|
setCursor(interaction.element, '', scope);
|
||
|
}
|
||
|
} // Check if the current interactable supports the action.
|
||
|
// If so, return the validated action. Otherwise, return null
|
||
|
|
||
|
|
||
|
function validateAction(action, interactable, element, eventTarget, scope) {
|
||
|
if (interactable.testIgnoreAllow(interactable.options[action.name], element, eventTarget) && interactable.options[action.name].enabled && withinInteractionLimit(interactable, element, action, scope)) {
|
||
|
return action;
|
||
|
}
|
||
|
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
function validateMatches(interaction, pointer, event, matches, matchElements, eventTarget, scope) {
|
||
|
for (var i = 0, len = matches.length; i < len; i++) {
|
||
|
var match = matches[i];
|
||
|
var matchElement = matchElements[i];
|
||
|
var matchAction = match.getAction(pointer, event, interaction, matchElement);
|
||
|
|
||
|
if (!matchAction) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
var action = validateAction(matchAction, match, matchElement, eventTarget, scope);
|
||
|
|
||
|
if (action) {
|
||
|
return {
|
||
|
action: action,
|
||
|
interactable: match,
|
||
|
element: matchElement
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
action: null,
|
||
|
interactable: null,
|
||
|
element: null
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function getActionInfo(interaction, pointer, event, eventTarget, scope) {
|
||
|
var matches = [];
|
||
|
var matchElements = [];
|
||
|
var element = eventTarget;
|
||
|
|
||
|
function pushMatches(interactable) {
|
||
|
matches.push(interactable);
|
||
|
matchElements.push(element);
|
||
|
}
|
||
|
|
||
|
while (__utils_9.is.element(element)) {
|
||
|
matches = [];
|
||
|
matchElements = [];
|
||
|
scope.interactables.forEachMatch(element, pushMatches);
|
||
|
var actionInfo = validateMatches(interaction, pointer, event, matches, matchElements, eventTarget, scope);
|
||
|
|
||
|
if (actionInfo.action && !actionInfo.interactable.options[actionInfo.action.name].manualStart) {
|
||
|
return actionInfo;
|
||
|
}
|
||
|
|
||
|
element = __utils_9.dom.parentNode(element);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
action: null,
|
||
|
interactable: null,
|
||
|
element: null
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function prepare(interaction, _ref4, scope) {
|
||
|
var action = _ref4.action,
|
||
|
interactable = _ref4.interactable,
|
||
|
element = _ref4.element;
|
||
|
action = action || {
|
||
|
name: null
|
||
|
};
|
||
|
interaction.interactable = interactable;
|
||
|
interaction.element = element;
|
||
|
__utils_9.copyAction(interaction.prepared, action);
|
||
|
interaction.rect = interactable && action.name ? interactable.getRect(element) : null;
|
||
|
setInteractionCursor(interaction, scope);
|
||
|
scope.fire('autoStart:prepared', {
|
||
|
interaction: interaction
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function withinInteractionLimit(interactable, element, action, scope) {
|
||
|
var options = interactable.options;
|
||
|
var maxActions = options[action.name].max;
|
||
|
var maxPerElement = options[action.name].maxPerElement;
|
||
|
var autoStartMax = scope.autoStart.maxInteractions;
|
||
|
var activeInteractions = 0;
|
||
|
var interactableCount = 0;
|
||
|
var elementCount = 0; // no actions if any of these values == 0
|
||
|
|
||
|
if (!(maxActions && maxPerElement && autoStartMax)) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
for (var _i = 0; _i < scope.interactions.list.length; _i++) {
|
||
|
var _ref5;
|
||
|
|
||
|
_ref5 = scope.interactions.list[_i];
|
||
|
var interaction = _ref5;
|
||
|
var otherAction = interaction.prepared.name;
|
||
|
|
||
|
if (!interaction.interacting()) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
activeInteractions++;
|
||
|
|
||
|
if (activeInteractions >= autoStartMax) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (interaction.interactable !== interactable) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
interactableCount += otherAction === action.name ? 1 : 0;
|
||
|
|
||
|
if (interactableCount >= maxActions) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (interaction.element === element) {
|
||
|
elementCount++;
|
||
|
|
||
|
if (otherAction === action.name && elementCount >= maxPerElement) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return autoStartMax > 0;
|
||
|
}
|
||
|
|
||
|
function maxInteractions(newValue, scope) {
|
||
|
if (__utils_9.is.number(newValue)) {
|
||
|
scope.autoStart.maxInteractions = newValue;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return scope.autoStart.maxInteractions;
|
||
|
}
|
||
|
|
||
|
function setCursor(element, cursor, scope) {
|
||
|
var prevCursorElement = scope.autoStart.cursorElement;
|
||
|
|
||
|
if (prevCursorElement && prevCursorElement !== element) {
|
||
|
prevCursorElement.style.cursor = '';
|
||
|
}
|
||
|
|
||
|
element.ownerDocument.documentElement.style.cursor = cursor;
|
||
|
element.style.cursor = cursor;
|
||
|
scope.autoStart.cursorElement = cursor ? element : null;
|
||
|
}
|
||
|
|
||
|
function setInteractionCursor(interaction, scope) {
|
||
|
var interactable = interaction.interactable,
|
||
|
element = interaction.element,
|
||
|
prepared = interaction.prepared;
|
||
|
|
||
|
if (!(interaction.pointerType === 'mouse' && interactable && interactable.options.styleCursor)) {
|
||
|
// clear previous target element cursor
|
||
|
if (scope.autoStart.cursorElement) {
|
||
|
setCursor(scope.autoStart.cursorElement, '', scope);
|
||
|
}
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var cursor = '';
|
||
|
|
||
|
if (prepared.name) {
|
||
|
var cursorChecker = interactable.options[prepared.name].cursorChecker;
|
||
|
|
||
|
if (__utils_9.is.func(cursorChecker)) {
|
||
|
cursor = cursorChecker(prepared, interactable, element, interaction._interacting);
|
||
|
} else {
|
||
|
cursor = scope.actions[prepared.name].getCursor(prepared);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
setCursor(interaction.element, cursor || '', scope);
|
||
|
}
|
||
|
|
||
|
var autoStart = {
|
||
|
id: 'auto-start/base',
|
||
|
before: ['actions', 'action/drag', 'actions/resize', 'actions/gesture'],
|
||
|
install: __install_9,
|
||
|
listeners: {
|
||
|
'interactions:down': prepareOnDown,
|
||
|
'interactions:move': function interactionsMove(arg, scope) {
|
||
|
prepareOnMove(arg, scope);
|
||
|
startOnMove(arg, scope);
|
||
|
},
|
||
|
'interactions:stop': clearCursorOnStop
|
||
|
},
|
||
|
maxInteractions: maxInteractions,
|
||
|
withinInteractionLimit: withinInteractionLimit,
|
||
|
validateAction: validateAction
|
||
|
};
|
||
|
var ___default_9 = autoStart;
|
||
|
_$base_9["default"] = ___default_9;
|
||
|
|
||
|
var _$dragAxis_10 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_10(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_10 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_10 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_10(obj); }
|
||
|
|
||
|
Object.defineProperty(_$dragAxis_10, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$dragAxis_10["default"] = void 0;
|
||
|
|
||
|
var ___scope_10 = _$scope_24({});
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("@interactjs/utils/domUtils"); */;
|
||
|
|
||
|
var __is_10 = ___interopRequireWildcard_10(_$is_57);
|
||
|
|
||
|
var _base = ___interopRequireDefault_10(_$base_9);
|
||
|
|
||
|
function ___interopRequireDefault_10(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_10() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_10 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_10(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_10(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_10(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function beforeStart(_ref, scope) {
|
||
|
var interaction = _ref.interaction,
|
||
|
eventTarget = _ref.eventTarget,
|
||
|
dx = _ref.dx,
|
||
|
dy = _ref.dy;
|
||
|
|
||
|
if (interaction.prepared.name !== 'drag') {
|
||
|
return;
|
||
|
} // check if a drag is in the correct axis
|
||
|
|
||
|
|
||
|
var absX = Math.abs(dx);
|
||
|
var absY = Math.abs(dy);
|
||
|
var targetOptions = interaction.interactable.options.drag;
|
||
|
var startAxis = targetOptions.startAxis;
|
||
|
var currentAxis = absX > absY ? 'x' : absX < absY ? 'y' : 'xy';
|
||
|
interaction.prepared.axis = targetOptions.lockAxis === 'start' ? currentAxis[0] // always lock to one axis even if currentAxis === 'xy'
|
||
|
: targetOptions.lockAxis; // if the movement isn't in the startAxis of the interactable
|
||
|
|
||
|
if (currentAxis !== 'xy' && startAxis !== 'xy' && startAxis !== currentAxis) {
|
||
|
// cancel the prepared action
|
||
|
interaction.prepared.name = null; // then try to get a drag from another ineractable
|
||
|
|
||
|
var element = eventTarget;
|
||
|
|
||
|
var getDraggable = function getDraggable(interactable) {
|
||
|
if (interactable === interaction.interactable) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var options = interaction.interactable.options.drag;
|
||
|
|
||
|
if (!options.manualStart && interactable.testIgnoreAllow(options, element, eventTarget)) {
|
||
|
var action = interactable.getAction(interaction.downPointer, interaction.downEvent, interaction, element);
|
||
|
|
||
|
if (action && action.name === ___scope_10.ActionName.Drag && checkStartAxis(currentAxis, interactable) && _base["default"].validateAction(action, interactable, element, eventTarget, scope)) {
|
||
|
return interactable;
|
||
|
}
|
||
|
}
|
||
|
}; // check all interactables
|
||
|
|
||
|
|
||
|
while (__is_10.element(element)) {
|
||
|
var interactable = scope.interactables.forEachMatch(element, getDraggable);
|
||
|
|
||
|
if (interactable) {
|
||
|
interaction.prepared.name = ___scope_10.ActionName.Drag;
|
||
|
interaction.interactable = interactable;
|
||
|
interaction.element = element;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
element = (0, _$domUtils_51.parentNode)(element);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function checkStartAxis(startAxis, interactable) {
|
||
|
if (!interactable) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
var thisAxis = interactable.options[___scope_10.ActionName.Drag].startAxis;
|
||
|
return startAxis === 'xy' || thisAxis === 'xy' || thisAxis === startAxis;
|
||
|
}
|
||
|
|
||
|
var ___default_10 = {
|
||
|
id: 'auto-start/dragAxis',
|
||
|
listeners: {
|
||
|
'autoStart:before-start': beforeStart
|
||
|
}
|
||
|
};
|
||
|
_$dragAxis_10["default"] = ___default_10;
|
||
|
|
||
|
var _$hold_11 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$hold_11, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$hold_11["default"] = void 0;
|
||
|
|
||
|
var ___base_11 = ___interopRequireDefault_11(_$base_9);
|
||
|
|
||
|
function ___interopRequireDefault_11(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_11(scope) {
|
||
|
var defaults = scope.defaults;
|
||
|
scope.usePlugin(___base_11["default"]);
|
||
|
defaults.perAction.hold = 0;
|
||
|
defaults.perAction.delay = 0;
|
||
|
}
|
||
|
|
||
|
function getHoldDuration(interaction) {
|
||
|
var actionName = interaction.prepared && interaction.prepared.name;
|
||
|
|
||
|
if (!actionName) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var options = interaction.interactable.options;
|
||
|
return options[actionName].hold || options[actionName].delay;
|
||
|
}
|
||
|
|
||
|
var ___default_11 = {
|
||
|
id: 'auto-start/hold',
|
||
|
install: __install_11,
|
||
|
listeners: {
|
||
|
'interactions:new': function interactionsNew(_ref) {
|
||
|
var interaction = _ref.interaction;
|
||
|
interaction.autoStartHoldTimer = null;
|
||
|
},
|
||
|
'autoStart:prepared': function autoStartPrepared(_ref2) {
|
||
|
var interaction = _ref2.interaction;
|
||
|
var hold = getHoldDuration(interaction);
|
||
|
|
||
|
if (hold > 0) {
|
||
|
interaction.autoStartHoldTimer = setTimeout(function () {
|
||
|
interaction.start(interaction.prepared, interaction.interactable, interaction.element);
|
||
|
}, hold);
|
||
|
}
|
||
|
},
|
||
|
'interactions:move': function interactionsMove(_ref3) {
|
||
|
var interaction = _ref3.interaction,
|
||
|
duplicate = _ref3.duplicate;
|
||
|
|
||
|
if (interaction.pointerWasMoved && !duplicate) {
|
||
|
clearTimeout(interaction.autoStartHoldTimer);
|
||
|
}
|
||
|
},
|
||
|
// prevent regular down->move autoStart
|
||
|
'autoStart:before-start': function autoStartBeforeStart(_ref4) {
|
||
|
var interaction = _ref4.interaction;
|
||
|
var hold = getHoldDuration(interaction);
|
||
|
|
||
|
if (hold > 0) {
|
||
|
interaction.prepared.name = null;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
getHoldDuration: getHoldDuration
|
||
|
};
|
||
|
_$hold_11["default"] = ___default_11;
|
||
|
|
||
|
var _$index_12 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_12, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_12.install = __install_12;
|
||
|
Object.defineProperty(_$index_12, "autoStart", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___base_12["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_12, "dragAxis", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _dragAxis["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_12, "hold", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _hold["default"];
|
||
|
}
|
||
|
});
|
||
|
_$index_12.id = void 0;
|
||
|
|
||
|
var ___base_12 = ___interopRequireDefault_12(_$base_9);
|
||
|
|
||
|
var _dragAxis = ___interopRequireDefault_12(_$dragAxis_10);
|
||
|
|
||
|
var _hold = ___interopRequireDefault_12(_$hold_11);
|
||
|
|
||
|
function ___interopRequireDefault_12(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_12(scope) {
|
||
|
scope.usePlugin(___base_12["default"]);
|
||
|
scope.usePlugin(_hold["default"]);
|
||
|
scope.usePlugin(_dragAxis["default"]);
|
||
|
}
|
||
|
|
||
|
var __id_12 = 'auto-start';
|
||
|
_$index_12.id = __id_12;
|
||
|
|
||
|
var _$interactablePreventDefault_21 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_21(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_21 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_21 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_21(obj); }
|
||
|
|
||
|
Object.defineProperty(_$interactablePreventDefault_21, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$interactablePreventDefault_21.install = __install_21;
|
||
|
_$interactablePreventDefault_21["default"] = void 0;
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("@interactjs/utils/domUtils"); */;
|
||
|
|
||
|
var ___events_21 = ___interopRequireDefault_21(_$events_52);
|
||
|
|
||
|
var __is_21 = ___interopRequireWildcard_21(_$is_57);
|
||
|
|
||
|
/* removed: var _$window_66 = require("@interactjs/utils/window"); */;
|
||
|
|
||
|
function ___getRequireWildcardCache_21() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_21 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_21(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_21(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_21(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_21(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function preventDefault(newValue) {
|
||
|
if (/^(always|never|auto)$/.test(newValue)) {
|
||
|
this.options.preventDefault = newValue;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
if (__is_21.bool(newValue)) {
|
||
|
this.options.preventDefault = newValue ? 'always' : 'never';
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.preventDefault;
|
||
|
}
|
||
|
|
||
|
function checkAndPreventDefault(interactable, scope, event) {
|
||
|
var setting = interactable.options.preventDefault;
|
||
|
|
||
|
if (setting === 'never') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (setting === 'always') {
|
||
|
event.preventDefault();
|
||
|
return;
|
||
|
} // setting === 'auto'
|
||
|
// if the browser supports passive event listeners and isn't running on iOS,
|
||
|
// don't preventDefault of touch{start,move} events. CSS touch-action and
|
||
|
// user-select should be used instead of calling event.preventDefault().
|
||
|
|
||
|
|
||
|
if (___events_21["default"].supportsPassive && /^touch(start|move)$/.test(event.type)) {
|
||
|
var doc = (0, _$window_66.getWindow)(event.target).document;
|
||
|
var docOptions = scope.getDocOptions(doc);
|
||
|
|
||
|
if (!(docOptions && docOptions.events) || docOptions.events.passive !== false) {
|
||
|
return;
|
||
|
}
|
||
|
} // don't preventDefault of pointerdown events
|
||
|
|
||
|
|
||
|
if (/^(mouse|pointer|touch)*(down|start)/i.test(event.type)) {
|
||
|
return;
|
||
|
} // don't preventDefault on editable elements
|
||
|
|
||
|
|
||
|
if (__is_21.element(event.target) && (0, _$domUtils_51.matchesSelector)(event.target, 'input,select,textarea,[contenteditable=true],[contenteditable=true] *')) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
event.preventDefault();
|
||
|
}
|
||
|
|
||
|
function onInteractionEvent(_ref) {
|
||
|
var interaction = _ref.interaction,
|
||
|
event = _ref.event;
|
||
|
|
||
|
if (interaction.interactable) {
|
||
|
interaction.interactable.checkAndPreventDefault(event);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function __install_21(scope) {
|
||
|
/** @lends Interactable */
|
||
|
var Interactable = scope.Interactable;
|
||
|
/**
|
||
|
* Returns or sets whether to prevent the browser's default behaviour in
|
||
|
* response to pointer events. Can be set to:
|
||
|
* - `'always'` to always prevent
|
||
|
* - `'never'` to never prevent
|
||
|
* - `'auto'` to let interact.js try to determine what would be best
|
||
|
*
|
||
|
* @param {string} [newValue] `'always'`, `'never'` or `'auto'`
|
||
|
* @return {string | Interactable} The current setting or this Interactable
|
||
|
*/
|
||
|
|
||
|
Interactable.prototype.preventDefault = preventDefault;
|
||
|
|
||
|
Interactable.prototype.checkAndPreventDefault = function (event) {
|
||
|
return checkAndPreventDefault(this, scope, event);
|
||
|
}; // prevent native HTML5 drag on interact.js target elements
|
||
|
|
||
|
|
||
|
scope.interactions.docEvents.push({
|
||
|
type: 'dragstart',
|
||
|
listener: function listener(event) {
|
||
|
for (var _i = 0; _i < scope.interactions.list.length; _i++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = scope.interactions.list[_i];
|
||
|
var interaction = _ref2;
|
||
|
|
||
|
if (interaction.element && (interaction.element === event.target || (0, _$domUtils_51.nodeContains)(interaction.element, event.target))) {
|
||
|
interaction.interactable.checkAndPreventDefault(event);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var ___default_21 = {
|
||
|
id: 'core/interactablePreventDefault',
|
||
|
install: __install_21,
|
||
|
listeners: ['down', 'move', 'up', 'cancel'].reduce(function (acc, eventType) {
|
||
|
acc["interactions:".concat(eventType)] = onInteractionEvent;
|
||
|
return acc;
|
||
|
}, {})
|
||
|
};
|
||
|
_$interactablePreventDefault_21["default"] = ___default_21;
|
||
|
|
||
|
var _$index_25 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_25(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_25 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_25 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_25(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_25, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_25["default"] = void 0;
|
||
|
|
||
|
var ___domObjects_25 = ___interopRequireDefault_25(_$domObjects_50);
|
||
|
|
||
|
/* removed: var _$domUtils_51 = require("@interactjs/utils/domUtils"); */;
|
||
|
|
||
|
var ___extend_25 = ___interopRequireDefault_25(_$extend_53);
|
||
|
|
||
|
var __is_25 = ___interopRequireWildcard_25(_$is_57);
|
||
|
|
||
|
var ___window_25 = ___interopRequireDefault_25(_$window_66);
|
||
|
|
||
|
function ___getRequireWildcardCache_25() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_25 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_25(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_25(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_25(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_25(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___toConsumableArray_25(arr) { return ___arrayWithoutHoles_25(arr) || ___iterableToArray_25(arr) || ___nonIterableSpread_25(); }
|
||
|
|
||
|
function ___nonIterableSpread_25() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
||
|
|
||
|
function ___iterableToArray_25(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
||
|
|
||
|
function ___arrayWithoutHoles_25(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
||
|
|
||
|
var CheckName;
|
||
|
|
||
|
(function (CheckName) {
|
||
|
CheckName["touchAction"] = "touchAction";
|
||
|
CheckName["boxSizing"] = "boxSizing";
|
||
|
CheckName["noListeners"] = "noListeners";
|
||
|
})(CheckName || (CheckName = {}));
|
||
|
|
||
|
var prefix = '[interact.js] ';
|
||
|
var links = {
|
||
|
touchAction: 'https://developer.mozilla.org/en-US/docs/Web/CSS/touch-action',
|
||
|
boxSizing: 'https://developer.mozilla.org/en-US/docs/Web/CSS/box-sizing'
|
||
|
};
|
||
|
var isProduction = "production" === 'production'; // eslint-disable-next-line no-restricted-syntax
|
||
|
|
||
|
function __install_25(scope) {
|
||
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
||
|
logger = _ref.logger;
|
||
|
|
||
|
var Interactable = scope.Interactable,
|
||
|
defaults = scope.defaults;
|
||
|
scope.logger = logger || console;
|
||
|
defaults.base.devTools = {
|
||
|
ignore: {}
|
||
|
};
|
||
|
|
||
|
Interactable.prototype.devTools = function (options) {
|
||
|
if (options) {
|
||
|
(0, ___extend_25["default"])(this.options.devTools, options);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
return this.options.devTools;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
var checks = [{
|
||
|
name: CheckName.touchAction,
|
||
|
perform: function perform(_ref2) {
|
||
|
var element = _ref2.element;
|
||
|
return !parentHasStyle(element, 'touchAction', /pan-|pinch|none/);
|
||
|
},
|
||
|
getInfo: function getInfo(_ref3) {
|
||
|
var element = _ref3.element;
|
||
|
return [element, links.touchAction];
|
||
|
},
|
||
|
text: 'Consider adding CSS "touch-action: none" to this element\n'
|
||
|
}, {
|
||
|
name: CheckName.boxSizing,
|
||
|
perform: function perform(interaction) {
|
||
|
var element = interaction.element;
|
||
|
return interaction.prepared.name === 'resize' && element instanceof ___domObjects_25["default"].HTMLElement && !hasStyle(element, 'boxSizing', /border-box/);
|
||
|
},
|
||
|
text: 'Consider adding CSS "box-sizing: border-box" to this resizable element',
|
||
|
getInfo: function getInfo(_ref4) {
|
||
|
var element = _ref4.element;
|
||
|
return [element, links.boxSizing];
|
||
|
}
|
||
|
}, {
|
||
|
name: CheckName.noListeners,
|
||
|
perform: function perform(interaction) {
|
||
|
var actionName = interaction.prepared.name;
|
||
|
var moveListeners = interaction.interactable.events.types["".concat(actionName, "move")] || [];
|
||
|
return !moveListeners.length;
|
||
|
},
|
||
|
getInfo: function getInfo(interaction) {
|
||
|
return [interaction.prepared.name, interaction.interactable];
|
||
|
},
|
||
|
text: 'There are no listeners set for this action'
|
||
|
}];
|
||
|
|
||
|
function hasStyle(element, prop, styleRe) {
|
||
|
return styleRe.test(element.style[prop] || ___window_25["default"].window.getComputedStyle(element)[prop]);
|
||
|
}
|
||
|
|
||
|
function parentHasStyle(element, prop, styleRe) {
|
||
|
var parent = element;
|
||
|
|
||
|
while (__is_25.element(parent)) {
|
||
|
if (hasStyle(parent, prop, styleRe)) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
parent = (0, _$domUtils_51.parentNode)(parent);
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
var __id_25 = 'dev-tools';
|
||
|
var defaultExport = isProduction ? {
|
||
|
id: __id_25,
|
||
|
install: function install() {}
|
||
|
} : {
|
||
|
id: __id_25,
|
||
|
install: __install_25,
|
||
|
listeners: {
|
||
|
'interactions:action-start': function interactionsActionStart(_ref5, scope) {
|
||
|
var interaction = _ref5.interaction;
|
||
|
|
||
|
for (var _i = 0; _i < checks.length; _i++) {
|
||
|
var _ref6;
|
||
|
|
||
|
_ref6 = checks[_i];
|
||
|
var check = _ref6;
|
||
|
var options = interaction.interactable && interaction.interactable.options;
|
||
|
|
||
|
if (!(options && options.devTools && options.devTools.ignore[check.name]) && check.perform(interaction)) {
|
||
|
var _scope$logger;
|
||
|
|
||
|
(_scope$logger = scope.logger).warn.apply(_scope$logger, [prefix + check.text].concat(___toConsumableArray_25(check.getInfo(interaction))));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
checks: checks,
|
||
|
CheckName: CheckName,
|
||
|
links: links,
|
||
|
prefix: prefix
|
||
|
};
|
||
|
var ___default_25 = defaultExport;
|
||
|
_$index_25["default"] = ___default_25;
|
||
|
|
||
|
var _$base_31 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_31(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_31 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_31 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_31(obj); }
|
||
|
|
||
|
Object.defineProperty(_$base_31, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$base_31.startAll = startAll;
|
||
|
_$base_31.setAll = setAll;
|
||
|
_$base_31.prepareStates = prepareStates;
|
||
|
_$base_31.setCoords = __setCoords_31;
|
||
|
_$base_31.restoreCoords = restoreCoords;
|
||
|
_$base_31.shouldDo = shouldDo;
|
||
|
_$base_31.getRectOffset = getRectOffset;
|
||
|
_$base_31.makeModifier = makeModifier;
|
||
|
_$base_31["default"] = void 0;
|
||
|
|
||
|
var ___extend_31 = ___interopRequireDefault_31(_$extend_53);
|
||
|
|
||
|
var rectUtils = ___interopRequireWildcard_31(_$rect_63);
|
||
|
|
||
|
function ___getRequireWildcardCache_31() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_31 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_31(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_31(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_31(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_31(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___slicedToArray_31(arr, i) { return ___arrayWithHoles_31(arr) || ___iterableToArrayLimit_31(arr, i) || ___nonIterableRest_31(); }
|
||
|
|
||
|
function ___nonIterableRest_31() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
||
|
|
||
|
function ___iterableToArrayLimit_31(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||
|
|
||
|
function ___arrayWithHoles_31(arr) { if (Array.isArray(arr)) return arr; }
|
||
|
|
||
|
function __start_31(_ref, pageCoords, prevCoords, prevRect) {
|
||
|
var interaction = _ref.interaction,
|
||
|
phase = _ref.phase;
|
||
|
var interactable = interaction.interactable,
|
||
|
element = interaction.element,
|
||
|
edges = interaction.edges;
|
||
|
var modifierList = getModifierList(interaction);
|
||
|
var states = prepareStates(modifierList);
|
||
|
var rect = (0, ___extend_31["default"])({}, interaction.rect);
|
||
|
var startOffset = getRectOffset(rect, pageCoords);
|
||
|
interaction.modifiers.startOffset = startOffset;
|
||
|
interaction.modifiers.startDelta = {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
var arg = {
|
||
|
interaction: interaction,
|
||
|
interactable: interactable,
|
||
|
element: element,
|
||
|
pageCoords: pageCoords,
|
||
|
phase: phase,
|
||
|
rect: rect,
|
||
|
edges: edges,
|
||
|
startOffset: startOffset,
|
||
|
states: states,
|
||
|
preEnd: false,
|
||
|
requireEndOnly: false,
|
||
|
prevCoords: prevCoords,
|
||
|
prevRect: prevRect
|
||
|
};
|
||
|
interaction.modifiers.states = states;
|
||
|
interaction.modifiers.result = null;
|
||
|
startAll(arg);
|
||
|
var result = interaction.modifiers.result = setAll(arg);
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
function startAll(arg) {
|
||
|
var states = arg.states;
|
||
|
|
||
|
for (var _i = 0; _i < states.length; _i++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = states[_i];
|
||
|
var state = _ref2;
|
||
|
|
||
|
if (state.methods.start) {
|
||
|
arg.state = state;
|
||
|
state.methods.start(arg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
arg.interaction.edges = arg.edges;
|
||
|
}
|
||
|
|
||
|
function setAll(arg) {
|
||
|
var prevCoords = arg.prevCoords,
|
||
|
prevRect = arg.prevRect,
|
||
|
phase = arg.phase,
|
||
|
preEnd = arg.preEnd,
|
||
|
requireEndOnly = arg.requireEndOnly,
|
||
|
states = arg.states,
|
||
|
rect = arg.rect;
|
||
|
arg.coords = (0, ___extend_31["default"])({}, arg.pageCoords);
|
||
|
arg.rect = (0, ___extend_31["default"])({}, rect);
|
||
|
var result = {
|
||
|
delta: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
},
|
||
|
rectDelta: {
|
||
|
left: 0,
|
||
|
right: 0,
|
||
|
top: 0,
|
||
|
bottom: 0
|
||
|
},
|
||
|
coords: arg.coords,
|
||
|
rect: arg.rect,
|
||
|
eventProps: [],
|
||
|
changed: true
|
||
|
};
|
||
|
var edges = arg.edges || {
|
||
|
left: true,
|
||
|
right: true,
|
||
|
top: true,
|
||
|
bottom: true
|
||
|
};
|
||
|
|
||
|
for (var _i2 = 0; _i2 < states.length; _i2++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = states[_i2];
|
||
|
var state = _ref3;
|
||
|
var options = state.options;
|
||
|
var lastModifierCoords = (0, ___extend_31["default"])({}, arg.coords);
|
||
|
var returnValue = null;
|
||
|
|
||
|
if (state.methods.set && shouldDo(options, preEnd, requireEndOnly, phase)) {
|
||
|
arg.state = state;
|
||
|
returnValue = state.methods.set(arg);
|
||
|
rectUtils.addEdges(edges, arg.rect, {
|
||
|
x: arg.coords.x - lastModifierCoords.x,
|
||
|
y: arg.coords.y - lastModifierCoords.y
|
||
|
});
|
||
|
}
|
||
|
|
||
|
result.eventProps.push(returnValue);
|
||
|
}
|
||
|
|
||
|
result.delta.x = arg.coords.x - arg.pageCoords.x;
|
||
|
result.delta.y = arg.coords.y - arg.pageCoords.y;
|
||
|
result.rectDelta.left = arg.rect.left - rect.left;
|
||
|
result.rectDelta.right = arg.rect.right - rect.right;
|
||
|
result.rectDelta.top = arg.rect.top - rect.top;
|
||
|
result.rectDelta.bottom = arg.rect.bottom - rect.bottom;
|
||
|
var rectChanged = !prevRect || result.rect.left !== prevRect.left || result.rect.right !== prevRect.right || result.rect.top !== prevRect.top || result.rect.bottom !== prevRect.bottom;
|
||
|
result.changed = !prevCoords || prevCoords.x !== result.coords.x || prevCoords.y !== result.coords.y || rectChanged;
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
function __beforeMove_31(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
phase = arg.phase,
|
||
|
preEnd = arg.preEnd,
|
||
|
skipModifiers = arg.skipModifiers;
|
||
|
var interactable = interaction.interactable,
|
||
|
element = interaction.element;
|
||
|
var states = skipModifiers ? interaction.modifiers.states.slice(skipModifiers) : interaction.modifiers.states;
|
||
|
var prevCoords = arg.prevCoords || (interaction.modifiers.result ? interaction.modifiers.result.coords : null);
|
||
|
var prevRect = arg.prevRect || (interaction.modifiers.result ? interaction.modifiers.result.rect : null);
|
||
|
var modifierResult = setAll({
|
||
|
interaction: interaction,
|
||
|
interactable: interactable,
|
||
|
element: element,
|
||
|
preEnd: preEnd,
|
||
|
phase: phase,
|
||
|
pageCoords: arg.modifiedCoords || interaction.coords.cur.page,
|
||
|
prevCoords: prevCoords,
|
||
|
rect: interaction.rect,
|
||
|
edges: interaction.edges,
|
||
|
prevRect: prevRect,
|
||
|
states: states,
|
||
|
requireEndOnly: false
|
||
|
});
|
||
|
interaction.modifiers.result = modifierResult; // don't fire an action move if a modifier would keep the event in the same
|
||
|
// cordinates as before
|
||
|
|
||
|
if (!modifierResult.changed && interaction.interacting()) {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (arg.modifiedCoords) {
|
||
|
var page = interaction.coords.cur.page;
|
||
|
var adjustment = {
|
||
|
x: arg.modifiedCoords.x - page.x,
|
||
|
y: arg.modifiedCoords.y - page.y
|
||
|
};
|
||
|
modifierResult.coords.x += adjustment.x;
|
||
|
modifierResult.coords.y += adjustment.y;
|
||
|
modifierResult.delta.x += adjustment.x;
|
||
|
modifierResult.delta.y += adjustment.y;
|
||
|
}
|
||
|
|
||
|
__setCoords_31(arg);
|
||
|
}
|
||
|
|
||
|
function beforeEnd(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
event = arg.event,
|
||
|
noPreEnd = arg.noPreEnd;
|
||
|
var states = interaction.modifiers.states;
|
||
|
|
||
|
if (noPreEnd || !states || !states.length) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var didPreEnd = false;
|
||
|
|
||
|
for (var _i3 = 0; _i3 < states.length; _i3++) {
|
||
|
var _ref4;
|
||
|
|
||
|
_ref4 = states[_i3];
|
||
|
var state = _ref4;
|
||
|
arg.state = state;
|
||
|
var options = state.options,
|
||
|
methods = state.methods;
|
||
|
var endPosition = methods.beforeEnd && methods.beforeEnd(arg);
|
||
|
|
||
|
if (endPosition) {
|
||
|
interaction.modifiers.endResult = endPosition;
|
||
|
return false;
|
||
|
} // if the endOnly option is true for any modifier
|
||
|
|
||
|
|
||
|
if (!didPreEnd && shouldDo(options, true, true)) {
|
||
|
// fire a move event at the modified coordinates
|
||
|
interaction.move({
|
||
|
event: event,
|
||
|
preEnd: true
|
||
|
});
|
||
|
didPreEnd = true;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function stop(arg) {
|
||
|
var interaction = arg.interaction;
|
||
|
var states = interaction.modifiers.states;
|
||
|
|
||
|
if (!states || !states.length) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var modifierArg = (0, ___extend_31["default"])({
|
||
|
states: states,
|
||
|
interactable: interaction.interactable,
|
||
|
element: interaction.element,
|
||
|
rect: null
|
||
|
}, arg);
|
||
|
|
||
|
for (var _i4 = 0; _i4 < states.length; _i4++) {
|
||
|
var _ref5;
|
||
|
|
||
|
_ref5 = states[_i4];
|
||
|
var state = _ref5;
|
||
|
modifierArg.state = state;
|
||
|
|
||
|
if (state.methods.stop) {
|
||
|
state.methods.stop(modifierArg);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
arg.interaction.modifiers.states = null;
|
||
|
arg.interaction.modifiers.endResult = null;
|
||
|
}
|
||
|
|
||
|
function getModifierList(interaction) {
|
||
|
var actionOptions = interaction.interactable.options[interaction.prepared.name];
|
||
|
var actionModifiers = actionOptions.modifiers;
|
||
|
|
||
|
if (actionModifiers && actionModifiers.length) {
|
||
|
return actionModifiers.filter(function (modifier) {
|
||
|
return !modifier.options || modifier.options.enabled !== false;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return ['snap', 'snapSize', 'snapEdges', 'restrict', 'restrictEdges', 'restrictSize'].map(function (type) {
|
||
|
var options = actionOptions[type];
|
||
|
return options && options.enabled && {
|
||
|
options: options,
|
||
|
methods: options._methods
|
||
|
};
|
||
|
}).filter(function (m) {
|
||
|
return !!m;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function prepareStates(modifierList) {
|
||
|
var states = [];
|
||
|
|
||
|
for (var index = 0; index < modifierList.length; index++) {
|
||
|
var _modifierList$index = modifierList[index],
|
||
|
options = _modifierList$index.options,
|
||
|
methods = _modifierList$index.methods,
|
||
|
name = _modifierList$index.name;
|
||
|
|
||
|
if (options && options.enabled === false) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
states.push({
|
||
|
options: options,
|
||
|
methods: methods,
|
||
|
index: index,
|
||
|
name: name
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return states;
|
||
|
}
|
||
|
|
||
|
function __setCoords_31(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
phase = arg.phase;
|
||
|
var curCoords = interaction.coords.cur;
|
||
|
var startCoords = interaction.coords.start;
|
||
|
var _interaction$modifier = interaction.modifiers,
|
||
|
result = _interaction$modifier.result,
|
||
|
startDelta = _interaction$modifier.startDelta;
|
||
|
var curDelta = result.delta;
|
||
|
|
||
|
if (phase === 'start') {
|
||
|
(0, ___extend_31["default"])(interaction.modifiers.startDelta, result.delta);
|
||
|
}
|
||
|
|
||
|
for (var _i5 = 0; _i5 < [[startCoords, startDelta], [curCoords, curDelta]].length; _i5++) {
|
||
|
var _ref6;
|
||
|
|
||
|
_ref6 = [[startCoords, startDelta], [curCoords, curDelta]][_i5];
|
||
|
|
||
|
var _ref7 = _ref6,
|
||
|
_ref8 = ___slicedToArray_31(_ref7, 2),
|
||
|
coordsSet = _ref8[0],
|
||
|
delta = _ref8[1];
|
||
|
|
||
|
coordsSet.page.x += delta.x;
|
||
|
coordsSet.page.y += delta.y;
|
||
|
coordsSet.client.x += delta.x;
|
||
|
coordsSet.client.y += delta.y;
|
||
|
}
|
||
|
|
||
|
var rectDelta = interaction.modifiers.result.rectDelta;
|
||
|
var rect = arg.rect || interaction.rect;
|
||
|
rect.left += rectDelta.left;
|
||
|
rect.right += rectDelta.right;
|
||
|
rect.top += rectDelta.top;
|
||
|
rect.bottom += rectDelta.bottom;
|
||
|
rect.width = rect.right - rect.left;
|
||
|
rect.height = rect.bottom - rect.top;
|
||
|
}
|
||
|
|
||
|
function restoreCoords(_ref9) {
|
||
|
var _ref9$interaction = _ref9.interaction,
|
||
|
coords = _ref9$interaction.coords,
|
||
|
rect = _ref9$interaction.rect,
|
||
|
modifiers = _ref9$interaction.modifiers;
|
||
|
|
||
|
if (!modifiers.result) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var startDelta = modifiers.startDelta;
|
||
|
var _modifiers$result = modifiers.result,
|
||
|
curDelta = _modifiers$result.delta,
|
||
|
rectDelta = _modifiers$result.rectDelta;
|
||
|
var coordsAndDeltas = [[coords.start, startDelta], [coords.cur, curDelta]];
|
||
|
|
||
|
for (var _i6 = 0; _i6 < coordsAndDeltas.length; _i6++) {
|
||
|
var _ref10;
|
||
|
|
||
|
_ref10 = coordsAndDeltas[_i6];
|
||
|
|
||
|
var _ref11 = _ref10,
|
||
|
_ref12 = ___slicedToArray_31(_ref11, 2),
|
||
|
coordsSet = _ref12[0],
|
||
|
delta = _ref12[1];
|
||
|
|
||
|
coordsSet.page.x -= delta.x;
|
||
|
coordsSet.page.y -= delta.y;
|
||
|
coordsSet.client.x -= delta.x;
|
||
|
coordsSet.client.y -= delta.y;
|
||
|
}
|
||
|
|
||
|
rect.left -= rectDelta.left;
|
||
|
rect.right -= rectDelta.right;
|
||
|
rect.top -= rectDelta.top;
|
||
|
rect.bottom -= rectDelta.bottom;
|
||
|
}
|
||
|
|
||
|
function shouldDo(options, preEnd, requireEndOnly, phase) {
|
||
|
return options ? options.enabled !== false && (preEnd || !options.endOnly) && (!requireEndOnly || options.endOnly || options.alwaysOnEnd) && (options.setStart || phase !== 'start') : !requireEndOnly;
|
||
|
}
|
||
|
|
||
|
function getRectOffset(rect, coords) {
|
||
|
return rect ? {
|
||
|
left: coords.x - rect.left,
|
||
|
top: coords.y - rect.top,
|
||
|
right: rect.right - coords.x,
|
||
|
bottom: rect.bottom - coords.y
|
||
|
} : {
|
||
|
left: 0,
|
||
|
top: 0,
|
||
|
right: 0,
|
||
|
bottom: 0
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function makeModifier(module, name) {
|
||
|
var defaults = module.defaults;
|
||
|
var methods = {
|
||
|
start: module.start,
|
||
|
set: module.set,
|
||
|
beforeEnd: module.beforeEnd,
|
||
|
stop: module.stop
|
||
|
};
|
||
|
|
||
|
var modifier = function modifier(_options) {
|
||
|
var options = _options || {};
|
||
|
options.enabled = options.enabled !== false; // add missing defaults to options
|
||
|
|
||
|
for (var _prop in defaults) {
|
||
|
if (!(_prop in options)) {
|
||
|
options[_prop] = defaults[_prop];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var m = {
|
||
|
options: options,
|
||
|
methods: methods,
|
||
|
name: name
|
||
|
};
|
||
|
return m;
|
||
|
};
|
||
|
|
||
|
if (name && typeof name === 'string') {
|
||
|
// for backwrads compatibility
|
||
|
modifier._defaults = defaults;
|
||
|
modifier._methods = methods;
|
||
|
}
|
||
|
|
||
|
return modifier;
|
||
|
}
|
||
|
|
||
|
function addEventModifiers(_ref13) {
|
||
|
var iEvent = _ref13.iEvent,
|
||
|
result = _ref13.interaction.modifiers.result;
|
||
|
|
||
|
if (result) {
|
||
|
iEvent.modifiers = result.eventProps;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var modifiersBase = {
|
||
|
id: 'modifiers/base',
|
||
|
install: function install(scope) {
|
||
|
scope.defaults.perAction.modifiers = [];
|
||
|
},
|
||
|
listeners: {
|
||
|
'interactions:new': function interactionsNew(_ref14) {
|
||
|
var interaction = _ref14.interaction;
|
||
|
interaction.modifiers = {
|
||
|
startOffset: {
|
||
|
left: 0,
|
||
|
right: 0,
|
||
|
top: 0,
|
||
|
bottom: 0
|
||
|
},
|
||
|
states: null,
|
||
|
result: null,
|
||
|
endResult: null,
|
||
|
startDelta: null
|
||
|
};
|
||
|
},
|
||
|
'interactions:before-action-start': function interactionsBeforeActionStart(arg) {
|
||
|
__start_31(arg, arg.interaction.coords.start.page, null, null);
|
||
|
__setCoords_31(arg);
|
||
|
},
|
||
|
'interactions:after-action-start': restoreCoords,
|
||
|
'interactions:before-action-move': __beforeMove_31,
|
||
|
'interactions:after-action-move': restoreCoords,
|
||
|
'interactions:action-resume': function interactionsActionResume(arg) {
|
||
|
var _arg$interaction$modi = arg.interaction.modifiers.result,
|
||
|
prevCoords = _arg$interaction$modi.coords,
|
||
|
prevRect = _arg$interaction$modi.rect;
|
||
|
stop(arg);
|
||
|
__start_31(arg, arg.interaction.coords.cur.page, prevCoords, prevRect);
|
||
|
__beforeMove_31(arg);
|
||
|
},
|
||
|
'interactions:before-action-end': beforeEnd,
|
||
|
'interactions:action-start': addEventModifiers,
|
||
|
'interactions:action-move': addEventModifiers,
|
||
|
'interactions:action-end': addEventModifiers,
|
||
|
'interactions:stop': stop
|
||
|
},
|
||
|
before: ['actions', 'action/drag', 'actions/resize', 'actions/gesture']
|
||
|
};
|
||
|
var ___default_31 = modifiersBase;
|
||
|
_$base_31["default"] = ___default_31;
|
||
|
|
||
|
var _$index_26 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_26(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_26 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_26 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_26(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_26, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_26["default"] = void 0;
|
||
|
|
||
|
/* removed: var _$InteractEvent_15 = require("@interactjs/core/InteractEvent"); */;
|
||
|
|
||
|
var modifiers = ___interopRequireWildcard_26(_$base_31);
|
||
|
|
||
|
var __utils_26 = ___interopRequireWildcard_26(_$index_56);
|
||
|
|
||
|
var ___raf_26 = ___interopRequireDefault_26(_$raf_62);
|
||
|
|
||
|
function ___interopRequireDefault_26(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_26() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_26 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_26(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_26(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_26(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
_$InteractEvent_15.EventPhase.Resume = 'resume';
|
||
|
_$InteractEvent_15.EventPhase.InertiaStart = 'inertiastart';
|
||
|
|
||
|
function __install_26(scope) {
|
||
|
var defaults = scope.defaults;
|
||
|
scope.usePlugin(modifiers["default"]);
|
||
|
defaults.perAction.inertia = {
|
||
|
enabled: false,
|
||
|
resistance: 10,
|
||
|
// the lambda in exponential decay
|
||
|
minSpeed: 100,
|
||
|
// target speed must be above this for inertia to start
|
||
|
endSpeed: 10,
|
||
|
// the speed at which inertia is slow enough to stop
|
||
|
allowResume: true,
|
||
|
// allow resuming an action in inertia phase
|
||
|
smoothEndDuration: 300 // animate to snap/restrict endOnly if there's no inertia
|
||
|
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function resume(_ref, scope) {
|
||
|
var interaction = _ref.interaction,
|
||
|
event = _ref.event,
|
||
|
pointer = _ref.pointer,
|
||
|
eventTarget = _ref.eventTarget;
|
||
|
var state = interaction.inertia; // Check if the down event hits the current inertia target
|
||
|
|
||
|
if (state.active) {
|
||
|
var element = eventTarget; // climb up the DOM tree from the event target
|
||
|
|
||
|
while (__utils_26.is.element(element)) {
|
||
|
// if interaction element is the current inertia target element
|
||
|
if (element === interaction.element) {
|
||
|
// stop inertia
|
||
|
___raf_26["default"].cancel(state.timeout);
|
||
|
|
||
|
state.active = false;
|
||
|
interaction.simulation = null; // update pointers to the down event's coordinates
|
||
|
|
||
|
interaction.updatePointer(pointer, event, eventTarget, true);
|
||
|
__utils_26.pointer.setCoords(interaction.coords.cur, interaction.pointers.map(function (p) {
|
||
|
return p.pointer;
|
||
|
}), interaction._now()); // fire appropriate signals
|
||
|
|
||
|
var signalArg = {
|
||
|
interaction: interaction,
|
||
|
phase: _$InteractEvent_15.EventPhase.Resume
|
||
|
};
|
||
|
scope.fire('interactions:action-resume', signalArg); // fire a reume event
|
||
|
|
||
|
var resumeEvent = new scope.InteractEvent(interaction, event, interaction.prepared.name, _$InteractEvent_15.EventPhase.Resume, interaction.element);
|
||
|
|
||
|
interaction._fireEvent(resumeEvent);
|
||
|
|
||
|
__utils_26.pointer.copyCoords(interaction.coords.prev, interaction.coords.cur);
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
element = __utils_26.dom.parentNode(element);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function release(_ref2, scope) {
|
||
|
var interaction = _ref2.interaction,
|
||
|
event = _ref2.event,
|
||
|
noPreEnd = _ref2.noPreEnd;
|
||
|
var state = interaction.inertia;
|
||
|
|
||
|
if (!interaction.interacting() || interaction.simulation && interaction.simulation.active || noPreEnd) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var options = __getOptions_26(interaction);
|
||
|
|
||
|
var now = interaction._now();
|
||
|
|
||
|
var velocityClient = interaction.coords.velocity.client;
|
||
|
var pointerSpeed = __utils_26.hypot(velocityClient.x, velocityClient.y);
|
||
|
var smoothEnd = false;
|
||
|
var modifierResult; // check if inertia should be started
|
||
|
|
||
|
var inertiaPossible = options && options.enabled && interaction.prepared.name !== 'gesture' && event !== state.startEvent;
|
||
|
var inertia = inertiaPossible && now - interaction.coords.cur.timeStamp < 50 && pointerSpeed > options.minSpeed && pointerSpeed > options.endSpeed;
|
||
|
var modifierArg = {
|
||
|
interaction: interaction,
|
||
|
interactable: interaction.interactable,
|
||
|
element: interaction.element,
|
||
|
rect: interaction.rect,
|
||
|
edges: interaction.edges,
|
||
|
pageCoords: interaction.coords.cur.page,
|
||
|
states: inertiaPossible && interaction.modifiers.states.map(function (modifierState) {
|
||
|
return __utils_26.extend({}, modifierState);
|
||
|
}),
|
||
|
preEnd: true,
|
||
|
prevCoords: null,
|
||
|
prevRect: null,
|
||
|
requireEndOnly: null,
|
||
|
phase: _$InteractEvent_15.EventPhase.InertiaStart
|
||
|
}; // smoothEnd
|
||
|
|
||
|
if (inertiaPossible && !inertia) {
|
||
|
modifierArg.prevCoords = interaction.modifiers.result.coords;
|
||
|
modifierArg.prevRect = interaction.modifiers.result.rect;
|
||
|
modifierArg.requireEndOnly = false;
|
||
|
modifierResult = modifiers.setAll(modifierArg);
|
||
|
smoothEnd = modifierResult.changed;
|
||
|
}
|
||
|
|
||
|
if (!(inertia || smoothEnd)) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
__utils_26.pointer.copyCoords(state.upCoords, interaction.coords.cur);
|
||
|
modifiers.setCoords(modifierArg);
|
||
|
interaction.pointers[0].pointer = state.startEvent = new scope.InteractEvent(interaction, event, // FIXME add proper typing Action.name
|
||
|
interaction.prepared.name, _$InteractEvent_15.EventPhase.InertiaStart, interaction.element);
|
||
|
modifiers.restoreCoords(modifierArg);
|
||
|
state.t0 = now;
|
||
|
state.active = true;
|
||
|
state.allowResume = options.allowResume;
|
||
|
interaction.simulation = state;
|
||
|
interaction.interactable.fire(state.startEvent);
|
||
|
|
||
|
if (inertia) {
|
||
|
state.vx0 = interaction.coords.velocity.client.x;
|
||
|
state.vy0 = interaction.coords.velocity.client.y;
|
||
|
state.v0 = pointerSpeed;
|
||
|
calcInertia(interaction, state);
|
||
|
__utils_26.extend(modifierArg.pageCoords, interaction.coords.cur.page);
|
||
|
modifierArg.pageCoords.x += state.xe;
|
||
|
modifierArg.pageCoords.y += state.ye;
|
||
|
modifierArg.prevCoords = null;
|
||
|
modifierArg.prevRect = null;
|
||
|
modifierArg.requireEndOnly = true;
|
||
|
modifierResult = modifiers.setAll(modifierArg);
|
||
|
state.modifiedXe += modifierResult.delta.x;
|
||
|
state.modifiedYe += modifierResult.delta.y;
|
||
|
state.timeout = ___raf_26["default"].request(function () {
|
||
|
return inertiaTick(interaction);
|
||
|
});
|
||
|
} else {
|
||
|
state.smoothEnd = true;
|
||
|
state.xe = modifierResult.delta.x;
|
||
|
state.ye = modifierResult.delta.y;
|
||
|
state.sx = state.sy = 0;
|
||
|
state.timeout = ___raf_26["default"].request(function () {
|
||
|
return smothEndTick(interaction);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function __stop_26(_ref3) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
var state = interaction.inertia;
|
||
|
|
||
|
if (state.active) {
|
||
|
___raf_26["default"].cancel(state.timeout);
|
||
|
|
||
|
state.active = false;
|
||
|
interaction.simulation = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function calcInertia(interaction, state) {
|
||
|
var options = __getOptions_26(interaction);
|
||
|
var lambda = options.resistance;
|
||
|
var inertiaDur = -Math.log(options.endSpeed / state.v0) / lambda;
|
||
|
state.x0 = interaction.prevEvent.page.x;
|
||
|
state.y0 = interaction.prevEvent.page.y;
|
||
|
state.t0 = state.startEvent.timeStamp / 1000;
|
||
|
state.sx = state.sy = 0;
|
||
|
state.modifiedXe = state.xe = (state.vx0 - inertiaDur) / lambda;
|
||
|
state.modifiedYe = state.ye = (state.vy0 - inertiaDur) / lambda;
|
||
|
state.te = inertiaDur;
|
||
|
state.lambda_v0 = lambda / state.v0;
|
||
|
state.one_ve_v0 = 1 - options.endSpeed / state.v0;
|
||
|
}
|
||
|
|
||
|
function inertiaTick(interaction) {
|
||
|
updateInertiaCoords(interaction);
|
||
|
__utils_26.pointer.setCoordDeltas(interaction.coords.delta, interaction.coords.prev, interaction.coords.cur);
|
||
|
__utils_26.pointer.setCoordVelocity(interaction.coords.velocity, interaction.coords.delta);
|
||
|
var state = interaction.inertia;
|
||
|
var options = __getOptions_26(interaction);
|
||
|
var lambda = options.resistance;
|
||
|
var t = interaction._now() / 1000 - state.t0;
|
||
|
|
||
|
if (t < state.te) {
|
||
|
var progress = 1 - (Math.exp(-lambda * t) - state.lambda_v0) / state.one_ve_v0;
|
||
|
|
||
|
if (state.modifiedXe === state.xe && state.modifiedYe === state.ye) {
|
||
|
state.sx = state.xe * progress;
|
||
|
state.sy = state.ye * progress;
|
||
|
} else {
|
||
|
var quadPoint = __utils_26.getQuadraticCurvePoint(0, 0, state.xe, state.ye, state.modifiedXe, state.modifiedYe, progress);
|
||
|
state.sx = quadPoint.x;
|
||
|
state.sy = quadPoint.y;
|
||
|
}
|
||
|
|
||
|
interaction.move({
|
||
|
event: state.startEvent
|
||
|
});
|
||
|
state.timeout = ___raf_26["default"].request(function () {
|
||
|
return inertiaTick(interaction);
|
||
|
});
|
||
|
} else {
|
||
|
state.sx = state.modifiedXe;
|
||
|
state.sy = state.modifiedYe;
|
||
|
interaction.move({
|
||
|
event: state.startEvent
|
||
|
});
|
||
|
interaction.end(state.startEvent);
|
||
|
state.active = false;
|
||
|
interaction.simulation = null;
|
||
|
}
|
||
|
|
||
|
__utils_26.pointer.copyCoords(interaction.coords.prev, interaction.coords.cur);
|
||
|
}
|
||
|
|
||
|
function smothEndTick(interaction) {
|
||
|
updateInertiaCoords(interaction);
|
||
|
var state = interaction.inertia;
|
||
|
var t = interaction._now() - state.t0;
|
||
|
|
||
|
var _getOptions = __getOptions_26(interaction),
|
||
|
duration = _getOptions.smoothEndDuration;
|
||
|
|
||
|
if (t < duration) {
|
||
|
state.sx = __utils_26.easeOutQuad(t, 0, state.xe, duration);
|
||
|
state.sy = __utils_26.easeOutQuad(t, 0, state.ye, duration);
|
||
|
interaction.move({
|
||
|
event: state.startEvent
|
||
|
});
|
||
|
state.timeout = ___raf_26["default"].request(function () {
|
||
|
return smothEndTick(interaction);
|
||
|
});
|
||
|
} else {
|
||
|
state.sx = state.xe;
|
||
|
state.sy = state.ye;
|
||
|
interaction.move({
|
||
|
event: state.startEvent
|
||
|
});
|
||
|
interaction.end(state.startEvent);
|
||
|
state.smoothEnd = state.active = false;
|
||
|
interaction.simulation = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function updateInertiaCoords(interaction) {
|
||
|
var state = interaction.inertia; // return if inertia isn't running
|
||
|
|
||
|
if (!state.active) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var pageUp = state.upCoords.page;
|
||
|
var clientUp = state.upCoords.client;
|
||
|
__utils_26.pointer.setCoords(interaction.coords.cur, [{
|
||
|
pageX: pageUp.x + state.sx,
|
||
|
pageY: pageUp.y + state.sy,
|
||
|
clientX: clientUp.x + state.sx,
|
||
|
clientY: clientUp.y + state.sy
|
||
|
}], interaction._now());
|
||
|
}
|
||
|
|
||
|
function __getOptions_26(_ref4) {
|
||
|
var interactable = _ref4.interactable,
|
||
|
prepared = _ref4.prepared;
|
||
|
return interactable && interactable.options && prepared.name && interactable.options[prepared.name].inertia;
|
||
|
}
|
||
|
|
||
|
var inertia = {
|
||
|
id: 'inertia',
|
||
|
install: __install_26,
|
||
|
listeners: {
|
||
|
'interactions:new': function interactionsNew(_ref5) {
|
||
|
var interaction = _ref5.interaction;
|
||
|
interaction.inertia = {
|
||
|
active: false,
|
||
|
smoothEnd: false,
|
||
|
allowResume: false,
|
||
|
upCoords: {},
|
||
|
timeout: null
|
||
|
};
|
||
|
},
|
||
|
'interactions:before-action-end': release,
|
||
|
'interactions:down': resume,
|
||
|
'interactions:stop': __stop_26
|
||
|
},
|
||
|
before: ['modifiers/base'],
|
||
|
calcInertia: calcInertia,
|
||
|
inertiaTick: inertiaTick,
|
||
|
smothEndTick: smothEndTick,
|
||
|
updateInertiaCoords: updateInertiaCoords
|
||
|
};
|
||
|
var ___default_26 = inertia;
|
||
|
_$index_26["default"] = ___default_26;
|
||
|
|
||
|
var _$aspectRatio_30 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$aspectRatio_30, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$aspectRatio_30["default"] = void 0;
|
||
|
|
||
|
var ___extend_30 = ___interopRequireDefault_30(_$extend_53);
|
||
|
|
||
|
/* removed: var _$rect_63 = require("@interactjs/utils/rect"); */;
|
||
|
|
||
|
/* removed: var _$base_31 = require("./base"); */;
|
||
|
|
||
|
function ___interopRequireDefault_30(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
||
|
|
||
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { ___defineProperty_30(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
||
|
|
||
|
function ___defineProperty_30(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var aspectRatio = {
|
||
|
start: function start(arg) {
|
||
|
var state = arg.state,
|
||
|
rect = arg.rect,
|
||
|
originalEdges = arg.edges,
|
||
|
coords = arg.pageCoords;
|
||
|
var ratio = state.options.ratio;
|
||
|
var _state$options = state.options,
|
||
|
equalDelta = _state$options.equalDelta,
|
||
|
modifiers = _state$options.modifiers;
|
||
|
|
||
|
if (ratio === 'preserve') {
|
||
|
ratio = rect.width / rect.height;
|
||
|
}
|
||
|
|
||
|
state.startCoords = (0, ___extend_30["default"])({}, coords);
|
||
|
state.startRect = (0, ___extend_30["default"])({}, rect);
|
||
|
state.ratio = ratio;
|
||
|
state.equalDelta = equalDelta;
|
||
|
var linkedEdges = state.linkedEdges = {
|
||
|
top: originalEdges.top || originalEdges.left && !originalEdges.bottom,
|
||
|
left: originalEdges.left || originalEdges.top && !originalEdges.right,
|
||
|
bottom: originalEdges.bottom || originalEdges.right && !originalEdges.top,
|
||
|
right: originalEdges.right || originalEdges.bottom && !originalEdges.left
|
||
|
};
|
||
|
state.xIsPrimaryAxis = !!(originalEdges.left || originalEdges.right);
|
||
|
|
||
|
if (state.equalDelta) {
|
||
|
state.edgeSign = (linkedEdges.left ? 1 : -1) * (linkedEdges.top ? 1 : -1);
|
||
|
} else {
|
||
|
var negativeSecondaryEdge = state.xIsPrimaryAxis ? linkedEdges.top : linkedEdges.left;
|
||
|
state.edgeSign = negativeSecondaryEdge ? -1 : 1;
|
||
|
}
|
||
|
|
||
|
(0, ___extend_30["default"])(arg.edges, linkedEdges);
|
||
|
|
||
|
if (!modifiers || !modifiers.length) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
state.subStates = (0, _$base_31.prepareStates)(modifiers).map(function (subState) {
|
||
|
subState.options = _objectSpread({}, subState.options);
|
||
|
return subState;
|
||
|
});
|
||
|
return (0, _$base_31.startAll)(_objectSpread({}, arg, {
|
||
|
states: state.subStates
|
||
|
}));
|
||
|
},
|
||
|
set: function set(arg) {
|
||
|
var state = arg.state,
|
||
|
rect = arg.rect,
|
||
|
coords = arg.coords;
|
||
|
var initialCoords = (0, ___extend_30["default"])({}, coords);
|
||
|
var aspectMethod = state.equalDelta ? setEqualDelta : setRatio;
|
||
|
aspectMethod(state, state.xIsPrimaryAxis, coords, rect);
|
||
|
|
||
|
if (!state.subStates) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
var correctedRect = (0, ___extend_30["default"])({}, rect);
|
||
|
(0, _$rect_63.addEdges)(state.linkedEdges, correctedRect, {
|
||
|
x: coords.x - initialCoords.x,
|
||
|
y: coords.y - initialCoords.y
|
||
|
});
|
||
|
var result = (0, _$base_31.setAll)(_objectSpread({}, arg, {
|
||
|
rect: correctedRect,
|
||
|
edges: state.linkedEdges,
|
||
|
pageCoords: coords,
|
||
|
states: state.subStates,
|
||
|
prevCoords: coords,
|
||
|
prevRect: correctedRect
|
||
|
}));
|
||
|
var delta = result.delta;
|
||
|
|
||
|
if (result.changed) {
|
||
|
var xIsCriticalAxis = Math.abs(delta.x) > Math.abs(delta.y); // do aspect modification again with critical edge axis as primary
|
||
|
|
||
|
aspectMethod(state, xIsCriticalAxis, result.coords, result.rect);
|
||
|
(0, ___extend_30["default"])(coords, result.coords);
|
||
|
}
|
||
|
|
||
|
return result.eventProps;
|
||
|
},
|
||
|
defaults: {
|
||
|
ratio: 'preserve',
|
||
|
equalDelta: false,
|
||
|
modifiers: [],
|
||
|
enabled: false
|
||
|
}
|
||
|
};
|
||
|
|
||
|
function setEqualDelta(_ref, xIsPrimaryAxis, coords) {
|
||
|
var startCoords = _ref.startCoords,
|
||
|
edgeSign = _ref.edgeSign;
|
||
|
|
||
|
if (xIsPrimaryAxis) {
|
||
|
coords.y = startCoords.y + (coords.x - startCoords.x) * edgeSign;
|
||
|
} else {
|
||
|
coords.x = startCoords.x + (coords.y - startCoords.y) * edgeSign;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function setRatio(_ref2, xIsPrimaryAxis, coords, rect) {
|
||
|
var startRect = _ref2.startRect,
|
||
|
startCoords = _ref2.startCoords,
|
||
|
ratio = _ref2.ratio,
|
||
|
edgeSign = _ref2.edgeSign;
|
||
|
|
||
|
if (xIsPrimaryAxis) {
|
||
|
var newHeight = rect.width / ratio;
|
||
|
coords.y = startCoords.y + (newHeight - startRect.height) * edgeSign;
|
||
|
} else {
|
||
|
var newWidth = rect.height * ratio;
|
||
|
coords.x = startCoords.x + (newWidth - startRect.width) * edgeSign;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var ___default_30 = aspectRatio;
|
||
|
_$aspectRatio_30["default"] = ___default_30;
|
||
|
|
||
|
var _$pointer_34 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_34(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_34 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_34 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_34(obj); }
|
||
|
|
||
|
Object.defineProperty(_$pointer_34, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$pointer_34.getRestrictionRect = getRestrictionRect;
|
||
|
_$pointer_34["default"] = void 0;
|
||
|
|
||
|
var ___extend_34 = ___interopRequireDefault_34(_$extend_53);
|
||
|
|
||
|
var __is_34 = ___interopRequireWildcard_34(_$is_57);
|
||
|
|
||
|
var __rectUtils_34 = ___interopRequireWildcard_34(_$rect_63);
|
||
|
|
||
|
function ___getRequireWildcardCache_34() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_34 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_34(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_34(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_34(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_34(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __start_34(_ref) {
|
||
|
var rect = _ref.rect,
|
||
|
startOffset = _ref.startOffset,
|
||
|
state = _ref.state,
|
||
|
interaction = _ref.interaction,
|
||
|
pageCoords = _ref.pageCoords;
|
||
|
var options = state.options;
|
||
|
var elementRect = options.elementRect;
|
||
|
var offset = (0, ___extend_34["default"])({
|
||
|
left: 0,
|
||
|
top: 0,
|
||
|
right: 0,
|
||
|
bottom: 0
|
||
|
}, options.offset || {});
|
||
|
|
||
|
if (rect && elementRect) {
|
||
|
var restriction = getRestrictionRect(options.restriction, interaction, pageCoords);
|
||
|
|
||
|
if (restriction) {
|
||
|
var widthDiff = restriction.right - restriction.left - rect.width;
|
||
|
var heightDiff = restriction.bottom - restriction.top - rect.height;
|
||
|
|
||
|
if (widthDiff < 0) {
|
||
|
offset.left += widthDiff;
|
||
|
offset.right += widthDiff;
|
||
|
}
|
||
|
|
||
|
if (heightDiff < 0) {
|
||
|
offset.top += heightDiff;
|
||
|
offset.bottom += heightDiff;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
offset.left += startOffset.left - rect.width * elementRect.left;
|
||
|
offset.top += startOffset.top - rect.height * elementRect.top;
|
||
|
offset.right += startOffset.right - rect.width * (1 - elementRect.right);
|
||
|
offset.bottom += startOffset.bottom - rect.height * (1 - elementRect.bottom);
|
||
|
}
|
||
|
|
||
|
state.offset = offset;
|
||
|
}
|
||
|
|
||
|
function set(_ref2) {
|
||
|
var coords = _ref2.coords,
|
||
|
interaction = _ref2.interaction,
|
||
|
state = _ref2.state;
|
||
|
var options = state.options,
|
||
|
offset = state.offset;
|
||
|
var restriction = getRestrictionRect(options.restriction, interaction, coords);
|
||
|
|
||
|
if (!restriction) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var rect = __rectUtils_34.xywhToTlbr(restriction);
|
||
|
coords.x = Math.max(Math.min(rect.right - offset.right, coords.x), rect.left + offset.left);
|
||
|
coords.y = Math.max(Math.min(rect.bottom - offset.bottom, coords.y), rect.top + offset.top);
|
||
|
}
|
||
|
|
||
|
function getRestrictionRect(value, interaction, coords) {
|
||
|
if (__is_34.func(value)) {
|
||
|
return __rectUtils_34.resolveRectLike(value, interaction.interactable, interaction.element, [coords.x, coords.y, interaction]);
|
||
|
} else {
|
||
|
return __rectUtils_34.resolveRectLike(value, interaction.interactable, interaction.element);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var __defaults_34 = {
|
||
|
restriction: null,
|
||
|
elementRect: null,
|
||
|
offset: null,
|
||
|
endOnly: false,
|
||
|
enabled: false
|
||
|
};
|
||
|
var restrict = {
|
||
|
start: __start_34,
|
||
|
set: set,
|
||
|
defaults: __defaults_34
|
||
|
};
|
||
|
var ___default_34 = restrict;
|
||
|
_$pointer_34["default"] = ___default_34;
|
||
|
|
||
|
var _$edges_33 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_33(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_33 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_33 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_33(obj); }
|
||
|
|
||
|
Object.defineProperty(_$edges_33, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$edges_33["default"] = void 0;
|
||
|
|
||
|
var ___extend_33 = ___interopRequireDefault_33(_$extend_53);
|
||
|
|
||
|
var __rectUtils_33 = ___interopRequireWildcard_33(_$rect_63);
|
||
|
|
||
|
/* removed: var _$pointer_34 = require("./pointer"); */;
|
||
|
|
||
|
function ___getRequireWildcardCache_33() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_33 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_33(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_33(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_33(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_33(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
// This module adds the options.resize.restrictEdges setting which sets min and
|
||
|
// max for the top, left, bottom and right edges of the target being resized.
|
||
|
//
|
||
|
// interact(target).resize({
|
||
|
// edges: { top: true, left: true },
|
||
|
// restrictEdges: {
|
||
|
// inner: { top: 200, left: 200, right: 400, bottom: 400 },
|
||
|
// outer: { top: 0, left: 0, right: 600, bottom: 600 },
|
||
|
// },
|
||
|
// })
|
||
|
var noInner = {
|
||
|
top: +Infinity,
|
||
|
left: +Infinity,
|
||
|
bottom: -Infinity,
|
||
|
right: -Infinity
|
||
|
};
|
||
|
var noOuter = {
|
||
|
top: -Infinity,
|
||
|
left: -Infinity,
|
||
|
bottom: +Infinity,
|
||
|
right: +Infinity
|
||
|
};
|
||
|
|
||
|
function __start_33(_ref) {
|
||
|
var interaction = _ref.interaction,
|
||
|
startOffset = _ref.startOffset,
|
||
|
state = _ref.state;
|
||
|
var options = state.options;
|
||
|
var offset;
|
||
|
|
||
|
if (options) {
|
||
|
var offsetRect = (0, _$pointer_34.getRestrictionRect)(options.offset, interaction, interaction.coords.start.page);
|
||
|
offset = __rectUtils_33.rectToXY(offsetRect);
|
||
|
}
|
||
|
|
||
|
offset = offset || {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
state.offset = {
|
||
|
top: offset.y + startOffset.top,
|
||
|
left: offset.x + startOffset.left,
|
||
|
bottom: offset.y - startOffset.bottom,
|
||
|
right: offset.x - startOffset.right
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function __set_33(_ref2) {
|
||
|
var coords = _ref2.coords,
|
||
|
edges = _ref2.edges,
|
||
|
interaction = _ref2.interaction,
|
||
|
state = _ref2.state;
|
||
|
var offset = state.offset,
|
||
|
options = state.options;
|
||
|
|
||
|
if (!edges) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var page = (0, ___extend_33["default"])({}, coords);
|
||
|
var inner = (0, _$pointer_34.getRestrictionRect)(options.inner, interaction, page) || {};
|
||
|
var outer = (0, _$pointer_34.getRestrictionRect)(options.outer, interaction, page) || {};
|
||
|
fixRect(inner, noInner);
|
||
|
fixRect(outer, noOuter);
|
||
|
|
||
|
if (edges.top) {
|
||
|
coords.y = Math.min(Math.max(outer.top + offset.top, page.y), inner.top + offset.top);
|
||
|
} else if (edges.bottom) {
|
||
|
coords.y = Math.max(Math.min(outer.bottom + offset.bottom, page.y), inner.bottom + offset.bottom);
|
||
|
}
|
||
|
|
||
|
if (edges.left) {
|
||
|
coords.x = Math.min(Math.max(outer.left + offset.left, page.x), inner.left + offset.left);
|
||
|
} else if (edges.right) {
|
||
|
coords.x = Math.max(Math.min(outer.right + offset.right, page.x), inner.right + offset.right);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fixRect(rect, defaults) {
|
||
|
var _arr = ['top', 'left', 'bottom', 'right'];
|
||
|
|
||
|
for (var _i = 0; _i < _arr.length; _i++) {
|
||
|
var edge = _arr[_i];
|
||
|
|
||
|
if (!(edge in rect)) {
|
||
|
rect[edge] = defaults[edge];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return rect;
|
||
|
}
|
||
|
|
||
|
var __defaults_33 = {
|
||
|
inner: null,
|
||
|
outer: null,
|
||
|
offset: null,
|
||
|
endOnly: false,
|
||
|
enabled: false
|
||
|
};
|
||
|
var restrictEdges = {
|
||
|
noInner: noInner,
|
||
|
noOuter: noOuter,
|
||
|
start: __start_33,
|
||
|
set: __set_33,
|
||
|
defaults: __defaults_33
|
||
|
};
|
||
|
var ___default_33 = restrictEdges;
|
||
|
_$edges_33["default"] = ___default_33;
|
||
|
|
||
|
var _$rect_35 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$rect_35, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$rect_35["default"] = void 0;
|
||
|
|
||
|
var ___extend_35 = ___interopRequireDefault_35(_$extend_53);
|
||
|
|
||
|
var ___pointer_35 = ___interopRequireDefault_35(_$pointer_34);
|
||
|
|
||
|
function ___interopRequireDefault_35(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var __defaults_35 = (0, ___extend_35["default"])({
|
||
|
get elementRect() {
|
||
|
return {
|
||
|
top: 0,
|
||
|
left: 0,
|
||
|
bottom: 1,
|
||
|
right: 1
|
||
|
};
|
||
|
},
|
||
|
|
||
|
set elementRect(_) {}
|
||
|
|
||
|
}, ___pointer_35["default"].defaults);
|
||
|
var restrictRect = {
|
||
|
start: ___pointer_35["default"].start,
|
||
|
set: ___pointer_35["default"].set,
|
||
|
defaults: __defaults_35
|
||
|
};
|
||
|
var ___default_35 = restrictRect;
|
||
|
_$rect_35["default"] = ___default_35;
|
||
|
|
||
|
var _$size_36 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_36(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_36 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_36 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_36(obj); }
|
||
|
|
||
|
Object.defineProperty(_$size_36, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$size_36["default"] = void 0;
|
||
|
|
||
|
var ___extend_36 = ___interopRequireDefault_36(_$extend_53);
|
||
|
|
||
|
var __rectUtils_36 = ___interopRequireWildcard_36(_$rect_63);
|
||
|
|
||
|
var _edges = ___interopRequireDefault_36(_$edges_33);
|
||
|
|
||
|
/* removed: var _$pointer_34 = require("./pointer"); */;
|
||
|
|
||
|
function ___getRequireWildcardCache_36() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_36 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_36(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_36(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_36(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_36(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var noMin = {
|
||
|
width: -Infinity,
|
||
|
height: -Infinity
|
||
|
};
|
||
|
var noMax = {
|
||
|
width: +Infinity,
|
||
|
height: +Infinity
|
||
|
};
|
||
|
|
||
|
function __start_36(arg) {
|
||
|
return _edges["default"].start(arg);
|
||
|
}
|
||
|
|
||
|
function __set_36(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
state = arg.state,
|
||
|
rect = arg.rect,
|
||
|
edges = arg.edges;
|
||
|
var options = state.options;
|
||
|
|
||
|
if (!edges) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var minSize = __rectUtils_36.tlbrToXywh((0, _$pointer_34.getRestrictionRect)(options.min, interaction, arg.coords)) || noMin;
|
||
|
var maxSize = __rectUtils_36.tlbrToXywh((0, _$pointer_34.getRestrictionRect)(options.max, interaction, arg.coords)) || noMax;
|
||
|
state.options = {
|
||
|
endOnly: options.endOnly,
|
||
|
inner: (0, ___extend_36["default"])({}, _edges["default"].noInner),
|
||
|
outer: (0, ___extend_36["default"])({}, _edges["default"].noOuter)
|
||
|
};
|
||
|
|
||
|
if (edges.top) {
|
||
|
state.options.inner.top = rect.bottom - minSize.height;
|
||
|
state.options.outer.top = rect.bottom - maxSize.height;
|
||
|
} else if (edges.bottom) {
|
||
|
state.options.inner.bottom = rect.top + minSize.height;
|
||
|
state.options.outer.bottom = rect.top + maxSize.height;
|
||
|
}
|
||
|
|
||
|
if (edges.left) {
|
||
|
state.options.inner.left = rect.right - minSize.width;
|
||
|
state.options.outer.left = rect.right - maxSize.width;
|
||
|
} else if (edges.right) {
|
||
|
state.options.inner.right = rect.left + minSize.width;
|
||
|
state.options.outer.right = rect.left + maxSize.width;
|
||
|
}
|
||
|
|
||
|
_edges["default"].set(arg);
|
||
|
|
||
|
state.options = options;
|
||
|
}
|
||
|
|
||
|
var __defaults_36 = {
|
||
|
min: null,
|
||
|
max: null,
|
||
|
endOnly: false,
|
||
|
enabled: false
|
||
|
};
|
||
|
var restrictSize = {
|
||
|
start: __start_36,
|
||
|
set: __set_36,
|
||
|
defaults: __defaults_36
|
||
|
};
|
||
|
var ___default_36 = restrictSize;
|
||
|
_$size_36["default"] = ___default_36;
|
||
|
|
||
|
var _$pointer_38 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_38(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_38 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_38 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_38(obj); }
|
||
|
|
||
|
Object.defineProperty(_$pointer_38, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$pointer_38["default"] = void 0;
|
||
|
|
||
|
var __utils_38 = ___interopRequireWildcard_38(_$index_56);
|
||
|
|
||
|
function ___getRequireWildcardCache_38() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_38 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_38(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_38(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_38(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __start_38(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
interactable = arg.interactable,
|
||
|
element = arg.element,
|
||
|
rect = arg.rect,
|
||
|
state = arg.state,
|
||
|
startOffset = arg.startOffset;
|
||
|
var options = state.options;
|
||
|
var origin = options.offsetWithOrigin ? getOrigin(arg) : {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
var snapOffset;
|
||
|
|
||
|
if (options.offset === 'startCoords') {
|
||
|
snapOffset = {
|
||
|
x: interaction.coords.start.page.x,
|
||
|
y: interaction.coords.start.page.y
|
||
|
};
|
||
|
} else {
|
||
|
var offsetRect = __utils_38.rect.resolveRectLike(options.offset, interactable, element, [interaction]);
|
||
|
snapOffset = __utils_38.rect.rectToXY(offsetRect) || {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
};
|
||
|
snapOffset.x += origin.x;
|
||
|
snapOffset.y += origin.y;
|
||
|
}
|
||
|
|
||
|
var relativePoints = options.relativePoints;
|
||
|
state.offsets = rect && relativePoints && relativePoints.length ? relativePoints.map(function (relativePoint, index) {
|
||
|
return {
|
||
|
index: index,
|
||
|
relativePoint: relativePoint,
|
||
|
x: startOffset.left - rect.width * relativePoint.x + snapOffset.x,
|
||
|
y: startOffset.top - rect.height * relativePoint.y + snapOffset.y
|
||
|
};
|
||
|
}) : [__utils_38.extend({
|
||
|
index: 0,
|
||
|
relativePoint: null
|
||
|
}, snapOffset)];
|
||
|
}
|
||
|
|
||
|
function __set_38(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
coords = arg.coords,
|
||
|
state = arg.state;
|
||
|
var options = state.options,
|
||
|
offsets = state.offsets;
|
||
|
var origin = __utils_38.getOriginXY(interaction.interactable, interaction.element, interaction.prepared.name);
|
||
|
var page = __utils_38.extend({}, coords);
|
||
|
var targets = [];
|
||
|
|
||
|
if (!options.offsetWithOrigin) {
|
||
|
page.x -= origin.x;
|
||
|
page.y -= origin.y;
|
||
|
}
|
||
|
|
||
|
for (var _i = 0; _i < offsets.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = offsets[_i];
|
||
|
var _offset = _ref;
|
||
|
var relativeX = page.x - _offset.x;
|
||
|
var relativeY = page.y - _offset.y;
|
||
|
|
||
|
for (var _index = 0, len = options.targets.length; _index < len; _index++) {
|
||
|
var snapTarget = options.targets[_index];
|
||
|
var target = void 0;
|
||
|
|
||
|
if (__utils_38.is.func(snapTarget)) {
|
||
|
target = snapTarget(relativeX, relativeY, interaction, _offset, _index);
|
||
|
} else {
|
||
|
target = snapTarget;
|
||
|
}
|
||
|
|
||
|
if (!target) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
targets.push({
|
||
|
x: (__utils_38.is.number(target.x) ? target.x : relativeX) + _offset.x,
|
||
|
y: (__utils_38.is.number(target.y) ? target.y : relativeY) + _offset.y,
|
||
|
range: __utils_38.is.number(target.range) ? target.range : options.range,
|
||
|
source: snapTarget,
|
||
|
index: _index,
|
||
|
offset: _offset
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var closest = {
|
||
|
target: null,
|
||
|
inRange: false,
|
||
|
distance: 0,
|
||
|
range: 0,
|
||
|
delta: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
}
|
||
|
};
|
||
|
|
||
|
for (var _i2 = 0; _i2 < targets.length; _i2++) {
|
||
|
var _target = targets[_i2];
|
||
|
var range = _target.range;
|
||
|
var dx = _target.x - page.x;
|
||
|
var dy = _target.y - page.y;
|
||
|
var distance = __utils_38.hypot(dx, dy);
|
||
|
var inRange = distance <= range; // Infinite targets count as being out of range
|
||
|
// compared to non infinite ones that are in range
|
||
|
|
||
|
if (range === Infinity && closest.inRange && closest.range !== Infinity) {
|
||
|
inRange = false;
|
||
|
}
|
||
|
|
||
|
if (!closest.target || (inRange // is the closest target in range?
|
||
|
? closest.inRange && range !== Infinity // the pointer is relatively deeper in this target
|
||
|
? distance / range < closest.distance / closest.range // this target has Infinite range and the closest doesn't
|
||
|
: range === Infinity && closest.range !== Infinity || // OR this target is closer that the previous closest
|
||
|
distance < closest.distance : // The other is not in range and the pointer is closer to this target
|
||
|
!closest.inRange && distance < closest.distance)) {
|
||
|
closest.target = _target;
|
||
|
closest.distance = distance;
|
||
|
closest.range = range;
|
||
|
closest.inRange = inRange;
|
||
|
closest.delta.x = dx;
|
||
|
closest.delta.y = dy;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (closest.inRange) {
|
||
|
coords.x = closest.target.x;
|
||
|
coords.y = closest.target.y;
|
||
|
}
|
||
|
|
||
|
state.closest = closest;
|
||
|
return closest;
|
||
|
}
|
||
|
|
||
|
function getOrigin(arg) {
|
||
|
var element = arg.interaction.element;
|
||
|
var optionsOrigin = __utils_38.rect.rectToXY(__utils_38.rect.resolveRectLike(arg.state.options.origin, null, null, [element]));
|
||
|
var origin = optionsOrigin || __utils_38.getOriginXY(arg.interactable, element, arg.interaction.prepared.name);
|
||
|
return origin;
|
||
|
}
|
||
|
|
||
|
var __defaults_38 = {
|
||
|
range: Infinity,
|
||
|
targets: null,
|
||
|
offset: null,
|
||
|
offsetWithOrigin: true,
|
||
|
origin: null,
|
||
|
relativePoints: null,
|
||
|
endOnly: false,
|
||
|
enabled: false
|
||
|
};
|
||
|
var snap = {
|
||
|
start: __start_38,
|
||
|
set: __set_38,
|
||
|
defaults: __defaults_38
|
||
|
};
|
||
|
var ___default_38 = snap;
|
||
|
_$pointer_38["default"] = ___default_38;
|
||
|
|
||
|
var _$size_39 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_39(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_39 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_39 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_39(obj); }
|
||
|
|
||
|
Object.defineProperty(_$size_39, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$size_39["default"] = void 0;
|
||
|
|
||
|
var ___extend_39 = ___interopRequireDefault_39(_$extend_53);
|
||
|
|
||
|
var __is_39 = ___interopRequireWildcard_39(_$is_57);
|
||
|
|
||
|
var ___pointer_39 = ___interopRequireDefault_39(_$pointer_38);
|
||
|
|
||
|
function ___getRequireWildcardCache_39() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_39 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_39(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_39(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_39(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_39(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___slicedToArray_39(arr, i) { return ___arrayWithHoles_39(arr) || ___iterableToArrayLimit_39(arr, i) || ___nonIterableRest_39(); }
|
||
|
|
||
|
function ___nonIterableRest_39() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
||
|
|
||
|
function ___iterableToArrayLimit_39(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||
|
|
||
|
function ___arrayWithHoles_39(arr) { if (Array.isArray(arr)) return arr; }
|
||
|
|
||
|
function __start_39(arg) {
|
||
|
var state = arg.state,
|
||
|
edges = arg.edges;
|
||
|
var options = state.options;
|
||
|
|
||
|
if (!edges) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
arg.state = {
|
||
|
options: {
|
||
|
targets: null,
|
||
|
relativePoints: [{
|
||
|
x: edges.left ? 0 : 1,
|
||
|
y: edges.top ? 0 : 1
|
||
|
}],
|
||
|
offset: options.offset || 'self',
|
||
|
origin: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
},
|
||
|
range: options.range
|
||
|
}
|
||
|
};
|
||
|
state.targetFields = state.targetFields || [['width', 'height'], ['x', 'y']];
|
||
|
|
||
|
___pointer_39["default"].start(arg);
|
||
|
|
||
|
state.offsets = arg.state.offsets;
|
||
|
arg.state = state;
|
||
|
}
|
||
|
|
||
|
function __set_39(arg) {
|
||
|
var interaction = arg.interaction,
|
||
|
state = arg.state,
|
||
|
coords = arg.coords;
|
||
|
var options = state.options,
|
||
|
offsets = state.offsets;
|
||
|
var relative = {
|
||
|
x: coords.x - offsets[0].x,
|
||
|
y: coords.y - offsets[0].y
|
||
|
};
|
||
|
state.options = (0, ___extend_39["default"])({}, options);
|
||
|
state.options.targets = [];
|
||
|
|
||
|
for (var _i = 0; _i < (options.targets || []).length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = (options.targets || [])[_i];
|
||
|
var snapTarget = _ref;
|
||
|
var target = void 0;
|
||
|
|
||
|
if (__is_39.func(snapTarget)) {
|
||
|
target = snapTarget(relative.x, relative.y, interaction);
|
||
|
} else {
|
||
|
target = snapTarget;
|
||
|
}
|
||
|
|
||
|
if (!target) {
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
for (var _i2 = 0; _i2 < state.targetFields.length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = state.targetFields[_i2];
|
||
|
|
||
|
var _ref3 = _ref2,
|
||
|
_ref4 = ___slicedToArray_39(_ref3, 2),
|
||
|
xField = _ref4[0],
|
||
|
yField = _ref4[1];
|
||
|
|
||
|
if (xField in target || yField in target) {
|
||
|
target.x = target[xField];
|
||
|
target.y = target[yField];
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
state.options.targets.push(target);
|
||
|
}
|
||
|
|
||
|
var returnValue = ___pointer_39["default"].set(arg);
|
||
|
|
||
|
state.options = options;
|
||
|
return returnValue;
|
||
|
}
|
||
|
|
||
|
var __defaults_39 = {
|
||
|
range: Infinity,
|
||
|
targets: null,
|
||
|
offset: null,
|
||
|
endOnly: false,
|
||
|
enabled: false
|
||
|
};
|
||
|
var snapSize = {
|
||
|
start: __start_39,
|
||
|
set: __set_39,
|
||
|
defaults: __defaults_39
|
||
|
};
|
||
|
var ___default_39 = snapSize;
|
||
|
_$size_39["default"] = ___default_39;
|
||
|
|
||
|
var _$edges_37 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$edges_37, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$edges_37["default"] = void 0;
|
||
|
|
||
|
var ___clone_37 = ___interopRequireDefault_37(_$clone_49);
|
||
|
|
||
|
var ___extend_37 = ___interopRequireDefault_37(_$extend_53);
|
||
|
|
||
|
var _size = ___interopRequireDefault_37(_$size_39);
|
||
|
|
||
|
function ___interopRequireDefault_37(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
/**
|
||
|
* @module modifiers/snapEdges
|
||
|
*
|
||
|
* @description
|
||
|
* This module allows snapping of the edges of targets during resize
|
||
|
* interactions.
|
||
|
*
|
||
|
* @example
|
||
|
* interact(target).resizable({
|
||
|
* snapEdges: {
|
||
|
* targets: [interact.snappers.grid({ x: 100, y: 50 })],
|
||
|
* },
|
||
|
* })
|
||
|
*
|
||
|
* interact(target).resizable({
|
||
|
* snapEdges: {
|
||
|
* targets: [
|
||
|
* interact.snappers.grid({
|
||
|
* top: 50,
|
||
|
* left: 50,
|
||
|
* bottom: 100,
|
||
|
* right: 100,
|
||
|
* }),
|
||
|
* ],
|
||
|
* },
|
||
|
* })
|
||
|
*/
|
||
|
function __start_37(arg) {
|
||
|
var edges = arg.edges;
|
||
|
|
||
|
if (!edges) {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
arg.state.targetFields = arg.state.targetFields || [[edges.left ? 'left' : 'right', edges.top ? 'top' : 'bottom']];
|
||
|
return _size["default"].start(arg);
|
||
|
}
|
||
|
|
||
|
var snapEdges = {
|
||
|
start: __start_37,
|
||
|
set: _size["default"].set,
|
||
|
defaults: (0, ___extend_37["default"])((0, ___clone_37["default"])(_size["default"].defaults), {
|
||
|
offset: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
}
|
||
|
})
|
||
|
};
|
||
|
var ___default_37 = snapEdges;
|
||
|
_$edges_37["default"] = ___default_37;
|
||
|
|
||
|
var _$index_32 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_32, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_32.aspectRatio = _$index_32.restrictSize = _$index_32.restrictEdges = _$index_32.restrictRect = _$index_32.restrict = _$index_32.snapEdges = _$index_32.snapSize = _$index_32.snap = void 0;
|
||
|
|
||
|
var _aspectRatio = ___interopRequireDefault_32(_$aspectRatio_30);
|
||
|
|
||
|
/* removed: var _$base_31 = require("./base"); */;
|
||
|
|
||
|
var ___edges_32 = ___interopRequireDefault_32(_$edges_33);
|
||
|
|
||
|
var ___pointer_32 = ___interopRequireDefault_32(_$pointer_34);
|
||
|
|
||
|
var ___rect_32 = ___interopRequireDefault_32(_$rect_35);
|
||
|
|
||
|
var ___size_32 = ___interopRequireDefault_32(_$size_36);
|
||
|
|
||
|
var _edges2 = ___interopRequireDefault_32(_$edges_37);
|
||
|
|
||
|
var _pointer2 = ___interopRequireDefault_32(_$pointer_38);
|
||
|
|
||
|
var _size2 = ___interopRequireDefault_32(_$size_39);
|
||
|
|
||
|
function ___interopRequireDefault_32(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var __snap_32 = (0, _$base_31.makeModifier)(_pointer2["default"], 'snap');
|
||
|
_$index_32.snap = __snap_32;
|
||
|
var __snapSize_32 = (0, _$base_31.makeModifier)(_size2["default"], 'snapSize');
|
||
|
_$index_32.snapSize = __snapSize_32;
|
||
|
var __snapEdges_32 = (0, _$base_31.makeModifier)(_edges2["default"], 'snapEdges');
|
||
|
_$index_32.snapEdges = __snapEdges_32;
|
||
|
var __restrict_32 = (0, _$base_31.makeModifier)(___pointer_32["default"], 'restrict');
|
||
|
_$index_32.restrict = __restrict_32;
|
||
|
var __restrictRect_32 = (0, _$base_31.makeModifier)(___rect_32["default"], 'restrictRect');
|
||
|
_$index_32.restrictRect = __restrictRect_32;
|
||
|
var __restrictEdges_32 = (0, _$base_31.makeModifier)(___edges_32["default"], 'restrictEdges');
|
||
|
_$index_32.restrictEdges = __restrictEdges_32;
|
||
|
var __restrictSize_32 = (0, _$base_31.makeModifier)(___size_32["default"], 'restrictSize');
|
||
|
_$index_32.restrictSize = __restrictSize_32;
|
||
|
var __aspectRatio_32 = (0, _$base_31.makeModifier)(_aspectRatio["default"], 'aspectRatio');
|
||
|
_$index_32.aspectRatio = __aspectRatio_32;
|
||
|
|
||
|
var _$PointerEvent_40 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$PointerEvent_40, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$PointerEvent_40.PointerEvent = _$PointerEvent_40["default"] = void 0;
|
||
|
|
||
|
var ___BaseEvent2_40 = ___interopRequireDefault_40(_$BaseEvent_13);
|
||
|
|
||
|
var __pointerUtils_40 = ___interopRequireWildcard_40(_$pointerUtils_61);
|
||
|
|
||
|
function ___getRequireWildcardCache_40() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_40 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_40(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_40(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_40(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_40(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___typeof_40(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_40 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_40 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_40(obj); }
|
||
|
|
||
|
function ___classCallCheck_40(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||
|
|
||
|
function ___defineProperties_40(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
||
|
|
||
|
function ___createClass_40(Constructor, protoProps, staticProps) { if (protoProps) ___defineProperties_40(Constructor.prototype, protoProps); if (staticProps) ___defineProperties_40(Constructor, staticProps); return Constructor; }
|
||
|
|
||
|
function ___possibleConstructorReturn_40(self, call) { if (call && (___typeof_40(call) === "object" || typeof call === "function")) { return call; } return ___assertThisInitialized_40(self); }
|
||
|
|
||
|
function ___getPrototypeOf_40(o) { ___getPrototypeOf_40 = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return ___getPrototypeOf_40(o); }
|
||
|
|
||
|
function ___assertThisInitialized_40(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
||
|
|
||
|
function ___inherits_40(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) ___setPrototypeOf_40(subClass, superClass); }
|
||
|
|
||
|
function ___setPrototypeOf_40(o, p) { ___setPrototypeOf_40 = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return ___setPrototypeOf_40(o, p); }
|
||
|
|
||
|
function ___defineProperty_40(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
||
|
|
||
|
var PointerEvent =
|
||
|
/*#__PURE__*/
|
||
|
function (_BaseEvent) {
|
||
|
___inherits_40(PointerEvent, _BaseEvent);
|
||
|
|
||
|
/** */
|
||
|
function PointerEvent(type, pointer, event, eventTarget, interaction, timeStamp) {
|
||
|
var _this;
|
||
|
|
||
|
___classCallCheck_40(this, PointerEvent);
|
||
|
|
||
|
_this = ___possibleConstructorReturn_40(this, ___getPrototypeOf_40(PointerEvent).call(this, interaction));
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "type", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "originalEvent", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "pointerId", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "pointerType", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "double", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "pageX", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "pageY", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "clientX", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "clientY", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "dt", void 0);
|
||
|
|
||
|
___defineProperty_40(___assertThisInitialized_40(_this), "eventable", void 0);
|
||
|
|
||
|
__pointerUtils_40.pointerExtend(___assertThisInitialized_40(_this), event);
|
||
|
|
||
|
if (event !== pointer) {
|
||
|
__pointerUtils_40.pointerExtend(___assertThisInitialized_40(_this), pointer);
|
||
|
}
|
||
|
|
||
|
_this.timeStamp = timeStamp;
|
||
|
_this.originalEvent = event;
|
||
|
_this.type = type;
|
||
|
_this.pointerId = __pointerUtils_40.getPointerId(pointer);
|
||
|
_this.pointerType = __pointerUtils_40.getPointerType(pointer);
|
||
|
_this.target = eventTarget;
|
||
|
_this.currentTarget = null;
|
||
|
|
||
|
if (type === 'tap') {
|
||
|
var pointerIndex = interaction.getPointerIndex(pointer);
|
||
|
_this.dt = _this.timeStamp - interaction.pointers[pointerIndex].downTime;
|
||
|
var interval = _this.timeStamp - interaction.tapTime;
|
||
|
_this["double"] = !!(interaction.prevTap && interaction.prevTap.type !== 'doubletap' && interaction.prevTap.target === _this.target && interval < 500);
|
||
|
} else if (type === 'doubletap') {
|
||
|
_this.dt = pointer.timeStamp - interaction.tapTime;
|
||
|
}
|
||
|
|
||
|
return _this;
|
||
|
}
|
||
|
|
||
|
___createClass_40(PointerEvent, [{
|
||
|
key: "_subtractOrigin",
|
||
|
value: function _subtractOrigin(_ref) {
|
||
|
var originX = _ref.x,
|
||
|
originY = _ref.y;
|
||
|
this.pageX -= originX;
|
||
|
this.pageY -= originY;
|
||
|
this.clientX -= originX;
|
||
|
this.clientY -= originY;
|
||
|
return this;
|
||
|
}
|
||
|
}, {
|
||
|
key: "_addOrigin",
|
||
|
value: function _addOrigin(_ref2) {
|
||
|
var originX = _ref2.x,
|
||
|
originY = _ref2.y;
|
||
|
this.pageX += originX;
|
||
|
this.pageY += originY;
|
||
|
this.clientX += originX;
|
||
|
this.clientY += originY;
|
||
|
return this;
|
||
|
}
|
||
|
/**
|
||
|
* Prevent the default behaviour of the original Event
|
||
|
*/
|
||
|
|
||
|
}, {
|
||
|
key: "preventDefault",
|
||
|
value: function preventDefault() {
|
||
|
this.originalEvent.preventDefault();
|
||
|
}
|
||
|
}]);
|
||
|
|
||
|
return PointerEvent;
|
||
|
}(___BaseEvent2_40["default"]);
|
||
|
|
||
|
_$PointerEvent_40.PointerEvent = _$PointerEvent_40["default"] = PointerEvent;
|
||
|
|
||
|
var _$base_41 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_41(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_41 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_41 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_41(obj); }
|
||
|
|
||
|
Object.defineProperty(_$base_41, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$base_41["default"] = void 0;
|
||
|
|
||
|
var ___Interaction_41 = ___interopRequireDefault_41(_$Interaction_18({}));
|
||
|
|
||
|
var ___scope_41 = _$scope_24({});
|
||
|
|
||
|
var __utils_41 = ___interopRequireWildcard_41(_$index_56);
|
||
|
|
||
|
var _PointerEvent = ___interopRequireDefault_41(_$PointerEvent_40);
|
||
|
|
||
|
function ___getRequireWildcardCache_41() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_41 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_41(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_41(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_41(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_41(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var __defaults_41 = {
|
||
|
holdDuration: 600,
|
||
|
ignoreFrom: null,
|
||
|
allowFrom: null,
|
||
|
origin: {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
}
|
||
|
};
|
||
|
var pointerEvents = {
|
||
|
id: 'pointer-events/base',
|
||
|
install: __install_41,
|
||
|
listeners: {
|
||
|
'interactions:new': addInteractionProps,
|
||
|
'interactions:update-pointer': addHoldInfo,
|
||
|
'interactions:move': moveAndClearHold,
|
||
|
'interactions:down': function interactionsDown(arg, scope) {
|
||
|
downAndStartHold(arg, scope);
|
||
|
fire(arg, scope);
|
||
|
},
|
||
|
'interactions:up': function interactionsUp(arg, scope) {
|
||
|
clearHold(arg);
|
||
|
fire(arg, scope);
|
||
|
tapAfterUp(arg, scope);
|
||
|
},
|
||
|
'interactions:cancel': function interactionsCancel(arg, scope) {
|
||
|
clearHold(arg);
|
||
|
fire(arg, scope);
|
||
|
}
|
||
|
},
|
||
|
PointerEvent: _PointerEvent["default"],
|
||
|
fire: fire,
|
||
|
collectEventTargets: collectEventTargets,
|
||
|
defaults: __defaults_41,
|
||
|
types: ['down', 'move', 'up', 'cancel', 'tap', 'doubletap', 'hold']
|
||
|
};
|
||
|
|
||
|
function fire(arg, scope) {
|
||
|
var interaction = arg.interaction,
|
||
|
pointer = arg.pointer,
|
||
|
event = arg.event,
|
||
|
eventTarget = arg.eventTarget,
|
||
|
type = arg.type,
|
||
|
_arg$targets = arg.targets,
|
||
|
targets = _arg$targets === void 0 ? collectEventTargets(arg, scope) : _arg$targets;
|
||
|
var pointerEvent = new _PointerEvent["default"](type, pointer, event, eventTarget, interaction, scope.now());
|
||
|
scope.fire('pointerEvents:new', {
|
||
|
pointerEvent: pointerEvent
|
||
|
});
|
||
|
var signalArg = {
|
||
|
interaction: interaction,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
targets: targets,
|
||
|
type: type,
|
||
|
pointerEvent: pointerEvent
|
||
|
};
|
||
|
|
||
|
for (var i = 0; i < targets.length; i++) {
|
||
|
var target = targets[i];
|
||
|
|
||
|
for (var prop in target.props || {}) {
|
||
|
pointerEvent[prop] = target.props[prop];
|
||
|
}
|
||
|
|
||
|
var origin = __utils_41.getOriginXY(target.eventable, target.node);
|
||
|
|
||
|
pointerEvent._subtractOrigin(origin);
|
||
|
|
||
|
pointerEvent.eventable = target.eventable;
|
||
|
pointerEvent.currentTarget = target.node;
|
||
|
target.eventable.fire(pointerEvent);
|
||
|
|
||
|
pointerEvent._addOrigin(origin);
|
||
|
|
||
|
if (pointerEvent.immediatePropagationStopped || pointerEvent.propagationStopped && i + 1 < targets.length && targets[i + 1].node !== pointerEvent.currentTarget) {
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
scope.fire('pointerEvents:fired', signalArg);
|
||
|
|
||
|
if (type === 'tap') {
|
||
|
// if pointerEvent should make a double tap, create and fire a doubletap
|
||
|
// PointerEvent and use that as the prevTap
|
||
|
var prevTap = pointerEvent["double"] ? fire({
|
||
|
interaction: interaction,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
type: 'doubletap'
|
||
|
}, scope) : pointerEvent;
|
||
|
interaction.prevTap = prevTap;
|
||
|
interaction.tapTime = prevTap.timeStamp;
|
||
|
}
|
||
|
|
||
|
return pointerEvent;
|
||
|
}
|
||
|
|
||
|
function collectEventTargets(_ref, scope) {
|
||
|
var interaction = _ref.interaction,
|
||
|
pointer = _ref.pointer,
|
||
|
event = _ref.event,
|
||
|
eventTarget = _ref.eventTarget,
|
||
|
type = _ref.type;
|
||
|
var pointerIndex = interaction.getPointerIndex(pointer);
|
||
|
var pointerInfo = interaction.pointers[pointerIndex]; // do not fire a tap event if the pointer was moved before being lifted
|
||
|
|
||
|
if (type === 'tap' && (interaction.pointerWasMoved || // or if the pointerup target is different to the pointerdown target
|
||
|
!(pointerInfo && pointerInfo.downTarget === eventTarget))) {
|
||
|
return [];
|
||
|
}
|
||
|
|
||
|
var path = __utils_41.dom.getPath(eventTarget);
|
||
|
var signalArg = {
|
||
|
interaction: interaction,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
type: type,
|
||
|
path: path,
|
||
|
targets: [],
|
||
|
node: null
|
||
|
};
|
||
|
|
||
|
for (var _i = 0; _i < path.length; _i++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = path[_i];
|
||
|
var node = _ref2;
|
||
|
signalArg.node = node;
|
||
|
scope.fire('pointerEvents:collect-targets', signalArg);
|
||
|
}
|
||
|
|
||
|
if (type === 'hold') {
|
||
|
signalArg.targets = signalArg.targets.filter(function (target) {
|
||
|
return target.eventable.options.holdDuration === interaction.pointers[pointerIndex].hold.duration;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return signalArg.targets;
|
||
|
}
|
||
|
|
||
|
function addInteractionProps(_ref3) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
interaction.prevTap = null; // the most recent tap event on this interaction
|
||
|
|
||
|
interaction.tapTime = 0; // time of the most recent tap event
|
||
|
}
|
||
|
|
||
|
function addHoldInfo(_ref4) {
|
||
|
var down = _ref4.down,
|
||
|
pointerInfo = _ref4.pointerInfo;
|
||
|
|
||
|
if (!down && pointerInfo.hold) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
pointerInfo.hold = {
|
||
|
duration: Infinity,
|
||
|
timeout: null
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function clearHold(_ref5) {
|
||
|
var interaction = _ref5.interaction,
|
||
|
pointerIndex = _ref5.pointerIndex;
|
||
|
|
||
|
if (interaction.pointers[pointerIndex].hold) {
|
||
|
clearTimeout(interaction.pointers[pointerIndex].hold.timeout);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function moveAndClearHold(_ref6, scope) {
|
||
|
var interaction = _ref6.interaction,
|
||
|
pointer = _ref6.pointer,
|
||
|
event = _ref6.event,
|
||
|
eventTarget = _ref6.eventTarget,
|
||
|
duplicate = _ref6.duplicate;
|
||
|
var pointerIndex = interaction.getPointerIndex(pointer);
|
||
|
|
||
|
if (!duplicate && (!interaction.pointerIsDown || interaction.pointerWasMoved)) {
|
||
|
if (interaction.pointerIsDown) {
|
||
|
clearTimeout(interaction.pointers[pointerIndex].hold.timeout);
|
||
|
}
|
||
|
|
||
|
fire({
|
||
|
interaction: interaction,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
type: 'move'
|
||
|
}, scope);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function downAndStartHold(_ref7, scope) {
|
||
|
var interaction = _ref7.interaction,
|
||
|
pointer = _ref7.pointer,
|
||
|
event = _ref7.event,
|
||
|
eventTarget = _ref7.eventTarget,
|
||
|
pointerIndex = _ref7.pointerIndex;
|
||
|
var timer = interaction.pointers[pointerIndex].hold;
|
||
|
var path = __utils_41.dom.getPath(eventTarget);
|
||
|
var signalArg = {
|
||
|
interaction: interaction,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
eventTarget: eventTarget,
|
||
|
type: 'hold',
|
||
|
targets: [],
|
||
|
path: path,
|
||
|
node: null
|
||
|
};
|
||
|
|
||
|
for (var _i2 = 0; _i2 < path.length; _i2++) {
|
||
|
var _ref8;
|
||
|
|
||
|
_ref8 = path[_i2];
|
||
|
var node = _ref8;
|
||
|
signalArg.node = node;
|
||
|
scope.fire('pointerEvents:collect-targets', signalArg);
|
||
|
}
|
||
|
|
||
|
if (!signalArg.targets.length) {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
var minDuration = Infinity;
|
||
|
|
||
|
for (var _i3 = 0; _i3 < signalArg.targets.length; _i3++) {
|
||
|
var _ref9;
|
||
|
|
||
|
_ref9 = signalArg.targets[_i3];
|
||
|
var target = _ref9;
|
||
|
var holdDuration = target.eventable.options.holdDuration;
|
||
|
|
||
|
if (holdDuration < minDuration) {
|
||
|
minDuration = holdDuration;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
timer.duration = minDuration;
|
||
|
timer.timeout = setTimeout(function () {
|
||
|
fire({
|
||
|
interaction: interaction,
|
||
|
eventTarget: eventTarget,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
type: 'hold'
|
||
|
}, scope);
|
||
|
}, minDuration);
|
||
|
}
|
||
|
|
||
|
function tapAfterUp(_ref10, scope) {
|
||
|
var interaction = _ref10.interaction,
|
||
|
pointer = _ref10.pointer,
|
||
|
event = _ref10.event,
|
||
|
eventTarget = _ref10.eventTarget;
|
||
|
|
||
|
if (!interaction.pointerWasMoved) {
|
||
|
fire({
|
||
|
interaction: interaction,
|
||
|
eventTarget: eventTarget,
|
||
|
pointer: pointer,
|
||
|
event: event,
|
||
|
type: 'tap'
|
||
|
}, scope);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function __install_41(scope) {
|
||
|
scope.pointerEvents = pointerEvents;
|
||
|
scope.defaults.actions.pointerEvents = pointerEvents.defaults;
|
||
|
}
|
||
|
|
||
|
var ___default_41 = pointerEvents;
|
||
|
_$base_41["default"] = ___default_41;
|
||
|
|
||
|
var _$holdRepeat_42 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$holdRepeat_42, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$holdRepeat_42["default"] = void 0;
|
||
|
|
||
|
var ___base_42 = ___interopRequireDefault_42(_$base_41);
|
||
|
|
||
|
var ___PointerEvent_42 = ___interopRequireDefault_42(_$PointerEvent_40);
|
||
|
|
||
|
function ___interopRequireDefault_42(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_42(scope) {
|
||
|
scope.usePlugin(___base_42["default"]);
|
||
|
var pointerEvents = scope.pointerEvents; // don't repeat by default
|
||
|
|
||
|
pointerEvents.defaults.holdRepeatInterval = 0;
|
||
|
pointerEvents.types.push('holdrepeat');
|
||
|
}
|
||
|
|
||
|
function onNew(_ref) {
|
||
|
var pointerEvent = _ref.pointerEvent;
|
||
|
|
||
|
if (pointerEvent.type !== 'hold') {
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
pointerEvent.count = (pointerEvent.count || 0) + 1;
|
||
|
}
|
||
|
|
||
|
function onFired(_ref2, scope) {
|
||
|
var interaction = _ref2.interaction,
|
||
|
pointerEvent = _ref2.pointerEvent,
|
||
|
eventTarget = _ref2.eventTarget,
|
||
|
targets = _ref2.targets;
|
||
|
|
||
|
if (pointerEvent.type !== 'hold' || !targets.length) {
|
||
|
return;
|
||
|
} // get the repeat interval from the first eventable
|
||
|
|
||
|
|
||
|
var interval = targets[0].eventable.options.holdRepeatInterval; // don't repeat if the interval is 0 or less
|
||
|
|
||
|
if (interval <= 0) {
|
||
|
return;
|
||
|
} // set a timeout to fire the holdrepeat event
|
||
|
|
||
|
|
||
|
interaction.holdIntervalHandle = setTimeout(function () {
|
||
|
scope.pointerEvents.fire({
|
||
|
interaction: interaction,
|
||
|
eventTarget: eventTarget,
|
||
|
type: 'hold',
|
||
|
pointer: pointerEvent,
|
||
|
event: pointerEvent
|
||
|
}, scope);
|
||
|
}, interval);
|
||
|
}
|
||
|
|
||
|
function endHoldRepeat(_ref3) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
|
||
|
// set the interaction's holdStopTime property
|
||
|
// to stop further holdRepeat events
|
||
|
if (interaction.holdIntervalHandle) {
|
||
|
clearInterval(interaction.holdIntervalHandle);
|
||
|
interaction.holdIntervalHandle = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var holdRepeat = {
|
||
|
id: 'pointer-events/holdRepeat',
|
||
|
install: __install_42,
|
||
|
listeners: ['move', 'up', 'cancel', 'endall'].reduce(function (acc, enderTypes) {
|
||
|
acc["pointerEvents:".concat(enderTypes)] = endHoldRepeat;
|
||
|
return acc;
|
||
|
}, {
|
||
|
'pointerEvents:new': onNew,
|
||
|
'pointerEvents:fired': onFired
|
||
|
})
|
||
|
};
|
||
|
var ___default_42 = holdRepeat;
|
||
|
_$holdRepeat_42["default"] = ___default_42;
|
||
|
|
||
|
var _$interactableTargets_44 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$interactableTargets_44, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$interactableTargets_44["default"] = void 0;
|
||
|
|
||
|
/* removed: var _$arr_47 = require("@interactjs/utils/arr"); */;
|
||
|
|
||
|
var ___extend_44 = ___interopRequireDefault_44(_$extend_53);
|
||
|
|
||
|
function ___interopRequireDefault_44(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function __install_44(scope) {
|
||
|
var pointerEvents = scope.pointerEvents,
|
||
|
actions = scope.actions,
|
||
|
Interactable = scope.Interactable;
|
||
|
(0, _$arr_47.merge)(actions.eventTypes, pointerEvents.types);
|
||
|
Interactable.prototype.pointerEvents = pointerEventsMethod;
|
||
|
var __backCompatOption = Interactable.prototype._backCompatOption;
|
||
|
|
||
|
Interactable.prototype._backCompatOption = function (optionName, newValue) {
|
||
|
var ret = __backCompatOption.call(this, optionName, newValue);
|
||
|
|
||
|
if (ret === this) {
|
||
|
this.events.options[optionName] = newValue;
|
||
|
}
|
||
|
|
||
|
return ret;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function pointerEventsMethod(options) {
|
||
|
(0, ___extend_44["default"])(this.events.options, options);
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
var plugin = {
|
||
|
id: 'pointer-events/interactableTargets',
|
||
|
install: __install_44,
|
||
|
listeners: {
|
||
|
'pointerEvents:collect-targets': function pointerEventsCollectTargets(_ref, scope) {
|
||
|
var targets = _ref.targets,
|
||
|
node = _ref.node,
|
||
|
type = _ref.type,
|
||
|
eventTarget = _ref.eventTarget;
|
||
|
scope.interactables.forEachMatch(node, function (interactable) {
|
||
|
var eventable = interactable.events;
|
||
|
var options = eventable.options;
|
||
|
|
||
|
if (eventable.types[type] && eventable.types[type].length && interactable.testIgnoreAllow(options, node, eventTarget)) {
|
||
|
targets.push({
|
||
|
node: node,
|
||
|
eventable: eventable,
|
||
|
props: {
|
||
|
interactable: interactable
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
'interactable:new': function interactableNew(_ref2) {
|
||
|
var interactable = _ref2.interactable;
|
||
|
|
||
|
interactable.events.getRect = function (element) {
|
||
|
return interactable.getRect(element);
|
||
|
};
|
||
|
},
|
||
|
'interactable:set': function interactableSet(_ref3, scope) {
|
||
|
var interactable = _ref3.interactable,
|
||
|
options = _ref3.options;
|
||
|
(0, ___extend_44["default"])(interactable.events.options, scope.pointerEvents.defaults);
|
||
|
(0, ___extend_44["default"])(interactable.events.options, options.pointerEvents || {});
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
var ___default_44 = plugin;
|
||
|
_$interactableTargets_44["default"] = ___default_44;
|
||
|
|
||
|
var _$index_43 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_43(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_43 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_43 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_43(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_43, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_43.install = __install_43;
|
||
|
Object.defineProperty(_$index_43, "holdRepeat", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _holdRepeat["default"];
|
||
|
}
|
||
|
});
|
||
|
Object.defineProperty(_$index_43, "interactableTargets", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _interactableTargets["default"];
|
||
|
}
|
||
|
});
|
||
|
_$index_43.pointerEvents = _$index_43.id = void 0;
|
||
|
|
||
|
var __pointerEvents_43 = ___interopRequireWildcard_43(_$base_41);
|
||
|
|
||
|
_$index_43.pointerEvents = __pointerEvents_43;
|
||
|
|
||
|
var _holdRepeat = ___interopRequireDefault_43(_$holdRepeat_42);
|
||
|
|
||
|
var _interactableTargets = ___interopRequireDefault_43(_$interactableTargets_44);
|
||
|
|
||
|
function ___interopRequireDefault_43(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_43() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_43 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_43(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_43(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_43(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __install_43(scope) {
|
||
|
scope.usePlugin(__pointerEvents_43);
|
||
|
scope.usePlugin(_holdRepeat["default"]);
|
||
|
scope.usePlugin(_interactableTargets["default"]);
|
||
|
}
|
||
|
|
||
|
var __id_43 = 'pointer-events';
|
||
|
_$index_43.id = __id_43;
|
||
|
|
||
|
var _$index_45 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_45, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_45.install = __install_45;
|
||
|
_$index_45["default"] = void 0;
|
||
|
|
||
|
var ___Interactable_45 = ___interopRequireDefault_45(_$Interactable_16);
|
||
|
|
||
|
/* removed: var _$InteractEvent_15 = require("@interactjs/core/InteractEvent"); */;
|
||
|
|
||
|
var ___Interaction_45 = _$Interaction_18({});
|
||
|
|
||
|
/* removed: var _$index_56 = require("@interactjs/utils/index"); */;
|
||
|
|
||
|
function ___interopRequireDefault_45(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
_$InteractEvent_15.EventPhase.Reflow = 'reflow';
|
||
|
|
||
|
function __install_45(scope) {
|
||
|
var actions = scope.actions,
|
||
|
Interactable = scope.Interactable; // add action reflow event types
|
||
|
|
||
|
for (var _i = 0; _i < actions.names.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = actions.names[_i];
|
||
|
var actionName = _ref;
|
||
|
actions.eventTypes.push("".concat(actionName, "reflow"));
|
||
|
}
|
||
|
/**
|
||
|
* ```js
|
||
|
* const interactable = interact(target)
|
||
|
* const drag = { name: drag, axis: 'x' }
|
||
|
* const resize = { name: resize, edges: { left: true, bottom: true }
|
||
|
*
|
||
|
* interactable.reflow(drag)
|
||
|
* interactable.reflow(resize)
|
||
|
* ```
|
||
|
*
|
||
|
* Start an action sequence to re-apply modifiers, check drops, etc.
|
||
|
*
|
||
|
* @param { Object } action The action to begin
|
||
|
* @param { string } action.name The name of the action
|
||
|
* @returns { Promise } A promise that resolves to the `Interactable` when actions on all targets have ended
|
||
|
*/
|
||
|
|
||
|
|
||
|
Interactable.prototype.reflow = function (action) {
|
||
|
return reflow(this, action, scope);
|
||
|
};
|
||
|
}
|
||
|
|
||
|
function reflow(interactable, action, scope) {
|
||
|
var elements = _$index_56.is.string(interactable.target) ? _$index_56.arr.from(interactable._context.querySelectorAll(interactable.target)) : [interactable.target]; // tslint:disable-next-line variable-name
|
||
|
|
||
|
var Promise = _$index_56.win.window.Promise;
|
||
|
var promises = Promise ? [] : null;
|
||
|
|
||
|
var _loop = function _loop() {
|
||
|
_ref2 = elements[_i2];
|
||
|
var element = _ref2;
|
||
|
var rect = interactable.getRect(element);
|
||
|
|
||
|
if (!rect) {
|
||
|
return "break";
|
||
|
}
|
||
|
|
||
|
var runningInteraction = _$index_56.arr.find(scope.interactions.list, function (interaction) {
|
||
|
return interaction.interacting() && interaction.interactable === interactable && interaction.element === element && interaction.prepared.name === action.name;
|
||
|
});
|
||
|
|
||
|
var reflowPromise = void 0;
|
||
|
|
||
|
if (runningInteraction) {
|
||
|
runningInteraction.move();
|
||
|
|
||
|
if (promises) {
|
||
|
reflowPromise = runningInteraction._reflowPromise || new Promise(function (resolve) {
|
||
|
runningInteraction._reflowResolve = resolve;
|
||
|
});
|
||
|
}
|
||
|
} else {
|
||
|
var xywh = _$index_56.rect.tlbrToXywh(rect);
|
||
|
|
||
|
var coords = {
|
||
|
page: {
|
||
|
x: xywh.x,
|
||
|
y: xywh.y
|
||
|
},
|
||
|
client: {
|
||
|
x: xywh.x,
|
||
|
y: xywh.y
|
||
|
},
|
||
|
timeStamp: scope.now()
|
||
|
};
|
||
|
|
||
|
var event = _$index_56.pointer.coordsToEvent(coords);
|
||
|
|
||
|
reflowPromise = startReflow(scope, interactable, element, action, event);
|
||
|
}
|
||
|
|
||
|
if (promises) {
|
||
|
promises.push(reflowPromise);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
for (var _i2 = 0; _i2 < elements.length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
var _ret = _loop();
|
||
|
|
||
|
if (_ret === "break") break;
|
||
|
}
|
||
|
|
||
|
return promises && Promise.all(promises).then(function () {
|
||
|
return interactable;
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function startReflow(scope, interactable, element, action, event) {
|
||
|
var interaction = scope.interactions["new"]({
|
||
|
pointerType: 'reflow'
|
||
|
});
|
||
|
var signalArg = {
|
||
|
interaction: interaction,
|
||
|
event: event,
|
||
|
pointer: event,
|
||
|
eventTarget: element,
|
||
|
phase: _$InteractEvent_15.EventPhase.Reflow
|
||
|
};
|
||
|
interaction.interactable = interactable;
|
||
|
interaction.element = element;
|
||
|
interaction.prepared = (0, _$index_56.extend)({}, action);
|
||
|
interaction.prevEvent = event;
|
||
|
interaction.updatePointer(event, event, element, true);
|
||
|
|
||
|
interaction._doPhase(signalArg);
|
||
|
|
||
|
var reflowPromise = _$index_56.win.window.Promise ? new _$index_56.win.window.Promise(function (resolve) {
|
||
|
interaction._reflowResolve = resolve;
|
||
|
}) : null;
|
||
|
interaction._reflowPromise = reflowPromise;
|
||
|
interaction.start(action, interactable, element);
|
||
|
|
||
|
if (interaction._interacting) {
|
||
|
interaction.move(signalArg);
|
||
|
interaction.end(event);
|
||
|
} else {
|
||
|
interaction.stop();
|
||
|
}
|
||
|
|
||
|
interaction.removePointer(event, event);
|
||
|
interaction.pointerIsDown = false;
|
||
|
return reflowPromise;
|
||
|
}
|
||
|
|
||
|
var ___default_45 = {
|
||
|
id: 'reflow',
|
||
|
install: __install_45,
|
||
|
listeners: {
|
||
|
// remove completed reflow interactions
|
||
|
'interactions:stop': function interactionsStop(_ref3, scope) {
|
||
|
var interaction = _ref3.interaction;
|
||
|
|
||
|
if (interaction.pointerType === _$InteractEvent_15.EventPhase.Reflow) {
|
||
|
if (interaction._reflowResolve) {
|
||
|
interaction._reflowResolve();
|
||
|
}
|
||
|
|
||
|
_$index_56.arr.remove(scope.interactions.list, interaction);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
_$index_45["default"] = ___default_45;
|
||
|
|
||
|
var _$interact_28 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_28(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_28 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_28 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_28(obj); }
|
||
|
|
||
|
Object.defineProperty(_$interact_28, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$interact_28["default"] = _$interact_28.scope = _$interact_28.interact = void 0;
|
||
|
|
||
|
var ___scope_28 = _$scope_24({});
|
||
|
|
||
|
var ___browser_28 = ___interopRequireDefault_28(_$browser_48);
|
||
|
|
||
|
var ___events_28 = ___interopRequireDefault_28(_$events_52);
|
||
|
|
||
|
var __utils_28 = ___interopRequireWildcard_28(_$index_56);
|
||
|
|
||
|
function ___getRequireWildcardCache_28() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_28 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_28(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_28(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_28(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___interopRequireDefault_28(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
/** @module interact */
|
||
|
var globalEvents = {};
|
||
|
var scope = new ___scope_28.Scope();
|
||
|
/**
|
||
|
* ```js
|
||
|
* interact('#draggable').draggable(true)
|
||
|
*
|
||
|
* var rectables = interact('rect')
|
||
|
* rectables
|
||
|
* .gesturable(true)
|
||
|
* .on('gesturemove', function (event) {
|
||
|
* // ...
|
||
|
* })
|
||
|
* ```
|
||
|
*
|
||
|
* The methods of this variable can be used to set elements as interactables
|
||
|
* and also to change various default settings.
|
||
|
*
|
||
|
* Calling it as a function and passing an element or a valid CSS selector
|
||
|
* string returns an Interactable object which has various methods to configure
|
||
|
* it.
|
||
|
*
|
||
|
* @global
|
||
|
*
|
||
|
* @param {Element | string} target The HTML or SVG Element to interact with
|
||
|
* or CSS selector
|
||
|
* @return {Interactable}
|
||
|
*/
|
||
|
|
||
|
_$interact_28.scope = scope;
|
||
|
|
||
|
var interact = function interact(target, options) {
|
||
|
var interactable = scope.interactables.get(target, options);
|
||
|
|
||
|
if (!interactable) {
|
||
|
interactable = scope.interactables["new"](target, options);
|
||
|
interactable.events.global = globalEvents;
|
||
|
}
|
||
|
|
||
|
return interactable;
|
||
|
};
|
||
|
/**
|
||
|
* Use a plugin
|
||
|
*
|
||
|
* @alias module:interact.use
|
||
|
*
|
||
|
* @param {Object} plugin
|
||
|
* @param {function} plugin.install
|
||
|
* @return {interact}
|
||
|
*/
|
||
|
|
||
|
|
||
|
_$interact_28.interact = interact;
|
||
|
interact.use = use;
|
||
|
|
||
|
function use(plugin, options) {
|
||
|
scope.usePlugin(plugin, options);
|
||
|
return interact;
|
||
|
}
|
||
|
/**
|
||
|
* Check if an element or selector has been set with the {@link interact}
|
||
|
* function
|
||
|
*
|
||
|
* @alias module:interact.isSet
|
||
|
*
|
||
|
* @param {Element} element The Element being searched for
|
||
|
* @return {boolean} Indicates if the element or CSS selector was previously
|
||
|
* passed to interact
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.isSet = isSet;
|
||
|
|
||
|
function isSet(target, options) {
|
||
|
return !!scope.interactables.get(target, options && options.context);
|
||
|
}
|
||
|
/**
|
||
|
* Add a global listener for an InteractEvent or adds a DOM event to `document`
|
||
|
*
|
||
|
* @alias module:interact.on
|
||
|
*
|
||
|
* @param {string | array | object} type The types of events to listen for
|
||
|
* @param {function} listener The function event (s)
|
||
|
* @param {object | boolean} [options] object or useCapture flag for
|
||
|
* addEventListener
|
||
|
* @return {object} interact
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.on = on;
|
||
|
|
||
|
function on(type, listener, options) {
|
||
|
if (__utils_28.is.string(type) && type.search(' ') !== -1) {
|
||
|
type = type.trim().split(/ +/);
|
||
|
}
|
||
|
|
||
|
if (__utils_28.is.array(type)) {
|
||
|
for (var _i = 0; _i < type.length; _i++) {
|
||
|
var _ref;
|
||
|
|
||
|
_ref = type[_i];
|
||
|
var eventType = _ref;
|
||
|
interact.on(eventType, listener, options);
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
if (__utils_28.is.object(type)) {
|
||
|
for (var prop in type) {
|
||
|
interact.on(prop, type[prop], listener);
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
} // if it is an InteractEvent type, add listener to globalEvents
|
||
|
|
||
|
|
||
|
if (__utils_28.arr.contains(scope.actions.eventTypes, type)) {
|
||
|
// if this type of event was never bound
|
||
|
if (!globalEvents[type]) {
|
||
|
globalEvents[type] = [listener];
|
||
|
} else {
|
||
|
globalEvents[type].push(listener);
|
||
|
}
|
||
|
} // If non InteractEvent type, addEventListener to document
|
||
|
else {
|
||
|
___events_28["default"].add(scope.document, type, listener, {
|
||
|
options: options
|
||
|
});
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
/**
|
||
|
* Removes a global InteractEvent listener or DOM event from `document`
|
||
|
*
|
||
|
* @alias module:interact.off
|
||
|
*
|
||
|
* @param {string | array | object} type The types of events that were listened
|
||
|
* for
|
||
|
* @param {function} listener The listener function to be removed
|
||
|
* @param {object | boolean} options [options] object or useCapture flag for
|
||
|
* removeEventListener
|
||
|
* @return {object} interact
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.off = off;
|
||
|
|
||
|
function off(type, listener, options) {
|
||
|
if (__utils_28.is.string(type) && type.search(' ') !== -1) {
|
||
|
type = type.trim().split(/ +/);
|
||
|
}
|
||
|
|
||
|
if (__utils_28.is.array(type)) {
|
||
|
for (var _i2 = 0; _i2 < type.length; _i2++) {
|
||
|
var _ref2;
|
||
|
|
||
|
_ref2 = type[_i2];
|
||
|
var eventType = _ref2;
|
||
|
interact.off(eventType, listener, options);
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
if (__utils_28.is.object(type)) {
|
||
|
for (var prop in type) {
|
||
|
interact.off(prop, type[prop], listener);
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
if (!__utils_28.arr.contains(scope.actions.eventTypes, type)) {
|
||
|
___events_28["default"].remove(scope.document, type, listener, options);
|
||
|
} else {
|
||
|
var index;
|
||
|
|
||
|
if (type in globalEvents && (index = globalEvents[type].indexOf(listener)) !== -1) {
|
||
|
globalEvents[type].splice(index, 1);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
interact.debug = debug;
|
||
|
|
||
|
function debug() {
|
||
|
return scope;
|
||
|
} // expose the functions used to calculate multi-touch properties
|
||
|
|
||
|
|
||
|
interact.getPointerAverage = __utils_28.pointer.pointerAverage;
|
||
|
interact.getTouchBBox = __utils_28.pointer.touchBBox;
|
||
|
interact.getTouchDistance = __utils_28.pointer.touchDistance;
|
||
|
interact.getTouchAngle = __utils_28.pointer.touchAngle;
|
||
|
interact.getElementRect = __utils_28.dom.getElementRect;
|
||
|
interact.getElementClientRect = __utils_28.dom.getElementClientRect;
|
||
|
interact.matchesSelector = __utils_28.dom.matchesSelector;
|
||
|
interact.closest = __utils_28.dom.closest;
|
||
|
/**
|
||
|
* @alias module:interact.supportsTouch
|
||
|
*
|
||
|
* @return {boolean} Whether or not the browser supports touch input
|
||
|
*/
|
||
|
|
||
|
interact.supportsTouch = supportsTouch;
|
||
|
|
||
|
function supportsTouch() {
|
||
|
return ___browser_28["default"].supportsTouch;
|
||
|
}
|
||
|
/**
|
||
|
* @alias module:interact.supportsPointerEvent
|
||
|
*
|
||
|
* @return {boolean} Whether or not the browser supports PointerEvents
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.supportsPointerEvent = supportsPointerEvent;
|
||
|
|
||
|
function supportsPointerEvent() {
|
||
|
return ___browser_28["default"].supportsPointerEvent;
|
||
|
}
|
||
|
/**
|
||
|
* Cancels all interactions (end events are not fired)
|
||
|
*
|
||
|
* @alias module:interact.stop
|
||
|
*
|
||
|
* @return {object} interact
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.stop = __stop_28;
|
||
|
|
||
|
function __stop_28() {
|
||
|
for (var _i3 = 0; _i3 < scope.interactions.list.length; _i3++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = scope.interactions.list[_i3];
|
||
|
var interaction = _ref3;
|
||
|
interaction.stop();
|
||
|
}
|
||
|
|
||
|
return interact;
|
||
|
}
|
||
|
/**
|
||
|
* Returns or sets the distance the pointer must be moved before an action
|
||
|
* sequence occurs. This also affects tolerance for tap events.
|
||
|
*
|
||
|
* @alias module:interact.pointerMoveTolerance
|
||
|
*
|
||
|
* @param {number} [newValue] The movement from the start position must be greater than this value
|
||
|
* @return {interact | number}
|
||
|
*/
|
||
|
|
||
|
|
||
|
interact.pointerMoveTolerance = pointerMoveTolerance;
|
||
|
|
||
|
function pointerMoveTolerance(newValue) {
|
||
|
if (__utils_28.is.number(newValue)) {
|
||
|
scope.interactions.pointerMoveTolerance = newValue;
|
||
|
return interact;
|
||
|
}
|
||
|
|
||
|
return scope.interactions.pointerMoveTolerance;
|
||
|
}
|
||
|
|
||
|
scope.addListeners({
|
||
|
'interactable:unset': function interactableUnset(_ref4) {
|
||
|
var interactable = _ref4.interactable;
|
||
|
scope.interactables.list.splice(scope.interactables.list.indexOf(interactable), 1); // Stop related interactions when an Interactable is unset
|
||
|
|
||
|
for (var _i4 = 0; _i4 < scope.interactions.list.length; _i4++) {
|
||
|
var _ref5;
|
||
|
|
||
|
_ref5 = scope.interactions.list[_i4];
|
||
|
var interaction = _ref5;
|
||
|
|
||
|
if (interaction.interactable === interactable && interaction.interacting() && !interaction._ending) {
|
||
|
interaction.stop();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
interact.addDocument = function (doc, options) {
|
||
|
return scope.addDocument(doc, options);
|
||
|
};
|
||
|
|
||
|
interact.removeDocument = function (doc) {
|
||
|
return scope.removeDocument(doc);
|
||
|
};
|
||
|
|
||
|
scope.interact = interact;
|
||
|
var ___default_28 = interact;
|
||
|
_$interact_28["default"] = ___default_28;
|
||
|
|
||
|
var _$index_27 = {};
|
||
|
"use strict";
|
||
|
|
||
|
function ___typeof_27(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_27 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_27 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_27(obj); }
|
||
|
|
||
|
Object.defineProperty(_$index_27, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_27.init = __init_27;
|
||
|
_$index_27["default"] = void 0;
|
||
|
|
||
|
var actions = ___interopRequireWildcard_27(_$index_5);
|
||
|
|
||
|
var _index2 = ___interopRequireDefault_27(_$index_7);
|
||
|
|
||
|
var __autoStart_27 = ___interopRequireWildcard_27(_$index_12);
|
||
|
|
||
|
var _interactablePreventDefault = ___interopRequireDefault_27(_$interactablePreventDefault_21);
|
||
|
|
||
|
var _index4 = ___interopRequireDefault_27(_$index_25);
|
||
|
|
||
|
var _index5 = ___interopRequireDefault_27(_$index_26);
|
||
|
|
||
|
var ___base_27 = ___interopRequireDefault_27(_$base_31);
|
||
|
|
||
|
var __modifiers_27 = ___interopRequireWildcard_27(_$index_32);
|
||
|
|
||
|
var __pointerEvents_27 = ___interopRequireWildcard_27(_$index_43);
|
||
|
|
||
|
var _index8 = ___interopRequireDefault_27(_$index_45);
|
||
|
|
||
|
var _interact = ___interopRequireWildcard_27(_$interact_28);
|
||
|
|
||
|
function ___interopRequireDefault_27(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_27() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_27 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_27(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_27(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_27(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function __init_27(window) {
|
||
|
_interact.scope.init(window);
|
||
|
|
||
|
_interact["default"].use(_interactablePreventDefault["default"]); // pointerEvents
|
||
|
|
||
|
|
||
|
_interact["default"].use(__pointerEvents_27); // inertia
|
||
|
|
||
|
|
||
|
_interact["default"].use(_index5["default"]); // snap, resize, etc.
|
||
|
|
||
|
|
||
|
_interact["default"].use(___base_27["default"]); // autoStart, hold
|
||
|
|
||
|
|
||
|
_interact["default"].use(__autoStart_27); // drag and drop, resize, gesture
|
||
|
|
||
|
|
||
|
_interact["default"].use(actions); // for backwrads compatibility
|
||
|
|
||
|
|
||
|
for (var type in __modifiers_27) {
|
||
|
var _modifiers = __modifiers_27[type],
|
||
|
_defaults = _modifiers._defaults,
|
||
|
_methods = _modifiers._methods;
|
||
|
_defaults._methods = _methods;
|
||
|
_interact.scope.defaults.perAction[type] = _defaults;
|
||
|
} // autoScroll
|
||
|
|
||
|
|
||
|
_interact["default"].use(_index2["default"]); // reflow
|
||
|
|
||
|
|
||
|
_interact["default"].use(_index8["default"]); // eslint-disable-next-line no-undef
|
||
|
|
||
|
|
||
|
if ("production" !== 'production') {
|
||
|
_interact["default"].use(_index4["default"]);
|
||
|
}
|
||
|
|
||
|
return _interact["default"];
|
||
|
} // eslint-disable-next-line no-undef
|
||
|
|
||
|
|
||
|
_interact["default"].version = "1.8.4";
|
||
|
var ___default_27 = _interact["default"];
|
||
|
_$index_27["default"] = ___default_27;
|
||
|
|
||
|
var _$index_46 = {};
|
||
|
/// <reference path="./types.d.ts" />
|
||
|
"use strict";
|
||
|
|
||
|
var _$grid_64 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$grid_64, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$grid_64["default"] = void 0;
|
||
|
|
||
|
function ___slicedToArray_64(arr, i) { return ___arrayWithHoles_64(arr) || ___iterableToArrayLimit_64(arr, i) || ___nonIterableRest_64(); }
|
||
|
|
||
|
function ___nonIterableRest_64() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
||
|
|
||
|
function ___iterableToArrayLimit_64(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
||
|
|
||
|
function ___arrayWithHoles_64(arr) { if (Array.isArray(arr)) return arr; }
|
||
|
|
||
|
function createGrid(grid) {
|
||
|
var coordFields = [['x', 'y'], ['left', 'top'], ['right', 'bottom'], ['width', 'height']].filter(function (_ref) {
|
||
|
var _ref2 = ___slicedToArray_64(_ref, 2),
|
||
|
xField = _ref2[0],
|
||
|
yField = _ref2[1];
|
||
|
|
||
|
return xField in grid || yField in grid;
|
||
|
});
|
||
|
|
||
|
var gridFunc = function gridFunc(x, y) {
|
||
|
var range = grid.range,
|
||
|
_grid$limits = grid.limits,
|
||
|
limits = _grid$limits === void 0 ? {
|
||
|
left: -Infinity,
|
||
|
right: Infinity,
|
||
|
top: -Infinity,
|
||
|
bottom: Infinity
|
||
|
} : _grid$limits,
|
||
|
_grid$offset = grid.offset,
|
||
|
offset = _grid$offset === void 0 ? {
|
||
|
x: 0,
|
||
|
y: 0
|
||
|
} : _grid$offset;
|
||
|
var result = {
|
||
|
range: range,
|
||
|
grid: grid,
|
||
|
x: null,
|
||
|
y: null
|
||
|
};
|
||
|
|
||
|
for (var _i2 = 0; _i2 < coordFields.length; _i2++) {
|
||
|
var _ref3;
|
||
|
|
||
|
_ref3 = coordFields[_i2];
|
||
|
|
||
|
var _ref4 = _ref3,
|
||
|
_ref5 = ___slicedToArray_64(_ref4, 2),
|
||
|
xField = _ref5[0],
|
||
|
yField = _ref5[1];
|
||
|
|
||
|
var gridx = Math.round((x - offset.x) / grid[xField]);
|
||
|
var gridy = Math.round((y - offset.y) / grid[yField]);
|
||
|
result[xField] = Math.max(limits.left, Math.min(limits.right, gridx * grid[xField] + offset.x));
|
||
|
result[yField] = Math.max(limits.top, Math.min(limits.bottom, gridy * grid[yField] + offset.y));
|
||
|
}
|
||
|
|
||
|
return result;
|
||
|
};
|
||
|
|
||
|
gridFunc.grid = grid;
|
||
|
gridFunc.coordFields = coordFields;
|
||
|
return gridFunc;
|
||
|
}
|
||
|
|
||
|
var ___default_64 = createGrid;
|
||
|
_$grid_64["default"] = ___default_64;
|
||
|
|
||
|
var _$index_65 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_65, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
Object.defineProperty(_$index_65, "grid", {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return _grid["default"];
|
||
|
}
|
||
|
});
|
||
|
|
||
|
var _grid = ___interopRequireDefault_65(_$grid_64);
|
||
|
|
||
|
function ___interopRequireDefault_65(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
var _$index_29 = {};
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_29, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
_$index_29.init = __init_29;
|
||
|
_$index_29["default"] = void 0;
|
||
|
|
||
|
var ___index_29 = ___interopRequireWildcard_29(_$index_27);
|
||
|
|
||
|
var __modifiers_29 = ___interopRequireWildcard_29(_$index_32);
|
||
|
|
||
|
_$index_46;
|
||
|
|
||
|
var ___extend_29 = ___interopRequireDefault_29(_$extend_53);
|
||
|
|
||
|
var snappers = ___interopRequireWildcard_29(_$index_65);
|
||
|
|
||
|
function ___interopRequireDefault_29(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
||
|
|
||
|
function ___getRequireWildcardCache_29() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_29 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_29(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_29(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_29(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___typeof_29(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_29 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_29 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_29(obj); }
|
||
|
|
||
|
if ((typeof window === "undefined" ? "undefined" : ___typeof_29(window)) === 'object' && !!window) {
|
||
|
__init_29(window);
|
||
|
}
|
||
|
|
||
|
function __init_29(win) {
|
||
|
(0, ___index_29.init)(win);
|
||
|
return ___index_29["default"].use({
|
||
|
id: 'interactjs',
|
||
|
install: function install() {
|
||
|
___index_29["default"].modifiers = (0, ___extend_29["default"])({}, __modifiers_29);
|
||
|
___index_29["default"].snappers = snappers;
|
||
|
___index_29["default"].createSnapGrid = ___index_29["default"].snappers.grid;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var ___default_29 = ___index_29["default"];
|
||
|
_$index_29["default"] = ___default_29;
|
||
|
|
||
|
var _$index_67 = { exports: {} };
|
||
|
"use strict";
|
||
|
|
||
|
Object.defineProperty(_$index_67.exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
var _exportNames = {};
|
||
|
_$index_67.exports["default"] = void 0;
|
||
|
|
||
|
var ___index_67 = ___interopRequireWildcard_67(_$index_29);
|
||
|
|
||
|
Object.keys(___index_67).forEach(function (key) {
|
||
|
if (key === "default" || key === "__esModule") return;
|
||
|
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||
|
Object.defineProperty(_$index_67.exports, key, {
|
||
|
enumerable: true,
|
||
|
get: function get() {
|
||
|
return ___index_67[key];
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
function ___getRequireWildcardCache_67() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); ___getRequireWildcardCache_67 = function _getRequireWildcardCache() { return cache; }; return cache; }
|
||
|
|
||
|
function ___interopRequireWildcard_67(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || ___typeof_67(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = ___getRequireWildcardCache_67(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||
|
|
||
|
function ___typeof_67(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { ___typeof_67 = function _typeof(obj) { return typeof obj; }; } else { ___typeof_67 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return ___typeof_67(obj); }
|
||
|
|
||
|
if (("object" === "undefined" ? "undefined" : ___typeof_67(_$index_67)) === 'object' && !!_$index_67) {
|
||
|
try {
|
||
|
_$index_67.exports = ___index_67["default"];
|
||
|
} catch (_unused) {}
|
||
|
}
|
||
|
|
||
|
___index_67["default"]["default"] = ___index_67["default"] // tslint:disable-line no-string-literal
|
||
|
;
|
||
|
___index_67["default"].init = ___index_67.init; // tslint:disable-line no-string-literal
|
||
|
|
||
|
var ___default_67 = ___index_67["default"];
|
||
|
_$index_67.exports["default"] = ___default_67;
|
||
|
|
||
|
_$index_67 = _$index_67.exports
|
||
|
return _$index_67;
|
||
|
|
||
|
});
|
||
|
|
||
|
|
||
|
//# sourceMappingURL=interact.js.map
|