{"version":3,"sources":["../../src/plugin-based/contexts.ts","../../src/plugin-based/plugin-indexer.tsx","../../src/plugin-based/constants.ts","../../src/utils/with-props-from-context.tsx","../../src/plugin-based/plugin.tsx","../../src/plugin-based/template-placeholder.tsx","../../src/plugin-based/plugin-host.tsx","../../src/plugin-based/helpers.ts","../../src/plugin-based/action.tsx","../../src/plugin-based/getter.tsx","../../src/plugin-based/template.tsx","../../src/plugin-based/template-connector.tsx","../../src/draggable/gesture-cover.ts","../../src/draggable/shared-events.ts","../../src/draggable/touch-strategy.ts","../../src/draggable/selection-utils.ts","../../src/draggable/mouse-strategy.ts","../../src/draggable.tsx","../../src/drag-drop/context.ts","../../src/drag-drop/provider.tsx","../../src/drag-drop/source.tsx","../../src/drag-drop/target.tsx","../../src/ref-holder.tsx","../../src/sizer.tsx","../../src/utils/connect-props.tsx","../../src/utils/state-helper.ts","../../src/utils/with-components.tsx","../../src/utils/ref-type.ts","../../../dx-react-grid/src/plugins/internal/table-group-row-columns.tsx","../../../dx-react-grid/src/plugins/internal/grid-core-getters.tsx","../../../dx-react-grid/src/plugins/internal/table-columns-getter.tsx","../../../dx-react-grid/src/plugins/internal/visible-table-columns.tsx","../../../dx-react-grid/src/plugins/internal/ordered-table-columns.tsx","../../../dx-react-grid/src/components/summary/constants.ts","../../src/plugins/grid-exporter-core.tsx","../../src/plugins/helpers.ts","../../src/plugins/grid-exporter.tsx"],"names":["PluginHostContext","createContext","PositionContext","TemplateHostContext","PluginIndexer","_super","_this","apply","arguments","indexes","memoize","index","positionContext","fn","__spread","__extends","prototype","render","children","this","props","createElement","Consumer","Children","map","child","type","childPosition","Provider","key","String","value","PureComponent","PLUGIN_HOST_CONTEXT","POSITION_CONTEXT","TEMPLATE_HOST_CONTEXT","RERENDER_TEMPLATE_EVENT","Symbol","RERENDER_TEMPLATE_SCOPE_EVENT","UPDATE_CONNECTION_EVENT","withContext","Context","name","Component","context","__assign","_a","withHostAndPosition","PluginBase","componentDidMount","pluginHost","position","_d","dependencies","plugin","container","registerPlugin","ensureDependencies","componentDidUpdate","componentWillUnmount","unregisterPlugin","Plugin","getRenderingData","params","templates","collect","filter","template","predicate","reverse","templateHost","TemplatePlaceholderBase","subscription","id","forceUpdate","registerSubscription","shouldComponentUpdate","nextProps","__read","shallowEqual","unregisterSubscription","_b","restTemplates","slice","content","templateContent","templatePlaceholder","TemplatePlaceholder","PluginHost","PluginHostBase","call","host","PluginHost$1","getAvailableGetters","getGetterValue","getterName","get","trackedDependencies","getters","Proxy","target","prop","result","getOwnPropertyDescriptor","configurable","enumerable","undefined","ownKeys","knownKeys","reduce","acc","Object","defineProperty","isTrackedDependenciesChanged","prevTrackedDependencies","keys","assign","getAvailableActions","getAction","actionName","Action","ActionBase","action","nextParams","newParams","nextAction","Getter","GetterBase","lastComputed","lastResult","lastTrackedDependencies","original","computed","actions","broadcast","globalTemplateId","Template","TemplateBase","TemplateConnectorBase","updateConnection","contextType","gestureCover","eventEmitter","TemplateConnector","TouchStrategy","delegate","touchStartTimeout","dragging","isDragging","isWaiting","cancelWaiting","clearTimeout","start","e","touches","x","clientX","y","clientY","setTimeout","onStart","move","preventDefault","onMove","end","changedTouches","onEnd","mouseInitialOffset","toggleGestureCover","toggle","cursor","style","pointerEvents","top","right","left","bottom","opacity","zIndex","document","body","appendChild","forEach","clear","selection","window","getSelection","empty","removeAllRanges","clamp","min","max","Math","MouseStrategy","dragStarted","initialX","initialY","isBoundExceeded","element","elementFromPoint","getComputedStyle","getSharedEventEmitter","EventEmitter","addEventListener","emit","passive","draggingHandled","Draggable","unstable_batchedUpdates","onUpdate","mouseStrategy","touchStrategy","mouseDownListener","bind","touchStartListener","globalListener","subscribe","setupNodeSubscription","unsubscribe","node","findDOMNode","removeEventListener","DragDropContext","DragDropProviderCore","payload","dragEmitter","clientOffset","update","defaultProps","onChange","DragDropProvider","dragDropProvider","defaultProps$1","DragSource","clamp$1","defaultProps$2","onEnter","args","onOver","onLeave","onDrop","DropTarget","isOver","handleDrag","getBoundingClientRect","_c","only","RefHolder","styles","root","triggersRoot","height","width","overflow","visibility","expandTrigger","contractTrigger","minHeight","minWidth","contractNotifier","Sizer","getSize","rootNode","clientHeight","clientWidth","setupListeners","rootRef","createRef","createListeners","scrollTop","size","scrollLeft","expandNotifier","onSizeChange","current","Container","containerComponent","restProps","__rest","ref","connectProps","WrappedComponent","getAdditionalProps","storedAdditionalProps","components","Set","RenderComponent","add","delete","Array","from","values","component","createStateHelper","controlledStateProperties","lastStateUpdater","initialState","lastInitialState","newState","shouldNotify","applyReducer","callback","stateUpdater","prevState","stateChange","state","setState","nextState","propertyName","changeEvent","applyFieldReducer","field","withComponents","Target","exposed","targetComponents","entries","fieldName","componentName","length","makeBoundComponent","shape","instanceOf","Element","TableColumnsWithGrouping","memo","indentColumnWidth","showColumnsWhenGrouped","columnExtensions","columns","tableColumns","grouping","draftGrouping","tableColumnsWithGrouping","columnExtension","columnName","showWhenGrouped","showColumnWhenGroupedGetter","GridCoreGetters","rows","getRowId","getCellValue","rowIdGetter","cellValueGetter","TableColumnsWithDataRowsGetter","tableColumnsComputed","useCallback","tableColumnsWithDataRows","checkTableColumnExtensions","visibleTableColumnsComputed","hiddenColumnNames","visibleTableColumns","VisibleTableColumns","OrderedTableColumns","order","orderedColumns","defaultSummaryMessages","sum","avg","count","maxGroupLevelComputed","maximumGroupLevel","outlineLevelsComputed","groupOutlineLevels","rowsToExportComputed","getCollapsedRows","isGroupRow","rowsToExport","groupTreeComputed","outlineLevels","groupSummaryItems","buildGroupTree","exportSummaryComputed","worksheet","customizeSummaryCell","exportSummaryGetter","getCloseGroupComputed","groupTree","maxGroupLevel","exportSummary","closeGroupGetter","GridExporterCore","performExport","_","dataColumns","getCloseGroup","workbook","totalSummaryItems","finishExport","onSave","customizeCell","customizeHeader","customizeFooter","c","Table","COLUMN_TYPE","exportHeader","dataRowsOffset","lastRow","number","exportRows","closeSheet","propRows","propColumns","columnOrder","groupColumnExtensions","filters","sorting","exportSelected","Workbook","addWorksheet","createWorksheet","summaryExists","useGrouping","useSelection","useFilters","useSorting","useColumnOrder","useColumnVisibility","FilteringState","SortingState","GroupingState","SummaryState","totalItems","groupItems","SelectionState","IntegratedFiltering","IntegratedSorting","IntegratedGrouping","IntegratedSummary","GridExporterBase","isExporting","selectedOnly","exportGrid","options","GridExporter"],"mappings":"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","file":"static/js/main~4cc04822.aad52f48.chunk.js","sourcesContent":["import * as React from 'react';\nimport { PluginHost, PluginPositionFn } from '@devexpress/dx-core';\n\n/** @internal */\nexport interface TemplateHostInterface {\n params(...args): any;\n templates(...args): any;\n}\n\n/** @internal */\nexport const PluginHostContext = React.createContext(null);\n/** @internal */\nexport const PositionContext = React.createContext(() => []);\n/** @internal */\nexport const TemplateHostContext = React.createContext(null);\n","import * as React from 'react';\nimport { PluginPositionFn } from '@devexpress/dx-core';\nimport { PositionContext } from './contexts';\n\ntype MemoizedPluginPositionFn =\n (index: number, positionContext: PluginPositionFn) => PluginPositionFn;\n\ntype PluginIndexerProps = {\n children: React.ReactNode;\n};\n\n/** @internal */\nexport class PluginIndexer extends React.PureComponent {\n indexes: { [index: number]: PluginPositionFn } = {};\n memoize: MemoizedPluginPositionFn = (index, positionContext) => {\n if (this.indexes[index]) return this.indexes[index];\n\n const fn: PluginPositionFn = () => {\n const calculatedPosition = positionContext();\n return [...calculatedPosition, index];\n };\n this.indexes[index] = fn;\n\n return fn;\n }\n render() {\n const { children } = this.props;\n return (\n \n {positionContext => (\n React.Children.map(children, (child: any, index: number) => {\n if (!child || !child.type) return child;\n const childPosition = this.memoize(index, positionContext);\n\n return (\n \n {child}\n \n );\n })\n )}\n \n );\n }\n}\n","/** @internal */\nexport const PLUGIN_HOST_CONTEXT = 'dxcore_pluginHost_context';\n/** @internal */\nexport const POSITION_CONTEXT = 'dxcore_position_context';\n/** @internal */\nexport const TEMPLATE_HOST_CONTEXT = 'dxcore_templateHost_context';\n\n/** @internal */\nexport const RERENDER_TEMPLATE_EVENT = Symbol('rerenderTemplate');\n/** @internal */\nexport const RERENDER_TEMPLATE_SCOPE_EVENT = Symbol('rerenderTemplateScope');\n/** @internal */\nexport const UPDATE_CONNECTION_EVENT = Symbol('updateConnection');\n","import * as React from 'react';\nimport { PluginHostContext, PositionContext } from '../plugin-based/contexts';\nimport { PLUGIN_HOST_CONTEXT, POSITION_CONTEXT } from '../plugin-based/constants';\n\n/** @internal */\nexport const withContext = (Context, name) => Component => props => (\n \n {context => (\n \n )}\n \n);\n\n/** @internal */\nexport const withHostAndPosition = Component => withContext(\n PluginHostContext,\n PLUGIN_HOST_CONTEXT,\n)(withContext(PositionContext, POSITION_CONTEXT)(Component));\n","import * as React from 'react';\nimport { InnerPlugin } from '@devexpress/dx-core';\nimport { PluginIndexer } from './plugin-indexer';\nimport { PLUGIN_HOST_CONTEXT, POSITION_CONTEXT } from './constants';\nimport { withHostAndPosition } from '../utils/with-props-from-context';\nimport { PluginContextProps } from './plugin-context-prop-types';\nimport { IDependency } from '../types';\n\nexport interface PluginProps {\n /** React elements that expose the plugin's state and actions and render the plugin's UI. */\n children: React.ReactNode;\n name?: string;\n dependencies?: IDependency[];\n}\n\n/** @internal */\nexport class PluginBase extends React.PureComponent {\n plugin!: InnerPlugin;\n\n componentDidMount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost, [POSITION_CONTEXT]: position } = this.props;\n const { name, dependencies } = this.props;\n this.plugin = {\n position,\n name,\n dependencies,\n container: true,\n };\n pluginHost.registerPlugin(this.plugin);\n pluginHost.ensureDependencies();\n }\n\n componentDidUpdate() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n pluginHost.ensureDependencies();\n }\n\n componentWillUnmount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n pluginHost.unregisterPlugin(this.plugin);\n }\n\n render() {\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n\nexport const Plugin: React.ComponentType = withHostAndPosition(PluginBase);\n","import * as React from 'react';\nimport { shallowEqual } from '@devexpress/dx-core';\nimport {\n PLUGIN_HOST_CONTEXT, RERENDER_TEMPLATE_EVENT,\n TEMPLATE_HOST_CONTEXT, RERENDER_TEMPLATE_SCOPE_EVENT,\n} from './constants';\nimport { withContext } from '../utils/with-props-from-context';\nimport { PluginHostContext, TemplateHostContext, TemplateHostInterface } from './contexts';\nimport { PluginContextProps } from './plugin-context-prop-types';\nimport { TemplateBase } from './template';\n\nexport interface TemplatePlaceholderProps {\n /** The name of a template to be rendered. */\n name?: string;\n /** An object passed to the related template. */\n params?: object;\n children?: (content) => any;\n}\ninterface TemplateHostContextProps {\n [TEMPLATE_HOST_CONTEXT: string]: TemplateHostInterface;\n}\n\ntype Props = TemplatePlaceholderProps & PluginContextProps & TemplateHostContextProps;\n\nconst getRenderingData = (props: Props): { params?: object, templates: TemplateBase[] } => {\n const { name, params } = props;\n if (name) {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = props;\n return {\n params,\n templates: pluginHost.collect(`${name}Template`)\n .filter(template => template.predicate(params))\n .reverse(),\n };\n }\n const { [TEMPLATE_HOST_CONTEXT]: templateHost } = props;\n return {\n params: params || templateHost.params(),\n templates: templateHost.templates(),\n };\n};\n\nclass TemplatePlaceholderBase extends React.Component {\n subscription = {\n [RERENDER_TEMPLATE_EVENT]: (id: number) => {\n if (this.template && this.template.id === id) {\n this.forceUpdate();\n }\n },\n [RERENDER_TEMPLATE_SCOPE_EVENT]: (name: string) => {\n const { name: propsName } = this.props;\n if (propsName === name) {\n this.forceUpdate();\n }\n },\n };\n template: TemplateBase | null = null;\n params?: object = {};\n\n componentDidMount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n pluginHost.registerSubscription(this.subscription);\n }\n\n shouldComponentUpdate(nextProps: Props) {\n const { params, templates } = getRenderingData(nextProps);\n const { children } = this.props;\n const [template] = templates;\n return children !== nextProps.children || this.template !== template\n || !shallowEqual(this.params, params);\n }\n\n componentWillUnmount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n pluginHost.unregisterSubscription(this.subscription);\n }\n\n render() {\n const { params, templates } = getRenderingData(this.props);\n\n this.params = params;\n [this.template] = templates;\n const restTemplates = templates.slice(1);\n\n let content: ((...args) => any) | null = null;\n if (this.template) {\n const { children: templateContent } = this.template;\n\n content = templateContent() || null;\n if (content && typeof content === 'function') {\n content = content(params);\n }\n }\n\n const { children: templatePlaceholder } = this.props;\n return (\n restTemplates,\n params: () => this.params,\n }}\n >\n {templatePlaceholder ? templatePlaceholder(content) : content}\n \n );\n }\n}\n\n/** A React component to which a related Template is rendered. */\nexport const TemplatePlaceholder: React.ComponentType = withContext(\n PluginHostContext, PLUGIN_HOST_CONTEXT,\n)(\n withContext(TemplateHostContext, TEMPLATE_HOST_CONTEXT)(TemplatePlaceholderBase),\n);\n","import * as React from 'react';\nimport { PluginHost as PluginHostCore } from '@devexpress/dx-core';\nimport { PluginIndexer } from './plugin-indexer';\nimport { TemplatePlaceholder } from './template-placeholder';\nimport { PluginHostContext } from './contexts';\n\nexport interface PluginHostProps {\n /** Plugin React elements. */\n children: React.ReactNode;\n}\n\n/** @internal */\nclass PluginHostBase extends React.PureComponent {\n host: PluginHostCore;\n\n constructor(props: PluginHostProps) {\n super(props);\n\n this.host = new PluginHostCore();\n }\n\n render() {\n const { children } = this.props;\n\n return (\n \n \n {children}\n \n \n \n );\n }\n}\n\nexport const PluginHost: React.ComponentType = PluginHostBase;\n","import { shallowEqual } from '@devexpress/dx-core';\n\n/** @internal */\nexport const getAvailableGetters = (\n pluginHost,\n getGetterValue = getterName => pluginHost.get(`${getterName}Getter`),\n) => {\n const trackedDependencies = {};\n\n let getters;\n if (typeof Proxy !== 'undefined') {\n getters = new Proxy({}, {\n get(target, prop) {\n if (typeof prop !== 'string') return undefined;\n const result = getGetterValue(prop);\n trackedDependencies[prop] = result;\n return result;\n },\n getOwnPropertyDescriptor(target, prop) {\n return {\n configurable: true,\n enumerable: true,\n value: this.get!(target as any, prop, undefined),\n };\n },\n ownKeys() {\n return pluginHost.knownKeys('Getter');\n },\n });\n } else {\n 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\n return { getters, trackedDependencies };\n};\n\n/** @internal */\nexport const isTrackedDependenciesChanged = (\n pluginHost,\n prevTrackedDependencies,\n getGetterValue = getterName => pluginHost.get(`${getterName}Getter`),\n) => {\n const trackedDependencies = Object.keys(prevTrackedDependencies)\n // tslint:disable-next-line: prefer-object-spread\n .reduce((acc, getterName) => Object.assign(acc, {\n [getterName]: getGetterValue(getterName),\n }), {});\n\n return !shallowEqual(prevTrackedDependencies, trackedDependencies);\n};\n\n/** @internal */\nexport const getAvailableActions = (\n pluginHost,\n getAction = actionName => pluginHost.collect(`${actionName}Action`).slice().reverse()[0],\n) => {\n let actions;\n if (typeof Proxy !== 'undefined') {\n actions = new Proxy({}, {\n get(target, prop) {\n if (typeof prop !== 'string') return undefined;\n return getAction(prop);\n },\n getOwnPropertyDescriptor(target, prop) {\n return {\n configurable: true,\n enumerable: true,\n value: this.get!(target as any, prop, undefined),\n };\n },\n ownKeys() {\n return pluginHost.knownKeys('Action');\n },\n });\n } else {\n actions = pluginHost.knownKeys('Action')\n .reduce((acc, actionName) => {\n Object.defineProperty(acc, actionName, {\n get: () => getAction(actionName),\n });\n return acc;\n }, {});\n }\n return actions;\n};\n","import * as React from 'react';\nimport { InnerPlugin } from '@devexpress/dx-core';\nimport {\n getAvailableGetters,\n getAvailableActions,\n} from './helpers';\nimport { PLUGIN_HOST_CONTEXT, POSITION_CONTEXT } from './constants';\nimport { withHostAndPosition } from '../utils/with-props-from-context';\nimport { PluginContextProps } from './plugin-context-prop-types';\nimport { Getters, Actions } from '../types';\n\nexport interface ActionProps {\n /** The action name. */\n name: string;\n /** A function that is called when the action is executed. */\n action: (payload: any, getters: Getters, actions: Actions) => void;\n}\n\nclass ActionBase extends React.PureComponent {\n plugin: InnerPlugin;\n\n constructor(props) {\n super(props);\n\n const { [PLUGIN_HOST_CONTEXT]: pluginHost, [POSITION_CONTEXT]: positionContext } = props;\n const { name } = props;\n\n this.plugin = {\n position: () => positionContext(),\n [`${name}Action`]: (params) => {\n const { action } = this.props;\n const { getters } = getAvailableGetters(\n pluginHost,\n getterName => pluginHost.get(`${getterName}Getter`, this.plugin),\n );\n let nextParams = params;\n const actions = getAvailableActions(\n pluginHost,\n actionName => (actionName === name\n ? (newParams) => { nextParams = newParams; }\n : pluginHost.collect(`${actionName}Action`, this.plugin).slice().reverse()[0]),\n );\n action(params, getters, actions);\n const nextAction = pluginHost.collect(`${name}Action`, this.plugin).slice().reverse()[0];\n if (nextAction) {\n nextAction(nextParams);\n }\n },\n };\n\n pluginHost.registerPlugin(this.plugin);\n }\n\n componentWillUnmount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n\n pluginHost.unregisterPlugin(this.plugin);\n }\n\n render() {\n return null;\n }\n}\n\nexport const Action: React.ComponentType = withHostAndPosition(ActionBase);\n","import * as React from 'react';\nimport {\n isTrackedDependenciesChanged,\n getAvailableGetters,\n getAvailableActions,\n} from './helpers';\nimport { UPDATE_CONNECTION_EVENT, PLUGIN_HOST_CONTEXT, POSITION_CONTEXT } from './constants';\nimport { withHostAndPosition } from '../utils/with-props-from-context';\nimport { InnerPlugin } from '@devexpress/dx-core';\nimport { PluginContextProps } from './plugin-context-prop-types';\nimport { ComputedFn } from '../types';\n\nexport interface GetterProps {\n /** The Getter's name. */\n name: string;\n /** The shared value. */\n value?: any;\n /*** A function that calculates a value depending on the values other Getters expose.\n * The value is computed each time a related Getter's value changes.\n * Applies only if `value` is not defined.\n */\n computed?: ComputedFn;\n}\n\nclass GetterBase extends React.PureComponent {\n plugin: InnerPlugin;\n\n constructor(props) {\n super(props);\n\n const { [PLUGIN_HOST_CONTEXT]: pluginHost, [POSITION_CONTEXT]: positionContext } = props;\n const { name } = props;\n\n let lastComputed;\n let lastTrackedDependencies = {};\n let lastResult;\n\n this.plugin = {\n position: () => positionContext(),\n [`${name}Getter`]: (original) => {\n const { value, computed } = this.props;\n if (computed === 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 } = getAvailableGetters(pluginHost, getGetterValue);\n const actions = getAvailableActions(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\n componentDidUpdate() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n\n pluginHost.broadcast(UPDATE_CONNECTION_EVENT);\n }\n\n componentWillUnmount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n\n pluginHost.unregisterPlugin(this.plugin);\n }\n\n render() {\n return null;\n }\n}\n\nexport const Getter: React.ComponentType = withHostAndPosition(GetterBase);\n","import * as React from 'react';\nimport { InnerPlugin } from '@devexpress/dx-core';\nimport {\n PLUGIN_HOST_CONTEXT, POSITION_CONTEXT,\n RERENDER_TEMPLATE_EVENT, RERENDER_TEMPLATE_SCOPE_EVENT,\n} from './constants';\nimport { withHostAndPosition } from '../utils/with-props-from-context';\nimport { PluginContextProps } from './plugin-context-prop-types';\n\nexport interface TemplateProps {\n // tslint:disable-next-line:max-line-length\n /** The template name. The `root` name is reserved. A template called `root` is rendered as the plugin based component's root. */\n name: string;\n // tslint:disable-next-line:max-line-length\n /** A predicate function that returns a Boolean value that specifies whether the template should be rendered. */\n predicate?: (params: object) => boolean;\n /** A markup or function that returns a markup based on the specified parameters. */\n children: React.ReactNode | ((params: object) => React.ReactNode);\n}\n\nlet globalTemplateId = 0;\n/** @internal */\nexport class TemplateBase extends React.PureComponent {\n id: number;\n plugin: InnerPlugin;\n children: () => any;\n\n constructor(props) {\n super(props);\n\n this.children = () => void 0;\n\n globalTemplateId += 1;\n this.id = globalTemplateId;\n\n const { [PLUGIN_HOST_CONTEXT]: pluginHost, [POSITION_CONTEXT]: positionContext } = props;\n const { name, predicate } = props;\n\n this.plugin = {\n position: () => positionContext(),\n [`${name}Template`]: {\n id: this.id,\n predicate: params => (predicate ? predicate(params) : true),\n children: () => {\n const { children } = this.props;\n return children;\n },\n },\n };\n pluginHost.registerPlugin(this.plugin);\n pluginHost.broadcast(RERENDER_TEMPLATE_SCOPE_EVENT, name);\n }\n\n componentDidUpdate() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n pluginHost.broadcast(RERENDER_TEMPLATE_EVENT, this.id);\n }\n\n componentWillUnmount() {\n const { [PLUGIN_HOST_CONTEXT]: pluginHost } = this.props;\n const { name } = this.props;\n pluginHost.unregisterPlugin(this.plugin);\n pluginHost.broadcast(RERENDER_TEMPLATE_SCOPE_EVENT, name);\n }\n\n render() {\n return null;\n }\n}\n\n/*** A React component that defines a markup that is rendered\n * as the corresponding TemplatePlaceholder.\n */\nexport const Template: React.ComponentType = withHostAndPosition(TemplateBase);\n","import * as React from 'react';\nimport { UPDATE_CONNECTION_EVENT } from './constants';\nimport {\n isTrackedDependenciesChanged,\n getAvailableGetters,\n getAvailableActions,\n} from './helpers';\nimport { PluginHostContext } from './contexts';\nimport { Getters, Actions } from '../types';\n\nexport interface TemplateConnectorProps {\n /** A function that renders a markup using Getters and Actions passed as arguments. */\n children: (\n getters: Getters,\n actions: Actions,\n ) => React.ReactNode;\n}\n\n/** @internal */\nclass TemplateConnectorBase extends React.Component {\n trackedDependencies: { [key: string]: { get: (args) => any }};\n subscription: { [UPDATE_CONNECTION_EVENT: string]: (args) => void };\n\n constructor(props, context) {\n super(props, context);\n\n this.trackedDependencies = {};\n this.subscription = {\n [UPDATE_CONNECTION_EVENT]: () => this.updateConnection(),\n };\n }\n\n componentDidMount() {\n const pluginHost = this.context;\n pluginHost.registerSubscription(this.subscription);\n }\n\n componentWillUnmount() {\n const pluginHost = this.context;\n pluginHost.unregisterSubscription(this.subscription);\n }\n\n updateConnection() {\n const pluginHost = this.context;\n\n if (isTrackedDependenciesChanged(pluginHost, this.trackedDependencies)) {\n this.forceUpdate();\n }\n }\n\n render() {\n const pluginHost = this.context;\n const { children } = this.props;\n\n const { getters, trackedDependencies } = getAvailableGetters(pluginHost);\n this.trackedDependencies = trackedDependencies;\n const actions = getAvailableActions(pluginHost);\n\n return children(getters, actions);\n }\n}\n\nTemplateConnectorBase.contextType = PluginHostContext;\n\n/** A React component that provides access to Getters and Actions within a Template. */\nexport const TemplateConnector: React.ComponentType = TemplateConnectorBase;\n","/* globals document:true */\n\nlet gestureCover: HTMLElement;\n/** @internal */\nexport const toggleGestureCover = (toggle, cursor?) => {\n let style: React.CSSProperties = {\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 */\n\nimport { EventEmitter } from '@devexpress/dx-core';\n\nlet eventEmitter;\n/** @internal */\nexport const getSharedEventEmitter = () => {\n if (!eventEmitter) {\n eventEmitter = new EventEmitter();\n\n ['mousemove', 'mouseup', 'touchmove', 'touchend', 'touchcancel']\n .forEach(name => window.addEventListener(\n name, e => eventEmitter.emit([name, e]), { passive: false },\n ));\n }\n return eventEmitter;\n};\n","const TIMEOUT = 180;\n\n/** @internal */\nexport class TouchStrategy {\n delegate: any;\n touchStartTimeout: any;\n dragging: boolean;\n mouseInitialOffset: null;\n\n constructor(delegate) {\n this.delegate = delegate;\n this.touchStartTimeout = null;\n this.dragging = false;\n }\n\n isDragging() {\n return this.dragging;\n }\n\n isWaiting() {\n return !!this.touchStartTimeout;\n }\n\n cancelWaiting() {\n clearTimeout(this.touchStartTimeout);\n this.touchStartTimeout = undefined;\n }\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\n move(e) {\n this.cancelWaiting();\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\n end(e) {\n this.cancelWaiting();\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 window:true */\n\n/** @internal */\nexport const clear = () => {\n const selection = window.getSelection && window.getSelection();\n\n if (selection) {\n if (selection.empty) {\n selection.empty();\n } else if (selection.removeAllRanges) {\n selection.removeAllRanges();\n }\n }\n};\n","/* globals window:true document:true */\n\nimport { toggleGestureCover } from './gesture-cover';\nimport { clear } from './selection-utils';\n\nconst BOUNDARY = 10;\nconst clamp = (value, min, max) => Math.max(Math.min(value, max), min);\nconst isBoundExceeded = (\n { x: initialX, y: initialY }, { x, y },\n) => clamp(x, initialX - BOUNDARY, initialX + BOUNDARY) !== x\n || clamp(y, initialY - BOUNDARY, initialY + BOUNDARY) !== y;\n\n/** @internal */\nexport class MouseStrategy {\n delegate: any;\n mouseInitialOffset: any;\n dragging: boolean;\n e: any;\n\n constructor(delegate) {\n this.delegate = delegate;\n this.mouseInitialOffset = null;\n this.dragging = false;\n }\n\n isDragging() {\n return this.dragging;\n }\n\n start(e) {\n const { clientX: x, clientY: y } = e;\n this.e = e;\n this.mouseInitialOffset = { x, y };\n }\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 clear();\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 element = document.elementFromPoint(x, y);\n const cursor = element ? window.getComputedStyle(element).cursor : null;\n toggleGestureCover(true, cursor);\n }\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","import * as React from 'react';\nimport { unstable_batchedUpdates, findDOMNode } from 'react-dom';\nimport { TouchStrategy } from './draggable/touch-strategy';\nimport { MouseStrategy } from './draggable/mouse-strategy';\nimport { getSharedEventEmitter } from './draggable/shared-events';\nimport { clear } from './draggable/selection-utils';\n\nconst draggingHandled = Symbol('draggingHandled');\n\ntype DraggableProps = {\n onStart?: (args) => void;\n onUpdate?: (args) => void;\n onEnd?: (args) => void;\n};\n\n/** @internal */\nexport class Draggable extends React.Component {\n mouseStrategy: MouseStrategy;\n touchStrategy: TouchStrategy;\n\n constructor(props, context) {\n super(props, context);\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.mouseDownListener = this.mouseDownListener.bind(this);\n this.touchStartListener = this.touchStartListener.bind(this);\n this.globalListener = this.globalListener.bind(this);\n }\n\n componentDidMount() {\n getSharedEventEmitter().subscribe(this.globalListener);\n this.setupNodeSubscription();\n }\n\n shouldComponentUpdate(nextProps) {\n const { children } = this.props;\n return nextProps.children !== children;\n }\n\n componentDidUpdate() {\n this.setupNodeSubscription();\n }\n\n componentWillUnmount() {\n getSharedEventEmitter().unsubscribe(this.globalListener);\n }\n\n setupNodeSubscription() {\n const node = findDOMNode(this) as Element;\n if (!node) return;\n node.removeEventListener('mousedown', this.mouseDownListener);\n node.removeEventListener('touchstart', this.touchStartListener);\n node.addEventListener('mousedown', this.mouseDownListener);\n node.addEventListener('touchstart', this.touchStartListener, { passive: true });\n }\n\n mouseDownListener(e) {\n if (this.touchStrategy.isWaiting() || e[draggingHandled]) return;\n e.preventDefault();\n this.mouseStrategy.start(e);\n e[draggingHandled] = true;\n }\n\n touchStartListener(e) {\n if (e[draggingHandled]) return;\n this.touchStrategy.start(e);\n e[draggingHandled] = true;\n }\n\n globalListener([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 if (this.mouseStrategy.isDragging() || this.touchStrategy.isDragging()) {\n clear();\n }\n }\n\n render() {\n const { children } = this.props;\n return children;\n }\n}\n","import * as React from 'react';\nimport { DragDropProviderCore } from './provider';\n\n/** @internal */\nexport const DragDropContext = React.createContext(null);\n","import * as React from 'react';\n\nimport { EventEmitter } from '@devexpress/dx-core';\nimport { DragDropContext } from './context';\n\n/** @internal */\nexport class DragDropProviderCore {\n payload: null;\n dragEmitter: EventEmitter;\n\n constructor() {\n this.payload = null;\n this.dragEmitter = new EventEmitter();\n }\n\n start(payload, clientOffset) {\n this.payload = payload;\n this.dragEmitter.emit({ clientOffset, payload: this.payload });\n }\n\n update(clientOffset) {\n this.dragEmitter.emit({ clientOffset, payload: this.payload });\n }\n\n end(clientOffset) {\n this.dragEmitter.emit({ clientOffset, payload: this.payload, end: true });\n this.payload = null;\n }\n}\n\nconst defaultProps = {\n onChange: ({ payload, clientOffset }) => {},\n};\ntype DragDropProviderDefaultProps = Readonly;\ntype DragDropProviderProps = Partial;\n\n/** @internal */\n// tslint:disable-next-line: max-classes-per-file\nexport class DragDropProvider extends React.Component<\n DragDropProviderProps & DragDropProviderDefaultProps\n> {\n static defaultProps = defaultProps;\n dragDropProvider: DragDropProviderCore;\n\n constructor(props) {\n super(props);\n const { onChange } = this.props;\n\n this.dragDropProvider = new DragDropProviderCore();\n\n this.dragDropProvider.dragEmitter.subscribe(({ payload, clientOffset, end }) => {\n onChange({\n payload: end ? null : payload,\n clientOffset: end ? null : clientOffset,\n });\n });\n }\n\n shouldComponentUpdate(nextProps) {\n const { children } = this.props;\n return nextProps.children !== children;\n }\n\n render() {\n const { children } = this.props;\n return (\n \n {children}\n \n );\n }\n}\n","import * as React from 'react';\nimport { DragDropContext } from './context';\nimport { Draggable } from '../draggable';\n\nconst defaultProps = {\n onStart: ({ clientOffset }) => {},\n onUpdate: ({ clientOffset }) => {},\n onEnd: ({ clientOffset }) => {},\n};\ntype DragSourceDefaultProps = Readonly;\ntype DragSourceProps = {\n payload: any;\n} & Partial;\n\n/** @internal */\nexport class DragSource extends React.Component {\n static defaultProps = defaultProps;\n\n shouldComponentUpdate(nextProps) {\n const { children } = this.props;\n return nextProps.children !== children;\n }\n\n render() {\n const dragDropProvider = this.context;\n const {\n onStart, onUpdate, onEnd, payload, children,\n } = this.props;\n return (\n {\n dragDropProvider.start(payload, { x, y });\n onStart({ clientOffset: { x, y } });\n }}\n onUpdate={({ x, y }) => {\n dragDropProvider.update({ x, y });\n onUpdate({ clientOffset: { x, y } });\n }}\n onEnd={({ x, y }) => {\n dragDropProvider.end({ x, y });\n onEnd({ clientOffset: { x, y } });\n }}\n >\n {children}\n \n );\n }\n}\nDragSource.contextType = DragDropContext;\n","import * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { DragDropContext } from './context';\n\nconst clamp = (value, min, max) => Math.max(Math.min(value, max), min);\n\nconst defaultProps = {\n onEnter: (args) => {},\n onOver: (args) => {},\n onLeave: (args) => {},\n onDrop: (args) => {},\n};\ntype DropTargetDefaultProps = Readonly;\n\n/** @internal */\nexport class DropTarget extends React.Component {\n static defaultProps = defaultProps;\n isOver: boolean;\n\n constructor(props) {\n super(props);\n\n this.isOver = false;\n\n this.handleDrag = this.handleDrag.bind(this);\n }\n\n componentDidMount() {\n const { dragEmitter } = this.context;\n dragEmitter.subscribe(this.handleDrag);\n }\n\n shouldComponentUpdate(nextProps) {\n const { children } = this.props;\n return nextProps.children !== children;\n }\n\n componentWillUnmount() {\n const { dragEmitter } = this.context;\n dragEmitter.unsubscribe(this.handleDrag);\n }\n\n handleDrag({ payload, clientOffset, end }) {\n const {\n left,\n top,\n right,\n bottom,\n } = (findDOMNode(this) as Element).getBoundingClientRect();\n const {\n onDrop, onEnter, onLeave, onOver,\n } = this.props;\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) onEnter({ payload, clientOffset });\n if (this.isOver && isOver) onOver({ payload, clientOffset });\n if (this.isOver && !isOver) onLeave({ payload, clientOffset });\n if (isOver && end) onDrop({ payload, clientOffset });\n\n this.isOver = isOver && !end;\n }\n\n render() {\n const { children } = this.props;\n return React.Children.only(children);\n }\n}\n\nDropTarget.contextType = DragDropContext;\n","import * as React from 'react';\n\n/** @internal */\nexport class RefHolder extends React.PureComponent {\n render() {\n const { children } = this.props;\n return children;\n }\n}\n","/* globals document:true */\n\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport { RefHolder } from './ref-holder';\nimport { SizerProps, Size } from './types';\n\nconst styles = {\n root: {\n position: 'relative',\n },\n triggersRoot: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n overflow: 'hidden',\n zIndex: -1,\n visibility: 'hidden',\n opacity: 0,\n },\n expandTrigger: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n overflow: 'auto',\n },\n contractTrigger: {\n position: 'absolute',\n top: 0,\n left: 0,\n height: '100%',\n width: '100%',\n overflow: 'auto',\n minHeight: '1px',\n minWidth: '1px',\n },\n contractNotifier: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '200%',\n height: '200%',\n minHeight: '2px',\n minWidth: '2px',\n },\n};\n\n/** @internal */\nexport class Sizer extends React.PureComponent {\n static defaultProps = {\n containerComponent: 'div',\n };\n\n rootRef: React.RefObject;\n // Though there properties cannot be assigned in constructor\n // they will be assigned when component is mount.\n rootNode!: HTMLElement;\n triggersRoot!: HTMLDivElement;\n expandTrigger!: HTMLDivElement;\n expandNotifier!: HTMLDivElement;\n contractTrigger!: HTMLDivElement;\n contractNotifier!: HTMLDivElement;\n\n constructor(props) {\n super(props);\n\n this.setupListeners = this.setupListeners.bind(this);\n this.rootRef = React.createRef();\n }\n\n componentDidMount() {\n this.createListeners();\n this.setupListeners();\n }\n\n componentDidUpdate() {\n // We can scroll the VirtualTable manually only by changing\n // containter's (rootNode) scrollTop property.\n // Viewport changes its own properties automatically.\n const { scrollTop } = this.props;\n if (scrollTop! > -1) {\n this.rootNode.scrollTop = scrollTop!;\n }\n }\n\n // There is no need to remove listeners as divs are removed from DOM when component is unmount.\n // But there is a little chance that component unmounting and 'scroll' event happen roughly\n // at the same time so that `setupListeners` is called after component is unmount.\n componentWillUnmount() {\n this.expandTrigger.removeEventListener('scroll', this.setupListeners);\n this.contractTrigger.removeEventListener('scroll', this.setupListeners);\n }\n\n getSize = (): Size => ({ height: this.rootNode.clientHeight, width: this.rootNode.clientWidth });\n\n setupListeners() {\n const size = this.getSize();\n const { width, height } = size;\n\n this.contractTrigger.scrollTop = height;\n this.contractTrigger.scrollLeft = width;\n\n const scrollOffset = 2;\n this.expandNotifier.style.width = `${width + scrollOffset}px`;\n this.expandNotifier.style.height = `${height + scrollOffset}px`;\n this.expandTrigger.scrollTop = scrollOffset;\n this.expandTrigger.scrollLeft = scrollOffset;\n\n const { onSizeChange } = this.props;\n onSizeChange(size);\n }\n\n createListeners() {\n this.rootNode = findDOMNode(this.rootRef.current!) as HTMLElement;\n\n this.triggersRoot = document.createElement('div');\n Object.assign(this.triggersRoot.style, styles.triggersRoot);\n this.rootNode.appendChild(this.triggersRoot);\n\n this.expandTrigger = document.createElement('div');\n Object.assign(this.expandTrigger.style, styles.expandTrigger);\n this.expandTrigger.addEventListener('scroll', this.setupListeners);\n this.triggersRoot.appendChild(this.expandTrigger);\n\n this.expandNotifier = document.createElement('div');\n this.expandTrigger.appendChild(this.expandNotifier);\n\n this.contractTrigger = document.createElement('div');\n Object.assign(this.contractTrigger.style, styles.contractTrigger);\n this.contractTrigger.addEventListener('scroll', this.setupListeners);\n this.triggersRoot.appendChild(this.contractTrigger);\n\n this.contractNotifier = document.createElement('div');\n Object.assign(this.contractNotifier.style, styles.contractNotifier);\n this.contractTrigger.appendChild(this.contractNotifier);\n }\n\n render() {\n const {\n onSizeChange,\n containerComponent: Container,\n style,\n scrollTop,\n ...restProps\n } = this.props;\n\n return (\n \n \n \n );\n }\n}\n","import * as React from 'react';\n\ntype RenderComponentProps = {\n update: () => void;\n};\n\n/*** A function that creates a new component that allows you to pass additional properties\n * to the wrapped component.\n */\nexport const connectProps = (\n WrappedComponent: React.ComponentType, getAdditionalProps: () => object,\n): React.ComponentType & { update(): void } => {\n let storedAdditionalProps = getAdditionalProps();\n const components = new Set();\n class RenderComponent extends React.PureComponent {\n static update: () => void;\n\n componentDidMount() {\n components.add(this);\n }\n\n componentWillUnmount() {\n components.delete(this);\n }\n\n render() {\n return ;\n }\n }\n RenderComponent.update = () => {\n storedAdditionalProps = getAdditionalProps();\n Array.from(components.values()).forEach(component => component.forceUpdate());\n };\n return RenderComponent;\n};\n","import { CreateStateHelperFn } from '../types';\n\n/** @internal */\nexport const createStateHelper: CreateStateHelperFn = (\n component, controlledStateProperties = {},\n) => {\n const notifyStateChange = (nextState, state) => {\n Object.keys(controlledStateProperties).forEach((propertyName) => {\n const changeEvent = controlledStateProperties[propertyName]();\n if (changeEvent && nextState[propertyName] !== state[propertyName]) {\n changeEvent(nextState[propertyName]);\n }\n });\n };\n\n let lastStateUpdater: (state) => void;\n let initialState = null;\n let lastInitialState = null;\n let newState = null;\n let shouldNotify = false;\n\n const applyReducer = (reduce, payload?, callback?) => {\n const stateUpdater = (prevState) => {\n if (initialState === null) {\n initialState = prevState;\n }\n const stateChange = reduce({ ...prevState }, payload);\n const state = { ...prevState, ...stateChange };\n\n if (typeof callback === 'function') {\n callback(state, prevState);\n }\n if (stateUpdater === lastStateUpdater) {\n if (lastInitialState !== initialState) {\n newState = state;\n if (!shouldNotify) {\n lastInitialState = initialState;\n shouldNotify = true;\n }\n }\n initialState = null;\n }\n\n return stateChange;\n };\n lastStateUpdater = stateUpdater;\n\n component.setState(stateUpdater, () => {\n if (shouldNotify) {\n notifyStateChange(newState, lastInitialState);\n shouldNotify = false;\n }\n });\n };\n const applyFieldReducer = (field, reduce, payload) => {\n applyReducer(state => ({\n [field]: reduce(state[field], payload),\n }));\n };\n\n return {\n applyReducer,\n applyFieldReducer,\n };\n};\n","import * as React from 'react';\n\nconst makeBoundComponent = (Target, components, exposed: object) => {\n class Component extends React.PureComponent {\n static components: PluginComponents;\n\n render() {\n return ;\n }\n }\n Component.components = Target.components;\n Object.assign(Component, exposed);\n return Component;\n};\n\nexport type PluginComponents = { [key: string]: string };\nexport interface ITargetComponent {\n components: PluginComponents;\n}\n// type ITargetComponentStatic = new() => ITargetComponent;\n\n/** @internal */\nexport const withComponents = components => (Target) => {\n const props = {};\n const exposed = {};\n const targetComponents = (Target as ITargetComponent).components;\n\n Object.entries(targetComponents).forEach(([fieldName, componentName]: [string, string]) => {\n const component = components[componentName];\n if (component && component !== Target[componentName]) {\n props[fieldName] = component;\n }\n exposed[componentName] = component || Target[componentName];\n });\n\n return Object.keys(props).length > 0\n ? makeBoundComponent(Target, props, exposed) : Target;\n};\n","/* globals Element */\nimport * as PropTypes from 'prop-types';\n\n/** @internal */\nexport const RefType = PropTypes.shape({\n current: PropTypes.instanceOf((typeof Element !== 'undefined') ? Element : Object),\n});\n","import * as React from 'react';\nimport {\n Getter, Plugin, Getters,\n} from '@devexpress/dx-react-core';\nimport { tableColumnsWithGrouping } from '@devexpress/dx-grid-core';\nimport { ShowColumnWhenGroupedGetterFn, TableColumnsWithGroupingProps } from '../../types';\n\nconst showColumnWhenGroupedGetter: ShowColumnWhenGroupedGetterFn = (\n showColumnsWhenGrouped, columnExtensions = [],\n) => {\n const map = columnExtensions.reduce((acc, columnExtension) => {\n acc[columnExtension.columnName] = columnExtension.showWhenGrouped;\n return acc;\n }, {});\n\n return columnName => map[columnName] || showColumnsWhenGrouped;\n};\n\n/** @internal */\nexport const TableColumnsWithGrouping: React.FunctionComponent<\n TableColumnsWithGroupingProps\n> = React.memo(({\n indentColumnWidth, showColumnsWhenGrouped, columnExtensions,\n}) => {\n const tableColumnsComputed = ({\n columns, tableColumns, grouping, draftGrouping,\n }: Getters) => tableColumnsWithGrouping(\n columns,\n tableColumns,\n grouping,\n draftGrouping,\n indentColumnWidth!,\n showColumnWhenGroupedGetter(showColumnsWhenGrouped!, columnExtensions),\n );\n\n return (\n \n \n \n );\n});\n\nTableColumnsWithGrouping.defaultProps = {\n indentColumnWidth: 0,\n};\n","import * as React from 'react';\nimport {\n Getter, Plugin,\n} from '@devexpress/dx-react-core';\nimport { rowIdGetter, cellValueGetter } from '@devexpress/dx-grid-core';\nimport { GridCoreGettersProps } from '../../types';\n\nexport const GridCoreGetters: React.FunctionComponent = React.memo(({\n rows,\n columns,\n getRowId,\n getCellValue,\n}) => (\n \n \n \n \n \n \n));\n","import * as React from 'react';\nimport {\n Getter, Plugin,\n} from '@devexpress/dx-react-core';\nimport { tableColumnsWithDataRows, checkTableColumnExtensions } from '@devexpress/dx-grid-core';\nimport { Table } from '../../types';\n\nexport const TableColumnsWithDataRowsGetter: React.FunctionComponent<\n { columnExtensions?: Table.ColumnExtension[]; }\n> = React.memo(({ columnExtensions }) => {\n const tableColumnsComputed = React.useCallback(\n ({ columns }) => (\n tableColumnsWithDataRows(columns, columnExtensions!)\n ), [columnExtensions]);\n checkTableColumnExtensions(columnExtensions!);\n\n return (\n \n \n \n );\n});\n","import * as React from 'react';\nimport {\n Getter,\n Plugin,\n Getters,\n} from '@devexpress/dx-react-core';\nimport {\n visibleTableColumns,\n} from '@devexpress/dx-grid-core';\nimport { VisibleTableColumnsProps } from '../../types';\n\nconst visibleTableColumnsComputed = (\n { tableColumns, hiddenColumnNames }: Getters,\n) => visibleTableColumns(tableColumns, hiddenColumnNames);\n\n/** @internal */\nexport const VisibleTableColumns: React.FunctionComponent<\n VisibleTableColumnsProps\n> = React.memo(({\n hiddenColumnNames,\n}) => (\n \n \n \n \n));\n\nVisibleTableColumns.defaultProps = {\n hiddenColumnNames: [],\n};\n","import * as React from 'react';\nimport {\n Getter,\n Plugin,\n Getters,\n} from '@devexpress/dx-react-core';\nimport {\n orderedColumns,\n} from '@devexpress/dx-grid-core';\nimport { OrderedTableColumnsProps } from '../../types';\n\n/** @internal */\nexport const OrderedTableColumns: React.FunctionComponent<\n OrderedTableColumnsProps\n> = ({\n order,\n}) => {\n const columnsComputed = (\n { tableColumns }: Getters,\n ) => orderedColumns(tableColumns, order!);\n\n return (\n \n \n \n );\n};\n\nOrderedTableColumns.defaultProps = {\n order: [],\n};\n","export const defaultSummaryMessages = {\n sum: 'Sum',\n min: 'Min',\n max: 'Max',\n avg: 'Avg',\n count: 'Count',\n};\n","import * as React from 'react';\n\nimport {\n Action, Actions, Plugin, Getter, Template, TemplateConnector, Getters,\n} from '@devexpress/dx-react-core';\nimport {\n exportHeader, exportRows, closeGroupGetter, closeSheet, groupOutlineLevels, rowsToExport,\n buildGroupTree, exportSummaryGetter, maximumGroupLevel,\n} from '@devexpress/dx-grid-core';\nimport {\n IntegratedGrouping, GroupingState, SummaryState, IntegratedSummary, Table, SelectionState,\n FilteringState, IntegratedFiltering, SortingState, IntegratedSorting,\n} from '@devexpress/dx-react-grid';\n\n/* tslint:disable no-submodule-imports */\nimport {\n TableColumnsWithGrouping, TableColumnsWithDataRowsGetter,\n VisibleTableColumns, OrderedTableColumns, GridCoreGetters,\n} from '../../../dx-react-grid/src/plugins/internal';\nimport {\n defaultSummaryMessages,\n} from '../../../dx-react-grid/src/components/summary/constants';\n/* tslint:enable no-submodule-imports */\nimport { createWorkbook, createWorksheet } from './helpers';\nimport { ExporterProps } from '../types';\n\nconst maxGroupLevelComputed = ({ grouping }: Getters) => maximumGroupLevel(grouping);\nconst outlineLevelsComputed = ({ grouping }: Getters) => groupOutlineLevels(grouping);\nconst rowsToExportComputed = ({\n rows, selection, grouping, getCollapsedRows, getRowId, isGroupRow,\n}: Getters) => rowsToExport(\n rows, selection, grouping, getCollapsedRows, getRowId, isGroupRow,\n);\nconst groupTreeComputed = ({\n rows, outlineLevels, grouping, isGroupRow, groupSummaryItems,\n}: Getters) => buildGroupTree(\n rows, outlineLevels, grouping, isGroupRow, groupSummaryItems,\n);\nconst exportSummaryComputed = ({\n worksheet, tableColumns, customizeSummaryCell,\n}: Getters) => exportSummaryGetter(\n worksheet, tableColumns, customizeSummaryCell, defaultSummaryMessages,\n);\nconst getCloseGroupComputed = ({\n worksheet, groupTree, outlineLevels, maxGroupLevel, groupSummaryItems, exportSummary,\n}: Getters) => closeGroupGetter(\n worksheet, groupTree, outlineLevels, maxGroupLevel, groupSummaryItems, exportSummary,\n);\n\nexport class GridExporterCore extends React.PureComponent {\n static defaultProps = {\n grouping: [],\n customizeHeader: () => {},\n customizeFooter: () => {},\n customizeCell: () => {},\n customizeSummaryCell: () => {},\n };\n\n performExport = (_: any,\n {\n tableColumns, columns: dataColumns, exportSummary, getCloseGroup,\n getCellValue, isGroupRow, rows, worksheet, workbook, maxGroupLevel,\n totalSummaryItems, outlineLevels, groupTree,\n }: Getters,\n {\n finishExport,\n }: Actions) => {\n const {\n onSave, customizeCell, customizeHeader, customizeFooter,\n } = this.props;\n const columns = tableColumns.filter(c => c.type === Table.COLUMN_TYPE);\n\n customizeHeader!(worksheet);\n\n exportHeader(worksheet, columns);\n const dataRowsOffset = worksheet.lastRow?.number + 1;\n\n exportRows(\n worksheet, rows, dataColumns, columns, isGroupRow, outlineLevels, dataRowsOffset,\n getCellValue, getCloseGroup, customizeCell!,\n );\n\n closeSheet(\n worksheet, groupTree, maxGroupLevel, dataRowsOffset, totalSummaryItems, exportSummary,\n );\n\n customizeFooter!(worksheet);\n\n onSave(workbook);\n\n finishExport();\n }\n\n render() {\n const {\n rows: propRows, columns: propColumns, getCellValue, getRowId, columnExtensions,\n columnOrder, hiddenColumnNames, grouping, showColumnsWhenGrouped, groupColumnExtensions,\n filters, sorting, selection, totalSummaryItems, groupSummaryItems, customizeSummaryCell,\n exportSelected,\n } = this.props;\n\n const workbook = createWorkbook();\n const worksheet = createWorksheet(workbook);\n\n const summaryExists = totalSummaryItems || groupSummaryItems;\n const useGrouping = !!grouping?.length;\n const useSelection = exportSelected && !!selection;\n const useFilters = !!filters;\n const useSorting = !!sorting;\n const useColumnOrder = !!columnOrder;\n const useColumnVisibility = !!hiddenColumnNames;\n\n return (\n \n \n \n {useColumnVisibility && (\n \n )}\n {useColumnOrder && (\n \n )}\n \n\n {/* State */}\n {useFilters && (\n \n )}\n {useSorting && (\n \n )}\n {useGrouping && (\n \n )}\n {summaryExists && (\n \n )}\n {useSelection && (\n \n )}\n\n {/* Integrated */}\n {useGrouping && (\n \n )}\n {useFilters && (\n \n )}\n {useSorting && (\n \n )}\n {useGrouping && (\n \n )}\n {summaryExists && (\n \n )}\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n );\n }\n}\n","/* tslint:disable no-submodule-imports */\nimport * as Excel from 'exceljs/dist/exceljs.min.js';\n/* tslint:enable no-submodule-imports */\n\nexport const createWorkbook = () => new Excel.Workbook();\n\nexport const createWorksheet = (workbook: Excel.Workbook) => workbook.addWorksheet('Main');\n","import * as React from 'react';\nimport {\n Action, Plugin, PluginHost,\n} from '@devexpress/dx-react-core';\nimport { GridExporterCore } from './grid-exporter-core';\nimport { ExporterProps, ExporterState } from '../types/export/exporter.types';\n\nclass GridExporterBase extends React.PureComponent {\n state = {\n isExporting: false,\n selectedOnly: false,\n };\n\n exportGrid = (options) => {\n this.setState({\n isExporting: true,\n selectedOnly: false,\n ...options,\n });\n }\n\n finishExport = () => {\n // NOTE: we can't update state during the render phase\n window.setTimeout(() => {\n this.setState({\n isExporting: false,\n selectedOnly: false,\n });\n }, 0);\n }\n\n render() {\n const { isExporting, selectedOnly } = this.state;\n if (!isExporting) return null;\n\n return (\n \n \n \n \n \n \n );\n }\n}\n\nexport const GridExporter: React.ComponentType = GridExporterBase;\n"],"sourceRoot":""}