ember-sortable 4.0.3 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +13 -7
  2. package/addon-main.js +2 -0
  3. package/dist/_app_/modifiers/sortable-group.js +1 -0
  4. package/dist/_app_/modifiers/sortable-handle.js +1 -0
  5. package/dist/_app_/modifiers/sortable-item.js +1 -0
  6. package/dist/_app_/services/ember-sortable-internal-state.js +1 -0
  7. package/dist/_rollupPluginBabelHelpers-7ae2993d.js +63 -0
  8. package/dist/_rollupPluginBabelHelpers-7ae2993d.js.map +1 -0
  9. package/{addon → dist}/modifiers/sortable-group.js +41 -104
  10. package/dist/modifiers/sortable-group.js.map +1 -0
  11. package/{addon → dist}/modifiers/sortable-handle.js +9 -3
  12. package/dist/modifiers/sortable-handle.js.map +1 -0
  13. package/{addon → dist}/modifiers/sortable-item.js +61 -147
  14. package/dist/modifiers/sortable-item.js.map +1 -0
  15. package/{addon/services/ember-sortable.js → dist/services/ember-sortable-internal-state.js} +11 -21
  16. package/dist/services/ember-sortable-internal-state.js.map +1 -0
  17. package/{addon → dist}/system/scroll-container.js +8 -7
  18. package/dist/system/scroll-container.js.map +1 -0
  19. package/{addon → dist}/system/scroll-parent.js +9 -7
  20. package/dist/system/scroll-parent.js.map +1 -0
  21. package/{addon-test-support → dist/test-support}/helpers/drag.js +13 -21
  22. package/dist/test-support/helpers/drag.js.map +1 -0
  23. package/{addon-test-support → dist/test-support}/helpers/reorder.js +11 -6
  24. package/dist/test-support/helpers/reorder.js.map +1 -0
  25. package/dist/test-support/index.js +5 -0
  26. package/dist/test-support/index.js.map +1 -0
  27. package/dist/test-support/utils/keyboard.js +33 -0
  28. package/dist/test-support/utils/keyboard.js.map +1 -0
  29. package/{addon-test-support → dist/test-support}/utils/offset.js +5 -3
  30. package/dist/test-support/utils/offset.js.map +1 -0
  31. package/dist/utils/constant.js +12 -0
  32. package/dist/utils/constant.js.map +1 -0
  33. package/{addon → dist}/utils/coordinate.js +5 -4
  34. package/dist/utils/coordinate.js.map +1 -0
  35. package/{addon → dist}/utils/css-calculation.js +5 -3
  36. package/dist/utils/css-calculation.js.map +1 -0
  37. package/{addon → dist}/utils/defaults.js +24 -12
  38. package/dist/utils/defaults.js.map +1 -0
  39. package/dist/utils/keyboard.js +33 -0
  40. package/dist/utils/keyboard.js.map +1 -0
  41. package/package.json +56 -58
  42. package/.huskyrc +0 -5
  43. package/CHANGELOG.md +0 -755
  44. package/CODE_OF_CONDUCT.md +0 -6
  45. package/MIGRATION_GUIDE_MODIFIERS.md +0 -95
  46. package/MIGRATION_GUIDE_V2.md +0 -120
  47. package/Makefile +0 -24
  48. package/RELEASE.md +0 -60
  49. package/V2_MIGRATION_RFC.md +0 -1100
  50. package/addon/utils/constant.js +0 -9
  51. package/addon/utils/keyboard.js +0 -32
  52. package/addon-test-support/helpers/index.js +0 -4
  53. package/addon-test-support/utils/keyboard.js +0 -32
  54. package/app/modifiers/sortable-group.js +0 -1
  55. package/app/modifiers/sortable-handle.js +0 -1
  56. package/app/modifiers/sortable-item.js +0 -1
  57. package/app/services/ember-sortable-internal-state.js +0 -1
  58. package/config/environment.js +0 -5
  59. package/demo.gif +0 -0
  60. package/index.js +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortable-item.js","sources":["../../src/modifiers/sortable-item.js"],"sourcesContent":["/* eslint-disable ember/no-computed-properties-in-native-classes */\nimport Modifier from 'ember-modifier';\nimport { Promise, defer } from 'rsvp';\nimport { action, set } from '@ember/object';\nimport { DRAG_ACTIONS, ELEMENT_CLICK_ACTION, END_ACTIONS } from '../utils/constant';\nimport { run, throttle, bind, scheduleOnce, later } from '@ember/runloop';\nimport { DEBUG } from '@glimmer/env';\nimport { getX, getY } from '../utils/coordinate';\nimport ScrollContainer from '../system/scroll-container';\nimport scrollParent from '../system/scroll-parent';\nimport { getBorderSpacing } from '../utils/css-calculation';\nimport { buildWaiter } from '@ember/test-waiters';\nimport { inject as service } from '@ember/service';\nimport { assert, deprecate } from '@ember/debug';\nimport { registerDestructor } from '@ember/destroyable';\nimport { isTesting } from '@embroider/macros';\n\nconst sortableItemWaiter = buildWaiter('sortable-item-waiter');\n\n/**\n * Modifier to mark an element as an item to be reordered\n *\n * @param {Object} model The model that this item will represent\n * @param {boolean} [disabled=false] Set to true to make this item not sortable\n * @param {Function} [onDragStart] An optional callback for when dragging starts.\n * @param {Function} [onDragStop] An optional callback for when dragging stops.\n *\n * @module drag-drop/draggable-group\n * @example\n * <ol {{sortable-group onChange=this.update a11yAnnouncementConfig=this.myA11yConfig}}>\n * {{#each model.items as |item|}}\n * <li {{sortable-item model=item}}>\n * {{item.name}}\n * <span class=\"handle\" {{sortable-handle}}>&varr;</span>\n * </li>\n * {{/each}}\n * </ol>\n */\nexport default class SortableItemModifier extends Modifier {\n className = 'sortable-item';\n\n @service('ember-sortable-internal-state') sortableService;\n\n _sortableGroup;\n /**\n * The SortableGroupModifier this item belongs to. Assigned by the group\n * when it inspects all the items in the list\n *\n * @type SortableGroupModifier\n */\n get sortableGroup() {\n if (this._sortableGroup === undefined) {\n this._sortableGroup = this.sortableService.fetchGroup(this.groupName);\n assert(\n `No sortable group named ${this.groupName} found. Please check that the groups and items have the same groupName`,\n this._sortableGroup !== undefined\n );\n }\n return this._sortableGroup.groupModifier;\n }\n\n get model() {\n return this.named.model;\n }\n\n get direction() {\n return this.sortableGroup?.direction;\n }\n\n get groupDisabled() {\n return this.sortableGroup?.disabled;\n }\n\n /**\n * This is the group name used to keep groups separate if there are more than one on the screen at a time.\n * If no group is assigned a default is used\n *\n * @default \"_EmberSortableGroup\"\n * @returns {*|string}\n */\n get groupName() {\n return this.named.groupName || '_EmberSortableGroup';\n }\n\n /**\n The frequency with which the group is informed\n that an update is required.\n @property updateInterval\n @type Number\n @default 125\n */\n get updateInterval() {\n return this.named.updateInterval || 125;\n }\n\n /**\n Additional spacing between active item and the rest of the elements.\n @property spacing\n @type Number\n @default 0[px]\n */\n get spacing() {\n return this.named.spacing || 0;\n }\n\n /**\n Removes the ability for the current item to be sorted\n @property disabled\n @type boolean\n @default false\n */\n get isDisabled() {\n deprecate(\n '\"isDraggingDisabled\" is deprecated. Please migrate to \"disabled\" named argument',\n !('isDraggingDisabled' in this.named),\n {\n id: 'ember-sortable.is-dragging-disabled',\n url: 'https://github.com/adopted-ember-addons/ember-sortable#readme',\n until: '3.0.0',\n for: 'ember-sortable',\n since: {\n available: '2.2.6',\n enabled: '2.2.6',\n },\n }\n );\n\n return this.groupDisabled || this.named.disabled || this.named.isDraggingDisabled || false;\n }\n\n /**\n Selector for the element to use as handle.\n 1. By default, we will hook it the yielded sortable-handle.\n 2. If you don't use the sortable-handle, the entire element will be used as the handle.\n 3. In very rare situations, if you want to use a handle, but not the sortable-handle,\n you can override this class with your own handle's selector. This behavior will be\n synonymous with v1\n @property handle\n @type String\n @default \"[data-sortable-handle]\"\n */\n get handle() {\n return this.named.handle || '[data-sortable-handle]';\n }\n\n handleElement;\n\n /**\n * Tolerance, in pixels, for when sorting should start.\n * If specified, sorting will not start until after mouse\n * is dragged beyond distance. Can be used to allow for clicks\n * on elements within a handle.\n *\n * @property distance\n * @type Integer\n * @default 0\n */\n get distance() {\n return this.named.distance || 0;\n }\n\n /**\n * True if the item is currently being dragged.\n *\n * @property isDragging\n * @type boolean\n * @default false\n * @protected\n */\n _isDragging = false;\n get isDragging() {\n return this._isDragging;\n }\n set isDragging(value) {\n if (value) {\n this.element.classList.add('is-dragging');\n } else {\n this.element.classList.remove('is-dragging');\n }\n this._isDragging = value;\n }\n\n /**\n Action that fires when the item starts being dragged.\n @property onDragStart\n @type Function\n @param {Object} item model\n @default null\n */\n get onDragStart() {\n return this.named.onDragStart || ((item) => item);\n }\n\n /**\n Action that fires when the item stops being dragged.\n @property onDragStop\n @type Function\n @param {Object} item model\n @default null\n */\n get onDragStop() {\n return this.named.onDragStop || ((item) => item);\n }\n\n /**\n True if the item is currently dropping.\n @property isDropping\n @type Boolean\n @default false\n */\n _isDropping = false;\n get isDropping() {\n return this._isDropping;\n }\n set isDropping(value) {\n if (value) {\n this.element.classList.add('is-dropping');\n } else {\n this.element.classList.remove('is-dropping');\n }\n this._isDropping = value;\n }\n\n /**\n True if the item was dropped during the interaction\n @property wasDropped\n @type Boolean\n @default false\n */\n wasDropped = false;\n\n /**\n @property isBusy\n @type Boolean\n */\n get isBusy() {\n return this.isDragging || this.isDropping;\n }\n\n /**\n @property disableCheckScrollBounds\n */\n get disableCheckScrollBounds() {\n return this.named.disableCheckScrollBounds != undefined ? this.named.disableCheckScrollBounds : isTesting();\n }\n\n /**\n @method mouseDown\n */\n @action\n mouseDown(event) {\n if (event.which !== 1) {\n return;\n }\n if (event.ctrlKey) {\n return;\n }\n\n this._primeDrag(event);\n }\n\n @action\n keyDown(event) {\n if (this.isDisabled) {\n return;\n }\n\n this.setupHandleElement();\n\n // If the event is coming from within the item, we do not want to activate keyboard reorder mode.\n if (event.target === this.handleElement || event.target === this.element) {\n this.sortableGroup.activateKeyDown(this);\n } else {\n this.sortableGroup.deactivateKeyDown();\n }\n }\n\n /**\n @method touchStart\n */\n @action\n touchStart(event) {\n this._primeDrag(event);\n }\n\n /**\n @method freeze\n */\n freeze() {\n let el = this.element;\n if (!el) {\n return;\n }\n\n el.style.transition = 'none';\n }\n\n /**\n @method reset\n */\n reset() {\n let el = this.element;\n if (!el) {\n return;\n }\n\n delete this._y;\n delete this._x;\n\n el.style.transform = '';\n }\n\n /**\n @method thaw\n */\n thaw() {\n let el = this.element;\n if (!el) {\n return;\n }\n\n el.style.transition = '';\n }\n\n /**\n * Setup event listeners for drag and drop\n *\n * @method _primeDrag\n * @param {Event} startEvent JS Event object\n * @private\n */\n _primeDrag(startEvent) {\n if (this.isDisabled) {\n return;\n }\n\n if (this.handleElement && !startEvent.target.closest(this.handle)) {\n return;\n }\n\n startEvent.preventDefault();\n startEvent.stopPropagation();\n\n this._prepareDragListener = bind(this, this._prepareDrag, startEvent);\n\n DRAG_ACTIONS.forEach((event) => window.addEventListener(event, this._prepareDragListener));\n\n this._cancelStartDragListener = () => {\n DRAG_ACTIONS.forEach((event) => window.removeEventListener(event, this._prepareDragListener));\n };\n\n const selfCancellingCallback = () => {\n END_ACTIONS.forEach((event) => window.removeEventListener(event, selfCancellingCallback));\n this._cancelStartDragListener();\n };\n\n END_ACTIONS.forEach((event) => window.addEventListener(event, selfCancellingCallback));\n }\n\n /**\n * Prepares for the drag event\n *\n * @method _prepareDrag\n * @param {Event} startEvent JS Event object\n * @param {Event} event JS Event object\n * @private\n */\n _prepareDrag(startEvent, event) {\n let distance = this.distance;\n let dx = Math.abs(getX(startEvent) - getX(event));\n let dy = Math.abs(getY(startEvent) - getY(event));\n\n if (distance <= dx || distance <= dy) {\n DRAG_ACTIONS.forEach((event) => window.removeEventListener(event, this._prepareDragListener));\n this._startDrag(startEvent);\n }\n }\n\n /**\n * Start dragging & setup more event listeners\n *\n * @method _startDrag\n * @param {Event} event JS Event object\n * @private\n */\n _startDrag(event) {\n if (this.isBusy) {\n return;\n }\n\n let drag = this._makeDragHandler(event);\n let dragThrottled = (ev) => throttle(this, drag, ev, 16, false);\n\n let drop = () => {\n DRAG_ACTIONS.forEach((event) => window.removeEventListener(event, dragThrottled));\n END_ACTIONS.forEach((event) => window.removeEventListener(event, drop));\n\n run(() => {\n this._drop();\n });\n };\n\n DRAG_ACTIONS.forEach((event) => window.addEventListener(event, dragThrottled));\n END_ACTIONS.forEach((event) => window.addEventListener(event, drop));\n\n this.sortableGroup.prepare();\n set(this, 'isDragging', true);\n this.onDragStart(this.model);\n this._scrollOnEdges(drag);\n }\n\n /**\n The maximum scroll speed when dragging element.\n @property maxScrollSpeed\n @default 20\n */\n maxScrollSpeed = 20;\n\n _scrollOnEdges(drag) {\n let groupDirection = this.direction;\n let element = this.element;\n let scrollContainer = new ScrollContainer(scrollParent(element));\n let itemContainer = {\n width: parseInt(getComputedStyle(element).width, 10),\n get height() {\n return parseInt(getComputedStyle(element).height, 10);\n },\n get left() {\n return element.getBoundingClientRect().left;\n },\n get right() {\n return this.left + this.width;\n },\n get top() {\n return element.getBoundingClientRect().top;\n },\n get bottom() {\n return this.top + this.height;\n },\n };\n\n let leadingEdgeKey, trailingEdgeKey, scrollKey, pageKey;\n if (groupDirection === 'x') {\n leadingEdgeKey = 'left';\n trailingEdgeKey = 'right';\n scrollKey = 'scrollLeft';\n pageKey = 'pageX';\n } else {\n leadingEdgeKey = 'top';\n trailingEdgeKey = 'bottom';\n scrollKey = 'scrollTop';\n pageKey = 'pageY';\n }\n\n let createFakeEvent = () => {\n if (this._pageX == null && this._pageY == null) {\n return;\n }\n return {\n pageX: this._pageX,\n pageY: this._pageY,\n clientX: this._pageX,\n clientY: this._pageY,\n };\n };\n\n // Set a trigger padding that will start scrolling\n // the box when the item reaches within padding pixels\n // of the edge of the scroll container.\n let checkScrollBounds = () => {\n let leadingEdge = itemContainer[leadingEdgeKey];\n let trailingEdge = itemContainer[trailingEdgeKey];\n let scroll = scrollContainer[scrollKey]();\n\n let delta = 0;\n if (trailingEdge >= scrollContainer[trailingEdgeKey]) {\n delta = trailingEdge - scrollContainer[trailingEdgeKey];\n } else if (leadingEdge <= scrollContainer[leadingEdgeKey]) {\n delta = leadingEdge - scrollContainer[leadingEdgeKey];\n }\n\n if (delta !== 0) {\n let speed = this.maxScrollSpeed;\n delta = Math.min(Math.max(delta, -1 * speed), speed);\n\n delta = scrollContainer[scrollKey](scroll + delta) - scroll;\n\n let event = createFakeEvent();\n if (event) {\n if (scrollContainer.isWindow) {\n event[pageKey] += delta;\n }\n run(() => drag(event));\n }\n }\n if (this.isDragging) {\n requestAnimationFrame(checkScrollBounds);\n }\n };\n\n if (!this.disableCheckScrollBounds) {\n requestAnimationFrame(checkScrollBounds);\n }\n }\n\n /**\n @method _makeDragHandler\n @param {Event} startEvent\n @return {Function}\n @private\n */\n _makeDragHandler(startEvent) {\n const groupDirection = this.direction;\n let dragOrigin;\n let elementOrigin;\n let scrollOrigin;\n let parentElement = this.element.parentNode;\n\n if (groupDirection === 'x') {\n dragOrigin = getX(startEvent);\n elementOrigin = this.x;\n scrollOrigin = parentElement.getBoundingClientRect().left;\n\n return (event) => {\n this._pageX = getX(event);\n let dx = this._pageX - dragOrigin;\n let scrollX = parentElement.getBoundingClientRect().left;\n let x = elementOrigin + dx + (scrollOrigin - scrollX);\n\n this._drag(x);\n };\n }\n\n if (groupDirection === 'y') {\n dragOrigin = getY(startEvent);\n elementOrigin = this.y;\n scrollOrigin = parentElement.getBoundingClientRect().top;\n\n return (event) => {\n this._pageY = getY(event);\n let dy = this._pageY - dragOrigin;\n let scrollY = parentElement.getBoundingClientRect().top;\n let y = elementOrigin + dy + (scrollOrigin - scrollY);\n\n this._drag(y);\n };\n }\n }\n\n /**\n @method _scheduleApplyPosition\n @private\n */\n _scheduleApplyPosition() {\n scheduleOnce('render', this, '_applyPosition');\n }\n\n /**\n @method _applyPosition\n @private\n */\n _applyPosition() {\n if (!this.element || !this.element) {\n return;\n }\n\n const groupDirection = this.direction;\n\n if (groupDirection === 'x') {\n let x = this.x;\n let dx = x - this.element.offsetLeft + parseFloat(getComputedStyle(this.element).marginLeft);\n\n this.element.style.transform = `translateX(${dx}px)`;\n }\n if (groupDirection === 'y') {\n let y = this.y;\n let dy = y - this.element.offsetTop;\n\n this.element.style.transform = `translateY(${dy}px)`;\n }\n }\n\n /**\n @method _drag\n @private\n */\n _drag(dimension) {\n if (!this.isDragging) {\n return;\n }\n let updateInterval = this.updateInterval;\n const groupDirection = this.direction;\n\n if (groupDirection === 'x') {\n this.x = dimension;\n }\n if (groupDirection === 'y') {\n this.y = dimension;\n }\n\n throttle(this, this.sortableGroup.update, updateInterval);\n }\n\n /**\n @method _drop\n @private\n */\n _drop() {\n if (!this.element) {\n return;\n }\n\n let transitionPromise = this._waitForTransition();\n\n this._preventClick();\n\n set(this, 'isDragging', false);\n set(this, 'isDropping', true);\n\n this.sortableGroup.update();\n transitionPromise.then(() => this._complete());\n }\n\n /**\n @method _preventClick\n @private\n */\n _preventClick() {\n const selfCancellingCallback = (event) => {\n this.element.removeEventListener(ELEMENT_CLICK_ACTION, selfCancellingCallback);\n this._preventClickHandler(event);\n };\n\n this.element.addEventListener(ELEMENT_CLICK_ACTION, selfCancellingCallback);\n }\n\n /**\n @method _preventClickHandler\n @private\n */\n _preventClickHandler(e) {\n e.stopPropagation();\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n\n /**\n @method _waitForTransition\n @private\n @return Promise\n */\n _waitForTransition() {\n let waiterToken;\n\n if (DEBUG) {\n waiterToken = sortableItemWaiter.beginAsync();\n }\n\n let transitionPromise;\n\n if (this.isAnimated) {\n const deferred = defer();\n this.element.addEventListener('transitionend', deferred.resolve);\n transitionPromise = deferred.promise.finally(() => {\n this.element.removeEventListener('transitionend', deferred.resolve);\n });\n } else {\n const duration = this.isAnimated ? this.transitionDuration : 200;\n transitionPromise = new Promise((resolve) => later(resolve, duration));\n }\n\n if (DEBUG) {\n transitionPromise = transitionPromise.finally(() => {\n sortableItemWaiter.endAsync(waiterToken);\n });\n }\n\n return transitionPromise;\n }\n\n /**\n @method _complete\n @private\n */\n _complete() {\n this.onDragStop(this.model);\n set(this, 'isDropping', false);\n set(this, 'wasDropped', true);\n this.sortableGroup.commit();\n }\n\n get isAnimated() {\n if (!this.element) {\n return undefined;\n }\n\n let el = this.element;\n let transitionProperty = getComputedStyle(el).transitionProperty;\n\n return /all|transform/.test(transitionProperty) && this.transitionDuration > 0;\n }\n\n /**\n The current transition duration in milliseconds.\n @property transitionDuration\n @type Number\n */\n get transitionDuration() {\n let el = this.element;\n let rule = getComputedStyle(el).transitionDuration;\n let match = rule.match(/([\\d.]+)([ms]*)/);\n\n if (match) {\n let value = parseFloat(match[1]);\n let unit = match[2];\n\n if (unit === 's') {\n value = value * 1000;\n }\n\n return value;\n }\n\n return 0;\n }\n\n /**\n Horizontal position of the item.\n @property x\n @type Number\n */\n get x() {\n if (this._x === undefined) {\n let marginLeft = parseFloat(getComputedStyle(this.element).marginLeft);\n this._x = this.element.scrollLeft + this.element.offsetLeft - marginLeft;\n }\n\n return this._x;\n }\n set x(value) {\n if (value !== this._x) {\n this._x = value;\n this._scheduleApplyPosition();\n }\n }\n\n /**\n Vertical position of the item relative to its offset parent.\n @property y\n @type Number\n */\n get y() {\n if (this._y === undefined) {\n this._y = this.element.offsetTop;\n }\n\n return this._y;\n }\n\n set y(value) {\n if (value !== this._y) {\n this._y = value;\n this._scheduleApplyPosition();\n }\n }\n\n /**\n Width of the item.\n @property height\n @type Number\n */\n get width() {\n let el = this.element;\n let width = el.offsetWidth;\n let elStyles = getComputedStyle(el);\n\n width += parseInt(elStyles.marginLeft) + parseInt(elStyles.marginRight); // equal to jQuery.outerWidth(true)\n\n width += getBorderSpacing(el).horizontal;\n\n return width;\n }\n\n /**\n Height of the item including margins.\n @property height\n @type Number\n */\n get height() {\n let el = this.element;\n let height = el.offsetHeight;\n\n let marginBottom = parseFloat(getComputedStyle(el).marginBottom);\n height += marginBottom;\n\n height += getBorderSpacing(el).vertical;\n\n return height;\n }\n\n addEventListener() {\n this.element.addEventListener('keydown', this.keyDown);\n this.element.addEventListener('mousedown', this.mouseDown);\n this.element.addEventListener('touchstart', this.touchStart);\n this.listenersRegistered = true;\n }\n\n removeEventListener() {\n this.element.removeEventListener('keydown', this.keyDown);\n this.element.removeEventListener('mousedown', this.mouseDown);\n this.element.removeEventListener('touchstart', this.touchStart);\n this.listenersRegistered = false;\n }\n\n setupHandleElement() {\n this.handleElement = this.element.querySelector(this.handle);\n\n if (this.handleElement) {\n this.handleElement.style['touch-action'] = 'none';\n } else {\n this.element.style['touch-action'] = 'none';\n }\n }\n\n element;\n didSetup = false;\n\n /**\n * tracks if event listeners have been registered. Registering event handlers is unnecessary if item is disabled.\n */\n listenersRegistered = false;\n\n constructor(owner, args) {\n super(owner, args);\n registerDestructor(this, cleanup);\n }\n\n modify(element, _positional, named) {\n this.element = element;\n this.named = named;\n\n this.element.classList.add(this.className);\n\n // Instead of using `event.preventDefault()` in the 'primeDrag' event,\n // (doesn't work in Chrome 56), we set touch-action: none as a workaround.\n this.setupHandleElement();\n\n if (!this.didSetup) {\n this.element.dataset.sortableItem = true;\n this.sortableService.registerItem(this.groupName, this);\n this.didSetup = true;\n }\n\n if (this.named.disabled && this.listenersRegistered) {\n this.removeEventListener();\n } else if (!this.named.disabled && !this.listenersRegistered) {\n this.addEventListener();\n }\n }\n}\n\n/**\n *\n * @param {SortableItemModifier} instance\n */\nfunction cleanup(instance) {\n instance.removeEventListener();\n instance.sortableService.deregisterItem(instance.groupName, instance);\n}\n"],"names":["sortableItemWaiter","buildWaiter","SortableItemModifier","service","Modifier","sortableGroup","_sortableGroup","undefined","sortableService","fetchGroup","groupName","assert","groupModifier","model","named","direction","groupDisabled","disabled","updateInterval","spacing","isDisabled","deprecate","id","url","until","for","since","available","enabled","isDraggingDisabled","handle","distance","isDragging","_isDragging","value","element","classList","add","remove","onDragStart","item","onDragStop","isDropping","_isDropping","isBusy","disableCheckScrollBounds","isTesting","mouseDown","event","which","ctrlKey","_primeDrag","keyDown","setupHandleElement","target","handleElement","activateKeyDown","deactivateKeyDown","touchStart","freeze","el","style","transition","reset","_y","_x","transform","thaw","startEvent","closest","preventDefault","stopPropagation","_prepareDragListener","bind","_prepareDrag","DRAG_ACTIONS","forEach","window","addEventListener","_cancelStartDragListener","removeEventListener","selfCancellingCallback","END_ACTIONS","dx","Math","abs","getX","dy","getY","_startDrag","drag","_makeDragHandler","dragThrottled","ev","throttle","drop","run","_drop","prepare","set","_scrollOnEdges","groupDirection","scrollContainer","ScrollContainer","scrollParent","itemContainer","width","parseInt","getComputedStyle","height","left","getBoundingClientRect","right","top","bottom","leadingEdgeKey","trailingEdgeKey","scrollKey","pageKey","createFakeEvent","_pageX","_pageY","pageX","pageY","clientX","clientY","checkScrollBounds","leadingEdge","trailingEdge","scroll","delta","speed","maxScrollSpeed","min","max","isWindow","requestAnimationFrame","dragOrigin","elementOrigin","scrollOrigin","parentElement","parentNode","x","scrollX","_drag","y","scrollY","_scheduleApplyPosition","scheduleOnce","_applyPosition","offsetLeft","parseFloat","marginLeft","offsetTop","dimension","update","transitionPromise","_waitForTransition","_preventClick","then","_complete","ELEMENT_CLICK_ACTION","_preventClickHandler","e","stopImmediatePropagation","waiterToken","DEBUG","beginAsync","isAnimated","deferred","defer","resolve","promise","finally","duration","transitionDuration","Promise","later","endAsync","commit","transitionProperty","test","rule","match","unit","scrollLeft","offsetWidth","elStyles","marginRight","getBorderSpacing","horizontal","offsetHeight","marginBottom","vertical","listenersRegistered","querySelector","constructor","owner","args","registerDestructor","cleanup","modify","_positional","className","didSetup","dataset","sortableItem","registerItem","action","instance","deregisterItem"],"mappings":"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"}
@@ -1,19 +1,11 @@
1
+ import { a as _defineProperty } from '../_rollupPluginBabelHelpers-7ae2993d.js';
1
2
  import Service from '@ember/service';
2
3
 
3
- export default class EmberSortableService extends Service {
4
- /**
5
- * Internal State for any groups currently in DOM
6
- *
7
- * {
8
- * groupName: {
9
- * groupModifier: object,
10
- * items: []
11
- * }
12
- * }
13
- * @type {{}}
14
- */
15
- groups = {};
16
-
4
+ class EmberSortableService extends Service {
5
+ constructor(...args) {
6
+ super(...args);
7
+ _defineProperty(this, "groups", {});
8
+ }
17
9
  /**
18
10
  * Register a new group with the service
19
11
  *
@@ -24,7 +16,7 @@ export default class EmberSortableService extends Service {
24
16
  if (this.groups[groupName] === undefined) {
25
17
  this.groups[groupName] = {
26
18
  groupModifier: groupModifier,
27
- items: [],
19
+ items: []
28
20
  };
29
21
  } else {
30
22
  this.groups[groupName].groupModifier = groupModifier;
@@ -50,25 +42,21 @@ export default class EmberSortableService extends Service {
50
42
  registerItem(groupName, item) {
51
43
  let groupDef = this.fetchGroup(groupName);
52
44
  let items = groupDef.items;
53
-
54
45
  if (items.indexOf(item) === -1) {
55
46
  items = [...items, item];
56
47
  }
57
-
58
48
  groupDef.items = items;
59
49
  }
60
50
 
61
51
  /**
62
52
  De-register an item with this group.
63
-
64
- @method deregisterItem
53
+ @method deregisterItem
65
54
  @param groupName
66
55
  @param item
67
56
  */
68
57
  deregisterItem(groupName, item) {
69
58
  let groupDef = this.fetchGroup(groupName);
70
59
  let items = groupDef.items;
71
-
72
60
  const index = items.indexOf(item);
73
61
  if (index !== -1) {
74
62
  let newItems = [...items.slice(0, index), ...items.slice(index + 1)];
@@ -86,7 +74,9 @@ export default class EmberSortableService extends Service {
86
74
  if (this.groups[groupName] === undefined) {
87
75
  this.registerGroup(groupName, undefined);
88
76
  }
89
-
90
77
  return this.groups[groupName];
91
78
  }
92
79
  }
80
+
81
+ export { EmberSortableService as default };
82
+ //# sourceMappingURL=ember-sortable-internal-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-sortable-internal-state.js","sources":["../../src/services/ember-sortable-internal-state.js"],"sourcesContent":["import Service from '@ember/service';\n\nexport default class EmberSortableService extends Service {\n /**\n * Internal State for any groups currently in DOM\n *\n * {\n * groupName: {\n * groupModifier: object,\n * items: []\n * }\n * }\n * @type {{}}\n */\n groups = {};\n\n /**\n * Register a new group with the service\n *\n * @param {String} groupName\n * @param {SortableGroupModifier} groupModifier\n */\n registerGroup(groupName, groupModifier) {\n if (this.groups[groupName] === undefined) {\n this.groups[groupName] = {\n groupModifier: groupModifier,\n items: [],\n };\n } else {\n this.groups[groupName].groupModifier = groupModifier;\n }\n }\n\n /**\n * De-register a group with the service\n *\n * @param {String} groupName\n */\n deregisterGroup(groupName) {\n delete this.groups[groupName];\n }\n\n /**\n * Register an item with this group\n *\n * @method registerItem\n * @param {String} groupName\n * @param {SortableItemModifier} item\n */\n registerItem(groupName, item) {\n let groupDef = this.fetchGroup(groupName);\n let items = groupDef.items;\n\n if (items.indexOf(item) === -1) {\n items = [...items, item];\n }\n\n groupDef.items = items;\n }\n\n /**\n De-register an item with this group.\n\n @method deregisterItem\n @param groupName\n @param item\n */\n deregisterItem(groupName, item) {\n let groupDef = this.fetchGroup(groupName);\n let items = groupDef.items;\n\n const index = items.indexOf(item);\n if (index !== -1) {\n let newItems = [...items.slice(0, index), ...items.slice(index + 1)];\n groupDef.items = newItems;\n }\n }\n\n /**\n * Fetch a group definition\n *\n * @param {String} groupName\n * @returns {*}\n */\n fetchGroup(groupName) {\n if (this.groups[groupName] === undefined) {\n this.registerGroup(groupName, undefined);\n }\n\n return this.groups[groupName];\n }\n}\n"],"names":["EmberSortableService","Service","registerGroup","groupName","groupModifier","groups","undefined","items","deregisterGroup","registerItem","item","groupDef","fetchGroup","indexOf","deregisterItem","index","newItems","slice"],"mappings":";;;AAEe,MAAMA,oBAAoB,SAASC,OAAO,CAAC;AAAA,EAAA,WAAA,CAAA,GAAA,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,IAAA,eAAA,CAAA,IAAA,EAAA,QAAA,EAY/C,EAAE,CAAA,CAAA;AAAA,GAAA;AAEX;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,aAAa,CAACC,SAAS,EAAEC,aAAa,EAAE;IACtC,IAAI,IAAI,CAACC,MAAM,CAACF,SAAS,CAAC,KAAKG,SAAS,EAAE;AACxC,MAAA,IAAI,CAACD,MAAM,CAACF,SAAS,CAAC,GAAG;AACvBC,QAAAA,aAAa,EAAEA,aAAa;AAC5BG,QAAAA,KAAK,EAAE,EAAA;OACR,CAAA;AACH,KAAC,MAAM;MACL,IAAI,CAACF,MAAM,CAACF,SAAS,CAAC,CAACC,aAAa,GAAGA,aAAa,CAAA;AACtD,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;EACEI,eAAe,CAACL,SAAS,EAAE;AACzB,IAAA,OAAO,IAAI,CAACE,MAAM,CAACF,SAAS,CAAC,CAAA;AAC/B,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEM,EAAAA,YAAY,CAACN,SAAS,EAAEO,IAAI,EAAE;AAC5B,IAAA,IAAIC,QAAQ,GAAG,IAAI,CAACC,UAAU,CAACT,SAAS,CAAC,CAAA;AACzC,IAAA,IAAII,KAAK,GAAGI,QAAQ,CAACJ,KAAK,CAAA;IAE1B,IAAIA,KAAK,CAACM,OAAO,CAACH,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAC9BH,MAAAA,KAAK,GAAG,CAAC,GAAGA,KAAK,EAAEG,IAAI,CAAC,CAAA;AAC1B,KAAA;IAEAC,QAAQ,CAACJ,KAAK,GAAGA,KAAK,CAAA;AACxB,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAEEO,EAAAA,cAAc,CAACX,SAAS,EAAEO,IAAI,EAAE;AAC9B,IAAA,IAAIC,QAAQ,GAAG,IAAI,CAACC,UAAU,CAACT,SAAS,CAAC,CAAA;AACzC,IAAA,IAAII,KAAK,GAAGI,QAAQ,CAACJ,KAAK,CAAA;AAE1B,IAAA,MAAMQ,KAAK,GAAGR,KAAK,CAACM,OAAO,CAACH,IAAI,CAAC,CAAA;AACjC,IAAA,IAAIK,KAAK,KAAK,CAAC,CAAC,EAAE;MAChB,IAAIC,QAAQ,GAAG,CAAC,GAAGT,KAAK,CAACU,KAAK,CAAC,CAAC,EAAEF,KAAK,CAAC,EAAE,GAAGR,KAAK,CAACU,KAAK,CAACF,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;MACpEJ,QAAQ,CAACJ,KAAK,GAAGS,QAAQ,CAAA;AAC3B,KAAA;AACF,GAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEJ,UAAU,CAACT,SAAS,EAAE;IACpB,IAAI,IAAI,CAACE,MAAM,CAACF,SAAS,CAAC,KAAKG,SAAS,EAAE;AACxC,MAAA,IAAI,CAACJ,aAAa,CAACC,SAAS,EAAEG,SAAS,CAAC,CAAA;AAC1C,KAAA;AAEA,IAAA,OAAO,IAAI,CAACD,MAAM,CAACF,SAAS,CAAC,CAAA;AAC/B,GAAA;AACF;;;;"}
@@ -1,8 +1,7 @@
1
- export default class ScrollContainer {
1
+ class ScrollContainer {
2
2
  constructor(element) {
3
3
  this.isWindow = element === document;
4
4
  this.element = this.isWindow ? document.documentElement : element;
5
-
6
5
  if (this.isWindow) {
7
6
  this.top = 0;
8
7
  this.left = 0;
@@ -10,7 +9,10 @@ export default class ScrollContainer {
10
9
  this.height = document.documentElement.clientHeight;
11
10
  } else {
12
11
  // Absolute position in document
13
- let { top, left } = this.element.getBoundingClientRect();
12
+ let {
13
+ top,
14
+ left
15
+ } = this.element.getBoundingClientRect();
14
16
  this.top = top;
15
17
  this.left = left;
16
18
  // Viewport size of the container element
@@ -24,15 +26,12 @@ export default class ScrollContainer {
24
26
  this.maxScrollTop = this.scrollHeight - this.height;
25
27
  this.maxScrollLeft = this.scrollWidth - this.width;
26
28
  }
27
-
28
29
  get bottom() {
29
30
  return this.top + this.height;
30
31
  }
31
-
32
32
  get right() {
33
33
  return this.left + this.width;
34
34
  }
35
-
36
35
  scrollTop(value) {
37
36
  if (value) {
38
37
  value = Math.max(0, Math.min(this.maxScrollTop, value));
@@ -41,7 +40,6 @@ export default class ScrollContainer {
41
40
  }
42
41
  return this.element.scrollTop;
43
42
  }
44
-
45
43
  scrollLeft(value) {
46
44
  if (value) {
47
45
  value = Math.max(0, Math.min(this.maxScrollLeft, value));
@@ -51,3 +49,6 @@ export default class ScrollContainer {
51
49
  return this.element.scrollLeft;
52
50
  }
53
51
  }
52
+
53
+ export { ScrollContainer as default };
54
+ //# sourceMappingURL=scroll-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-container.js","sources":["../../src/system/scroll-container.js"],"sourcesContent":["export default class ScrollContainer {\n constructor(element) {\n this.isWindow = element === document;\n this.element = this.isWindow ? document.documentElement : element;\n\n if (this.isWindow) {\n this.top = 0;\n this.left = 0;\n this.width = document.documentElement.clientWidth;\n this.height = document.documentElement.clientHeight;\n } else {\n // Absolute position in document\n let { top, left } = this.element.getBoundingClientRect();\n this.top = top;\n this.left = left;\n // Viewport size of the container element\n this.width = parseFloat(getComputedStyle(this.element).width);\n this.height = parseFloat(getComputedStyle(this.element).height);\n }\n // Total size of the container element (including scrollable part)\n this.scrollWidth = this.element.scrollWidth;\n this.scrollHeight = this.element.scrollHeight;\n // Max scroll pos\n this.maxScrollTop = this.scrollHeight - this.height;\n this.maxScrollLeft = this.scrollWidth - this.width;\n }\n\n get bottom() {\n return this.top + this.height;\n }\n\n get right() {\n return this.left + this.width;\n }\n\n scrollTop(value) {\n if (value) {\n value = Math.max(0, Math.min(this.maxScrollTop, value));\n this.element.scrollTop = value;\n return value;\n }\n return this.element.scrollTop;\n }\n\n scrollLeft(value) {\n if (value) {\n value = Math.max(0, Math.min(this.maxScrollLeft, value));\n this.element.scrollLeft = value;\n return value;\n }\n return this.element.scrollLeft;\n }\n}\n"],"names":["ScrollContainer","constructor","element","isWindow","document","documentElement","top","left","width","clientWidth","height","clientHeight","getBoundingClientRect","parseFloat","getComputedStyle","scrollWidth","scrollHeight","maxScrollTop","maxScrollLeft","bottom","right","scrollTop","value","Math","max","min","scrollLeft"],"mappings":"AAAe,MAAMA,eAAe,CAAC;EACnCC,WAAW,CAACC,OAAO,EAAE;AACnB,IAAA,IAAI,CAACC,QAAQ,GAAGD,OAAO,KAAKE,QAAQ,CAAA;IACpC,IAAI,CAACF,OAAO,GAAG,IAAI,CAACC,QAAQ,GAAGC,QAAQ,CAACC,eAAe,GAAGH,OAAO,CAAA;IAEjE,IAAI,IAAI,CAACC,QAAQ,EAAE;MACjB,IAAI,CAACG,GAAG,GAAG,CAAC,CAAA;MACZ,IAAI,CAACC,IAAI,GAAG,CAAC,CAAA;AACb,MAAA,IAAI,CAACC,KAAK,GAAGJ,QAAQ,CAACC,eAAe,CAACI,WAAW,CAAA;AACjD,MAAA,IAAI,CAACC,MAAM,GAAGN,QAAQ,CAACC,eAAe,CAACM,YAAY,CAAA;AACrD,KAAC,MAAM;AACL;MACA,IAAI;QAAEL,GAAG;AAAEC,QAAAA,IAAAA;AAAK,OAAC,GAAG,IAAI,CAACL,OAAO,CAACU,qBAAqB,EAAE,CAAA;MACxD,IAAI,CAACN,GAAG,GAAGA,GAAG,CAAA;MACd,IAAI,CAACC,IAAI,GAAGA,IAAI,CAAA;AAChB;AACA,MAAA,IAAI,CAACC,KAAK,GAAGK,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAACZ,OAAO,CAAC,CAACM,KAAK,CAAC,CAAA;AAC7D,MAAA,IAAI,CAACE,MAAM,GAAGG,UAAU,CAACC,gBAAgB,CAAC,IAAI,CAACZ,OAAO,CAAC,CAACQ,MAAM,CAAC,CAAA;AACjE,KAAA;AACA;AACA,IAAA,IAAI,CAACK,WAAW,GAAG,IAAI,CAACb,OAAO,CAACa,WAAW,CAAA;AAC3C,IAAA,IAAI,CAACC,YAAY,GAAG,IAAI,CAACd,OAAO,CAACc,YAAY,CAAA;AAC7C;IACA,IAAI,CAACC,YAAY,GAAG,IAAI,CAACD,YAAY,GAAG,IAAI,CAACN,MAAM,CAAA;IACnD,IAAI,CAACQ,aAAa,GAAG,IAAI,CAACH,WAAW,GAAG,IAAI,CAACP,KAAK,CAAA;AACpD,GAAA;AAEA,EAAA,IAAIW,MAAM,GAAG;AACX,IAAA,OAAO,IAAI,CAACb,GAAG,GAAG,IAAI,CAACI,MAAM,CAAA;AAC/B,GAAA;AAEA,EAAA,IAAIU,KAAK,GAAG;AACV,IAAA,OAAO,IAAI,CAACb,IAAI,GAAG,IAAI,CAACC,KAAK,CAAA;AAC/B,GAAA;EAEAa,SAAS,CAACC,KAAK,EAAE;AACf,IAAA,IAAIA,KAAK,EAAE;AACTA,MAAAA,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,IAAI,CAACR,YAAY,EAAEK,KAAK,CAAC,CAAC,CAAA;AACvD,MAAA,IAAI,CAACpB,OAAO,CAACmB,SAAS,GAAGC,KAAK,CAAA;AAC9B,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,OAAO,IAAI,CAACpB,OAAO,CAACmB,SAAS,CAAA;AAC/B,GAAA;EAEAK,UAAU,CAACJ,KAAK,EAAE;AAChB,IAAA,IAAIA,KAAK,EAAE;AACTA,MAAAA,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAAC,IAAI,CAACP,aAAa,EAAEI,KAAK,CAAC,CAAC,CAAA;AACxD,MAAA,IAAI,CAACpB,OAAO,CAACwB,UAAU,GAAGJ,KAAK,CAAA;AAC/B,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,OAAO,IAAI,CAACpB,OAAO,CAACwB,UAAU,CAAA;AAChC,GAAA;AACF;;;;"}
@@ -1,20 +1,16 @@
1
1
  function getParentElements(element) {
2
2
  const parentsArray = [];
3
-
4
3
  if (!element) {
5
4
  return parentsArray;
6
5
  }
7
-
8
6
  let currentParent = element.parentElement;
9
-
10
7
  while (currentParent !== null) {
11
8
  parentsArray.push(currentParent);
12
9
  currentParent = currentParent.parentElement;
13
10
  }
14
11
  return parentsArray;
15
12
  }
16
-
17
- export default function (element) {
13
+ function scrollParent (element) {
18
14
  let position = getComputedStyle(element).position;
19
15
  let excludeStaticParent = position === 'absolute';
20
16
  let scrollParent = getParentElements(element).filter(function (parent) {
@@ -22,12 +18,18 @@ export default function (element) {
22
18
  if (excludeStaticParent && parentElemStyles.position === 'static') {
23
19
  return false;
24
20
  }
25
- let { overflow, overflowX, overflowY } = parentElemStyles;
21
+ let {
22
+ overflow,
23
+ overflowX,
24
+ overflowY
25
+ } = parentElemStyles;
26
26
  return /(auto|scroll)/.test(overflow + overflowX + overflowY);
27
27
  })[0];
28
-
29
28
  if (!scrollParent || scrollParent === document.body) {
30
29
  scrollParent = document;
31
30
  }
32
31
  return position === 'fixed' || scrollParent;
33
32
  }
33
+
34
+ export { scrollParent as default };
35
+ //# sourceMappingURL=scroll-parent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-parent.js","sources":["../../src/system/scroll-parent.js"],"sourcesContent":["function getParentElements(element) {\n const parentsArray = [];\n\n if (!element) {\n return parentsArray;\n }\n\n let currentParent = element.parentElement;\n\n while (currentParent !== null) {\n parentsArray.push(currentParent);\n currentParent = currentParent.parentElement;\n }\n return parentsArray;\n}\n\nexport default function (element) {\n let position = getComputedStyle(element).position;\n let excludeStaticParent = position === 'absolute';\n let scrollParent = getParentElements(element).filter(function (parent) {\n let parentElemStyles = getComputedStyle(parent);\n if (excludeStaticParent && parentElemStyles.position === 'static') {\n return false;\n }\n let { overflow, overflowX, overflowY } = parentElemStyles;\n return /(auto|scroll)/.test(overflow + overflowX + overflowY);\n })[0];\n\n if (!scrollParent || scrollParent === document.body) {\n scrollParent = document;\n }\n return position === 'fixed' || scrollParent;\n}\n"],"names":["getParentElements","element","parentsArray","currentParent","parentElement","push","position","getComputedStyle","excludeStaticParent","scrollParent","filter","parent","parentElemStyles","overflow","overflowX","overflowY","test","document","body"],"mappings":"AAAA,SAASA,iBAAiB,CAACC,OAAO,EAAE;EAClC,MAAMC,YAAY,GAAG,EAAE,CAAA;EAEvB,IAAI,CAACD,OAAO,EAAE;AACZ,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,IAAIC,aAAa,GAAGF,OAAO,CAACG,aAAa,CAAA;EAEzC,OAAOD,aAAa,KAAK,IAAI,EAAE;AAC7BD,IAAAA,YAAY,CAACG,IAAI,CAACF,aAAa,CAAC,CAAA;IAChCA,aAAa,GAAGA,aAAa,CAACC,aAAa,CAAA;AAC7C,GAAA;AACA,EAAA,OAAOF,YAAY,CAAA;AACrB,CAAA;AAEe,qBAAA,EAAUD,OAAO,EAAE;AAChC,EAAA,IAAIK,QAAQ,GAAGC,gBAAgB,CAACN,OAAO,CAAC,CAACK,QAAQ,CAAA;AACjD,EAAA,IAAIE,mBAAmB,GAAGF,QAAQ,KAAK,UAAU,CAAA;EACjD,IAAIG,YAAY,GAAGT,iBAAiB,CAACC,OAAO,CAAC,CAACS,MAAM,CAAC,UAAUC,MAAM,EAAE;AACrE,IAAA,IAAIC,gBAAgB,GAAGL,gBAAgB,CAACI,MAAM,CAAC,CAAA;AAC/C,IAAA,IAAIH,mBAAmB,IAAII,gBAAgB,CAACN,QAAQ,KAAK,QAAQ,EAAE;AACjE,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IACA,IAAI;MAAEO,QAAQ;MAAEC,SAAS;AAAEC,MAAAA,SAAAA;AAAU,KAAC,GAAGH,gBAAgB,CAAA;IACzD,OAAO,eAAe,CAACI,IAAI,CAACH,QAAQ,GAAGC,SAAS,GAAGC,SAAS,CAAC,CAAA;GAC9D,CAAC,CAAC,CAAC,CAAC,CAAA;EAEL,IAAI,CAACN,YAAY,IAAIA,YAAY,KAAKQ,QAAQ,CAACC,IAAI,EAAE;AACnDT,IAAAA,YAAY,GAAGQ,QAAQ,CAAA;AACzB,GAAA;AACA,EAAA,OAAOX,QAAQ,KAAK,OAAO,IAAIG,YAAY,CAAA;AAC7C;;;;"}
@@ -1,5 +1,5 @@
1
- import { triggerEvent, find, settled } from '@ember/test-helpers';
2
- import { getOffset } from '../utils/offset';
1
+ import { find, triggerEvent, settled } from '@ember/test-helpers';
2
+ import { getOffset } from '../utils/offset.js';
3
3
 
4
4
  /**
5
5
  Drags elements by an offset specified in pixels.
@@ -26,12 +26,11 @@ import { getOffset } from '../utils/offset';
26
26
  @return {Promise}
27
27
  */
28
28
 
29
- export async function drag(mode, itemSelector, offsetFn, callbacks = {}) {
29
+ async function drag(mode, itemSelector, offsetFn, callbacks = {}) {
30
30
  let start;
31
31
  let move;
32
32
  let end;
33
33
  let which;
34
-
35
34
  if (mode === 'mouse') {
36
35
  start = 'mousedown';
37
36
  move = 'mousemove';
@@ -44,7 +43,6 @@ export async function drag(mode, itemSelector, offsetFn, callbacks = {}) {
44
43
  } else {
45
44
  throw new Error(`Unsupported mode: '${mode}'`);
46
45
  }
47
-
48
46
  const itemElement = find(itemSelector);
49
47
  const itemOffset = getOffset(itemElement);
50
48
  const offset = offsetFn();
@@ -59,53 +57,47 @@ export async function drag(mode, itemSelector, offsetFn, callbacks = {}) {
59
57
  const dy = offset.dy || 0;
60
58
  const clientHeight = itemElement.clientHeight || itemElement.offsetHeight || itemElement.parentNode.offsetHeight;
61
59
  const scale = clientHeight / (rect.bottom - rect.top);
62
- const halfwayX = itemOffset.left + (dx * scale) / 2;
63
- const halfwayY = itemOffset.top + (dy * scale) / 2;
60
+ const halfwayX = itemOffset.left + dx * scale / 2;
61
+ const halfwayY = itemOffset.top + dy * scale / 2;
64
62
  const targetX = itemOffset.left + dx * scale;
65
63
  const targetY = itemOffset.top + dy * scale;
66
-
67
64
  await triggerEvent(itemElement, start, {
68
65
  clientX: itemOffset.left,
69
66
  clientY: itemOffset.top,
70
- which,
67
+ which
71
68
  });
72
-
73
69
  if (callbacks.dragstart) {
74
70
  await callbacks.dragstart();
75
71
  await settled();
76
72
  }
77
-
78
73
  await triggerEvent(itemElement, move, {
79
74
  clientX: itemOffset.left,
80
- clientY: itemOffset.top,
75
+ clientY: itemOffset.top
81
76
  });
82
-
83
77
  if (callbacks.dragmove) {
84
78
  await callbacks.dragmove();
85
79
  await settled();
86
80
  }
87
-
88
81
  await triggerEvent(itemElement, move, {
89
82
  clientX: halfwayX,
90
- clientY: halfwayY,
83
+ clientY: halfwayY
91
84
  });
92
-
93
85
  await triggerEvent(itemElement, move, {
94
86
  clientX: targetX,
95
- clientY: targetY,
87
+ clientY: targetY
96
88
  });
97
-
98
89
  if (callbacks.beforedragend) {
99
90
  await callbacks.beforedragend();
100
91
  }
101
-
102
92
  await triggerEvent(itemElement, end, {
103
93
  clientX: targetX,
104
- clientY: targetY,
94
+ clientY: targetY
105
95
  });
106
-
107
96
  if (callbacks.dragend) {
108
97
  await callbacks.dragend();
109
98
  await settled();
110
99
  }
111
100
  }
101
+
102
+ export { drag };
103
+ //# sourceMappingURL=drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drag.js","sources":["../../../src/test-support/helpers/drag.js"],"sourcesContent":["import { triggerEvent, find, settled } from '@ember/test-helpers';\nimport { getOffset } from '../utils/offset';\n\n/**\n Drags elements by an offset specified in pixels.\n\n Examples\n\n drag(\n 'mouse',\n '.some-list li[data-item=uno]',\n function() {\n return { dy: 50, dx: 20 };\n }\n );\n\n @method drag\n @param {'mouse'|'touch'} [mode]\n event mode\n @param {String} [itemSelector]\n selector for the element to drag\n @param {Function} [offsetFn]\n function returning the offset by which to drag\n @param {Object} [callbacks]\n callbacks that are fired at the different stages of the interaction\n @return {Promise}\n*/\n\nexport async function drag(mode, itemSelector, offsetFn, callbacks = {}) {\n let start;\n let move;\n let end;\n let which;\n\n if (mode === 'mouse') {\n start = 'mousedown';\n move = 'mousemove';\n end = 'mouseup';\n which = 1;\n } else if (mode === 'touch') {\n start = 'touchstart';\n move = 'touchmove';\n end = 'touchend';\n } else {\n throw new Error(`Unsupported mode: '${mode}'`);\n }\n\n const itemElement = find(itemSelector);\n const itemOffset = getOffset(itemElement);\n const offset = offsetFn();\n const rect = itemElement.getBoundingClientRect();\n // firefox gives some elements, like <svg>, a clientHeight of 0.\n // we can try to grab it off the parent instead to have a better\n // guess at what the scale is.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=874811#c14\n // https://stackoverflow.com/a/13647345\n // https://stackoverflow.com/a/5042051\n const dx = offset.dx || 0;\n const dy = offset.dy || 0;\n const clientHeight = itemElement.clientHeight || itemElement.offsetHeight || itemElement.parentNode.offsetHeight;\n const scale = clientHeight / (rect.bottom - rect.top);\n const halfwayX = itemOffset.left + (dx * scale) / 2;\n const halfwayY = itemOffset.top + (dy * scale) / 2;\n const targetX = itemOffset.left + dx * scale;\n const targetY = itemOffset.top + dy * scale;\n\n await triggerEvent(itemElement, start, {\n clientX: itemOffset.left,\n clientY: itemOffset.top,\n which,\n });\n\n if (callbacks.dragstart) {\n await callbacks.dragstart();\n await settled();\n }\n\n await triggerEvent(itemElement, move, {\n clientX: itemOffset.left,\n clientY: itemOffset.top,\n });\n\n if (callbacks.dragmove) {\n await callbacks.dragmove();\n await settled();\n }\n\n await triggerEvent(itemElement, move, {\n clientX: halfwayX,\n clientY: halfwayY,\n });\n\n await triggerEvent(itemElement, move, {\n clientX: targetX,\n clientY: targetY,\n });\n\n if (callbacks.beforedragend) {\n await callbacks.beforedragend();\n }\n\n await triggerEvent(itemElement, end, {\n clientX: targetX,\n clientY: targetY,\n });\n\n if (callbacks.dragend) {\n await callbacks.dragend();\n await settled();\n }\n}\n"],"names":["drag","mode","itemSelector","offsetFn","callbacks","start","move","end","which","Error","itemElement","find","itemOffset","getOffset","offset","rect","getBoundingClientRect","dx","dy","clientHeight","offsetHeight","parentNode","scale","bottom","top","halfwayX","left","halfwayY","targetX","targetY","triggerEvent","clientX","clientY","dragstart","settled","dragmove","beforedragend","dragend"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { find, findAll } from '@ember/test-helpers';
2
- import { drag } from './drag';
3
- import { getOffset } from '../utils/offset';
1
+ import { findAll, find } from '@ember/test-helpers';
2
+ import { drag } from './drag.js';
3
+ import { getOffset } from '../utils/offset.js';
4
4
 
5
5
  const OVERSHOOT = 2;
6
6
 
@@ -26,16 +26,21 @@ const OVERSHOOT = 2;
26
26
  selectors for the resultant order
27
27
  @return {Promise}
28
28
  */
29
- export async function reorder(mode, itemSelector, ...resultSelectors) {
29
+ async function reorder(mode, itemSelector, ...resultSelectors) {
30
30
  for (let targetIndex = 0; targetIndex < resultSelectors.length; targetIndex++) {
31
31
  const items = findAll(itemSelector);
32
32
  const sourceElement = find(resultSelectors[targetIndex]);
33
33
  const targetElement = items[targetIndex];
34
34
  const dx = getOffset(targetElement).left - OVERSHOOT - getOffset(sourceElement).left;
35
35
  const dy = getOffset(targetElement).top - OVERSHOOT - getOffset(sourceElement).top;
36
-
37
36
  await drag(mode, sourceElement, () => {
38
- return { dx: dx, dy: dy };
37
+ return {
38
+ dx: dx,
39
+ dy: dy
40
+ };
39
41
  });
40
42
  }
41
43
  }
44
+
45
+ export { reorder };
46
+ //# sourceMappingURL=reorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reorder.js","sources":["../../../src/test-support/helpers/reorder.js"],"sourcesContent":["import { find, findAll } from '@ember/test-helpers';\nimport { drag } from './drag';\nimport { getOffset } from '../utils/offset';\n\nconst OVERSHOOT = 2;\n\n/**\n Reorders elements to the specified state.\n\n Examples\n\n reorder(\n 'mouse',\n '.some-list li',\n '[data-id=\"66278893\"]',\n '[data-id=\"66278894\"]',\n '[data-id=\"66278892\"]'\n );\n\n @method reorder\n @param {'mouse'|'touch'} [mode]\n event mode\n @param {String} [itemSelector]\n selector for all items\n @param {...String} [resultSelectors]\n selectors for the resultant order\n @return {Promise}\n*/\nexport async function reorder(mode, itemSelector, ...resultSelectors) {\n for (let targetIndex = 0; targetIndex < resultSelectors.length; targetIndex++) {\n const items = findAll(itemSelector);\n const sourceElement = find(resultSelectors[targetIndex]);\n const targetElement = items[targetIndex];\n const dx = getOffset(targetElement).left - OVERSHOOT - getOffset(sourceElement).left;\n const dy = getOffset(targetElement).top - OVERSHOOT - getOffset(sourceElement).top;\n\n await drag(mode, sourceElement, () => {\n return { dx: dx, dy: dy };\n });\n }\n}\n"],"names":["OVERSHOOT","reorder","mode","itemSelector","resultSelectors","targetIndex","length","items","findAll","sourceElement","find","targetElement","dx","getOffset","left","dy","top","drag"],"mappings":";;;;AAIA,MAAMA,SAAS,GAAG,CAAC,CAAA;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,OAAO,CAACC,IAAI,EAAEC,YAAY,EAAE,GAAGC,eAAe,EAAE;AACpE,EAAA,KAAK,IAAIC,WAAW,GAAG,CAAC,EAAEA,WAAW,GAAGD,eAAe,CAACE,MAAM,EAAED,WAAW,EAAE,EAAE;AAC7E,IAAA,MAAME,KAAK,GAAGC,OAAO,CAACL,YAAY,CAAC,CAAA;IACnC,MAAMM,aAAa,GAAGC,IAAI,CAACN,eAAe,CAACC,WAAW,CAAC,CAAC,CAAA;AACxD,IAAA,MAAMM,aAAa,GAAGJ,KAAK,CAACF,WAAW,CAAC,CAAA;AACxC,IAAA,MAAMO,EAAE,GAAGC,SAAS,CAACF,aAAa,CAAC,CAACG,IAAI,GAAGd,SAAS,GAAGa,SAAS,CAACJ,aAAa,CAAC,CAACK,IAAI,CAAA;AACpF,IAAA,MAAMC,EAAE,GAAGF,SAAS,CAACF,aAAa,CAAC,CAACK,GAAG,GAAGhB,SAAS,GAAGa,SAAS,CAACJ,aAAa,CAAC,CAACO,GAAG,CAAA;AAElF,IAAA,MAAMC,IAAI,CAACf,IAAI,EAAEO,aAAa,EAAE,MAAM;MACpC,OAAO;AAAEG,QAAAA,EAAE,EAAEA,EAAE;AAAEG,QAAAA,EAAE,EAAEA,EAAAA;OAAI,CAAA;AAC3B,KAAC,CAAC,CAAA;AACJ,GAAA;AACF;;;;"}
@@ -0,0 +1,5 @@
1
+ export { ARROW_KEY_CODES, ENTER_KEY_CODE, ESCAPE_KEY_CODE, SPACE_KEY_CODE, isDownArrowKey, isEnterKey, isEscapeKey, isLeftArrowKey, isRightArrowKey, isSpaceKey, isUpArrowKey } from './utils/keyboard.js';
2
+ export { getOffset } from './utils/offset.js';
3
+ export { drag } from './helpers/drag.js';
4
+ export { reorder } from './helpers/reorder.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,33 @@
1
+ const ENTER_KEY = 'Enter';
2
+ const ESCAPE_KEY = 'Escape';
3
+ const SPACE_KEY = 'Space';
4
+ const ARROW_KEYS = {
5
+ LEFT: 'ArrowLeft',
6
+ UP: 'ArrowUp',
7
+ RIGHT: 'ArrowRight',
8
+ DOWN: 'ArrowDown'
9
+ };
10
+ const ENTER_KEY_CODE = 13;
11
+ const ESCAPE_KEY_CODE = 27;
12
+ const SPACE_KEY_CODE = 32;
13
+ const ARROW_KEY_CODES = {
14
+ LEFT: 37,
15
+ UP: 38,
16
+ RIGHT: 39,
17
+ DOWN: 40
18
+ };
19
+ function createKeyTest(key, keyCode) {
20
+ return function isKey(event) {
21
+ return event.key === key || event.keyCode === keyCode;
22
+ };
23
+ }
24
+ const isEnterKey = createKeyTest(ENTER_KEY, ENTER_KEY_CODE);
25
+ const isEscapeKey = createKeyTest(ESCAPE_KEY, ESCAPE_KEY_CODE);
26
+ const isSpaceKey = createKeyTest(SPACE_KEY, SPACE_KEY_CODE);
27
+ const isLeftArrowKey = createKeyTest(ARROW_KEYS.LEFT, ARROW_KEY_CODES.LEFT);
28
+ const isUpArrowKey = createKeyTest(ARROW_KEYS.UP, ARROW_KEY_CODES.UP);
29
+ const isRightArrowKey = createKeyTest(ARROW_KEYS.RIGHT, ARROW_KEY_CODES.RIGHT);
30
+ const isDownArrowKey = createKeyTest(ARROW_KEYS.DOWN, ARROW_KEY_CODES.DOWN);
31
+
32
+ export { ARROW_KEY_CODES, ENTER_KEY_CODE, ESCAPE_KEY_CODE, SPACE_KEY_CODE, isDownArrowKey, isEnterKey, isEscapeKey, isLeftArrowKey, isRightArrowKey, isSpaceKey, isUpArrowKey };
33
+ //# sourceMappingURL=keyboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.js","sources":["../../../src/test-support/utils/keyboard.js"],"sourcesContent":["const ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\nconst SPACE_KEY = 'Space';\nconst ARROW_KEYS = {\n LEFT: 'ArrowLeft',\n UP: 'ArrowUp',\n RIGHT: 'ArrowRight',\n DOWN: 'ArrowDown',\n};\nexport const ENTER_KEY_CODE = 13;\nexport const ESCAPE_KEY_CODE = 27;\nexport const SPACE_KEY_CODE = 32;\nexport const ARROW_KEY_CODES = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n\nfunction createKeyTest(key, keyCode) {\n return function isKey(event) {\n return event.key === key || event.keyCode === keyCode;\n };\n}\n\nexport const isEnterKey = createKeyTest(ENTER_KEY, ENTER_KEY_CODE);\nexport const isEscapeKey = createKeyTest(ESCAPE_KEY, ESCAPE_KEY_CODE);\nexport const isSpaceKey = createKeyTest(SPACE_KEY, SPACE_KEY_CODE);\nexport const isLeftArrowKey = createKeyTest(ARROW_KEYS.LEFT, ARROW_KEY_CODES.LEFT);\nexport const isUpArrowKey = createKeyTest(ARROW_KEYS.UP, ARROW_KEY_CODES.UP);\nexport const isRightArrowKey = createKeyTest(ARROW_KEYS.RIGHT, ARROW_KEY_CODES.RIGHT);\nexport const isDownArrowKey = createKeyTest(ARROW_KEYS.DOWN, ARROW_KEY_CODES.DOWN);\n"],"names":["ENTER_KEY","ESCAPE_KEY","SPACE_KEY","ARROW_KEYS","LEFT","UP","RIGHT","DOWN","ENTER_KEY_CODE","ESCAPE_KEY_CODE","SPACE_KEY_CODE","ARROW_KEY_CODES","createKeyTest","key","keyCode","isKey","event","isEnterKey","isEscapeKey","isSpaceKey","isLeftArrowKey","isUpArrowKey","isRightArrowKey","isDownArrowKey"],"mappings":"AAAA,MAAMA,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG,QAAQ,CAAA;AAC3B,MAAMC,SAAS,GAAG,OAAO,CAAA;AACzB,MAAMC,UAAU,GAAG;AACjBC,EAAAA,IAAI,EAAE,WAAW;AACjBC,EAAAA,EAAE,EAAE,SAAS;AACbC,EAAAA,KAAK,EAAE,YAAY;AACnBC,EAAAA,IAAI,EAAE,WAAA;AACR,CAAC,CAAA;AACM,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG,GAAE;AAC1B,MAAMC,cAAc,GAAG,GAAE;AACzB,MAAMC,eAAe,GAAG;AAC7BP,EAAAA,IAAI,EAAE,EAAE;AACRC,EAAAA,EAAE,EAAE,EAAE;AACNC,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,IAAI,EAAE,EAAA;AACR,EAAC;AAED,SAASK,aAAa,CAACC,GAAG,EAAEC,OAAO,EAAE;AACnC,EAAA,OAAO,SAASC,KAAK,CAACC,KAAK,EAAE;IAC3B,OAAOA,KAAK,CAACH,GAAG,KAAKA,GAAG,IAAIG,KAAK,CAACF,OAAO,KAAKA,OAAO,CAAA;GACtD,CAAA;AACH,CAAA;AAEO,MAAMG,UAAU,GAAGL,aAAa,CAACZ,SAAS,EAAEQ,cAAc,EAAC;AAC3D,MAAMU,WAAW,GAAGN,aAAa,CAACX,UAAU,EAAEQ,eAAe,EAAC;AAC9D,MAAMU,UAAU,GAAGP,aAAa,CAACV,SAAS,EAAEQ,cAAc,EAAC;AACrDU,MAAAA,cAAc,GAAGR,aAAa,CAACT,UAAU,CAACC,IAAI,EAAEO,eAAe,CAACP,IAAI,EAAC;AACrEiB,MAAAA,YAAY,GAAGT,aAAa,CAACT,UAAU,CAACE,EAAE,EAAEM,eAAe,CAACN,EAAE,EAAC;AAC/DiB,MAAAA,eAAe,GAAGV,aAAa,CAACT,UAAU,CAACG,KAAK,EAAEK,eAAe,CAACL,KAAK,EAAC;AACxEiB,MAAAA,cAAc,GAAGX,aAAa,CAACT,UAAU,CAACI,IAAI,EAAEI,eAAe,CAACJ,IAAI;;;;"}
@@ -4,11 +4,13 @@
4
4
  * @method getOffset
5
5
  * @param {Element} el an element
6
6
  */
7
- export function getOffset(el) {
7
+ function getOffset(el) {
8
8
  const box = el.getBoundingClientRect();
9
-
10
9
  return {
11
10
  top: box.top + window.pageYOffset - document.documentElement.clientTop,
12
- left: box.left + window.pageXOffset - document.documentElement.clientLeft,
11
+ left: box.left + window.pageXOffset - document.documentElement.clientLeft
13
12
  };
14
13
  }
14
+
15
+ export { getOffset };
16
+ //# sourceMappingURL=offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"offset.js","sources":["../../../src/test-support/utils/offset.js"],"sourcesContent":["/** Vanilla Javascript equivalent of JQuery's `.offset`.\n * Reference: https://github.com/nefe/You-Dont-Need-jQuery\n *\n * @method getOffset\n * @param {Element} el an element\n */\nexport function getOffset(el) {\n const box = el.getBoundingClientRect();\n\n return {\n top: box.top + window.pageYOffset - document.documentElement.clientTop,\n left: box.left + window.pageXOffset - document.documentElement.clientLeft,\n };\n}\n"],"names":["getOffset","el","box","getBoundingClientRect","top","window","pageYOffset","document","documentElement","clientTop","left","pageXOffset","clientLeft"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAAS,CAACC,EAAE,EAAE;AAC5B,EAAA,MAAMC,GAAG,GAAGD,EAAE,CAACE,qBAAqB,EAAE,CAAA;EAEtC,OAAO;AACLC,IAAAA,GAAG,EAAEF,GAAG,CAACE,GAAG,GAAGC,MAAM,CAACC,WAAW,GAAGC,QAAQ,CAACC,eAAe,CAACC,SAAS;AACtEC,IAAAA,IAAI,EAAER,GAAG,CAACQ,IAAI,GAAGL,MAAM,CAACM,WAAW,GAAGJ,QAAQ,CAACC,eAAe,CAACI,UAAAA;GAChE,CAAA;AACH;;;;"}
@@ -0,0 +1,12 @@
1
+ const DRAG_ACTIONS = ['mousemove', 'touchmove'];
2
+ const ELEMENT_CLICK_ACTION = 'click';
3
+ const END_ACTIONS = ['click', 'mouseup', 'touchend'];
4
+ const ANNOUNCEMENT_ACTION_TYPES = {
5
+ ACTIVATE: 'ACTIVATE',
6
+ MOVE: 'MOVE',
7
+ CONFIRM: 'CONFIRM',
8
+ CANCEL: 'CANCEL'
9
+ };
10
+
11
+ export { ANNOUNCEMENT_ACTION_TYPES, DRAG_ACTIONS, ELEMENT_CLICK_ACTION, END_ACTIONS };
12
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.js","sources":["../../src/utils/constant.js"],"sourcesContent":["export const DRAG_ACTIONS = ['mousemove', 'touchmove'];\nexport const ELEMENT_CLICK_ACTION = 'click';\nexport const END_ACTIONS = ['click', 'mouseup', 'touchend'];\nexport const ANNOUNCEMENT_ACTION_TYPES = {\n ACTIVATE: 'ACTIVATE',\n MOVE: 'MOVE',\n CONFIRM: 'CONFIRM',\n CANCEL: 'CANCEL',\n};\n"],"names":["DRAG_ACTIONS","ELEMENT_CLICK_ACTION","END_ACTIONS","ANNOUNCEMENT_ACTION_TYPES","ACTIVATE","MOVE","CONFIRM","CANCEL"],"mappings":"MAAaA,YAAY,GAAG,CAAC,WAAW,EAAE,WAAW,EAAC;AAC/C,MAAMC,oBAAoB,GAAG,QAAO;AACpC,MAAMC,WAAW,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAC;AACpD,MAAMC,yBAAyB,GAAG;AACvCC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAA;AACV;;;;"}
@@ -5,10 +5,9 @@
5
5
  @return {Number}
6
6
  @private
7
7
  */
8
- export function getY(event) {
8
+ function getY(event) {
9
9
  let touches = event.changedTouches;
10
10
  let touch = touches && touches[0];
11
-
12
11
  if (touch) {
13
12
  return touch.screenY;
14
13
  } else {
@@ -22,13 +21,15 @@ export function getY(event) {
22
21
  @return {Number}
23
22
  @private
24
23
  */
25
- export function getX(event) {
24
+ function getX(event) {
26
25
  let touches = event.changedTouches;
27
26
  let touch = touches && touches[0];
28
-
29
27
  if (touch) {
30
28
  return touch.screenX;
31
29
  } else {
32
30
  return event.clientX;
33
31
  }
34
32
  }
33
+
34
+ export { getX, getY };
35
+ //# sourceMappingURL=coordinate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordinate.js","sources":["../../src/utils/coordinate.js"],"sourcesContent":["/**\n Gets the y offset for a given event.\n Work for touch and mouse events.\n @method getY\n @return {Number}\n @private\n*/\nexport function getY(event) {\n let touches = event.changedTouches;\n let touch = touches && touches[0];\n\n if (touch) {\n return touch.screenY;\n } else {\n return event.clientY;\n }\n}\n\n/**\n Gets the x offset for a given event.\n @method getX\n @return {Number}\n @private\n*/\nexport function getX(event) {\n let touches = event.changedTouches;\n let touch = touches && touches[0];\n\n if (touch) {\n return touch.screenX;\n } else {\n return event.clientX;\n }\n}\n"],"names":["getY","event","touches","changedTouches","touch","screenY","clientY","getX","screenX","clientX"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,IAAI,CAACC,KAAK,EAAE;AAC1B,EAAA,IAAIC,OAAO,GAAGD,KAAK,CAACE,cAAc,CAAA;AAClC,EAAA,IAAIC,KAAK,GAAGF,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjC,EAAA,IAAIE,KAAK,EAAE;IACT,OAAOA,KAAK,CAACC,OAAO,CAAA;AACtB,GAAC,MAAM;IACL,OAAOJ,KAAK,CAACK,OAAO,CAAA;AACtB,GAAA;AACF,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,IAAI,CAACN,KAAK,EAAE;AAC1B,EAAA,IAAIC,OAAO,GAAGD,KAAK,CAACE,cAAc,CAAA;AAClC,EAAA,IAAIC,KAAK,GAAGF,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjC,EAAA,IAAIE,KAAK,EAAE;IACT,OAAOA,KAAK,CAACI,OAAO,CAAA;AACtB,GAAC,MAAM;IACL,OAAOP,KAAK,CAACQ,OAAO,CAAA;AACtB,GAAA;AACF;;;;"}
@@ -6,12 +6,14 @@
6
6
  @return {Object}
7
7
  @private
8
8
  */
9
- export function getBorderSpacing(el) {
9
+ function getBorderSpacing(el) {
10
10
  let css = getComputedStyle(el).borderSpacing; // '0px 0px'
11
11
  let [horizontal, vertical] = css.split(' ');
12
-
13
12
  return {
14
13
  horizontal: parseFloat(horizontal),
15
- vertical: parseFloat(vertical),
14
+ vertical: parseFloat(vertical)
16
15
  };
17
16
  }
17
+
18
+ export { getBorderSpacing };
19
+ //# sourceMappingURL=css-calculation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-calculation.js","sources":["../../src/utils/css-calculation.js"],"sourcesContent":["/**\n Gets a numeric border-spacing values for a given element.\n\n @method getBorderSpacing\n @param {Element} element\n @return {Object}\n @private\n*/\nexport function getBorderSpacing(el) {\n let css = getComputedStyle(el).borderSpacing; // '0px 0px'\n let [horizontal, vertical] = css.split(' ');\n\n return {\n horizontal: parseFloat(horizontal),\n vertical: parseFloat(vertical),\n };\n}\n"],"names":["getBorderSpacing","el","css","getComputedStyle","borderSpacing","horizontal","vertical","split","parseFloat"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,gBAAgB,CAACC,EAAE,EAAE;EACnC,IAAIC,GAAG,GAAGC,gBAAgB,CAACF,EAAE,CAAC,CAACG,aAAa,CAAC;EAC7C,IAAI,CAACC,UAAU,EAAEC,QAAQ,CAAC,GAAGJ,GAAG,CAACK,KAAK,CAAC,GAAG,CAAC,CAAA;EAE3C,OAAO;AACLF,IAAAA,UAAU,EAAEG,UAAU,CAACH,UAAU,CAAC;IAClCC,QAAQ,EAAEE,UAAU,CAACF,QAAQ,CAAA;GAC9B,CAAA;AACH;;;;"}