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.
176 lines
5.0 KiB
176 lines
5.0 KiB
import { warnOnce } from "../utils/index.js";
|
|
import * as is from "../utils/is.js";
|
|
|
|
function install(scope) {
|
|
const {
|
|
/** @lends Interactable */
|
|
Interactable // tslint:disable-line no-shadowed-variable
|
|
|
|
} = scope;
|
|
|
|
Interactable.prototype.getAction = function getAction(pointer, event, interaction, element) {
|
|
const 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 = 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 = 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) {
|
|
const rect = interactable.getRect(element);
|
|
const buttons = event.buttons || {
|
|
0: 1,
|
|
1: 4,
|
|
3: 8,
|
|
4: 16
|
|
}[event.button];
|
|
const arg = {
|
|
action: null,
|
|
interactable,
|
|
interaction,
|
|
element,
|
|
rect,
|
|
buttons
|
|
};
|
|
scope.fire('auto-start:check', arg);
|
|
return arg.action;
|
|
}
|
|
|
|
function styleCursor(newValue) {
|
|
if (is.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.func(checker)) {
|
|
this.options.actionChecker = checker;
|
|
return this;
|
|
}
|
|
|
|
if (checker === null) {
|
|
delete this.options.actionChecker;
|
|
return this;
|
|
}
|
|
|
|
return this.options.actionChecker;
|
|
}
|
|
|
|
export default {
|
|
id: 'auto-start/interactableMethods',
|
|
install
|
|
};
|
|
//# sourceMappingURL=InteractableMethods.js.map
|