Skip to content

Latest commit

 

History

History
483 lines (338 loc) · 16 KB

CHANGELOG.md

File metadata and controls

483 lines (338 loc) · 16 KB

v1.6.1

  • fixed resize without invert

v1.6.0

  • avoided accessing deprecated event.mozPressure (#751)
  • changed typings to use HTMLElement | SVGElement for event.target (#747)
  • added interacting arg to cursorChecker (#739)
  • added zIndex compare for sibling dropzones

v1.5.4

  • fixed broken modifiers (#746)

v1.5.3

  • fixed issues with old modifiers API

v1.5.2

  • fixed null restriction issue (#737)
  • improved typings for modifiers

v1.5.1

  • fixed typing issues (#738)

v1.5.0

  • added cursorChecker option for drag and resize (#736)
  • allowed restrictions larger than the target element (#735)
  • added interact.modifiers.restrictRect with pre-set elementRect (#735)

v1.4.14

  • fixed issue with string restriction values that don't resolve to a rect (#731)
  • changed plugin order so that pointer-events is installed before inertia

v1.4.13

  • fixed restrictSize min and max function restrictions

v1.4.12

  • fixed errors from calling interaction.stop() in start event (#725)

v1.4.11

  • fixed hold events (#730)

v1.4.10

  • fixed regression of preventing native drag behaviour (#729)

v1.4.9

  • fixed modifiers with inertia action-resume (#728)
  • fixed docs for snap grid limits (#717)

v1.4.8

  • fixed exports in generated typings (#727)

v1.4.7

  • fixed exports in generated typings (#726)

v1.4.6

  • fixed pointerEvents currentTarget

v1.4.5

  • @0xflotus fixed typos in docs (#724)
  • fixed error on iOS (#682)

v1.4.4

  • fixed an issue with interactions lingering on removed elements (#723)

v1.4.3

  • destroy only relevant interactions on interactable.unset()

v1.4.2

  • @jf-m fixed memory leaks and a bug on interactions stop PR #715
  • fixed dropzones in shadow DOM PR #722

v1.4.1

  • fixed scripts to run bundle optimizations and fix issues with browserify

v1.4.0

Most notablly:

  • interactable.reflow(action) to re-run modifiers, drop, etc PR #610
  • dropEvent.reject() PR #613
  • snapEdges modifier PR #620
  • per-action modifiers array PR #625
  • autoStart set cursor on both target and <html> PR #639
  • inertia: rename resume event to ${action}resume
  • interactable.reflow(action) to re-run modifiers, drop, etc PR #610
  • added options.listeners array/object for actions
  • snapEdges modifier PR #620
  • fixed iOS preventDefault passive event issue (issue #631)
  • added console.warn messages for common, easily detected issues
  • improved docs
  • various fixes

Full list of changes on Github.

v1.3.3

v1.3.2

  • fixed iOS preventDefault passive event issue (issue #561)

v1.3.1

  • allowed calling draggable.unset() during dragend and drop event listeners (issue #560)
  • allowed snap to be enabled with falsey targets value issue #562

v1.3.0

Most notably:

  • changed the npm and bower package names to "interactjs" (issue #399
  • major refactor with PR #231.
  • removed deprecated methods:
    • Interactable: squareResize, snap, restrict, inertia, autoScroll, accept
    • interact: enabbleDragging, enableResizing, enableGesturing, margin
  • new hold option for starting actions
  • new interaction.end() method (df963b0)
  • snap.offset self option (issue #204)
  • interaction.doMove() (3489ee1) (c5c658a)
  • snap grid limits (d549672)
  • improved iframe support (PR #313)
  • actionend event dx/dy are now 0, not the difference between start and end coords (cbfaf00)
  • replaced drag axis option with startAxis and lockAxis
  • added pointerEvents options:
  • action events set with action method options (eg. target.draggable({onmove}) are removed when that action is disabled with a method call (cca4e26)
  • context option now works for Element targets (8f64a7a)
  • added an action mouseButtons option and allowed actions only with the left mouse button by default (54ebdc3)
  • added repeating hold events (fe11a8e)
  • fixed Interactable.off (PR #477)
  • added restrictEdges, restrictSize and snapSize resize modifiers (PR #455)

Full list of changes on Github.

1.2.6

resize.preserveAspectRatio

interact(target).resizable({ preserveAspectRatio: true });

See PR #260.

Deprecated

  • interact.margin(number) - Use interact(target).resizable({ margin: number }); instead

Fixed

  • incorrect coordinates of the first movement of every action (5e5a040)
  • warning about deprecated "webkitForce" event property (0943290)
  • bugs with multiple concurrent interactions (ed53aee)
  • iPad 1, iOS 5.1.1 error "undefined is not a function" when autoScroll is set to true (PR #194)

Full list of changes on Github

1.2.5

Changed parameters to actionChecker and drop.checker

  • Added event as the first argument to actionCheckers. See commit 88dc583
  • Added dragEvent as the first parameter to drop.checker functions. See commits 16d74d4 and d0c4b69

Deprecated methods

interactable.accept - instead, use:

interact(target).dropzone({ accept: stringOrElement })

interactable.dropChecker - instead, use:

interact(target).dropzone({ checker: function () {} })

Added resize.margin

See taye#166 (comment)

Fixes

  • touch coords on Presto Opera Mobile - see commits 886e54c and 5a3a850
  • bug with multiple pointers - see commit 64882d3
  • accessing certain recently deprecated event properties in Blink - see commits e91fbc6 and 195cfe9
  • dropzones with accept: 'pointer' in scrolled pages on iOS6 and lower - see commit 0b94aac
  • setting styleCursor through Interactable options object - see PR #270
  • one missed interaction element on stop triggered - see PR #258
  • pointer dt on touchscreen devices - see PR #215
  • autoScroll with containers with fixed position - see commit 3635840
  • autoScroll for mobile - see #180
  • preventDefault - see commits 1984c80 and 6913959
  • occasional error - see issue #183
  • Interactable#unset - see PR #178
  • coords of start event after manual start - see commit fec73b2
  • bug with touch and selector interactables - see commit d8df3de
  • touch doubletap bug - see 273f461
  • event x0/y0 with origin - see PR #167

1.2.4

Resizing from all edges

With the new resize edges API, you can resize from the top and left edges of an element in addition to the bottom and right. It also allows you to specify CSS selectors, regions or elements as the resize handles.

Better dropChecker arguments

The arguments to dropChecker functions have been expanded to include the value of the default drop check and some other useful objects. See PR 161

Improved preventDefault('auto')

If manuanStart is true, default prevention will happen only while interacting. Related to Issue 138.

Fixed inaccurate snapping

This removes a small inaccuracy when snapping with one or more relativeOffsets.

Fixed bugs with multiple pointers

1.2.3

ShadowDOM

Basic support for ShadowDOM was implemented in PR 143

Fixed some issues with events

Fixed Interactable#on({ type: listener }). b8a5e89

Added a double property to tap events. tap.double === true if the tap will be followed by a doubletap event. See issue 155.

Fixed issue 150.

1.2.2

Fixed DOM event removal

See issue 149.

1.2.1

Fixed Gestures

Gestures were completely broken in v1.2.0. They're fixed now.

Restriction

Fixed restriction to an element when the element doesn't have a rect (display: none, not in DOM, etc.). Issue 144.

1.2.0

Multiple interactions

Multiple interactions have been enabled by default. For example:

interact('.drag-element').draggable({
    enabled: true,
 // max          : Infinity,  // default
 // maxPerElement: 1,         // default
});

will allow multiple .drag-element to be dragged simultaneously without having to explicitly set max: integerGreaterThan1. The default maxPerElement value is still 1 so only one drag would be able to happen on each .drag-element unless the maxPerElement is changed.

If you don't want multiple interactions, call interact.maxInteractions(1).

Snapping

Unified snap modes

Snap modes have been unified. A targets array now holds all the snap objects and functions for snapping. interact.createSnapGrid(gridObject) returns a function that snaps to the dimensions of the given grid.

relativePoints and origin

interact(target).draggable({
  snap: {
    targets: [ {x: 300, y: 300} ],
    relativePoints: [
      { x: 0, y: 0 },  // snap relative to the top left of the element
      { x: 1, y: 1 },  // and also to the bottom right
    ],  

    // offset the snap target coordinates
    // can be an object with x/y or 'startCoords'
    offset: { x: 50, y: 50 }
  }
});

snap function interaction arg

The current Interaction is now passed as the third parameter to snap functions.

interact(target).draggable({
  snap: {
    targets: [ function (x, y, interaction) {
      if (!interaction.dropTarget) {
        return { x: 0, y: 0 };
      }
    } ]
  });

snap.relativePoints and offset

The snap.relativePoints array succeeds the snap.elementOriign object. But backwards compatibility with elementOrigin and the old snapping interface is maintained.

snap.offset lets you offset all snap target coords.

See this PR for more info.

slight change to snap range calculation

Snapping now occurs if the distance to the snap target is less than or equal to the target's range.

Inertia

inertia.zeroResumeDelta is now true by default.

Per-action settings

Snap, restrict, inertia, autoScroll can be different for drag, restrict and gesture. See PR 115.

Methods for these settings on the interact object (interact.snap(), interact.autoScroll(), etc.) have been removed.

Space-separated string and array event list and eventType:listener object

function logEventType (event) {
  console.log(event.type, event.target);
}

interact(target).on('down tap dragstart gestureend', logEventType);

interact(target).on(['move', 'resizestart'], logEventType);

interact(target).on({
  dragmove: logEvent,
  keydown : logEvent
});

Interactable actionChecker

The expected return value from an action checker has changed from a string to an object. The object should have a name and can also have an axis property. For example, to resize horizontally:

interact(target).resizeable(true)
  .actionChecker(function (pointer, defaultAction, interactable, element) {
    return {
      name: 'resize',
      axis: 'x',
    };
  });

Plain drop event objects

All drop-related events are now plain objects. The related drag events are referenced in their dragEvent property.

Interactable.preventDefault('always' || 'never' || 'auto')

The method takes one of the above string values. It will still accept true/false parameters which are changed to 'always'/'never'.

1.1.3

Better Events

Adding a function as a listener for an InteractEvent or pointerEvent type multiple times will cause that function to be fired multiple times for the event. Previously, adding the event type + function combination again had no effect.

Added new event types down, move, up, cancel, hold.

Tap and doubletap with multiple pointers was improved.

Added a workaround for IE8's unusual dblclick event sequence so that doubletap events are fired.

Fixed a tapping issue on Windows Phone/RT.

Fixed a bug that caused the origins of all elements with tap listeners to be subtracted successively as a tap event propagated.

Fixed delegated events when different contexts have been used.

iFrames

Added basic support for sharing one instance of interact.js between multiplie windows/frames. There are still some issues.