1 line
51 KiB
Plaintext
1 line
51 KiB
Plaintext
{"version":3,"file":"dx-react-core.es.js","sources":["../src/utils/plugin-helpers.js","../src/plugged/getter.jsx","../src/plugged/action.jsx","../src/plugged/template.jsx","../src/plugged/plugin-indexer.jsx","../src/plugged/template-placeholder.jsx","../src/plugged/plugin-host.jsx","../src/plugged/plugin-container.jsx","../src/plugged/watcher.jsx","../src/plugged/template-connector.jsx","../src/draggable/touch-strategy.js","../src/draggable/gesture-cover.js","../src/draggable/mouse-strategy.js","../src/draggable/shared-events.js","../src/draggable.jsx","../src/drag-drop/context.jsx","../src/drag-drop/source.jsx","../src/drag-drop/target.jsx","../src/template-renderer.jsx","../src/utils/template-helpers.js"],"sourcesContent":["import { shallowEqual } from '@devexpress/dx-core';\n\nexport const getActionExecutor = (pluginHost, actionToExecuteName) => {\n const actionsToExecute = pluginHost.collect(`${actionToExecuteName}Action`).slice().reverse();\n return (startingPayload) => {\n let payload = startingPayload;\n // eslint-disable-next-line no-use-before-define\n const { getters } = getAvaliableGetters(pluginHost);\n // eslint-disable-next-line no-use-before-define\n const actions = getAvaliableActions(\n pluginHost,\n actionName => (actionName === actionToExecuteName\n ? (newPayload) => { payload = newPayload; }\n : getActionExecutor(pluginHost, actionName)\n ),\n );\n for (let i = 0; i < actionsToExecute.length; i += 1) {\n const result = actionsToExecute[i](payload, getters, actions);\n if (result === false) {\n break;\n }\n }\n };\n};\n\nexport const getAvaliableGetters = (\n pluginHost,\n getGetterValue = getterName => pluginHost.get(`${getterName}Getter`),\n) => {\n const trackedDependencies = {};\n const getters = pluginHost.knownKeys('Getter')\n .reduce((acc, getterName) => {\n Object.defineProperty(acc, getterName, {\n get: () => {\n const result = getGetterValue(getterName);\n trackedDependencies[getterName] = result;\n return result;\n },\n });\n return acc;\n }, {});\n\n return { getters, trackedDependencies };\n};\n\nexport const isTrackedDependenciesChanged = (\n pluginHost,\n prevTrackedDependencies,\n getGetterValue = getterName => pluginHost.get(`${getterName}Getter`),\n) => {\n const trackedDependencies = Object.keys(prevTrackedDependencies)\n .reduce((acc, getterName) => Object.assign(acc, {\n [getterName]: getGetterValue(getterName),\n }), {});\n\n return !shallowEqual(prevTrackedDependencies, trackedDependencies);\n};\n\nexport const getAvaliableActions = (\n pluginHost,\n getAction = actionName => getActionExecutor(pluginHost, actionName),\n) =>\n pluginHost.knownKeys('Action')\n .reduce((acc, actionName) => {\n Object.defineProperty(acc, actionName, {\n get: () => getAction(actionName),\n });\n return acc;\n }, {});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n isTrackedDependenciesChanged,\n getAvaliableGetters,\n getAvaliableActions,\n} from '../utils/plugin-helpers';\n\nexport const UPDATE_CONNECTION = 'updateConnection';\n\nexport class Getter extends React.PureComponent {\n componentWillMount() {\n const { pluginHost } = this.context;\n const { name } = this.props;\n\n let lastComputed;\n let lastTrackedDependencies = {};\n let lastResult;\n\n this.plugin = {\n position: () => this.props.position(),\n [`${name}Getter`]: (original) => {\n const { value, computed } = this.props;\n if (value !== undefined) return value;\n\n const getGetterValue = getterName => ((getterName === name)\n ? original\n : pluginHost.get(`${getterName}Getter`, this.plugin));\n\n if (computed === lastComputed &&\n !isTrackedDependenciesChanged(pluginHost, lastTrackedDependencies, getGetterValue)) {\n return lastResult;\n }\n\n const { getters, trackedDependencies } = getAvaliableGetters(pluginHost, getGetterValue);\n const actions = getAvaliableActions(pluginHost);\n\n lastComputed = computed;\n lastTrackedDependencies = trackedDependencies;\n lastResult = computed(getters, actions);\n return lastResult;\n },\n };\n\n pluginHost.registerPlugin(this.plugin);\n }\n componentDidUpdate() {\n const { pluginHost } = this.context;\n\n pluginHost.broadcast(UPDATE_CONNECTION);\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n\n pluginHost.unregisterPlugin(this.plugin);\n }\n render() {\n return null;\n }\n}\n\nGetter.propTypes = {\n position: PropTypes.func,\n name: PropTypes.string.isRequired,\n value: PropTypes.any,\n computed: PropTypes.func,\n};\n\nGetter.defaultProps = {\n value: undefined,\n computed: null,\n position: null,\n};\n\nGetter.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport class Action extends React.PureComponent {\n componentWillMount() {\n const { pluginHost } = this.context;\n const { name } = this.props;\n\n this.plugin = {\n position: () => this.props.position(),\n [`${name}Action`]: (params, getters, actions) => {\n const { action } = this.props;\n action(params, getters, actions);\n },\n };\n\n pluginHost.registerPlugin(this.plugin);\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n\n pluginHost.unregisterPlugin(this.plugin);\n }\n render() {\n return null;\n }\n}\n\nAction.propTypes = {\n position: PropTypes.func,\n name: PropTypes.string.isRequired,\n action: PropTypes.func.isRequired,\n};\n\nAction.defaultProps = {\n position: null,\n};\n\nAction.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport const RERENDER_TEMPLATE = 'rerenderTemplate';\n\nlet globalTemplateId = 0;\nexport class Template extends React.PureComponent {\n constructor(props, context) {\n super(props, context);\n\n globalTemplateId += 1;\n this.id = globalTemplateId;\n }\n componentWillMount() {\n const { pluginHost } = this.context;\n const { name } = this.props;\n\n this.plugin = {\n position: () => this.props.position(),\n [`${name}Template`]: {\n id: this.id,\n predicate: params => (this.props.predicate ? this.props.predicate(params) : true),\n children: () => this.props.children,\n },\n };\n pluginHost.registerPlugin(this.plugin);\n }\n componentDidUpdate() {\n const { pluginHost } = this.context;\n pluginHost.broadcast(RERENDER_TEMPLATE, this.id);\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n pluginHost.unregisterPlugin(this.plugin);\n }\n render() {\n return null;\n }\n}\n\nTemplate.propTypes = {\n position: PropTypes.func,\n name: PropTypes.string.isRequired,\n predicate: PropTypes.func,\n children: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.node,\n ]),\n};\n\nTemplate.defaultProps = {\n predicate: null,\n children: null,\n position: null,\n};\n\nTemplate.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Getter } from './getter';\nimport { Action } from './action';\nimport { Template } from './template';\n\nexport const PluginIndexer = (\n { children },\n { positionContext },\n) => (\n <div style={{ display: 'none' }}>\n {\n React.Children.map(children, (child, index) => {\n if (!child || !child.type) return child;\n\n const childPosition = () => {\n const calculatedPosition =\n (positionContext && positionContext()) || [];\n return [...calculatedPosition, index];\n };\n\n if (child.type === Getter ||\n child.type === Action ||\n child.type === Template) {\n return React.cloneElement(child, { position: childPosition });\n }\n\n return (\n <PluginIndexerContext position={childPosition}>\n {child}\n </PluginIndexerContext>\n );\n })\n }\n </div>\n);\n\nPluginIndexer.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nPluginIndexer.defaultProps = {\n children: null,\n};\n\nPluginIndexer.contextTypes = {\n positionContext: PropTypes.func,\n};\n\nclass PluginIndexerContext extends React.Component {\n getChildContext() {\n return {\n positionContext: this.props.position,\n };\n }\n render() {\n return this.props.children;\n }\n}\n\nPluginIndexerContext.propTypes = {\n position: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nPluginIndexerContext.childContextTypes = {\n positionContext: PropTypes.func,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { shallowEqual } from '@devexpress/dx-core';\nimport { RERENDER_TEMPLATE } from './template';\n\nexport class TemplatePlaceholder extends React.Component {\n constructor(props, context) {\n super(props, context);\n\n this.subscription = {\n [RERENDER_TEMPLATE]: (id) => {\n if (this.template && this.template.id === id) {\n this.forceUpdate();\n }\n },\n };\n }\n getChildContext() {\n return {\n templateHost: {\n templates: () => this.restTemplates,\n params: () => this.params,\n },\n };\n }\n componentWillMount() {\n const { pluginHost } = this.context;\n pluginHost.registerSubscription(this.subscription);\n }\n shouldComponentUpdate(nextProps) {\n const { params } = this.getRenderingData(nextProps);\n return !shallowEqual(params, this.params) || this.props.children !== nextProps.children;\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n pluginHost.unregisterSubscription(this.subscription);\n }\n getRenderingData(props) {\n const { name, params } = props;\n if (name) {\n const { pluginHost } = this.context;\n return {\n params,\n templates: pluginHost.collect(`${name}Template`)\n .filter(template => template.predicate(params))\n .reverse(),\n };\n }\n const { templateHost } = this.context;\n return {\n params: params || templateHost.params(),\n templates: templateHost.templates(),\n };\n }\n render() {\n const { params, templates } = this.getRenderingData(this.props);\n\n this.params = params;\n [this.template] = templates;\n this.restTemplates = templates.slice(1);\n\n let content = null;\n if (this.template) {\n const { children: templateContent } = this.template;\n\n content = templateContent();\n if (content && typeof content === 'function') {\n content = content(params);\n }\n }\n\n const { children: templatePlaceholder } = this.props;\n return templatePlaceholder ? templatePlaceholder(content) : content;\n }\n}\n\nTemplatePlaceholder.propTypes = {\n name: PropTypes.string, // eslint-disable-line react/no-unused-prop-types\n params: PropTypes.object, // eslint-disable-line react/no-unused-prop-types\n children: PropTypes.func,\n};\n\nTemplatePlaceholder.defaultProps = {\n name: undefined,\n params: undefined,\n children: undefined,\n};\n\nTemplatePlaceholder.contextTypes = {\n templateHost: PropTypes.object,\n pluginHost: PropTypes.object.isRequired,\n};\n\nTemplatePlaceholder.childContextTypes = {\n templateHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PluginHost as PluginHostCore } from '@devexpress/dx-core';\nimport { PluginIndexer } from './plugin-indexer';\nimport { Template } from './template';\nimport { TemplatePlaceholder } from './template-placeholder';\n\nexport class PluginHost extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.host = new PluginHostCore();\n }\n getChildContext() {\n return {\n pluginHost: this.host,\n };\n }\n render() {\n const { children } = this.props;\n\n return (\n <div>\n <PluginIndexer>\n <Template name=\"root\" />\n {children}\n </PluginIndexer>\n <TemplatePlaceholder name=\"root\" />\n </div>\n );\n }\n}\n\nPluginHost.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nPluginHost.defaultProps = {\n children: null,\n};\n\nPluginHost.childContextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PluginIndexer } from './plugin-indexer';\n\nexport class PluginContainer extends React.PureComponent {\n componentWillMount() {\n const { pluginHost, positionContext: position } = this.context;\n const { pluginName, dependencies } = this.props;\n this.plugin = {\n position,\n pluginName,\n dependencies,\n container: true,\n };\n pluginHost.registerPlugin(this.plugin);\n }\n componentWillUpdate() {\n this.context.pluginHost.ensureDependencies();\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n pluginHost.unregisterPlugin(this.plugin);\n }\n render() {\n const { children } = this.props;\n return (\n <PluginIndexer>\n {children}\n </PluginIndexer>\n );\n }\n}\n\nPluginContainer.propTypes = {\n children: PropTypes.node.isRequired,\n pluginName: PropTypes.string,\n dependencies: PropTypes.arrayOf(PropTypes.shape({\n pluginName: PropTypes.string,\n optional: PropTypes.bool,\n })),\n};\n\nPluginContainer.defaultProps = {\n pluginName: '',\n dependencies: [],\n};\n\nPluginContainer.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n positionContext: PropTypes.func.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { argumentsShallowEqual } from '@devexpress/dx-core';\nimport { UPDATE_CONNECTION } from './getter';\nimport { getActionExecutor } from '../utils/plugin-helpers';\n\nfunction changeDetector(watch, onChange) {\n let lastArg = null;\n return () => {\n const args = watch();\n if (\n lastArg === null ||\n !argumentsShallowEqual(lastArg, args)\n ) {\n onChange(args);\n }\n lastArg = args;\n };\n}\n\nexport class Watcher extends React.PureComponent {\n constructor(props, context) {\n super(props, context);\n const { pluginHost } = context;\n const getter = getterName => pluginHost.get(`${getterName}Getter`);\n const action = actionName => getActionExecutor(pluginHost, actionName);\n const { watch, onChange } = this.props;\n\n this.detectChanges = changeDetector(\n () => watch(getter),\n args => onChange.apply(null, [action, ...args]),\n );\n\n this.subscription = {\n [UPDATE_CONNECTION]: this.detectChanges,\n };\n }\n componentWillMount() {\n const { pluginHost } = this.context;\n\n this.detectChanges();\n pluginHost.registerSubscription(this.subscription);\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n\n pluginHost.unregisterSubscription(this.subscription);\n }\n render() {\n return null;\n }\n}\nWatcher.propTypes = {\n watch: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n};\nWatcher.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { UPDATE_CONNECTION } from './getter';\nimport {\n isTrackedDependenciesChanged,\n getAvaliableGetters,\n getAvaliableActions,\n} from '../utils/plugin-helpers';\n\nexport class TemplateConnector extends React.Component {\n constructor(props, context) {\n super(props, context);\n\n this.trackedDependencies = {};\n this.subscription = {\n [UPDATE_CONNECTION]: () => this.updateConnection(),\n };\n }\n componentWillMount() {\n const { pluginHost } = this.context;\n pluginHost.registerSubscription(this.subscription);\n }\n componentWillUnmount() {\n const { pluginHost } = this.context;\n pluginHost.unregisterSubscription(this.subscription);\n }\n updateConnection() {\n const { pluginHost } = this.context;\n\n if (isTrackedDependenciesChanged(pluginHost, this.trackedDependencies)) {\n this.forceUpdate();\n }\n }\n render() {\n const { children } = this.props;\n const { pluginHost } = this.context;\n\n const { getters, trackedDependencies } = getAvaliableGetters(pluginHost);\n this.trackedDependencies = trackedDependencies;\n const actions = getAvaliableActions(pluginHost);\n\n return children(getters, actions);\n }\n}\n\nTemplateConnector.propTypes = {\n children: PropTypes.func.isRequired,\n};\n\nTemplateConnector.contextTypes = {\n pluginHost: PropTypes.object.isRequired,\n};\n","const TIMEOUT = 180;\n\nexport class TouchStrategy {\n constructor(delegate) {\n this.delegate = delegate;\n this.touchStartTimeout = null;\n this.dragging = false;\n }\n start(e) {\n const { clientX: x, clientY: y } = e.touches[0];\n this.touchStartTimeout = setTimeout(() => {\n this.delegate.onStart({ x, y });\n this.dragging = true;\n }, TIMEOUT);\n }\n move(e) {\n clearTimeout(this.touchStartTimeout);\n if (this.dragging) {\n const { clientX, clientY } = e.touches[0];\n e.preventDefault();\n this.delegate.onMove({ x: clientX, y: clientY });\n }\n }\n end(e) {\n clearTimeout(this.touchStartTimeout);\n if (this.dragging) {\n const { clientX, clientY } = e.changedTouches[0];\n this.delegate.onEnd({ x: clientX, y: clientY });\n }\n this.mouseInitialOffset = null;\n this.dragging = false;\n }\n}\n","/* globals document:true */\n\nlet gestureCover = null;\nexport const toggleGestureCover = (toggle, cursor) => {\n let style = {\n pointerEvents: toggle ? 'all' : 'none',\n };\n if (toggle && cursor) {\n style = {\n ...style,\n cursor,\n };\n }\n if (!gestureCover) {\n style = {\n ...style,\n position: 'fixed',\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n opacity: 0,\n zIndex: 2147483647,\n };\n\n gestureCover = document.createElement('div');\n document.body.appendChild(gestureCover);\n }\n Object.keys(style).forEach((key) => { gestureCover.style[key] = style[key]; });\n};\n","/* globals window:true document:true */\n\nimport { toggleGestureCover } from './gesture-cover';\n\nconst BOUNDARY = 10;\nconst clamp = (value, min, max) => Math.max(Math.min(value, max), min);\nconst isBoundExceeded = ({ x: initialX, y: initialY }, { x, y }) =>\n clamp(x, initialX - BOUNDARY, initialX + BOUNDARY) !== x ||\n clamp(y, initialY - BOUNDARY, initialY + BOUNDARY) !== y;\n\nexport class MouseStrategy {\n constructor(delegate) {\n this.delegate = delegate;\n this.mouseInitialOffset = null;\n this.dragging = false;\n }\n start(e) {\n const { clientX: x, clientY: y } = e;\n this.e = e;\n this.mouseInitialOffset = { x, y };\n }\n move(e) {\n const { clientX: x, clientY: y } = e;\n let dragStarted = false;\n if (!this.dragging && this.mouseInitialOffset) {\n if (isBoundExceeded(this.mouseInitialOffset, { x, y })) {\n this.delegate.onStart(this.mouseInitialOffset);\n if (window.getSelection) {\n window.getSelection().removeAllRanges();\n }\n dragStarted = true;\n this.dragging = true;\n }\n }\n if (this.dragging) {\n e.preventDefault();\n this.delegate.onMove({ x, y });\n }\n if (dragStarted) {\n const { cursor } = window.getComputedStyle(document.elementFromPoint(x, y));\n toggleGestureCover(true, cursor);\n }\n }\n end(e) {\n if (this.dragging) {\n const { clientX: x, clientY: y } = e;\n toggleGestureCover(false);\n this.delegate.onEnd({ x, y });\n }\n this.mouseInitialOffset = null;\n this.dragging = false;\n }\n}\n","/* globals window:true */\n\nimport { EventEmitter } from '@devexpress/dx-core';\n\nlet eventEmitter = null;\nexport const getSharedEventEmitter = () => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter();\n\n ['mousemove', 'mouseup', 'touchmove', 'touchend', 'touchcancel']\n .forEach(name =>\n window.addEventListener(name, e => eventEmitter.emit([name, e]), { passive: false }));\n }\n return eventEmitter;\n};\n\nlet touchEvents = false;\nexport const touchEventsSupported = () => {\n if (!touchEvents) {\n touchEvents = 'ontouchstart' in window;\n }\n return touchEvents;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n// eslint-disable-next-line camelcase\nimport { unstable_batchedUpdates } from 'react-dom';\nimport { TouchStrategy } from './draggable/touch-strategy';\nimport { MouseStrategy } from './draggable/mouse-strategy';\nimport { getSharedEventEmitter, touchEventsSupported } from './draggable/shared-events';\n\nexport class Draggable extends React.Component {\n constructor(props, context) {\n super(props, context);\n\n const delegate = {\n onStart: ({ x, y }) => {\n const { onStart } = this.props;\n if (!onStart) return;\n unstable_batchedUpdates(() => {\n onStart({ x, y });\n });\n },\n onMove: ({ x, y }) => {\n const { onUpdate } = this.props;\n if (!onUpdate) return;\n unstable_batchedUpdates(() => {\n onUpdate({ x, y });\n });\n },\n onEnd: ({ x, y }) => {\n const { onEnd } = this.props;\n if (!onEnd) return;\n unstable_batchedUpdates(() => {\n onEnd({ x, y });\n });\n },\n };\n\n this.mouseStrategy = new MouseStrategy(delegate);\n this.touchStrategy = new TouchStrategy(delegate);\n\n this.listener = this.listener.bind(this);\n }\n componentDidMount() {\n getSharedEventEmitter().subscribe(this.listener);\n }\n shouldComponentUpdate(nextProps) {\n return nextProps.children !== this.props.children;\n }\n componentWillUnmount() {\n getSharedEventEmitter().unsubscribe(this.listener);\n }\n listener([name, e]) {\n switch (name) {\n case 'mousemove':\n this.mouseStrategy.move(e);\n break;\n case 'mouseup':\n this.mouseStrategy.end(e);\n break;\n case 'touchmove': {\n this.touchStrategy.move(e);\n break;\n }\n case 'touchend':\n case 'touchcancel': {\n this.touchStrategy.end(e);\n break;\n }\n default:\n break;\n }\n }\n render() {\n return React.cloneElement(\n React.Children.only(this.props.children),\n {\n onMouseDown: (e) => {\n if (touchEventsSupported()) return;\n this.mouseStrategy.start(e);\n e.stopPropagation();\n },\n onTouchStart: (e) => {\n this.touchStrategy.start(e);\n e.stopPropagation();\n },\n },\n );\n }\n}\n\nDraggable.propTypes = {\n children: PropTypes.node.isRequired,\n onStart: PropTypes.func,\n onUpdate: PropTypes.func,\n onEnd: PropTypes.func,\n};\n\nDraggable.defaultProps = {\n onStart: undefined,\n onUpdate: undefined,\n onEnd: undefined,\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { EventEmitter } from '@devexpress/dx-core';\n\nclass DragDropContextCore {\n constructor() {\n this.payload = null;\n this.dragEmitter = new EventEmitter();\n }\n start(payload, clientOffset) {\n this.payload = payload;\n this.dragEmitter.emit({ payload: this.payload, clientOffset });\n }\n update(clientOffset) {\n this.dragEmitter.emit({ payload: this.payload, clientOffset });\n }\n end(clientOffset) {\n this.dragEmitter.emit({ payload: this.payload, clientOffset, end: true });\n this.payload = null;\n }\n}\n\nexport class DragDropContext extends React.Component {\n constructor(props) {\n super(props);\n\n this.dragDropContext = new DragDropContextCore();\n\n this.dragDropContext.dragEmitter.subscribe(({ payload, clientOffset, end }) => {\n this.props.onChange({\n payload: end ? null : payload,\n clientOffset: end ? null : clientOffset,\n });\n });\n }\n getChildContext() {\n return {\n dragDropContext: this.dragDropContext,\n };\n }\n shouldComponentUpdate(nextProps) {\n return nextProps.children !== this.props.children;\n }\n render() {\n return this.props.children;\n }\n}\n\nDragDropContext.childContextTypes = {\n dragDropContext: PropTypes.object.isRequired,\n};\n\nDragDropContext.propTypes = {\n children: PropTypes.node.isRequired,\n onChange: PropTypes.func,\n};\n\nDragDropContext.defaultProps = {\n onChange: () => {},\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Draggable } from '../draggable';\n\nexport class DragSource extends React.Component {\n shouldComponentUpdate(nextProps) {\n return nextProps.children !== this.props.children;\n }\n render() {\n const { dragDropContext } = this.context;\n const { onStart, onUpdate, onEnd } = this.props;\n return (\n <Draggable\n onStart={({ x, y }) => {\n dragDropContext.start(this.props.getPayload(), { x, y });\n onStart({ clientOffset: { x, y } });\n }}\n onUpdate={({ x, y }) => {\n dragDropContext.update({ x, y });\n onUpdate({ clientOffset: { x, y } });\n }}\n onEnd={({ x, y }) => {\n dragDropContext.end({ x, y });\n onEnd({ clientOffset: { x, y } });\n }}\n >\n {this.props.children}\n </Draggable>\n );\n }\n}\n\nDragSource.contextTypes = {\n dragDropContext: PropTypes.object.isRequired,\n};\n\nDragSource.propTypes = {\n children: PropTypes.node.isRequired,\n getPayload: PropTypes.func.isRequired,\n onStart: PropTypes.func,\n onUpdate: PropTypes.func,\n onEnd: PropTypes.func,\n};\n\nDragSource.defaultProps = {\n onStart: () => {},\n onUpdate: () => {},\n onEnd: () => {},\n};\n","import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\n\nconst clamp = (value, min, max) => Math.max(Math.min(value, max), min);\n\nexport class DropTarget extends React.Component {\n constructor(props, context) {\n super(props, context);\n\n this.node = null;\n this.isOver = false;\n\n this.handleDrag = this.handleDrag.bind(this);\n }\n componentWillMount() {\n const { dragDropContext: { dragEmitter } } = this.context;\n dragEmitter.subscribe(this.handleDrag);\n }\n shouldComponentUpdate(nextProps) {\n return nextProps.children !== this.props.children;\n }\n componentWillUnmount() {\n const { dragDropContext: { dragEmitter } } = this.context;\n dragEmitter.unsubscribe(this.handleDrag);\n }\n handleDrag({ payload, clientOffset, end }) {\n const {\n left,\n top,\n right,\n bottom,\n } = findDOMNode(this).getBoundingClientRect(); // eslint-disable-line react/no-find-dom-node\n const isOver = clientOffset\n && clamp(clientOffset.x, left, right) === clientOffset.x\n && clamp(clientOffset.y, top, bottom) === clientOffset.y;\n\n if (!this.isOver && isOver) this.props.onEnter({ payload, clientOffset });\n if (this.isOver && isOver) this.props.onOver({ payload, clientOffset });\n if (this.isOver && !isOver) this.props.onLeave({ payload, clientOffset });\n if (isOver && end) this.props.onDrop({ payload, clientOffset });\n\n this.isOver = isOver && !end;\n }\n render() {\n const { children } = this.props;\n return React.Children.only(children);\n }\n}\n\nDropTarget.contextTypes = {\n dragDropContext: PropTypes.object.isRequired,\n};\n\nDropTarget.propTypes = {\n children: PropTypes.node.isRequired,\n onEnter: PropTypes.func,\n onOver: PropTypes.func,\n onLeave: PropTypes.func,\n onDrop: PropTypes.func,\n};\n\nDropTarget.defaultProps = {\n onEnter: () => {},\n onOver: () => {},\n onLeave: () => {},\n onDrop: () => {},\n};\n","import PropTypes from 'prop-types';\n\nexport const TemplateRenderer = ({ template, params, children }) =>\n template(children ? { ...params, children } : params);\n\nTemplateRenderer.propTypes = {\n template: PropTypes.func.isRequired,\n params: PropTypes.object,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n","export const combineTemplates = (userTemplate = () => undefined, defaultTemplate) => (props) => {\n let result = userTemplate(props);\n if (result === undefined) {\n result = defaultTemplate(props);\n }\n return result;\n};\n"],"names":["getActionExecutor","pluginHost","actionToExecuteName","actionsToExecute","collect","slice","reverse","startingPayload","payload","getAvaliableGetters","getters","actions","getAvaliableActions","actionName","newPayload","i","length","result","getGetterValue","get","getterName","trackedDependencies","knownKeys","reduce","acc","defineProperty","isTrackedDependenciesChanged","prevTrackedDependencies","Object","keys","assign","shallowEqual","getAction","UPDATE_CONNECTION","Getter","context","name","props","lastComputed","lastTrackedDependencies","lastResult","plugin","position","original","value","computed","undefined","registerPlugin","broadcast","unregisterPlugin","React","PureComponent","propTypes","PropTypes","func","string","isRequired","any","defaultProps","contextTypes","object","Action","params","action","RERENDER_TEMPLATE","globalTemplateId","Template","id","predicate","children","oneOfType","node","PluginIndexer","positionContext","display","Children","map","child","index","type","childPosition","calculatedPosition","cloneElement","arrayOf","PluginIndexerContext","Component","childContextTypes","TemplatePlaceholder","subscription","template","forceUpdate","restTemplates","registerSubscription","nextProps","getRenderingData","unregisterSubscription","filter","templateHost","templates","content","templateContent","templatePlaceholder","PluginHost","host","PluginHostCore","PluginContainer","pluginName","dependencies","ensureDependencies","shape","bool","changeDetector","watch","onChange","lastArg","args","argumentsShallowEqual","Watcher","getter","detectChanges","apply","TemplateConnector","updateConnection","TIMEOUT","TouchStrategy","delegate","touchStartTimeout","dragging","e","touches","x","clientX","y","clientY","setTimeout","onStart","preventDefault","onMove","changedTouches","onEnd","mouseInitialOffset","gestureCover","toggleGestureCover","toggle","cursor","style","document","createElement","body","appendChild","forEach","key","BOUNDARY","clamp","min","max","Math","isBoundExceeded","initialX","initialY","MouseStrategy","dragStarted","window","getSelection","removeAllRanges","getComputedStyle","elementFromPoint","eventEmitter","getSharedEventEmitter","EventEmitter","addEventListener","emit","passive","touchEvents","touchEventsSupported","Draggable","onUpdate","mouseStrategy","touchStrategy","listener","bind","subscribe","unsubscribe","move","end","only","start","stopPropagation","DragDropContextCore","dragEmitter","clientOffset","DragDropContext","dragDropContext","DragSource","getPayload","update","DropTarget","isOver","handleDrag","findDOMNode","getBoundingClientRect","left","top","right","bottom","onEnter","onOver","onLeave","onDrop","TemplateRenderer","combineTemplates","userTemplate","defaultTemplate"],"mappings":"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"} |