{"version":3,"file":"static/js/904.4769f989.chunk.js","mappings":"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","sources":["../node_modules/@mui/utils/esm/usePreviousProps/usePreviousProps.js","../node_modules/@mui/material/useAutocomplete/useAutocomplete.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js","../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../node_modules/@mui/material/Autocomplete/Autocomplete.js","../node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","../node_modules/@mui/material/ToggleButton/ToggleButton.js","../node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","../node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","../node_modules/@mui/utils/esm/getValidReactChildren/getValidReactChildren.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupButtonContext.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-virtualized/node_modules/clsx/dist/clsx.m.js","../node_modules/react-virtualized/dist/es/Grid/utils/calculateSizeAndPositionDataAndUpdateScrollOffset.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-virtualized/dist/es/Grid/types.js","../node_modules/react-virtualized/dist/es/Grid/utils/CellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/Grid/utils/maxElementSize.js","../node_modules/react-virtualized/dist/es/Grid/utils/ScalingCellSizeAndPositionManager.js","../node_modules/react-virtualized/dist/es/utils/createCallbackMemoizer.js","../node_modules/react-virtualized/dist/es/Grid/utils/updateScrollIndexHelper.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-virtualized/dist/es/utils/animationFrame.js","../node_modules/react-virtualized/dist/es/Grid/Grid.js","../node_modules/react-virtualized/dist/es/utils/requestAnimationTimeout.js","../node_modules/react-virtualized/dist/es/Grid/defaultOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/Grid/defaultCellRangeRenderer.js","../node_modules/react-virtualized/dist/es/Grid/accessibilityOverscanIndicesGetter.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/types.js","../node_modules/react-virtualized/dist/es/ArrowKeyStepper/ArrowKeyStepper.js","../node_modules/react-virtualized/dist/es/vendor/detectElementResize.js","../node_modules/react-virtualized/dist/es/AutoSizer/AutoSizer.js","../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurer.js","../node_modules/react-virtualized/dist/es/CellMeasurer/CellMeasurerCache.js","../node_modules/react-virtualized/dist/es/Collection/CollectionView.js","../node_modules/react-virtualized/dist/es/Collection/types.js","../node_modules/react-virtualized/dist/es/Collection/Section.js","../node_modules/react-virtualized/dist/es/Collection/SectionManager.js","../node_modules/react-virtualized/dist/es/utils/getUpdatedOffsetForIndex.js","../node_modules/react-virtualized/dist/es/Collection/Collection.js","../node_modules/react-virtualized/dist/es/Collection/utils/calculateSizeAndPositionData.js","../node_modules/react-virtualized/dist/es/ColumnSizer/ColumnSizer.js","../node_modules/react-virtualized/dist/es/InfiniteLoader/InfiniteLoader.js","../node_modules/react-virtualized/dist/es/List/types.js","../node_modules/react-virtualized/dist/es/List/List.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-virtualized/dist/es/vendor/binarySearchBounds.js","../node_modules/react-virtualized/dist/es/vendor/intervalTree.js","../node_modules/react-virtualized/dist/es/Masonry/PositionCache.js","../node_modules/react-virtualized/dist/es/Masonry/Masonry.js","../node_modules/react-virtualized/dist/es/MultiGrid/CellMeasurerCacheDecorator.js","../node_modules/react-virtualized/dist/es/MultiGrid/MultiGrid.js","../node_modules/react-virtualized/dist/es/ScrollSync/ScrollSync.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/SortDirection.js","../node_modules/react-virtualized/dist/es/Table/SortIndicator.js","../node_modules/react-virtualized/dist/es/Table/defaultHeaderRenderer.js","../node_modules/react-virtualized/dist/es/Table/defaultRowRenderer.js","../node_modules/react-virtualized/dist/es/Table/Column.js","../node_modules/react-virtualized/dist/es/Table/Table.js","../node_modules/react-virtualized/dist/es/Table/defaultCellDataGetter.js","../node_modules/react-virtualized/dist/es/Table/defaultCellRenderer.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/onScroll.js","../node_modules/react-virtualized/dist/es/WindowScroller/utils/dimensions.js","../node_modules/react-virtualized/dist/es/WindowScroller/WindowScroller.js"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePreviousProps;","'use client';\n\n/* eslint-disable no-constant-condition */\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId, usePreviousProps } from '@mui/utils';\n\n// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\nfunction stripDiacritics(string) {\n return string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n const filteredOptions = !input ? options : options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.startsWith(input) : candidate.includes(input);\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n}\nconst defaultFilterOptions = createFilterOptions();\n\n// Number of options to jump in list box when `Page Up` and `Page Down` keys are used.\nconst pageSize = 5;\nconst defaultIsActiveElementInListbox = listboxRef => listboxRef.current !== null && listboxRef.current.parentElement?.contains(document.activeElement);\nconst MULTIPLE_DEFAULT_VALUE = [];\nfunction useAutocomplete(props) {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_isActiveElementInListbox = defaultIsActiveElementInListbox,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_classNamePrefix = 'Mui',\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? MULTIPLE_DEFAULT_VALUE : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp = option => option.label ?? option,\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n return String(optionLabel);\n }\n return optionLabel;\n };\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue, reason) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n let newInputValue;\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n if (inputValue === newInputValue) {\n return;\n }\n setInputValueState(newInputValue);\n if (onInputChange) {\n onInputChange(event, newInputValue, reason);\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n return true;\n }),\n // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const previousProps = usePreviousProps({\n filteredOptions,\n value,\n inputValue\n });\n React.useEffect(() => {\n const valueChange = value !== previousProps.value;\n if (focused && !valueChange) {\n return;\n }\n\n // Only reset the input's value when freeSolo if the component's value changes.\n if (freeSolo && !valueChange) {\n return;\n }\n resetInputValue(null, value, 'reset');\n }, [value, resetInputValue, focused, previousProps.value, freeSolo]);\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n });\n\n // Ensure the focusedTag is never inconsistent\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index < 0 || index >= filteredOptions.length) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n if (option && option.hasAttribute('tabindex') && !nextFocusDisabled) {\n // The next option is available\n return nextFocus;\n }\n\n // The next option is disabled, move to the next element.\n // with looped index\n if (direction === 'next') {\n nextFocus = (nextFocus + 1) % filteredOptions.length;\n } else {\n nextFocus = (nextFocus - 1 + filteredOptions.length) % filteredOptions.length;\n }\n\n // We end up with initial index, that means we don't have available options.\n // All of them are disabled\n if (nextFocus === index) {\n return -1;\n }\n }\n }\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index;\n\n // does the index exist?\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n if (!listboxRef.current) {\n return;\n }\n const prev = listboxRef.current.querySelector(`[role=\"option\"].${unstable_classNamePrefix}-focused`);\n if (prev) {\n prev.classList.remove(`${unstable_classNamePrefix}-focused`);\n prev.classList.remove(`${unstable_classNamePrefix}-focusVisible`);\n }\n let listboxNode = listboxRef.current;\n if (listboxRef.current.getAttribute('role') !== 'listbox') {\n listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]');\n }\n\n // \"No results\"\n if (!listboxNode) {\n return;\n }\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n if (!option) {\n return;\n }\n option.classList.add(`${unstable_classNamePrefix}-focused`);\n if (reason === 'keyboard') {\n option.classList.add(`${unstable_classNamePrefix}-focusVisible`);\n }\n\n // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/content-assets/wai-aria-practices/patterns/combobox/examples/js/select-only.js\n // In case of mouse clicks and touch (in mobile devices) we avoid scrolling the element and keep both behaviors same.\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse' && reason !== 'touch') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n if (diff === 'start') {\n return 0;\n }\n if (diff === 'end') {\n return maxIndex;\n }\n const newIndex = highlightedIndexRef.current + diff;\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n return maxIndex;\n }\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n return 0;\n }\n return newIndex;\n };\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n });\n\n // Sync the content of the input with the highlighted option.\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option;\n\n // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const getPreviousHighlightedOptionIndex = () => {\n const isSameValue = (value1, value2) => {\n const label1 = value1 ? getOptionLabel(value1) : '';\n const label2 = value2 ? getOptionLabel(value2) : '';\n return label1 === label2;\n };\n if (highlightedIndexRef.current !== -1 && previousProps.filteredOptions && previousProps.filteredOptions.length !== filteredOptions.length && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {\n const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];\n if (previousHighlightedOption) {\n return filteredOptions.findIndex(option => {\n return getOptionLabel(option) === getOptionLabel(previousHighlightedOption);\n });\n }\n }\n return -1;\n };\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n // Check if the previously highlighted option still exists in the updated filtered options list and if the value and inputValue haven't changed\n // If it exists and the value and the inputValue haven't changed, just update its index, otherwise continue execution\n const previousHighlightedOptionIndex = getPreviousHighlightedOptionIndex();\n if (previousHighlightedOptionIndex !== -1) {\n highlightedIndexRef.current = previousHighlightedOptionIndex;\n return;\n }\n const valueItem = multiple ? value[0] : value;\n\n // The popup is empty, reset\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n if (!listboxRef.current) {\n return;\n }\n\n // Synchronize the value with the highlighted index\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current];\n\n // Keep the current highlighted index if possible\n if (multiple && currentOption && value.findIndex(val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n const itemIndex = filteredOptions.findIndex(optionItem => isOptionEqualToValue(optionItem, valueItem));\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n return;\n }\n\n // Prevent the highlighted index to leak outside the boundaries.\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n }\n\n // Restore the focus to the previous index.\n setHighlightedIndex({\n index: highlightedIndexRef.current\n });\n // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n // Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length,\n // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n if (!node) {\n return;\n }\n syncHighlightedIndex();\n });\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (for example enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have bound getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n const handleOpen = event => {\n if (open) {\n return;\n }\n setOpenState(true);\n setInputPristine(true);\n if (onOpen) {\n onOpen(event);\n }\n };\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n setOpenState(false);\n if (onClose) {\n onClose(event, reason);\n }\n };\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n setValueState(newValue);\n };\n const isTouch = React.useRef(false);\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} does not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n const itemIndex = newValue.findIndex(valueItem => isOptionEqualToValue(option, valueItem));\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n resetInputValue(event, newValue, reason);\n handleValue(event, newValue, reason, {\n option\n });\n if (!disableCloseOnSelect && (!event || !event.ctrlKey && !event.metaKey)) {\n handleClose(event, reason);\n }\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n let nextFocus = index;\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`);\n\n // Same logic as MenuList.js\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n let nextTag = focusedTag;\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n if (nextTag < 0) {\n nextTag = 0;\n }\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n handleValue(event, multiple ? [] : null, 'clear');\n };\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n if (event.defaultMuiPrevented) {\n return;\n }\n if (focusedTag !== -1 && !['ArrowLeft', 'ArrowRight'].includes(event.key)) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n\n // Wait until IME is settled.\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n break;\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n\n // Avoid early form validation, let the end-users continue filling the form.\n event.preventDefault();\n if (disabled) {\n return;\n }\n selectNewValue(event, option, 'selectOption');\n\n // Move the selection to the end.\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n break;\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault();\n // Avoid the Modal to handle the event.\n event.stopPropagation();\n handleClear(event);\n }\n break;\n case 'Backspace':\n // Remove the value on the left of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n case 'Delete':\n // Remove the value on the right of the \"cursor\"\n if (multiple && !readOnly && inputValue === '' && value.length > 0 && focusedTag !== -1) {\n const index = focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n break;\n default:\n }\n }\n };\n const handleFocus = event => {\n setFocused(true);\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (unstable_isActiveElementInListbox(listboxRef)) {\n inputRef.current.focus();\n return;\n }\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value, 'blur');\n }\n handleClose(event, 'blur');\n };\n const handleInputChange = event => {\n const newValue = event.target.value;\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n const handleOptionMouseMove = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n if (highlightedIndexRef.current !== index) {\n setHighlightedIndex({\n event,\n index,\n reason: 'mouse'\n });\n }\n };\n const handleOptionTouchStart = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'touch'\n });\n isTouch.current = true;\n };\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n };\n\n // Prevent input blur when interacting with the combobox\n const handleMouseDown = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n };\n\n // Focus the input when interacting with the combobox\n const handleClick = event => {\n // Prevent focusing the input if click is anywhere outside the Autocomplete\n if (!event.currentTarget.contains(event.target)) {\n return;\n }\n inputRef.current.focus();\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n firstFocus.current = false;\n };\n const handleInputMouseDown = event => {\n if (!disabledProp && (inputValue === '' || !open)) {\n handlePopupIndicator(event);\n event.stopPropagation();\n }\n };\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n indexBy.set(group, true);\n }\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n return acc;\n }, []);\n }\n if (disabledProp && focused) {\n handleBlur();\n }\n return {\n getRootProps: (other = {}) => ({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null,\n ...other,\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperatively so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox',\n disabled: disabledProp\n }),\n getClearProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n type: 'button',\n onClick: handlePopupIndicator,\n onMouseDown: event => event.stopPropagation()\n }),\n getTagProps: ({\n index\n }) => ({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1,\n ...(!readOnly && {\n onDelete: handleTagDelete(index)\n })\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: getOptionKey?.(option) ?? getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseMove: handleOptionMouseMove,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n expanded: popupOpen && anchorEl,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}\nexport default useAutocomplete;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { getListSubheaderUtilityClass } from \"./listSubheaderClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(memoTheme(({\n theme\n}) => ({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: (theme.vars || theme).palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14),\n variants: [{\n props: {\n color: 'primary'\n },\n style: {\n color: (theme.vars || theme).palette.primary.main\n }\n }, {\n props: {\n color: 'inherit'\n },\n style: {\n color: 'inherit'\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disableGutters,\n style: {\n paddingLeft: 16,\n paddingRight: 16\n }\n }, {\n props: ({\n ownerState\n }) => ownerState.inset,\n style: {\n paddingLeft: 72\n }\n }, {\n props: ({\n ownerState\n }) => !ownerState.disableSticky,\n style: {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: (theme.vars || theme).palette.background.paper\n }\n }]\n})));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false,\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n };\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, {\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other\n });\n});\nif (ListSubheader) {\n ListSubheader.muiSkipListHighlight = true;\n}\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListSubheader;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'expanded', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","'use client';\n\nvar _ClearIcon, _ArrowDropDownIcon;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport integerPropType from '@mui/utils/integerPropType';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport useAutocomplete, { createFilterOptions } from \"../useAutocomplete/index.js\";\nimport Popper from \"../Popper/index.js\";\nimport ListSubheader from \"../ListSubheader/index.js\";\nimport Paper from \"../Paper/index.js\";\nimport IconButton from \"../IconButton/index.js\";\nimport Chip from \"../Chip/index.js\";\nimport inputClasses from \"../Input/inputClasses.js\";\nimport inputBaseClasses from \"../InputBase/inputBaseClasses.js\";\nimport outlinedInputClasses from \"../OutlinedInput/outlinedInputClasses.js\";\nimport filledInputClasses from \"../FilledInput/filledInputClasses.js\";\nimport ClearIcon from \"../internal/svg-icons/Close.js\";\nimport ArrowDropDownIcon from \"../internal/svg-icons/ArrowDropDown.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport autocompleteClasses, { getAutocompleteUtilityClass } from \"./autocompleteClasses.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport useSlot from \"../utils/useSlot.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePortal,\n expanded,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n popupOpen,\n size\n } = ownerState;\n const slots = {\n root: ['root', expanded && 'expanded', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],\n inputRoot: ['inputRoot'],\n input: ['input', inputFocused && 'inputFocused'],\n tag: ['tag', `tagSize${capitalize(size)}`],\n endAdornment: ['endAdornment'],\n clearIndicator: ['clearIndicator'],\n popupIndicator: ['popupIndicator', popupOpen && 'popupIndicatorOpen'],\n popper: ['popper', disablePortal && 'popperDisablePortal'],\n paper: ['paper'],\n listbox: ['listbox'],\n loading: ['loading'],\n noOptions: ['noOptions'],\n option: ['option'],\n groupLabel: ['groupLabel'],\n groupUl: ['groupUl']\n };\n return composeClasses(slots, getAutocompleteUtilityClass, classes);\n};\nconst AutocompleteRoot = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n size\n } = ownerState;\n return [{\n [`& .${autocompleteClasses.tag}`]: styles.tag\n }, {\n [`& .${autocompleteClasses.tag}`]: styles[`tagSize${capitalize(size)}`]\n }, {\n [`& .${autocompleteClasses.inputRoot}`]: styles.inputRoot\n }, {\n [`& .${autocompleteClasses.input}`]: styles.input\n }, {\n [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused\n }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];\n }\n})({\n [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n },\n /* Avoid double tap issue on iOS */\n '@media (pointer: fine)': {\n [`&:hover .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n }\n },\n [`& .${autocompleteClasses.tag}`]: {\n margin: 3,\n maxWidth: 'calc(100% - 6px)'\n },\n [`& .${autocompleteClasses.inputRoot}`]: {\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4\n },\n [`& .${autocompleteClasses.input}`]: {\n width: 0,\n minWidth: 30\n }\n },\n [`& .${inputClasses.root}`]: {\n paddingBottom: 1,\n '& .MuiInput-input': {\n padding: '4px 4px 4px 0px'\n }\n },\n [`& .${inputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${inputClasses.input}`]: {\n padding: '2px 4px 3px 0'\n }\n },\n [`& .${outlinedInputClasses.root}`]: {\n padding: 9,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${autocompleteClasses.input}`]: {\n padding: '7.5px 4px 7.5px 5px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${outlinedInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n // Don't specify paddingRight, as it overrides the default value set when there is only\n // one of the popup or clear icon as the specificity is equal so the latter one wins\n paddingTop: 6,\n paddingBottom: 6,\n paddingLeft: 6,\n [`& .${autocompleteClasses.input}`]: {\n padding: '2.5px 4px 2.5px 8px'\n }\n },\n [`& .${filledInputClasses.root}`]: {\n paddingTop: 19,\n paddingLeft: 8,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${filledInputClasses.input}`]: {\n padding: '7px 4px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n paddingBottom: 1,\n [`& .${filledInputClasses.input}`]: {\n padding: '2.5px 4px'\n }\n },\n [`& .${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 8\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 0,\n paddingBottom: 0,\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 16,\n paddingBottom: 17\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.hiddenLabel}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${autocompleteClasses.input}`]: {\n paddingTop: 8,\n paddingBottom: 9\n }\n },\n [`& .${autocompleteClasses.input}`]: {\n flexGrow: 1,\n textOverflow: 'ellipsis',\n opacity: 0\n },\n variants: [{\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n [`& .${autocompleteClasses.tag}`]: {\n margin: 2,\n maxWidth: 'calc(100% - 4px)'\n }\n }\n }, {\n props: {\n inputFocused: true\n },\n style: {\n [`& .${autocompleteClasses.input}`]: {\n opacity: 1\n }\n }\n }, {\n props: {\n multiple: true\n },\n style: {\n [`& .${autocompleteClasses.inputRoot}`]: {\n flexWrap: 'wrap'\n }\n }\n }]\n});\nconst AutocompleteEndAdornment = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'EndAdornment',\n overridesResolver: (props, styles) => styles.endAdornment\n})({\n // We use a position absolute to support wrapping tags.\n position: 'absolute',\n right: 0,\n top: '50%',\n transform: 'translate(0, -50%)'\n});\nconst AutocompleteClearIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'ClearIndicator',\n overridesResolver: (props, styles) => styles.clearIndicator\n})({\n marginRight: -2,\n padding: 4,\n visibility: 'hidden'\n});\nconst AutocompletePopupIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'PopupIndicator',\n overridesResolver: ({\n ownerState\n }, styles) => ({\n ...styles.popupIndicator,\n ...(ownerState.popupOpen && styles.popupIndicatorOpen)\n })\n})({\n padding: 2,\n marginRight: -2,\n variants: [{\n props: {\n popupOpen: true\n },\n style: {\n transform: 'rotate(180deg)'\n }\n }]\n});\nconst AutocompletePopper = styled(Popper, {\n name: 'MuiAutocomplete',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${autocompleteClasses.option}`]: styles.option\n }, styles.popper, ownerState.disablePortal && styles.popperDisablePortal];\n }\n})(memoTheme(({\n theme\n}) => ({\n zIndex: (theme.vars || theme).zIndex.modal,\n variants: [{\n props: {\n disablePortal: true\n },\n style: {\n position: 'absolute'\n }\n }]\n})));\nconst AutocompletePaper = styled(Paper, {\n name: 'MuiAutocomplete',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.body1,\n overflow: 'auto'\n})));\nconst AutocompleteLoading = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Loading',\n overridesResolver: (props, styles) => styles.loading\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n})));\nconst AutocompleteNoOptions = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'NoOptions',\n overridesResolver: (props, styles) => styles.noOptions\n})(memoTheme(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n})));\nconst AutocompleteListbox = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Listbox',\n overridesResolver: (props, styles) => styles.listbox\n})(memoTheme(({\n theme\n}) => ({\n listStyle: 'none',\n margin: 0,\n padding: '8px 0',\n maxHeight: '40vh',\n overflow: 'auto',\n position: 'relative',\n [`& .${autocompleteClasses.option}`]: {\n minHeight: 48,\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: 6,\n boxSizing: 'border-box',\n outline: '0',\n WebkitTapHighlightColor: 'transparent',\n paddingBottom: 6,\n paddingLeft: 16,\n paddingRight: 16,\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n },\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&[aria-disabled=\"true\"]': {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n})));\nconst AutocompleteGroupLabel = styled(ListSubheader, {\n name: 'MuiAutocomplete',\n slot: 'GroupLabel',\n overridesResolver: (props, styles) => styles.groupLabel\n})(memoTheme(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n top: -8\n})));\nconst AutocompleteGroupUl = styled('ul', {\n name: 'MuiAutocomplete',\n slot: 'GroupUl',\n overridesResolver: (props, styles) => styles.groupUl\n})({\n padding: 0,\n [`& .${autocompleteClasses.option}`]: {\n paddingLeft: 24\n }\n});\nexport { createFilterOptions };\nconst Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiAutocomplete'\n });\n\n /* eslint-disable @typescript-eslint/no-unused-vars */\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n ChipProps: ChipPropsProp,\n className,\n clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {\n fontSize: \"small\"\n })),\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n clearText = 'Clear',\n closeText = 'Close',\n componentsProps,\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n disablePortal = false,\n filterOptions,\n filterSelectedOptions = false,\n forcePopupIcon = 'auto',\n freeSolo = false,\n fullWidth = false,\n getLimitTagsText = more => `+${more}`,\n getOptionDisabled,\n getOptionKey,\n getOptionLabel: getOptionLabelProp,\n isOptionEqualToValue,\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n limitTags = -1,\n ListboxComponent: ListboxComponentProp,\n ListboxProps: ListboxPropsProp,\n loading = false,\n loadingText = 'Loading…',\n multiple = false,\n noOptionsText = 'No options',\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open,\n openOnFocus = false,\n openText = 'Open',\n options,\n PaperComponent: PaperComponentProp,\n PopperComponent: PopperComponentProp,\n popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),\n readOnly = false,\n renderGroup: renderGroupProp,\n renderInput,\n renderOption: renderOptionProp,\n renderTags,\n selectOnFocus = !props.freeSolo,\n size = 'medium',\n slots = {},\n slotProps = {},\n value: valueProp,\n ...other\n } = props;\n /* eslint-enable @typescript-eslint/no-unused-vars */\n\n const {\n getRootProps,\n getInputProps,\n getInputLabelProps,\n getPopupIndicatorProps,\n getClearProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n value,\n dirty,\n expanded,\n id,\n popupOpen,\n focused,\n focusedTag,\n anchorEl,\n setAnchorEl,\n inputValue,\n groupedOptions\n } = useAutocomplete({\n ...props,\n componentName: 'Autocomplete'\n });\n const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;\n const {\n onMouseDown: handleInputMouseDown\n } = getInputProps();\n const {\n ref: listboxRef,\n ...otherListboxProps\n } = getListboxProps();\n const defaultGetOptionLabel = option => option.label ?? option;\n const getOptionLabel = getOptionLabelProp || defaultGetOptionLabel;\n\n // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync.\n const ownerState = {\n ...props,\n disablePortal,\n expanded,\n focused,\n fullWidth,\n getOptionLabel,\n hasClearIcon,\n hasPopupIcon,\n inputFocused: focusedTag === -1,\n popupOpen,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const externalForwardedProps = {\n slots: {\n listbox: ListboxComponentProp,\n paper: PaperComponentProp,\n popper: PopperComponentProp,\n ...slots\n },\n slotProps: {\n chip: ChipPropsProp,\n listbox: ListboxPropsProp,\n ...componentsProps,\n ...slotProps\n }\n };\n const [ListboxSlot, listboxProps] = useSlot('listbox', {\n elementType: 'ul',\n externalForwardedProps,\n ownerState,\n className: classes.listbox,\n additionalProps: otherListboxProps,\n ref: listboxRef\n });\n const [PaperSlot, paperProps] = useSlot('paper', {\n elementType: Paper,\n externalForwardedProps,\n ownerState,\n className: classes.paper\n });\n const [PopperSlot, popperProps] = useSlot('popper', {\n elementType: Popper,\n externalForwardedProps,\n ownerState,\n className: classes.popper,\n additionalProps: {\n disablePortal,\n style: {\n width: anchorEl ? anchorEl.clientWidth : null\n },\n role: 'presentation',\n anchorEl,\n open: popupOpen\n }\n });\n let startAdornment;\n if (multiple && value.length > 0) {\n const getCustomizedTagProps = params => ({\n className: classes.tag,\n disabled,\n ...getTagProps(params)\n });\n if (renderTags) {\n startAdornment = renderTags(value, getCustomizedTagProps, ownerState);\n } else {\n startAdornment = value.map((option, index) => {\n const {\n key,\n ...customTagProps\n } = getCustomizedTagProps({\n index\n });\n return /*#__PURE__*/_jsx(Chip, {\n label: getOptionLabel(option),\n size: size,\n ...customTagProps,\n ...externalForwardedProps.slotProps.chip\n }, key);\n });\n }\n }\n if (limitTags > -1 && Array.isArray(startAdornment)) {\n const more = startAdornment.length - limitTags;\n if (!focused && more > 0) {\n startAdornment = startAdornment.splice(0, limitTags);\n startAdornment.push(/*#__PURE__*/_jsx(\"span\", {\n className: classes.tag,\n children: getLimitTagsText(more)\n }, startAdornment.length));\n }\n }\n const defaultRenderGroup = params => /*#__PURE__*/_jsxs(\"li\", {\n children: [/*#__PURE__*/_jsx(AutocompleteGroupLabel, {\n className: classes.groupLabel,\n ownerState: ownerState,\n component: \"div\",\n children: params.group\n }), /*#__PURE__*/_jsx(AutocompleteGroupUl, {\n className: classes.groupUl,\n ownerState: ownerState,\n children: params.children\n })]\n }, params.key);\n const renderGroup = renderGroupProp || defaultRenderGroup;\n const defaultRenderOption = (props2, option) => {\n // Need to clearly apply key because of https://github.com/vercel/next.js/issues/55642\n const {\n key,\n ...otherProps\n } = props2;\n return /*#__PURE__*/_jsx(\"li\", {\n ...otherProps,\n children: getOptionLabel(option)\n }, key);\n };\n const renderOption = renderOptionProp || defaultRenderOption;\n const renderListOption = (option, index) => {\n const optionProps = getOptionProps({\n option,\n index\n });\n return renderOption({\n ...optionProps,\n className: classes.option\n }, option, {\n selected: optionProps['aria-selected'],\n index,\n inputValue\n }, ownerState);\n };\n const clearIndicatorSlotProps = externalForwardedProps.slotProps.clearIndicator;\n const popupIndicatorSlotProps = externalForwardedProps.slotProps.popupIndicator;\n const renderAutocompletePopperChildren = children => /*#__PURE__*/_jsx(AutocompletePopper, {\n as: PopperSlot,\n ...popperProps,\n children: /*#__PURE__*/_jsx(AutocompletePaper, {\n as: PaperSlot,\n ...paperProps,\n children: children\n })\n });\n let autocompletePopper = null;\n if (groupedOptions.length > 0) {\n autocompletePopper = renderAutocompletePopperChildren(/*#__PURE__*/_jsx(AutocompleteListbox, {\n as: ListboxSlot,\n ...listboxProps,\n children: groupedOptions.map((option, index) => {\n if (groupBy) {\n return renderGroup({\n key: option.key,\n group: option.group,\n children: option.options.map((option2, index2) => renderListOption(option2, option.index + index2))\n });\n }\n return renderListOption(option, index);\n })\n }));\n } else if (loading && groupedOptions.length === 0) {\n autocompletePopper = renderAutocompletePopperChildren(/*#__PURE__*/_jsx(AutocompleteLoading, {\n className: classes.loading,\n ownerState: ownerState,\n children: loadingText\n }));\n } else if (groupedOptions.length === 0 && !freeSolo && !loading) {\n autocompletePopper = renderAutocompletePopperChildren(/*#__PURE__*/_jsx(AutocompleteNoOptions, {\n className: classes.noOptions,\n ownerState: ownerState,\n role: \"presentation\",\n onMouseDown: event => {\n // Prevent input blur when interacting with the \"no options\" content\n event.preventDefault();\n },\n children: noOptionsText\n }));\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(AutocompleteRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ...getRootProps(other),\n children: renderInput({\n id,\n disabled,\n fullWidth: true,\n size: size === 'small' ? 'small' : undefined,\n InputLabelProps: getInputLabelProps(),\n InputProps: {\n ref: setAnchorEl,\n className: classes.inputRoot,\n startAdornment,\n onMouseDown: event => handleInputMouseDown(event),\n ...((hasClearIcon || hasPopupIcon) && {\n endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {\n className: classes.endAdornment,\n ownerState: ownerState,\n children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, {\n ...getClearProps(),\n \"aria-label\": clearText,\n title: clearText,\n ownerState: ownerState,\n ...clearIndicatorSlotProps,\n className: clsx(classes.clearIndicator, clearIndicatorSlotProps?.className),\n children: clearIcon\n }) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, {\n ...getPopupIndicatorProps(),\n disabled: disabled,\n \"aria-label\": popupOpen ? closeText : openText,\n title: popupOpen ? closeText : openText,\n ownerState: ownerState,\n ...popupIndicatorSlotProps,\n className: clsx(classes.popupIndicator, popupIndicatorSlotProps?.className),\n children: popupIcon\n }) : null]\n })\n })\n },\n inputProps: {\n className: classes.input,\n disabled,\n readOnly,\n ...getInputProps()\n }\n })\n }), anchorEl ? autocompletePopper : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Autocomplete.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * If `true`, the portion of the selected suggestion that the user hasn't typed,\n * known as the completion string, appears inline after the input cursor in the textbox.\n * The inline completion string is visually highlighted and has a selected state.\n * @default false\n */\n autoComplete: PropTypes.bool,\n /**\n * If `true`, the first option is automatically highlighted.\n * @default false\n */\n autoHighlight: PropTypes.bool,\n /**\n * If `true`, the selected option becomes the value of the input\n * when the Autocomplete loses focus unless the user chooses\n * a different option or changes the character string in the input.\n *\n * When using the `freeSolo` mode, the typed value will be the input value\n * if the Autocomplete loses focus without highlighting an option.\n * @default false\n */\n autoSelect: PropTypes.bool,\n /**\n * Control if the input should be blurred when an option is selected:\n *\n * - `false` the input is not blurred.\n * - `true` the input is always blurred.\n * - `touch` the input is blurred after a touch event.\n * - `mouse` the input is blurred after a mouse event.\n * @default false\n */\n blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),\n /**\n * Props applied to the [`Chip`](https://mui.com/material-ui/api/chip/) element.\n */\n ChipProps: PropTypes.object,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The icon to display in place of the default clear icon.\n * @default \n */\n clearIcon: PropTypes.node,\n /**\n * If `true`, the input's text is cleared on blur if no value is selected.\n *\n * Set it to `true` if you want to help the user enter a new value.\n * Set it to `false` if you want to help the user resume their search.\n * @default !props.freeSolo\n */\n clearOnBlur: PropTypes.bool,\n /**\n * If `true`, clear all values when the user presses escape and the popup is closed.\n * @default false\n */\n clearOnEscape: PropTypes.bool,\n /**\n * Override the default text for the *clear* icon button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Clear'\n */\n clearText: PropTypes.string,\n /**\n * Override the default text for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n /**\n * The props used for each slot inside.\n * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\n */\n componentsProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n * @default props.multiple ? [] : null\n */\n defaultValue: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.defaultValue !== undefined && !Array.isArray(props.defaultValue)) {\n return new Error(['MUI: The Autocomplete expects the `defaultValue` prop to be an array when `multiple={true}` or undefined.', `However, ${props.defaultValue} was provided.`].join('\\n'));\n }\n return null;\n }),\n /**\n * If `true`, the input can't be cleared.\n * @default false\n */\n disableClearable: PropTypes.bool,\n /**\n * If `true`, the popup won't close when a value is selected.\n * @default false\n */\n disableCloseOnSelect: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the list box in the popup will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * If `true`, the `Popper` content will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n /**\n * A function that determines the filtered options to be rendered on search.\n *\n * @default createFilterOptions()\n * @param {Value[]} options The options to render.\n * @param {object} state The state of the component.\n * @returns {Value[]}\n */\n filterOptions: PropTypes.func,\n /**\n * If `true`, hide the selected options from the list box.\n * @default false\n */\n filterSelectedOptions: PropTypes.bool,\n /**\n * Force the visibility display of the popup icon.\n * @default 'auto'\n */\n forcePopupIcon: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.bool]),\n /**\n * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.\n * @default false\n */\n freeSolo: PropTypes.bool,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The label to display when the tags are truncated (`limitTags`).\n *\n * @param {number} more The number of truncated tags.\n * @returns {ReactNode}\n * @default (more) => `+${more}`\n */\n getLimitTagsText: PropTypes.func,\n /**\n * Used to determine the disabled state for a given option.\n *\n * @param {Value} option The option to test.\n * @returns {boolean}\n */\n getOptionDisabled: PropTypes.func,\n /**\n * Used to determine the key for a given option.\n * This can be useful when the labels of options are not unique (since labels are used as keys by default).\n *\n * @param {Value} option The option to get the key for.\n * @returns {string | number}\n */\n getOptionKey: PropTypes.func,\n /**\n * Used to determine the string value for a given option.\n * It's used to fill the input (and the list box options if `renderOption` is not provided).\n *\n * If used in free solo mode, it must accept both the type of the options and a string.\n *\n * @param {Value} option\n * @returns {string}\n * @default (option) => option.label ?? option\n */\n getOptionLabel: PropTypes.func,\n /**\n * If provided, the options will be grouped under the returned string.\n * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.\n *\n * @param {Value} options The options to group.\n * @returns {string}\n */\n groupBy: PropTypes.func,\n /**\n * If `true`, the component handles the \"Home\" and \"End\" keys when the popup is open.\n * It should move focus to the first option and last option, respectively.\n * @default !props.freeSolo\n */\n handleHomeEndKeys: PropTypes.bool,\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide an id it will fall back to a randomly generated one.\n */\n id: PropTypes.string,\n /**\n * If `true`, the highlight can move to the input.\n * @default false\n */\n includeInputInList: PropTypes.bool,\n /**\n * The input value.\n */\n inputValue: PropTypes.string,\n /**\n * Used to determine if the option represents the given value.\n * Uses strict equality by default.\n * ⚠️ Both arguments need to be handled, an option can only match with one value.\n *\n * @param {Value} option The option to test.\n * @param {Value} value The value to test against.\n * @returns {boolean}\n */\n isOptionEqualToValue: PropTypes.func,\n /**\n * The maximum number of tags that will be visible when not focused.\n * Set `-1` to disable the limit.\n * @default -1\n */\n limitTags: integerPropType,\n /**\n * The component used to render the listbox.\n * @default 'ul'\n */\n ListboxComponent: PropTypes.elementType,\n /**\n * Props applied to the Listbox element.\n */\n ListboxProps: PropTypes.object,\n /**\n * If `true`, the component is in a loading state.\n * This shows the `loadingText` in place of suggestions (only if there are no suggestions to show, for example `options` are empty).\n * @default false\n */\n loading: PropTypes.bool,\n /**\n * Text to display when in a loading state.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Loading…'\n */\n loadingText: PropTypes.node,\n /**\n * If `true`, `value` must be an array and the menu will support multiple selections.\n * @default false\n */\n multiple: PropTypes.bool,\n /**\n * Text to display when there are no options.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'No options'\n */\n noOptionsText: PropTypes.node,\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {Value|Value[]} value The new value of the component.\n * @param {string} reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n * @param {string} [details]\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the highlight option changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {Value} option The highlighted option.\n * @param {string} reason Can be: `\"keyboard\"`, `\"auto\"`, `\"mouse\"`, `\"touch\"`.\n */\n onHighlightChange: PropTypes.func,\n /**\n * Callback fired when the input value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} value The new value of the text input.\n * @param {string} reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`, `\"blur\"`, `\"selectOption\"`, `\"removeOption\"`\n */\n onInputChange: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * If `true`, the popup will open on input focus.\n * @default false\n */\n openOnFocus: PropTypes.bool,\n /**\n * Override the default text for the *open popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](https://mui.com/material-ui/guides/localization/).\n * @default 'Open'\n */\n openText: PropTypes.string,\n /**\n * A list of options that will be shown in the Autocomplete.\n */\n options: PropTypes.array.isRequired,\n /**\n * The component used to render the body of the popup.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n /**\n * The component used to position the popup.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n /**\n * The icon to display in place of the default popup icon.\n * @default \n */\n popupIcon: PropTypes.node,\n /**\n * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.\n * @default false\n */\n readOnly: PropTypes.bool,\n /**\n * Render the group.\n *\n * @param {AutocompleteRenderGroupParams} params The group to render.\n * @returns {ReactNode}\n */\n renderGroup: PropTypes.func,\n /**\n * Render the input.\n *\n * @param {object} params\n * @returns {ReactNode}\n */\n renderInput: PropTypes.func.isRequired,\n /**\n * Render the option, use `getOptionLabel` by default.\n *\n * @param {object} props The props to apply on the li element.\n * @param {Value} option The option to render.\n * @param {object} state The state of each option.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n /**\n * Render the selected value.\n *\n * @param {Value[]} value The `value` provided to the component.\n * @param {function} getTagProps A tag props getter.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderTags: PropTypes.func,\n /**\n * If `true`, the input's text is selected on focus.\n * It helps the user clear the selected value.\n * @default !props.freeSolo\n */\n selectOnFocus: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n /**\n * The props used for each slot inside.\n * @default {}\n */\n slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({\n chip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n clearIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n popper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n popupIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n }),\n /**\n * The components used for each slot inside.\n * @default {}\n */\n slots: PropTypes.shape({\n listbox: PropTypes.elementType,\n paper: PropTypes.elementType,\n popper: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value of the autocomplete.\n *\n * The value must have reference equality with the option in order to be selected.\n * You can customize the equality behavior with the `isOptionEqualToValue` prop.\n */\n value: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.value !== undefined && !Array.isArray(props.value)) {\n return new Error(['MUI: The Autocomplete expects the `value` prop to be an array when `multiple={true}` or undefined.', `However, ${props.value} was provided.`].join('\\n'));\n }\n return null;\n })\n} : void 0;\nexport default Autocomplete;","// Determine if the toggle button value matches, or is contained in, the\n// candidate group value.\nexport default function isValueSelected(value, candidate) {\n if (candidate === undefined || value === undefined) {\n return false;\n }\n if (Array.isArray(candidate)) {\n return candidate.includes(value);\n }\n return value === candidate;\n}","'use client';\n\n// @inheritedComponent ButtonBase\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport resolveProps from '@mui/utils/resolveProps';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha } from '@mui/system/colorManipulator';\nimport ButtonBase from \"../ButtonBase/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport toggleButtonClasses, { getToggleButtonUtilityClass } from \"./toggleButtonClasses.js\";\nimport ToggleButtonGroupContext from \"../ToggleButtonGroup/ToggleButtonGroupContext.js\";\nimport ToggleButtonGroupButtonContext from \"../ToggleButtonGroup/ToggleButtonGroupButtonContext.js\";\nimport isValueSelected from \"../ToggleButtonGroup/isValueSelected.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n fullWidth,\n selected,\n disabled,\n size,\n color\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', disabled && 'disabled', fullWidth && 'fullWidth', `size${capitalize(size)}`, color]\n };\n return composeClasses(slots, getToggleButtonUtilityClass, classes);\n};\nconst ToggleButtonRoot = styled(ButtonBase, {\n name: 'MuiToggleButton',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`size${capitalize(ownerState.size)}`]];\n }\n})(memoTheme(({\n theme\n}) => ({\n ...theme.typography.button,\n borderRadius: (theme.vars || theme).shape.borderRadius,\n padding: 11,\n border: `1px solid ${(theme.vars || theme).palette.divider}`,\n color: (theme.vars || theme).palette.action.active,\n [`&.${toggleButtonClasses.disabled}`]: {\n color: (theme.vars || theme).palette.action.disabled,\n border: `1px solid ${(theme.vars || theme).palette.action.disabledBackground}`\n },\n '&:hover': {\n textDecoration: 'none',\n // Reset on mouse devices\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.hoverOpacity),\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n variants: [{\n props: {\n color: 'standard'\n },\n style: {\n [`&.${toggleButtonClasses.selected}`]: {\n color: (theme.vars || theme).palette.text.primary,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.text.primary, theme.palette.action.selectedOpacity)\n }\n }\n }\n }\n }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&.${toggleButtonClasses.selected}`]: {\n color: (theme.vars || theme).palette[color].main,\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity),\n '&:hover': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette[color].main, theme.palette.action.selectedOpacity)\n }\n }\n }\n }\n })), {\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n padding: 7,\n fontSize: theme.typography.pxToRem(13)\n }\n }, {\n props: {\n size: 'large'\n },\n style: {\n padding: 15,\n fontSize: theme.typography.pxToRem(15)\n }\n }]\n})));\nconst ToggleButton = /*#__PURE__*/React.forwardRef(function ToggleButton(inProps, ref) {\n // props priority: `inProps` > `contextProps` > `themeDefaultProps`\n const {\n value: contextValue,\n ...contextProps\n } = React.useContext(ToggleButtonGroupContext);\n const toggleButtonGroupButtonContextPositionClassName = React.useContext(ToggleButtonGroupButtonContext);\n const resolvedProps = resolveProps({\n ...contextProps,\n selected: isValueSelected(inProps.value, contextValue)\n }, inProps);\n const props = useDefaultProps({\n props: resolvedProps,\n name: 'MuiToggleButton'\n });\n const {\n children,\n className,\n color = 'standard',\n disabled = false,\n disableFocusRipple = false,\n fullWidth = false,\n onChange,\n onClick,\n selected,\n size = 'medium',\n value,\n ...other\n } = props;\n const ownerState = {\n ...props,\n color,\n disabled,\n disableFocusRipple,\n fullWidth,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = event => {\n if (onClick) {\n onClick(event, value);\n if (event.defaultPrevented) {\n return;\n }\n }\n if (onChange) {\n onChange(event, value);\n }\n };\n const positionClassName = toggleButtonGroupButtonContextPositionClassName || '';\n return /*#__PURE__*/_jsx(ToggleButtonRoot, {\n className: clsx(contextProps.className, classes.root, className, positionClassName),\n disabled: disabled,\n focusRipple: !disableFocusRipple,\n ref: ref,\n onClick: handleChange,\n onChange: onChange,\n value: value,\n ownerState: ownerState,\n \"aria-pressed\": selected,\n ...other,\n children: children\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ToggleButton.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the button when it is in an active state.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['standard', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If `true`, the ripple effect is disabled.\n *\n * ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure\n * to highlight the element by applying separate styles with the `.Mui-focusVisible` class.\n * @default false\n */\n disableRipple: PropTypes.bool,\n /**\n * If `true`, the button will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Callback fired when the state changes.\n *\n * @param {React.MouseEvent} event The event source of the callback.\n * @param {any} value of the selected button.\n */\n onChange: PropTypes.func,\n /**\n * Callback fired when the button is clicked.\n *\n * @param {React.MouseEvent} event The event source of the callback.\n * @param {any} value of the selected button.\n */\n onClick: PropTypes.func,\n /**\n * If `true`, the button is rendered in an active state.\n */\n selected: PropTypes.bool,\n /**\n * The size of the component.\n * The prop defaults to the value inherited from the parent ToggleButtonGroup component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The value to associate with the button when selected in a\n * ToggleButtonGroup.\n */\n value: PropTypes /* @typescript-to-proptypes-ignore */.any.isRequired\n} : void 0;\nexport default ToggleButton;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToggleButtonUtilityClass(slot) {\n return generateUtilityClass('MuiToggleButton', slot);\n}\nconst toggleButtonClasses = generateUtilityClasses('MuiToggleButton', ['root', 'disabled', 'selected', 'standard', 'primary', 'secondary', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'fullWidth']);\nexport default toggleButtonClasses;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getToggleButtonGroupUtilityClass(slot) {\n return generateUtilityClass('MuiToggleButtonGroup', slot);\n}\nconst toggleButtonGroupClasses = generateUtilityClasses('MuiToggleButtonGroup', ['root', 'selected', 'horizontal', 'vertical', 'disabled', 'grouped', 'groupedHorizontal', 'groupedVertical', 'fullWidth', 'firstButton', 'lastButton', 'middleButton']);\nexport default toggleButtonGroupClasses;","'use client';\n\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport composeClasses from '@mui/utils/composeClasses';\nimport getValidReactChildren from '@mui/utils/getValidReactChildren';\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport toggleButtonGroupClasses, { getToggleButtonGroupUtilityClass } from \"./toggleButtonGroupClasses.js\";\nimport ToggleButtonGroupContext from \"./ToggleButtonGroupContext.js\";\nimport ToggleButtonGroupButtonContext from \"./ToggleButtonGroupButtonContext.js\";\nimport toggleButtonClasses from \"../ToggleButton/toggleButtonClasses.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n orientation,\n fullWidth,\n disabled\n } = ownerState;\n const slots = {\n root: ['root', orientation, fullWidth && 'fullWidth'],\n grouped: ['grouped', `grouped${capitalize(orientation)}`, disabled && 'disabled'],\n firstButton: ['firstButton'],\n lastButton: ['lastButton'],\n middleButton: ['middleButton']\n };\n return composeClasses(slots, getToggleButtonGroupUtilityClass, classes);\n};\nconst ToggleButtonGroupRoot = styled('div', {\n name: 'MuiToggleButtonGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${toggleButtonGroupClasses.grouped}`]: styles.grouped\n }, {\n [`& .${toggleButtonGroupClasses.grouped}`]: styles[`grouped${capitalize(ownerState.orientation)}`]\n }, {\n [`& .${toggleButtonGroupClasses.firstButton}`]: styles.firstButton\n }, {\n [`& .${toggleButtonGroupClasses.lastButton}`]: styles.lastButton\n }, {\n [`& .${toggleButtonGroupClasses.middleButton}`]: styles.middleButton\n }, styles.root, ownerState.orientation === 'vertical' && styles.vertical, ownerState.fullWidth && styles.fullWidth];\n }\n})(memoTheme(({\n theme\n}) => ({\n display: 'inline-flex',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n variants: [{\n props: {\n orientation: 'vertical'\n },\n style: {\n flexDirection: 'column',\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]: {\n borderTop: 0,\n marginTop: 0\n }\n },\n [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n marginTop: -1,\n borderTop: '1px solid transparent',\n borderTopLeftRadius: 0,\n borderTopRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]: {\n borderTop: '1px solid transparent'\n }\n }\n }, {\n props: {\n fullWidth: true\n },\n style: {\n width: '100%'\n }\n }, {\n props: {\n orientation: 'horizontal'\n },\n style: {\n [`& .${toggleButtonGroupClasses.grouped}`]: {\n [`&.${toggleButtonGroupClasses.selected} + .${toggleButtonGroupClasses.grouped}.${toggleButtonGroupClasses.selected}`]: {\n borderLeft: 0,\n marginLeft: 0\n }\n },\n [`& .${toggleButtonGroupClasses.firstButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton},& .${toggleButtonGroupClasses.middleButton}`]: {\n marginLeft: -1,\n borderLeft: '1px solid transparent',\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0\n },\n [`& .${toggleButtonGroupClasses.lastButton}.${toggleButtonClasses.disabled},& .${toggleButtonGroupClasses.middleButton}.${toggleButtonClasses.disabled}`]: {\n borderLeft: '1px solid transparent'\n }\n }\n }]\n})));\nconst ToggleButtonGroup = /*#__PURE__*/React.forwardRef(function ToggleButtonGroup(inProps, ref) {\n const props = useDefaultProps({\n props: inProps,\n name: 'MuiToggleButtonGroup'\n });\n const {\n children,\n className,\n color = 'standard',\n disabled = false,\n exclusive = false,\n fullWidth = false,\n onChange,\n orientation = 'horizontal',\n size = 'medium',\n value,\n ...other\n } = props;\n const ownerState = {\n ...props,\n disabled,\n fullWidth,\n orientation,\n size\n };\n const classes = useUtilityClasses(ownerState);\n const handleChange = React.useCallback((event, buttonValue) => {\n if (!onChange) {\n return;\n }\n const index = value && value.indexOf(buttonValue);\n let newValue;\n if (value && index >= 0) {\n newValue = value.slice();\n newValue.splice(index, 1);\n } else {\n newValue = value ? value.concat(buttonValue) : [buttonValue];\n }\n onChange(event, newValue);\n }, [onChange, value]);\n const handleExclusiveChange = React.useCallback((event, buttonValue) => {\n if (!onChange) {\n return;\n }\n onChange(event, value === buttonValue ? null : buttonValue);\n }, [onChange, value]);\n const context = React.useMemo(() => ({\n className: classes.grouped,\n onChange: exclusive ? handleExclusiveChange : handleChange,\n value,\n size,\n fullWidth,\n color,\n disabled\n }), [classes.grouped, exclusive, handleExclusiveChange, handleChange, value, size, fullWidth, color, disabled]);\n const validChildren = getValidReactChildren(children);\n const childrenCount = validChildren.length;\n const getButtonPositionClassName = index => {\n const isFirstButton = index === 0;\n const isLastButton = index === childrenCount - 1;\n if (isFirstButton && isLastButton) {\n return '';\n }\n if (isFirstButton) {\n return classes.firstButton;\n }\n if (isLastButton) {\n return classes.lastButton;\n }\n return classes.middleButton;\n };\n return /*#__PURE__*/_jsx(ToggleButtonGroupRoot, {\n role: \"group\",\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState,\n ...other,\n children: /*#__PURE__*/_jsx(ToggleButtonGroupContext.Provider, {\n value: context,\n children: validChildren.map((child, index) => {\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The ToggleButtonGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(ToggleButtonGroupButtonContext.Provider, {\n value: getButtonPositionClassName(index),\n children: child\n }, index);\n })\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ToggleButtonGroup.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the button when it is selected.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'standard'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['standard', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the component is disabled. This implies that all ToggleButton children will be disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, only allow one of the child ToggleButton values to be selected.\n * @default false\n */\n exclusive: PropTypes.bool,\n /**\n * If `true`, the button group will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * Callback fired when the value changes.\n *\n * @param {React.MouseEvent} event The event source of the callback.\n * @param {any} value of the selected buttons. When `exclusive` is true\n * this is a single value; when false an array of selected values. If no value\n * is selected and `exclusive` is true the value is null; when false an empty array.\n */\n onChange: PropTypes.func,\n /**\n * The component orientation (layout flow direction).\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium', 'large']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The currently selected value within the group or an array of selected\n * values when `exclusive` is false.\n *\n * The value must have reference equality with the option in order to be selected.\n */\n value: PropTypes.any\n} : void 0;\nexport default ToggleButtonGroup;","import * as React from 'react';\n\n/**\n * Gets only the valid children of a component,\n * and ignores any nullish or falsy child.\n *\n * @param children the children\n */\nexport default function getValidReactChildren(children) {\n return React.Children.toArray(children).filter(child => /*#__PURE__*/React.isValidElement(child));\n}","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst ToggleButtonGroupButtonContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== 'production') {\n ToggleButtonGroupButtonContext.displayName = 'ToggleButtonGroupButtonContext';\n}\nexport default ToggleButtonGroupButtonContext;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\nconst ToggleButtonGroupContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ToggleButtonGroupContext.displayName = 'ToggleButtonGroupContext';\n}\nexport default ToggleButtonGroupContext;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex();\n }\n }\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import * as React from 'react';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nvar bpfrpt_proptype_CellPosition = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": PropTypes.number.isRequired,\n \"rowIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_CellRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"columnIndex\": PropTypes.number.isRequired,\n \"isScrolling\": PropTypes.bool.isRequired,\n \"isVisible\": PropTypes.bool.isRequired,\n \"key\": PropTypes.string.isRequired,\n \"parent\": PropTypes.object.isRequired,\n \"rowIndex\": PropTypes.number.isRequired,\n \"style\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.node.isRequired);\nvar bpfrpt_proptype_StyleCache = process.env.NODE_ENV === 'production' ? null : PropTypes.objectOf(PropTypes.object.isRequired);\nvar bpfrpt_proptype_CellRangeRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"cellCache\": PropTypes.objectOf(PropTypes.node.isRequired).isRequired,\n \"cellRenderer\": PropTypes.func.isRequired,\n \"columnSizeAndPositionManager\": function columnSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"columnStartIndex\": PropTypes.number.isRequired,\n \"columnStopIndex\": PropTypes.number.isRequired,\n \"deferredMeasurementCache\": PropTypes.object,\n \"horizontalOffsetAdjustment\": PropTypes.number.isRequired,\n \"isScrolling\": PropTypes.bool.isRequired,\n \"isScrollingOptOut\": PropTypes.bool.isRequired,\n \"parent\": PropTypes.object.isRequired,\n \"rowSizeAndPositionManager\": function rowSizeAndPositionManager() {\n return (typeof ScalingCellSizeAndPositionManager === \"function\" ? PropTypes.instanceOf(ScalingCellSizeAndPositionManager).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"rowStartIndex\": PropTypes.number.isRequired,\n \"rowStopIndex\": PropTypes.number.isRequired,\n \"scrollLeft\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired,\n \"styleCache\": PropTypes.objectOf(PropTypes.object.isRequired).isRequired,\n \"verticalOffsetAdjustment\": PropTypes.number.isRequired,\n \"visibleColumnIndices\": PropTypes.object.isRequired,\n \"visibleRowIndices\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_CellRangeRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSizeGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_CellSize = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOfType([PropTypes.func, PropTypes.number]);\nvar bpfrpt_proptype_NoContentRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": PropTypes.number.isRequired,\n \"clientWidth\": PropTypes.number.isRequired,\n \"scrollHeight\": PropTypes.number.isRequired,\n \"scrollLeft\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired,\n \"scrollWidth\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_ScrollbarPresenceChange = process.env.NODE_ENV === 'production' ? null : {\n \"horizontal\": PropTypes.bool.isRequired,\n \"vertical\": PropTypes.bool.isRequired,\n \"size\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_RenderedSection = process.env.NODE_ENV === 'production' ? null : {\n \"columnOverscanStartIndex\": PropTypes.number.isRequired,\n \"columnOverscanStopIndex\": PropTypes.number.isRequired,\n \"columnStartIndex\": PropTypes.number.isRequired,\n \"columnStopIndex\": PropTypes.number.isRequired,\n \"rowOverscanStartIndex\": PropTypes.number.isRequired,\n \"rowOverscanStopIndex\": PropTypes.number.isRequired,\n \"rowStartIndex\": PropTypes.number.isRequired,\n \"rowStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetterParams = process.env.NODE_ENV === 'production' ? null : {\n // One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL\n \"direction\": PropTypes.oneOf([\"horizontal\", \"vertical\"]).isRequired,\n // One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD\n \"scrollDirection\": PropTypes.oneOf([-1, 1]).isRequired,\n // Number of rows or columns in the current axis\n \"cellCount\": PropTypes.number.isRequired,\n // Maximum number of cells to over-render in either direction\n \"overscanCellsCount\": PropTypes.number.isRequired,\n // Begin of range of visible cells\n \"startIndex\": PropTypes.number.isRequired,\n // End of range of visible cells\n \"stopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndices = process.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": PropTypes.number.isRequired,\n \"overscanStopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_OverscanIndicesGetter = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_Alignment = process.env.NODE_ENV === 'production' ? null : PropTypes.oneOf([\"auto\", \"end\", \"start\", \"center\"]);\nvar bpfrpt_proptype_VisibleCellRange = process.env.NODE_ENV === 'production' ? null : {\n \"start\": PropTypes.number,\n \"stop\": PropTypes.number\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellPosition };\nexport { bpfrpt_proptype_CellRendererParams };\nexport { bpfrpt_proptype_CellRenderer };\nexport { bpfrpt_proptype_CellCache };\nexport { bpfrpt_proptype_StyleCache };\nexport { bpfrpt_proptype_CellRangeRendererParams };\nexport { bpfrpt_proptype_CellRangeRenderer };\nexport { bpfrpt_proptype_CellSizeGetter };\nexport { bpfrpt_proptype_CellSize };\nexport { bpfrpt_proptype_NoContentRenderer };\nexport { bpfrpt_proptype_Scroll };\nexport { bpfrpt_proptype_ScrollbarPresenceChange };\nexport { bpfrpt_proptype_RenderedSection };\nexport { bpfrpt_proptype_OverscanIndicesGetterParams };\nexport { bpfrpt_proptype_OverscanIndices };\nexport { bpfrpt_proptype_OverscanIndicesGetter };\nexport { bpfrpt_proptype_Alignment };\nexport { bpfrpt_proptype_VisibleCellRange };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\n/**\n * Just-in-time calculates and caches size and position information for a collection of cells.\n */\nvar CellSizeAndPositionManager =\n/*#__PURE__*/\nfunction () {\n // Cache of size and position data for cells, mapped by cell index.\n // Note that invalid values may exist in this map so only rely on cells up to this._lastMeasuredIndex\n // Measurements for cells up to this index can be trusted; cells afterward should be estimated.\n // Used in deferred mode to track which cells have been queued for measurement.\n function CellSizeAndPositionManager(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeGetter = _ref.cellSizeGetter,\n estimatedCellSize = _ref.estimatedCellSize;\n\n _classCallCheck(this, CellSizeAndPositionManager);\n\n _defineProperty(this, \"_cellSizeAndPositionData\", {});\n\n _defineProperty(this, \"_lastMeasuredIndex\", -1);\n\n _defineProperty(this, \"_lastBatchedIndex\", -1);\n\n _defineProperty(this, \"_cellCount\", void 0);\n\n _defineProperty(this, \"_cellSizeGetter\", void 0);\n\n _defineProperty(this, \"_estimatedCellSize\", void 0);\n\n this._cellSizeGetter = cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n }\n\n _createClass(CellSizeAndPositionManager, [{\n key: \"areOffsetsAdjusted\",\n value: function areOffsetsAdjusted() {\n return false;\n }\n }, {\n key: \"configure\",\n value: function configure(_ref2) {\n var cellCount = _ref2.cellCount,\n estimatedCellSize = _ref2.estimatedCellSize,\n cellSizeGetter = _ref2.cellSizeGetter;\n this._cellCount = cellCount;\n this._estimatedCellSize = estimatedCellSize;\n this._cellSizeGetter = cellSizeGetter;\n }\n }, {\n key: \"getCellCount\",\n value: function getCellCount() {\n return this._cellCount;\n }\n }, {\n key: \"getEstimatedCellSize\",\n value: function getEstimatedCellSize() {\n return this._estimatedCellSize;\n }\n }, {\n key: \"getLastMeasuredIndex\",\n value: function getLastMeasuredIndex() {\n return this._lastMeasuredIndex;\n }\n }, {\n key: \"getOffsetAdjustment\",\n value: function getOffsetAdjustment() {\n return 0;\n }\n /**\n * This method returns the size and position for the cell at the specified index.\n * It just-in-time calculates (or used cached values) for cells leading up to the index.\n */\n\n }, {\n key: \"getSizeAndPositionOfCell\",\n value: function getSizeAndPositionOfCell(index) {\n if (index < 0 || index >= this._cellCount) {\n throw Error(\"Requested index \".concat(index, \" is outside of range 0..\").concat(this._cellCount));\n }\n\n if (index > this._lastMeasuredIndex) {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var offset = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n\n for (var i = this._lastMeasuredIndex + 1; i <= index; i++) {\n var size = this._cellSizeGetter({\n index: i\n }); // undefined or NaN probably means a logic error in the size getter.\n // null means we're using CellMeasurer and haven't yet measured a given index.\n\n\n if (size === undefined || isNaN(size)) {\n throw Error(\"Invalid size returned for cell \".concat(i, \" of value \").concat(size));\n } else if (size === null) {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: 0\n };\n this._lastBatchedIndex = index;\n } else {\n this._cellSizeAndPositionData[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n this._lastMeasuredIndex = index;\n }\n }\n }\n\n return this._cellSizeAndPositionData[index];\n }\n }, {\n key: \"getSizeAndPositionOfLastMeasuredCell\",\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._lastMeasuredIndex >= 0 ? this._cellSizeAndPositionData[this._lastMeasuredIndex] : {\n offset: 0,\n size: 0\n };\n }\n /**\n * Total size of all cells being measured.\n * This value will be completely estimated initially.\n * As cells are measured, the estimate will be updated.\n */\n\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var totalSizeOfMeasuredCells = lastMeasuredCellSizeAndPosition.offset + lastMeasuredCellSizeAndPosition.size;\n var numUnmeasuredCells = this._cellCount - this._lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredCells = numUnmeasuredCells * this._estimatedCellSize;\n return totalSizeOfMeasuredCells + totalSizeOfUnmeasuredCells;\n }\n /**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param containerSize Size (width or height) of the container viewport\n * @param currentOffset Container's current (x or y) offset\n * @param totalSize Total size (width or height) of all cells\n * @return Offset to use to ensure the specified cell is visible\n */\n\n }, {\n key: \"getUpdatedOffsetForIndex\",\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n\n if (containerSize <= 0) {\n return 0;\n }\n\n var datum = this.getSizeAndPositionOfCell(targetIndex);\n var maxOffset = datum.offset;\n var minOffset = maxOffset - containerSize + datum.size;\n var idealOffset;\n\n switch (align) {\n case 'start':\n idealOffset = maxOffset;\n break;\n\n case 'end':\n idealOffset = minOffset;\n break;\n\n case 'center':\n idealOffset = maxOffset - (containerSize - datum.size) / 2;\n break;\n\n default:\n idealOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n break;\n }\n\n var totalSize = this.getTotalSize();\n return Math.max(0, Math.min(totalSize - containerSize, idealOffset));\n }\n }, {\n key: \"getVisibleCellRange\",\n value: function getVisibleCellRange(params) {\n var containerSize = params.containerSize,\n offset = params.offset;\n var totalSize = this.getTotalSize();\n\n if (totalSize === 0) {\n return {};\n }\n\n var maxOffset = offset + containerSize;\n\n var start = this._findNearestCell(offset);\n\n var datum = this.getSizeAndPositionOfCell(start);\n offset = datum.offset + datum.size;\n var stop = start;\n\n while (offset < maxOffset && stop < this._cellCount - 1) {\n stop++;\n offset += this.getSizeAndPositionOfCell(stop).size;\n }\n\n return {\n start: start,\n stop: stop\n };\n }\n /**\n * Clear all cached values for cells after the specified index.\n * This method should be called for any cell that has changed its size.\n * It will not immediately perform any calculations; they'll be performed the next time getSizeAndPositionOfCell() is called.\n */\n\n }, {\n key: \"resetCell\",\n value: function resetCell(index) {\n this._lastMeasuredIndex = Math.min(this._lastMeasuredIndex, index - 1);\n }\n }, {\n key: \"_binarySearch\",\n value: function _binarySearch(high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = this.getSizeAndPositionOfCell(middle).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n }\n }, {\n key: \"_exponentialSearch\",\n value: function _exponentialSearch(index, offset) {\n var interval = 1;\n\n while (index < this._cellCount && this.getSizeAndPositionOfCell(index).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return this._binarySearch(Math.min(index, this._cellCount - 1), Math.floor(index / 2), offset);\n }\n /**\n * Searches for the cell (index) nearest the specified offset.\n *\n * If no exact match is found the next lowest cell index will be returned.\n * This allows partially visible cells (with offsets just before/above the fold) to be visible.\n */\n\n }, {\n key: \"_findNearestCell\",\n value: function _findNearestCell(offset) {\n if (isNaN(offset)) {\n throw Error(\"Invalid offset \".concat(offset, \" specified\"));\n } // Our search algorithms find the nearest match at or below the specified offset.\n // So make sure the offset is at least 0 or no match will be found.\n\n\n offset = Math.max(0, offset);\n var lastMeasuredCellSizeAndPosition = this.getSizeAndPositionOfLastMeasuredCell();\n var lastMeasuredIndex = Math.max(0, this._lastMeasuredIndex);\n\n if (lastMeasuredCellSizeAndPosition.offset >= offset) {\n // If we've already measured cells within this range just use a binary search as it's faster.\n return this._binarySearch(lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of cells as a binary search would.\n // The overall complexity for this approach is O(log n).\n return this._exponentialSearch(lastMeasuredIndex, offset);\n }\n }\n }]);\n\n return CellSizeAndPositionManager;\n}();\n\nexport { CellSizeAndPositionManager as default };\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"../types\";\nimport { bpfrpt_proptype_VisibleCellRange } from \"../types\";","var DEFAULT_MAX_ELEMENT_SIZE = 1500000;\nvar CHROME_MAX_ELEMENT_SIZE = 1.67771e7;\n\nvar isBrowser = function isBrowser() {\n return typeof window !== 'undefined';\n};\n\nvar isChrome = function isChrome() {\n return !!window.chrome;\n};\n\nexport var getMaxElementSize = function getMaxElementSize() {\n if (isBrowser()) {\n if (isChrome()) {\n return CHROME_MAX_ELEMENT_SIZE;\n }\n }\n\n return DEFAULT_MAX_ELEMENT_SIZE;\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport CellSizeAndPositionManager from './CellSizeAndPositionManager';\nimport { getMaxElementSize } from './maxElementSize.js';\n\n/**\n * Extends CellSizeAndPositionManager and adds scaling behavior for lists that are too large to fit within a browser's native limits.\n */\nvar ScalingCellSizeAndPositionManager =\n/*#__PURE__*/\nfunction () {\n function ScalingCellSizeAndPositionManager(_ref) {\n var _ref$maxScrollSize = _ref.maxScrollSize,\n maxScrollSize = _ref$maxScrollSize === void 0 ? getMaxElementSize() : _ref$maxScrollSize,\n params = _objectWithoutProperties(_ref, [\"maxScrollSize\"]);\n\n _classCallCheck(this, ScalingCellSizeAndPositionManager);\n\n _defineProperty(this, \"_cellSizeAndPositionManager\", void 0);\n\n _defineProperty(this, \"_maxScrollSize\", void 0);\n\n // Favor composition over inheritance to simplify IE10 support\n this._cellSizeAndPositionManager = new CellSizeAndPositionManager(params);\n this._maxScrollSize = maxScrollSize;\n }\n\n _createClass(ScalingCellSizeAndPositionManager, [{\n key: \"areOffsetsAdjusted\",\n value: function areOffsetsAdjusted() {\n return this._cellSizeAndPositionManager.getTotalSize() > this._maxScrollSize;\n }\n }, {\n key: \"configure\",\n value: function configure(params) {\n this._cellSizeAndPositionManager.configure(params);\n }\n }, {\n key: \"getCellCount\",\n value: function getCellCount() {\n return this._cellSizeAndPositionManager.getCellCount();\n }\n }, {\n key: \"getEstimatedCellSize\",\n value: function getEstimatedCellSize() {\n return this._cellSizeAndPositionManager.getEstimatedCellSize();\n }\n }, {\n key: \"getLastMeasuredIndex\",\n value: function getLastMeasuredIndex() {\n return this._cellSizeAndPositionManager.getLastMeasuredIndex();\n }\n /**\n * Number of pixels a cell at the given position (offset) should be shifted in order to fit within the scaled container.\n * The offset passed to this function is scaled (safe) as well.\n */\n\n }, {\n key: \"getOffsetAdjustment\",\n value: function getOffsetAdjustment(_ref2) {\n var containerSize = _ref2.containerSize,\n offset = _ref2.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n var safeTotalSize = this.getTotalSize();\n\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n\n return Math.round(offsetPercentage * (safeTotalSize - totalSize));\n }\n }, {\n key: \"getSizeAndPositionOfCell\",\n value: function getSizeAndPositionOfCell(index) {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfCell(index);\n }\n }, {\n key: \"getSizeAndPositionOfLastMeasuredCell\",\n value: function getSizeAndPositionOfLastMeasuredCell() {\n return this._cellSizeAndPositionManager.getSizeAndPositionOfLastMeasuredCell();\n }\n /** See CellSizeAndPositionManager#getTotalSize */\n\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n return Math.min(this._maxScrollSize, this._cellSizeAndPositionManager.getTotalSize());\n }\n /** See CellSizeAndPositionManager#getUpdatedOffsetForIndex */\n\n }, {\n key: \"getUpdatedOffsetForIndex\",\n value: function getUpdatedOffsetForIndex(_ref3) {\n var _ref3$align = _ref3.align,\n align = _ref3$align === void 0 ? 'auto' : _ref3$align,\n containerSize = _ref3.containerSize,\n currentOffset = _ref3.currentOffset,\n targetIndex = _ref3.targetIndex;\n currentOffset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: currentOffset\n });\n\n var offset = this._cellSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: align,\n containerSize: containerSize,\n currentOffset: currentOffset,\n targetIndex: targetIndex\n });\n\n return this._offsetToSafeOffset({\n containerSize: containerSize,\n offset: offset\n });\n }\n /** See CellSizeAndPositionManager#getVisibleCellRange */\n\n }, {\n key: \"getVisibleCellRange\",\n value: function getVisibleCellRange(_ref4) {\n var containerSize = _ref4.containerSize,\n offset = _ref4.offset;\n offset = this._safeOffsetToOffset({\n containerSize: containerSize,\n offset: offset\n });\n return this._cellSizeAndPositionManager.getVisibleCellRange({\n containerSize: containerSize,\n offset: offset\n });\n }\n }, {\n key: \"resetCell\",\n value: function resetCell(index) {\n this._cellSizeAndPositionManager.resetCell(index);\n }\n }, {\n key: \"_getOffsetPercentage\",\n value: function _getOffsetPercentage(_ref5) {\n var containerSize = _ref5.containerSize,\n offset = _ref5.offset,\n totalSize = _ref5.totalSize;\n return totalSize <= containerSize ? 0 : offset / (totalSize - containerSize);\n }\n }, {\n key: \"_offsetToSafeOffset\",\n value: function _offsetToSafeOffset(_ref6) {\n var containerSize = _ref6.containerSize,\n offset = _ref6.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n var safeTotalSize = this.getTotalSize();\n\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: totalSize\n });\n\n return Math.round(offsetPercentage * (safeTotalSize - containerSize));\n }\n }\n }, {\n key: \"_safeOffsetToOffset\",\n value: function _safeOffsetToOffset(_ref7) {\n var containerSize = _ref7.containerSize,\n offset = _ref7.offset;\n\n var totalSize = this._cellSizeAndPositionManager.getTotalSize();\n\n var safeTotalSize = this.getTotalSize();\n\n if (totalSize === safeTotalSize) {\n return offset;\n } else {\n var offsetPercentage = this._getOffsetPercentage({\n containerSize: containerSize,\n offset: offset,\n totalSize: safeTotalSize\n });\n\n return Math.round(offsetPercentage * (totalSize - containerSize));\n }\n }\n }]);\n\n return ScalingCellSizeAndPositionManager;\n}();\n\nexport { ScalingCellSizeAndPositionManager as default };\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"../types\";\nimport { bpfrpt_proptype_VisibleCellRange } from \"../types\";","/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport default function createCallbackMemoizer() {\n var requireAllKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var cachedIndices = {};\n return function (_ref) {\n var callback = _ref.callback,\n indices = _ref.indices;\n var keys = Object.keys(indices);\n var allInitialized = !requireAllKeys || keys.every(function (key) {\n var value = indices[key];\n return Array.isArray(value) ? value.length > 0 : value >= 0;\n });\n var indexChanged = keys.length !== Object.keys(cachedIndices).length || keys.some(function (key) {\n var cachedValue = cachedIndices[key];\n var value = indices[key];\n return Array.isArray(value) ? cachedValue.join(',') !== value.join(',') : cachedValue !== value;\n });\n cachedIndices = indices;\n\n if (allInitialized && indexChanged) {\n callback(indices);\n }\n };\n}","import ScalingCellSizeAndPositionManager from './ScalingCellSizeAndPositionManager.js';\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n * This function also ensures that the scroll ofset isn't past the last column/row of cells.\n */\n\nexport default function updateScrollIndexHelper(_ref) {\n var cellSize = _ref.cellSize,\n cellSizeAndPositionManager = _ref.cellSizeAndPositionManager,\n previousCellsCount = _ref.previousCellsCount,\n previousCellSize = _ref.previousCellSize,\n previousScrollToAlignment = _ref.previousScrollToAlignment,\n previousScrollToIndex = _ref.previousScrollToIndex,\n previousSize = _ref.previousSize,\n scrollOffset = _ref.scrollOffset,\n scrollToAlignment = _ref.scrollToAlignment,\n scrollToIndex = _ref.scrollToIndex,\n size = _ref.size,\n sizeJustIncreasedFromZero = _ref.sizeJustIncreasedFromZero,\n updateScrollIndexCallback = _ref.updateScrollIndexCallback;\n var cellCount = cellSizeAndPositionManager.getCellCount();\n var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellCount;\n var sizeHasChanged = size !== previousSize || sizeJustIncreasedFromZero || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize; // If we have a new scroll target OR if height/row-height has changed,\n // We should ensure that the scroll target is visible.\n\n if (hasScrollToIndex && (sizeHasChanged || scrollToAlignment !== previousScrollToAlignment || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback(scrollToIndex); // If we don't have a selected item but list size or number of children have decreased,\n // Make sure we aren't scrolled too far past the current content.\n } else if (!hasScrollToIndex && cellCount > 0 && (size < previousSize || cellCount < previousCellsCount)) {\n // We need to ensure that the current scroll offset is still within the collection's range.\n // To do this, we don't need to measure everything; CellMeasurer would perform poorly.\n // Just check to make sure we're still okay.\n // Only adjust the scroll position if we've scrolled below the last set of rows.\n if (scrollOffset > cellSizeAndPositionManager.getTotalSize() - size) {\n updateScrollIndexCallback(cellCount - 1);\n }\n }\n}\nimport { bpfrpt_proptype_Alignment } from \"../types\";\nimport { bpfrpt_proptype_CellSize } from \"../types\";","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","import canUseDOM from './canUseDOM';\nvar size;\nexport default function scrollbarSize(recalc) {\n if (!size && size !== 0 || recalc) {\n if (canUseDOM) {\n var scrollDiv = document.createElement('div');\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n size = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n }\n }\n\n return size;\n}","// Properly handle server-side rendering.\nvar win;\n\nif (typeof window !== 'undefined') {\n win = window;\n} else if (typeof self !== 'undefined') {\n win = self;\n} else {\n win = {};\n} // requestAnimationFrame() shim by Paul Irish\n// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n\n\nvar request = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || win.msRequestAnimationFrame || function (callback) {\n return win.setTimeout(callback, 1000 / 60);\n};\n\nvar cancel = win.cancelAnimationFrame || win.webkitCancelAnimationFrame || win.mozCancelAnimationFrame || win.oCancelAnimationFrame || win.msCancelAnimationFrame || function (id) {\n win.clearTimeout(id);\n};\n\nexport var raf = request;\nexport var caf = cancel;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport calculateSizeAndPositionDataAndUpdateScrollOffset from './utils/calculateSizeAndPositionDataAndUpdateScrollOffset';\nimport ScalingCellSizeAndPositionManager from './utils/ScalingCellSizeAndPositionManager';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport defaultOverscanIndicesGetter, { SCROLL_DIRECTION_BACKWARD, SCROLL_DIRECTION_FORWARD } from './defaultOverscanIndicesGetter';\nimport updateScrollIndexHelper from './utils/updateScrollIndexHelper';\nimport defaultCellRangeRenderer from './defaultCellRangeRenderer';\nimport scrollbarSize from 'dom-helpers/scrollbarSize';\nimport { polyfill } from 'react-lifecycles-compat';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n\nvar renderNull = function renderNull() {\n return null;\n};\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nvar Grid = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Grid, _React$PureComponent);\n\n // Invokes onSectionRendered callback only when start/stop row or column indices change\n function Grid(props) {\n var _this;\n\n _classCallCheck(this, Grid);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Grid).call(this, props));\n\n _defineProperty(_assertThisInitialized(_this), \"_onGridRenderedMemoizer\", createCallbackMemoizer());\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollLeftFlag\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_recomputeScrollTopFlag\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_horizontalScrollBarSize\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_verticalScrollBarSize\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollbarPresenceChanged\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_scrollingContainer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_childrenToDisplay\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedColumnStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_renderedRowStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollTop\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialScrollLeft\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_disablePointerEventsTimeoutId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_styleCache\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_cellCache\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceScrollEndedCallback\", function () {\n _this._disablePointerEventsTimeoutId = null; // isScrolling is used to determine if we reset styleCache\n\n _this.setState({\n isScrolling: false,\n needToResetStyleCache: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnGridRenderedHelper\", function () {\n var onSectionRendered = _this.props.onSectionRendered;\n\n _this._onGridRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n columnOverscanStartIndex: _this._columnStartIndex,\n columnOverscanStopIndex: _this._columnStopIndex,\n columnStartIndex: _this._renderedColumnStartIndex,\n columnStopIndex: _this._renderedColumnStopIndex,\n rowOverscanStartIndex: _this._rowStartIndex,\n rowOverscanStopIndex: _this._rowStopIndex,\n rowStartIndex: _this._renderedRowStartIndex,\n rowStopIndex: _this._renderedRowStopIndex\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target === _this._scrollingContainer) {\n _this.handleScrollEvent(event.target);\n }\n });\n\n var columnSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.columnCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.columnWidth)(params);\n },\n estimatedCellSize: Grid._getEstimatedColumnSize(props)\n });\n var rowSizeAndPositionManager = new ScalingCellSizeAndPositionManager({\n cellCount: props.rowCount,\n cellSizeGetter: function cellSizeGetter(params) {\n return Grid._wrapSizeGetter(props.rowHeight)(params);\n },\n estimatedCellSize: Grid._getEstimatedRowSize(props)\n });\n _this.state = {\n instanceProps: {\n columnSizeAndPositionManager: columnSizeAndPositionManager,\n rowSizeAndPositionManager: rowSizeAndPositionManager,\n prevColumnWidth: props.columnWidth,\n prevRowHeight: props.rowHeight,\n prevColumnCount: props.columnCount,\n prevRowCount: props.rowCount,\n prevIsScrolling: props.isScrolling === true,\n prevScrollToColumn: props.scrollToColumn,\n prevScrollToRow: props.scrollToRow,\n scrollbarSize: 0,\n scrollbarSizeMeasured: false\n },\n isScrolling: false,\n scrollDirectionHorizontal: SCROLL_DIRECTION_FORWARD,\n scrollDirectionVertical: SCROLL_DIRECTION_FORWARD,\n scrollLeft: 0,\n scrollTop: 0,\n scrollPositionChangeReason: null,\n needToResetStyleCache: false\n };\n\n if (props.scrollToRow > 0) {\n _this._initialScrollTop = _this._getCalculatedScrollTop(props, _this.state);\n }\n\n if (props.scrollToColumn > 0) {\n _this._initialScrollLeft = _this._getCalculatedScrollLeft(props, _this.state);\n }\n\n return _this;\n }\n /**\n * Gets offsets for a given cell and alignment.\n */\n\n\n _createClass(Grid, [{\n key: \"getOffsetForCell\",\n value: function getOffsetForCell() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$alignment = _ref.alignment,\n alignment = _ref$alignment === void 0 ? this.props.scrollToAlignment : _ref$alignment,\n _ref$columnIndex = _ref.columnIndex,\n columnIndex = _ref$columnIndex === void 0 ? this.props.scrollToColumn : _ref$columnIndex,\n _ref$rowIndex = _ref.rowIndex,\n rowIndex = _ref$rowIndex === void 0 ? this.props.scrollToRow : _ref$rowIndex;\n\n var offsetProps = _objectSpread({}, this.props, {\n scrollToAlignment: alignment,\n scrollToColumn: columnIndex,\n scrollToRow: rowIndex\n });\n\n return {\n scrollLeft: this._getCalculatedScrollLeft(offsetProps),\n scrollTop: this._getCalculatedScrollTop(offsetProps)\n };\n }\n /**\n * Gets estimated total rows' height.\n */\n\n }, {\n key: \"getTotalRowsHeight\",\n value: function getTotalRowsHeight() {\n return this.state.instanceProps.rowSizeAndPositionManager.getTotalSize();\n }\n /**\n * Gets estimated total columns' width.\n */\n\n }, {\n key: \"getTotalColumnsWidth\",\n value: function getTotalColumnsWidth() {\n return this.state.instanceProps.columnSizeAndPositionManager.getTotalSize();\n }\n /**\n * This method handles a scroll event originating from an external scroll control.\n * It's an advanced method and should probably not be used unless you're implementing a custom scroll-bar solution.\n */\n\n }, {\n key: \"handleScrollEvent\",\n value: function handleScrollEvent(_ref2) {\n var _ref2$scrollLeft = _ref2.scrollLeft,\n scrollLeftParam = _ref2$scrollLeft === void 0 ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTopParam = _ref2$scrollTop === void 0 ? 0 : _ref2$scrollTop;\n\n // On iOS, we can arrive at negative offsets by swiping past the start.\n // To prevent flicker here, we make playing in the negative offset zone cause nothing to happen.\n if (scrollTopParam < 0) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n\n this._debounceScrollEnded();\n\n var _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n autoWidth = _this$props.autoWidth,\n height = _this$props.height,\n width = _this$props.width;\n var instanceProps = this.state.instanceProps; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n var scrollbarSize = instanceProps.scrollbarSize;\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollLeft = Math.min(Math.max(0, totalColumnsWidth - width + scrollbarSize), scrollLeftParam);\n var scrollTop = Math.min(Math.max(0, totalRowsHeight - height + scrollbarSize), scrollTopParam); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n if (this.state.scrollLeft !== scrollLeft || this.state.scrollTop !== scrollTop) {\n // Track scrolling direction so we can more efficiently overscan rows to reduce empty space around the edges while scrolling.\n // Don't change direction for an axis unless scroll offset has changed.\n var scrollDirectionHorizontal = scrollLeft !== this.state.scrollLeft ? scrollLeft > this.state.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionHorizontal;\n var scrollDirectionVertical = scrollTop !== this.state.scrollTop ? scrollTop > this.state.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD : this.state.scrollDirectionVertical;\n var newState = {\n isScrolling: true,\n scrollDirectionHorizontal: scrollDirectionHorizontal,\n scrollDirectionVertical: scrollDirectionVertical,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.OBSERVED\n };\n\n if (!autoHeight) {\n newState.scrollTop = scrollTop;\n }\n\n if (!autoWidth) {\n newState.scrollLeft = scrollLeft;\n }\n\n newState.needToResetStyleCache = false;\n this.setState(newState);\n }\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n /**\n * Invalidate Grid size and recompute visible cells.\n * This is a deferred wrapper for recomputeGridSize().\n * It sets a flag to be evaluated on cDM/cDU to avoid unnecessary renders.\n * This method is intended for advanced use-cases like CellMeasurer.\n */\n // @TODO (bvaughn) Add automated test coverage for this.\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref3) {\n var columnIndex = _ref3.columnIndex,\n rowIndex = _ref3.rowIndex;\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n /**\n * Pre-measure all columns and rows in a Grid.\n * Typically cells are only measured as needed and estimated sizes are used for cells that have not yet been measured.\n * This method ensures that the next call to getTotalSize() returns an exact size (as opposed to just an estimated one).\n */\n\n }, {\n key: \"measureAllCells\",\n value: function measureAllCells() {\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n rowCount = _this$props2.rowCount;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.getSizeAndPositionOfCell(columnCount - 1);\n instanceProps.rowSizeAndPositionManager.getSizeAndPositionOfCell(rowCount - 1);\n }\n /**\n * Forced recompute of row heights and column widths.\n * This function should be called if dynamic column or row sizes have changed but nothing else has.\n * Since Grid only receives :columnCount and :rowCount it has no way of detecting when the underlying data changes.\n */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$columnIndex = _ref4.columnIndex,\n columnIndex = _ref4$columnIndex === void 0 ? 0 : _ref4$columnIndex,\n _ref4$rowIndex = _ref4.rowIndex,\n rowIndex = _ref4$rowIndex === void 0 ? 0 : _ref4$rowIndex;\n\n var _this$props3 = this.props,\n scrollToColumn = _this$props3.scrollToColumn,\n scrollToRow = _this$props3.scrollToRow;\n var instanceProps = this.state.instanceProps;\n instanceProps.columnSizeAndPositionManager.resetCell(columnIndex);\n instanceProps.rowSizeAndPositionManager.resetCell(rowIndex); // Cell sizes may be determined by a function property.\n // In this case the cDU handler can't know if they changed.\n // Store this flag to let the next cDU pass know it needs to recompute the scroll offset.\n\n this._recomputeScrollLeftFlag = scrollToColumn >= 0 && (this.state.scrollDirectionHorizontal === SCROLL_DIRECTION_FORWARD ? columnIndex <= scrollToColumn : columnIndex >= scrollToColumn);\n this._recomputeScrollTopFlag = scrollToRow >= 0 && (this.state.scrollDirectionVertical === SCROLL_DIRECTION_FORWARD ? rowIndex <= scrollToRow : rowIndex >= scrollToRow); // Clear cell cache in case we are scrolling;\n // Invalid row heights likely mean invalid cached content as well.\n\n this._styleCache = {};\n this._cellCache = {};\n this.forceUpdate();\n }\n /**\n * Ensure column and row are visible.\n */\n\n }, {\n key: \"scrollToCell\",\n value: function scrollToCell(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n var columnCount = this.props.columnCount;\n var props = this.props; // Don't adjust scroll offset for single-column grids (eg List, Table).\n // This can cause a funky scroll offset because of the vertical scrollbar width.\n\n if (columnCount > 1 && columnIndex !== undefined) {\n this._updateScrollLeftForScrollToColumn(_objectSpread({}, props, {\n scrollToColumn: columnIndex\n }));\n }\n\n if (rowIndex !== undefined) {\n this._updateScrollTopForScrollToRow(_objectSpread({}, props, {\n scrollToRow: rowIndex\n }));\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n getScrollbarSize = _this$props4.getScrollbarSize,\n height = _this$props4.height,\n scrollLeft = _this$props4.scrollLeft,\n scrollToColumn = _this$props4.scrollToColumn,\n scrollTop = _this$props4.scrollTop,\n scrollToRow = _this$props4.scrollToRow,\n width = _this$props4.width;\n var instanceProps = this.state.instanceProps; // Reset initial offsets to be ignored in browser\n\n this._initialScrollTop = 0;\n this._initialScrollLeft = 0; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n\n this._handleInvalidatedGridSize(); // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n\n if (!instanceProps.scrollbarSizeMeasured) {\n this.setState(function (prevState) {\n var stateUpdate = _objectSpread({}, prevState, {\n needToResetStyleCache: false\n });\n\n stateUpdate.instanceProps.scrollbarSize = getScrollbarSize();\n stateUpdate.instanceProps.scrollbarSizeMeasured = true;\n return stateUpdate;\n });\n }\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 || typeof scrollTop === 'number' && scrollTop >= 0) {\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n } // refs don't work in `react-test-renderer`\n\n\n if (this._scrollingContainer) {\n // setting the ref's scrollLeft and scrollTop.\n // Somehow in MultiGrid the main grid doesn't trigger a update on mount.\n if (this._scrollingContainer.scrollLeft !== this.state.scrollLeft) {\n this._scrollingContainer.scrollLeft = this.state.scrollLeft;\n }\n\n if (this._scrollingContainer.scrollTop !== this.state.scrollTop) {\n this._scrollingContainer.scrollTop = this.state.scrollTop;\n }\n } // Don't update scroll offset if the size is 0; we don't render any cells in this case.\n // Setting a state may cause us to later thing we've updated the offce when we haven't.\n\n\n var sizeIsBiggerThanZero = height > 0 && width > 0;\n\n if (scrollToColumn >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollLeftForScrollToColumn();\n }\n\n if (scrollToRow >= 0 && sizeIsBiggerThanZero) {\n this._updateScrollTopForScrollToRow();\n } // Update onRowsRendered callback\n\n\n this._invokeOnGridRenderedHelper(); // Initialize onScroll callback\n\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalColumnsWidth: instanceProps.columnSizeAndPositionManager.getTotalSize(),\n totalRowsHeight: instanceProps.rowSizeAndPositionManager.getTotalSize()\n });\n\n this._maybeCallOnScrollbarPresenceChange();\n }\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) New scroll-to-cell props have been set\n */\n\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _this$props5 = this.props,\n autoHeight = _this$props5.autoHeight,\n autoWidth = _this$props5.autoWidth,\n columnCount = _this$props5.columnCount,\n height = _this$props5.height,\n rowCount = _this$props5.rowCount,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToColumn = _this$props5.scrollToColumn,\n scrollToRow = _this$props5.scrollToRow,\n width = _this$props5.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollPositionChangeReason = _this$state.scrollPositionChangeReason,\n scrollTop = _this$state.scrollTop,\n instanceProps = _this$state.instanceProps; // If cell sizes have been invalidated (eg we are using CellMeasurer) then reset cached positions.\n // We must do this at the start of the method as we may calculate and update scroll position below.\n\n this._handleInvalidatedGridSize(); // Handle edge case where column or row count has only just increased over 0.\n // In this case we may have to restore a previously-specified scroll offset.\n // For more info see bvaughn/react-virtualized/issues/218\n\n\n var columnOrRowCountJustIncreasedFromZero = columnCount > 0 && prevProps.columnCount === 0 || rowCount > 0 && prevProps.rowCount === 0; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n // @TRICKY :autoHeight and :autoWidth properties instructs Grid to leave :scrollTop and :scrollLeft management to an external HOC (eg WindowScroller).\n // In this case we should avoid checking scrollingContainer.scrollTop and scrollingContainer.scrollLeft since it forces layout/flow.\n if (!autoWidth && scrollLeft >= 0 && (scrollLeft !== this._scrollingContainer.scrollLeft || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n\n if (!autoHeight && scrollTop >= 0 && (scrollTop !== this._scrollingContainer.scrollTop || columnOrRowCountJustIncreasedFromZero)) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n } // Special case where the previous size was 0:\n // In this case we don't show any windowed cells at all.\n // So we should always recalculate offset afterwards.\n\n\n var sizeJustIncreasedFromZero = (prevProps.width === 0 || prevProps.height === 0) && height > 0 && width > 0; // Update scroll offsets if the current :scrollToColumn or :scrollToRow values requires it\n // @TODO Do we also need this check or can the one in componentWillUpdate() suffice?\n\n if (this._recomputeScrollLeftFlag) {\n this._recomputeScrollLeftFlag = false;\n\n this._updateScrollLeftForScrollToColumn(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n previousCellsCount: prevProps.columnCount,\n previousCellSize: prevProps.columnWidth,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToColumn,\n previousSize: prevProps.width,\n scrollOffset: scrollLeft,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToColumn,\n size: width,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollLeftForScrollToColumn(_this2.props);\n }\n });\n }\n\n if (this._recomputeScrollTopFlag) {\n this._recomputeScrollTopFlag = false;\n\n this._updateScrollTopForScrollToRow(this.props);\n } else {\n updateScrollIndexHelper({\n cellSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n previousCellsCount: prevProps.rowCount,\n previousCellSize: prevProps.rowHeight,\n previousScrollToAlignment: prevProps.scrollToAlignment,\n previousScrollToIndex: prevProps.scrollToRow,\n previousSize: prevProps.height,\n scrollOffset: scrollTop,\n scrollToAlignment: scrollToAlignment,\n scrollToIndex: scrollToRow,\n size: height,\n sizeJustIncreasedFromZero: sizeJustIncreasedFromZero,\n updateScrollIndexCallback: function updateScrollIndexCallback() {\n return _this2._updateScrollTopForScrollToRow(_this2.props);\n }\n });\n } // Update onRowsRendered callback if start/stop indices have changed\n\n\n this._invokeOnGridRenderedHelper(); // Changes to :scrollLeft or :scrollTop should also notify :onScroll listeners\n\n\n if (scrollLeft !== prevState.scrollLeft || scrollTop !== prevState.scrollTop) {\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalColumnsWidth: totalColumnsWidth,\n totalRowsHeight: totalRowsHeight\n });\n }\n\n this._maybeCallOnScrollbarPresenceChange();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n /**\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n autoContainerWidth = _this$props6.autoContainerWidth,\n autoHeight = _this$props6.autoHeight,\n autoWidth = _this$props6.autoWidth,\n className = _this$props6.className,\n containerProps = _this$props6.containerProps,\n containerRole = _this$props6.containerRole,\n containerStyle = _this$props6.containerStyle,\n height = _this$props6.height,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n role = _this$props6.role,\n style = _this$props6.style,\n tabIndex = _this$props6.tabIndex,\n width = _this$props6.width;\n var _this$state2 = this.state,\n instanceProps = _this$state2.instanceProps,\n needToResetStyleCache = _this$state2.needToResetStyleCache;\n\n var isScrolling = this._isScrolling();\n\n var gridStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n width: autoWidth ? 'auto' : width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n };\n\n if (needToResetStyleCache) {\n this._styleCache = {};\n } // calculate _styleCache here\n // if state.isScrolling (not from _isScrolling) then reset\n\n\n if (!this.state.isScrolling) {\n this._resetStyleCache();\n } // calculate children to render here\n\n\n this._calculateChildrenToRender(this.props, this.state);\n\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize(); // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n\n var verticalScrollBarSize = totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n var horizontalScrollBarSize = totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n\n if (horizontalScrollBarSize !== this._horizontalScrollBarSize || verticalScrollBarSize !== this._verticalScrollBarSize) {\n this._horizontalScrollBarSize = horizontalScrollBarSize;\n this._verticalScrollBarSize = verticalScrollBarSize;\n this._scrollbarPresenceChanged = true;\n } // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n\n gridStyle.overflowX = totalColumnsWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n gridStyle.overflowY = totalRowsHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n var childrenToDisplay = this._childrenToDisplay;\n var showNoContentRenderer = childrenToDisplay.length === 0 && height > 0 && width > 0;\n return React.createElement(\"div\", _extends({\n ref: this._setScrollingContainerRef\n }, containerProps, {\n \"aria-label\": this.props['aria-label'],\n \"aria-readonly\": this.props['aria-readonly'],\n className: clsx('ReactVirtualized__Grid', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread({}, gridStyle, {}, style),\n tabIndex: tabIndex\n }), childrenToDisplay.length > 0 && React.createElement(\"div\", {\n className: \"ReactVirtualized__Grid__innerScrollContainer\",\n role: containerRole,\n style: _objectSpread({\n width: autoContainerWidth ? 'auto' : totalColumnsWidth,\n height: totalRowsHeight,\n maxWidth: totalColumnsWidth,\n maxHeight: totalRowsHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n }, containerStyle)\n }, childrenToDisplay), showNoContentRenderer && noContentRenderer());\n }\n /* ---------------------------- Helper methods ---------------------------- */\n\n }, {\n key: \"_calculateChildrenToRender\",\n value: function _calculateChildrenToRender() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n var cellRenderer = props.cellRenderer,\n cellRangeRenderer = props.cellRangeRenderer,\n columnCount = props.columnCount,\n deferredMeasurementCache = props.deferredMeasurementCache,\n height = props.height,\n overscanColumnCount = props.overscanColumnCount,\n overscanIndicesGetter = props.overscanIndicesGetter,\n overscanRowCount = props.overscanRowCount,\n rowCount = props.rowCount,\n width = props.width,\n isScrollingOptOut = props.isScrollingOptOut;\n var scrollDirectionHorizontal = state.scrollDirectionHorizontal,\n scrollDirectionVertical = state.scrollDirectionVertical,\n instanceProps = state.instanceProps;\n var scrollTop = this._initialScrollTop > 0 ? this._initialScrollTop : state.scrollTop;\n var scrollLeft = this._initialScrollLeft > 0 ? this._initialScrollLeft : state.scrollLeft;\n\n var isScrolling = this._isScrolling(props, state);\n\n this._childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid.\n\n if (height > 0 && width > 0) {\n var visibleColumnIndices = instanceProps.columnSizeAndPositionManager.getVisibleCellRange({\n containerSize: width,\n offset: scrollLeft\n });\n var visibleRowIndices = instanceProps.rowSizeAndPositionManager.getVisibleCellRange({\n containerSize: height,\n offset: scrollTop\n });\n var horizontalOffsetAdjustment = instanceProps.columnSizeAndPositionManager.getOffsetAdjustment({\n containerSize: width,\n offset: scrollLeft\n });\n var verticalOffsetAdjustment = instanceProps.rowSizeAndPositionManager.getOffsetAdjustment({\n containerSize: height,\n offset: scrollTop\n }); // Store for _invokeOnGridRenderedHelper()\n\n this._renderedColumnStartIndex = visibleColumnIndices.start;\n this._renderedColumnStopIndex = visibleColumnIndices.stop;\n this._renderedRowStartIndex = visibleRowIndices.start;\n this._renderedRowStopIndex = visibleRowIndices.stop;\n var overscanColumnIndices = overscanIndicesGetter({\n direction: 'horizontal',\n cellCount: columnCount,\n overscanCellsCount: overscanColumnCount,\n scrollDirection: scrollDirectionHorizontal,\n startIndex: typeof visibleColumnIndices.start === 'number' ? visibleColumnIndices.start : 0,\n stopIndex: typeof visibleColumnIndices.stop === 'number' ? visibleColumnIndices.stop : -1\n });\n var overscanRowIndices = overscanIndicesGetter({\n direction: 'vertical',\n cellCount: rowCount,\n overscanCellsCount: overscanRowCount,\n scrollDirection: scrollDirectionVertical,\n startIndex: typeof visibleRowIndices.start === 'number' ? visibleRowIndices.start : 0,\n stopIndex: typeof visibleRowIndices.stop === 'number' ? visibleRowIndices.stop : -1\n }); // Store for _invokeOnGridRenderedHelper()\n\n var columnStartIndex = overscanColumnIndices.overscanStartIndex;\n var columnStopIndex = overscanColumnIndices.overscanStopIndex;\n var rowStartIndex = overscanRowIndices.overscanStartIndex;\n var rowStopIndex = overscanRowIndices.overscanStopIndex; // Advanced use-cases (eg CellMeasurer) require batched measurements to determine accurate sizes.\n\n if (deferredMeasurementCache) {\n // If rows have a dynamic height, scan the rows we are about to render.\n // If any have not yet been measured, then we need to render all columns initially,\n // Because the height of the row is equal to the tallest cell within that row,\n // (And so we can't know the height without measuring all column-cells first).\n if (!deferredMeasurementCache.hasFixedHeight()) {\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n if (!deferredMeasurementCache.has(rowIndex, 0)) {\n columnStartIndex = 0;\n columnStopIndex = columnCount - 1;\n break;\n }\n }\n } // If columns have a dynamic width, scan the columns we are about to render.\n // If any have not yet been measured, then we need to render all rows initially,\n // Because the width of the column is equal to the widest cell within that column,\n // (And so we can't know the width without measuring all row-cells first).\n\n\n if (!deferredMeasurementCache.hasFixedWidth()) {\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n if (!deferredMeasurementCache.has(0, columnIndex)) {\n rowStartIndex = 0;\n rowStopIndex = rowCount - 1;\n break;\n }\n }\n }\n }\n\n this._childrenToDisplay = cellRangeRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n columnSizeAndPositionManager: instanceProps.columnSizeAndPositionManager,\n columnStartIndex: columnStartIndex,\n columnStopIndex: columnStopIndex,\n deferredMeasurementCache: deferredMeasurementCache,\n horizontalOffsetAdjustment: horizontalOffsetAdjustment,\n isScrolling: isScrolling,\n isScrollingOptOut: isScrollingOptOut,\n parent: this,\n rowSizeAndPositionManager: instanceProps.rowSizeAndPositionManager,\n rowStartIndex: rowStartIndex,\n rowStopIndex: rowStopIndex,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n styleCache: this._styleCache,\n verticalOffsetAdjustment: verticalOffsetAdjustment,\n visibleColumnIndices: visibleColumnIndices,\n visibleRowIndices: visibleRowIndices\n }); // update the indices\n\n this._columnStartIndex = columnStartIndex;\n this._columnStopIndex = columnStopIndex;\n this._rowStartIndex = rowStartIndex;\n this._rowStopIndex = rowStopIndex;\n }\n }\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Grid.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n\n }, {\n key: \"_debounceScrollEnded\",\n value: function _debounceScrollEnded() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n if (this._disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = requestAnimationTimeout(this._debounceScrollEndedCallback, scrollingResetTimeInterval);\n }\n }, {\n key: \"_handleInvalidatedGridSize\",\n\n /**\n * Check for batched CellMeasurer size invalidations.\n * This will occur the first time one or more previously unmeasured cells are rendered.\n */\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number' && typeof this._deferredInvalidateRowIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }, {\n key: \"_invokeOnScrollMemoizer\",\n value: function _invokeOnScrollMemoizer(_ref6) {\n var _this3 = this;\n\n var scrollLeft = _ref6.scrollLeft,\n scrollTop = _ref6.scrollTop,\n totalColumnsWidth = _ref6.totalColumnsWidth,\n totalRowsHeight = _ref6.totalRowsHeight;\n\n this._onScrollMemoizer({\n callback: function callback(_ref7) {\n var scrollLeft = _ref7.scrollLeft,\n scrollTop = _ref7.scrollTop;\n var _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalRowsHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalColumnsWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: \"_isScrolling\",\n value: function _isScrolling() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n // If isScrolling is defined in props, use it to override the value in state\n // This is a performance optimization for WindowScroller + Grid\n return Object.hasOwnProperty.call(props, 'isScrolling') ? Boolean(props.isScrolling) : Boolean(state.isScrolling);\n }\n }, {\n key: \"_maybeCallOnScrollbarPresenceChange\",\n value: function _maybeCallOnScrollbarPresenceChange() {\n if (this._scrollbarPresenceChanged) {\n var onScrollbarPresenceChange = this.props.onScrollbarPresenceChange;\n this._scrollbarPresenceChanged = false;\n onScrollbarPresenceChange({\n horizontal: this._horizontalScrollBarSize > 0,\n size: this.state.instanceProps.scrollbarSize,\n vertical: this._verticalScrollBarSize > 0\n });\n }\n }\n }, {\n key: \"scrollToPosition\",\n\n /**\n * Scroll to the specified offset(s).\n * Useful for animating position changes.\n */\n value: function scrollToPosition(_ref8) {\n var scrollLeft = _ref8.scrollLeft,\n scrollTop = _ref8.scrollTop;\n\n var stateUpdate = Grid._getScrollToPositionStateUpdate({\n prevState: this.state,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: \"_getCalculatedScrollLeft\",\n value: function _getCalculatedScrollLeft() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n return Grid._getCalculatedScrollLeft(props, state);\n }\n }, {\n key: \"_updateScrollLeftForScrollToColumn\",\n value: function _updateScrollLeftForScrollToColumn() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n var stateUpdate = Grid._getScrollLeftForScrollToColumnStateUpdate(props, state);\n\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }, {\n key: \"_getCalculatedScrollTop\",\n value: function _getCalculatedScrollTop() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n return Grid._getCalculatedScrollTop(props, state);\n }\n }, {\n key: \"_resetStyleCache\",\n value: function _resetStyleCache() {\n var styleCache = this._styleCache;\n var cellCache = this._cellCache;\n var isScrollingOptOut = this.props.isScrollingOptOut; // Reset cell and style caches once scrolling stops.\n // This makes Grid simpler to use (since cells commonly change).\n // And it keeps the caches from growing too large.\n // Performance is most sensitive when a user is scrolling.\n // Don't clear visible cells from cellCache if isScrollingOptOut is specified.\n // This keeps the cellCache to a resonable size.\n\n this._cellCache = {};\n this._styleCache = {}; // Copy over the visible cell styles so avoid unnecessary re-render.\n\n for (var rowIndex = this._rowStartIndex; rowIndex <= this._rowStopIndex; rowIndex++) {\n for (var columnIndex = this._columnStartIndex; columnIndex <= this._columnStopIndex; columnIndex++) {\n var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n this._styleCache[key] = styleCache[key];\n\n if (isScrollingOptOut) {\n this._cellCache[key] = cellCache[key];\n }\n }\n }\n }\n }, {\n key: \"_updateScrollTopForScrollToRow\",\n value: function _updateScrollTopForScrollToRow() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;\n\n var stateUpdate = Grid._getScrollTopForScrollToRowStateUpdate(props, state);\n\n if (stateUpdate) {\n stateUpdate.needToResetStyleCache = false;\n this.setState(stateUpdate);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var newState = {};\n\n if (nextProps.columnCount === 0 && prevState.scrollLeft !== 0 || nextProps.rowCount === 0 && prevState.scrollTop !== 0) {\n newState.scrollLeft = 0;\n newState.scrollTop = 0; // only use scroll{Left,Top} from props if scrollTo{Column,Row} isn't specified\n // scrollTo{Column,Row} should override scroll{Left,Top}\n } else if (nextProps.scrollLeft !== prevState.scrollLeft && nextProps.scrollToColumn < 0 || nextProps.scrollTop !== prevState.scrollTop && nextProps.scrollToRow < 0) {\n Object.assign(newState, Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: nextProps.scrollLeft,\n scrollTop: nextProps.scrollTop\n }));\n }\n\n var instanceProps = prevState.instanceProps; // Initially we should not clearStyleCache\n\n newState.needToResetStyleCache = false;\n\n if (nextProps.columnWidth !== instanceProps.prevColumnWidth || nextProps.rowHeight !== instanceProps.prevRowHeight) {\n // Reset cache. set it to {} in render\n newState.needToResetStyleCache = true;\n }\n\n instanceProps.columnSizeAndPositionManager.configure({\n cellCount: nextProps.columnCount,\n estimatedCellSize: Grid._getEstimatedColumnSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.columnWidth)\n });\n instanceProps.rowSizeAndPositionManager.configure({\n cellCount: nextProps.rowCount,\n estimatedCellSize: Grid._getEstimatedRowSize(nextProps),\n cellSizeGetter: Grid._wrapSizeGetter(nextProps.rowHeight)\n });\n\n if (instanceProps.prevColumnCount === 0 || instanceProps.prevRowCount === 0) {\n instanceProps.prevColumnCount = 0;\n instanceProps.prevRowCount = 0;\n } // If scrolling is controlled outside this component, clear cache when scrolling stops\n\n\n if (nextProps.autoHeight && nextProps.isScrolling === false && instanceProps.prevIsScrolling === true) {\n Object.assign(newState, {\n isScrolling: false\n });\n }\n\n var maybeStateA;\n var maybeStateB;\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevColumnCount,\n cellSize: typeof instanceProps.prevColumnWidth === 'number' ? instanceProps.prevColumnWidth : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.columnSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.columnCount,\n nextCellSize: typeof nextProps.columnWidth === 'number' ? nextProps.columnWidth : null,\n nextScrollToIndex: nextProps.scrollToColumn,\n scrollToIndex: instanceProps.prevScrollToColumn,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateA = Grid._getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState);\n }\n });\n calculateSizeAndPositionDataAndUpdateScrollOffset({\n cellCount: instanceProps.prevRowCount,\n cellSize: typeof instanceProps.prevRowHeight === 'number' ? instanceProps.prevRowHeight : null,\n computeMetadataCallback: function computeMetadataCallback() {\n return instanceProps.rowSizeAndPositionManager.resetCell(0);\n },\n computeMetadataCallbackProps: nextProps,\n nextCellsCount: nextProps.rowCount,\n nextCellSize: typeof nextProps.rowHeight === 'number' ? nextProps.rowHeight : null,\n nextScrollToIndex: nextProps.scrollToRow,\n scrollToIndex: instanceProps.prevScrollToRow,\n updateScrollOffsetForScrollToIndex: function updateScrollOffsetForScrollToIndex() {\n maybeStateB = Grid._getScrollTopForScrollToRowStateUpdate(nextProps, prevState);\n }\n });\n instanceProps.prevColumnCount = nextProps.columnCount;\n instanceProps.prevColumnWidth = nextProps.columnWidth;\n instanceProps.prevIsScrolling = nextProps.isScrolling === true;\n instanceProps.prevRowCount = nextProps.rowCount;\n instanceProps.prevRowHeight = nextProps.rowHeight;\n instanceProps.prevScrollToColumn = nextProps.scrollToColumn;\n instanceProps.prevScrollToRow = nextProps.scrollToRow; // getting scrollBarSize (moved from componentWillMount)\n\n instanceProps.scrollbarSize = nextProps.getScrollbarSize();\n\n if (instanceProps.scrollbarSize === undefined) {\n instanceProps.scrollbarSizeMeasured = false;\n instanceProps.scrollbarSize = 0;\n } else {\n instanceProps.scrollbarSizeMeasured = true;\n }\n\n newState.instanceProps = instanceProps;\n return _objectSpread({}, newState, {}, maybeStateA, {}, maybeStateB);\n }\n }, {\n key: \"_getEstimatedColumnSize\",\n value: function _getEstimatedColumnSize(props) {\n return typeof props.columnWidth === 'number' ? props.columnWidth : props.estimatedColumnSize;\n }\n }, {\n key: \"_getEstimatedRowSize\",\n value: function _getEstimatedRowSize(props) {\n return typeof props.rowHeight === 'number' ? props.rowHeight : props.estimatedRowSize;\n }\n }, {\n key: \"_getScrollToPositionStateUpdate\",\n\n /**\n * Get the updated state after scrolling to\n * scrollLeft and scrollTop\n */\n value: function _getScrollToPositionStateUpdate(_ref9) {\n var prevState = _ref9.prevState,\n scrollLeft = _ref9.scrollLeft,\n scrollTop = _ref9.scrollTop;\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0) {\n newState.scrollDirectionHorizontal = scrollLeft > prevState.scrollLeft ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n newState.scrollLeft = scrollLeft;\n }\n\n if (typeof scrollTop === 'number' && scrollTop >= 0) {\n newState.scrollDirectionVertical = scrollTop > prevState.scrollTop ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_BACKWARD;\n newState.scrollTop = scrollTop;\n }\n\n if (typeof scrollLeft === 'number' && scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || typeof scrollTop === 'number' && scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n return newState;\n }\n\n return {};\n }\n }, {\n key: \"_wrapSizeGetter\",\n value: function _wrapSizeGetter(value) {\n return typeof value === 'function' ? value : function () {\n return value;\n };\n }\n }, {\n key: \"_getCalculatedScrollLeft\",\n value: function _getCalculatedScrollLeft(nextProps, prevState) {\n var columnCount = nextProps.columnCount,\n height = nextProps.height,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToColumn = nextProps.scrollToColumn,\n width = nextProps.width;\n var scrollLeft = prevState.scrollLeft,\n instanceProps = prevState.instanceProps;\n\n if (columnCount > 0) {\n var finalColumn = columnCount - 1;\n var targetIndex = scrollToColumn < 0 ? finalColumn : Math.min(finalColumn, scrollToColumn);\n var totalRowsHeight = instanceProps.rowSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalRowsHeight > height ? instanceProps.scrollbarSize : 0;\n return instanceProps.columnSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: width - scrollBarSize,\n currentOffset: scrollLeft,\n targetIndex: targetIndex\n });\n }\n\n return 0;\n }\n }, {\n key: \"_getScrollLeftForScrollToColumnStateUpdate\",\n value: function _getScrollLeftForScrollToColumnStateUpdate(nextProps, prevState) {\n var scrollLeft = prevState.scrollLeft;\n\n var calculatedScrollLeft = Grid._getCalculatedScrollLeft(nextProps, prevState);\n\n if (typeof calculatedScrollLeft === 'number' && calculatedScrollLeft >= 0 && scrollLeft !== calculatedScrollLeft) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: calculatedScrollLeft,\n scrollTop: -1\n });\n }\n\n return {};\n }\n }, {\n key: \"_getCalculatedScrollTop\",\n value: function _getCalculatedScrollTop(nextProps, prevState) {\n var height = nextProps.height,\n rowCount = nextProps.rowCount,\n scrollToAlignment = nextProps.scrollToAlignment,\n scrollToRow = nextProps.scrollToRow,\n width = nextProps.width;\n var scrollTop = prevState.scrollTop,\n instanceProps = prevState.instanceProps;\n\n if (rowCount > 0) {\n var finalRow = rowCount - 1;\n var targetIndex = scrollToRow < 0 ? finalRow : Math.min(finalRow, scrollToRow);\n var totalColumnsWidth = instanceProps.columnSizeAndPositionManager.getTotalSize();\n var scrollBarSize = instanceProps.scrollbarSizeMeasured && totalColumnsWidth > width ? instanceProps.scrollbarSize : 0;\n return instanceProps.rowSizeAndPositionManager.getUpdatedOffsetForIndex({\n align: scrollToAlignment,\n containerSize: height - scrollBarSize,\n currentOffset: scrollTop,\n targetIndex: targetIndex\n });\n }\n\n return 0;\n }\n }, {\n key: \"_getScrollTopForScrollToRowStateUpdate\",\n value: function _getScrollTopForScrollToRowStateUpdate(nextProps, prevState) {\n var scrollTop = prevState.scrollTop;\n\n var calculatedScrollTop = Grid._getCalculatedScrollTop(nextProps, prevState);\n\n if (typeof calculatedScrollTop === 'number' && calculatedScrollTop >= 0 && scrollTop !== calculatedScrollTop) {\n return Grid._getScrollToPositionStateUpdate({\n prevState: prevState,\n scrollLeft: -1,\n scrollTop: calculatedScrollTop\n });\n }\n\n return {};\n }\n }]);\n\n return Grid;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": PropTypes.string.isRequired,\n \"aria-readonly\": PropTypes.bool,\n\n /**\n * Set the width of the inner scrollable container to 'auto'.\n * This is useful for single-column Grids to ensure that the column doesn't extend below a vertical scrollbar.\n */\n \"autoContainerWidth\": PropTypes.bool.isRequired,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n \"autoHeight\": PropTypes.bool.isRequired,\n\n /**\n * Removes fixed width from the scrollingContainer so that the total width of rows can stretch the window.\n * Intended for use with WindowScroller\n */\n \"autoWidth\": PropTypes.bool.isRequired,\n\n /** Responsible for rendering a cell given an row and column index. */\n \"cellRenderer\": function cellRenderer() {\n return (typeof bpfrpt_proptype_CellRenderer === \"function\" ? bpfrpt_proptype_CellRenderer.isRequired ? bpfrpt_proptype_CellRenderer.isRequired : bpfrpt_proptype_CellRenderer : PropTypes.shape(bpfrpt_proptype_CellRenderer).isRequired).apply(this, arguments);\n },\n\n /** Responsible for rendering a group of cells given their index ranges. */\n \"cellRangeRenderer\": function cellRangeRenderer() {\n return (typeof bpfrpt_proptype_CellRangeRenderer === \"function\" ? bpfrpt_proptype_CellRangeRenderer.isRequired ? bpfrpt_proptype_CellRangeRenderer.isRequired : bpfrpt_proptype_CellRangeRenderer : PropTypes.shape(bpfrpt_proptype_CellRangeRenderer).isRequired).apply(this, arguments);\n },\n\n /** Optional custom CSS class name to attach to root Grid element. */\n \"className\": PropTypes.string,\n\n /** Number of columns in grid. */\n \"columnCount\": PropTypes.number.isRequired,\n\n /** Either a fixed column width (number) or a function that returns the width of a column given its index. */\n \"columnWidth\": function columnWidth() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n /** Unfiltered props for the Grid container. */\n \"containerProps\": PropTypes.object,\n\n /** ARIA role for the cell-container. */\n \"containerRole\": PropTypes.string.isRequired,\n\n /** Optional inline style applied to inner cell-container */\n \"containerStyle\": PropTypes.object.isRequired,\n\n /**\n * If CellMeasurer is used to measure this Grid's children, this should be a pointer to its CellMeasurerCache.\n * A shared CellMeasurerCache reference enables Grid and CellMeasurer to share measurement data.\n */\n \"deferredMeasurementCache\": PropTypes.object,\n\n /**\n * Used to estimate the total width of a Grid before all of its columns have actually been measured.\n * The estimated total width is adjusted as columns are rendered.\n */\n \"estimatedColumnSize\": PropTypes.number.isRequired,\n\n /**\n * Used to estimate the total height of a Grid before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n \"estimatedRowSize\": PropTypes.number.isRequired,\n\n /** Exposed for testing purposes only. */\n \"getScrollbarSize\": PropTypes.func.isRequired,\n\n /** Height of Grid; this property determines the number of visible (vs virtualized) rows. */\n \"height\": PropTypes.number.isRequired,\n\n /** Optional custom id to attach to root Grid element. */\n \"id\": PropTypes.string,\n\n /**\n * Override internal is-scrolling state tracking.\n * This property is primarily intended for use with the WindowScroller component.\n */\n \"isScrolling\": PropTypes.bool,\n\n /**\n * Opt-out of isScrolling param passed to cellRangeRenderer.\n * To avoid the extra render when scroll stops.\n */\n \"isScrollingOptOut\": PropTypes.bool.isRequired,\n\n /** Optional renderer to be used in place of rows when either :rowCount or :columnCount is 0. */\n \"noContentRenderer\": function noContentRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n \"onScroll\": PropTypes.func.isRequired,\n\n /**\n * Called whenever a horizontal or vertical scrollbar is added or removed.\n * This prop is not intended for end-user use;\n * It is used by MultiGrid to support fixed-row/fixed-column scroll syncing.\n */\n \"onScrollbarPresenceChange\": PropTypes.func.isRequired,\n\n /** Callback invoked with information about the section of the Grid that was just rendered. */\n \"onSectionRendered\": PropTypes.func.isRequired,\n\n /**\n * Number of columns to render before/after the visible section of the grid.\n * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n \"overscanColumnCount\": PropTypes.number.isRequired,\n\n /**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n \"overscanIndicesGetter\": function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n\n /**\n * Number of rows to render above/below the visible section of the grid.\n * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n \"overscanRowCount\": PropTypes.number.isRequired,\n\n /** ARIA role for the grid element. */\n \"role\": PropTypes.string.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * Should implement the following interface: ({ index: number }): number\n */\n \"rowHeight\": function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n /** Number of rows in grid. */\n \"rowCount\": PropTypes.number.isRequired,\n\n /** Wait this amount of time after the last scroll event before resetting Grid `pointer-events`. */\n \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n\n /** Horizontal offset. */\n \"scrollLeft\": PropTypes.number,\n\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n \"scrollToAlignment\": function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n /** Column index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToColumn\": PropTypes.number.isRequired,\n\n /** Vertical offset. */\n \"scrollTop\": PropTypes.number,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToRow\": PropTypes.number.isRequired,\n\n /** Optional inline style */\n \"style\": PropTypes.object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": PropTypes.number,\n\n /** Width of Grid; this property determines the number of visible (vs virtualized) columns. */\n \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(Grid, \"defaultProps\", {\n 'aria-label': 'grid',\n 'aria-readonly': true,\n autoContainerWidth: false,\n autoHeight: false,\n autoWidth: false,\n cellRangeRenderer: defaultCellRangeRenderer,\n containerRole: 'rowgroup',\n containerStyle: {},\n estimatedColumnSize: 100,\n estimatedRowSize: 30,\n getScrollbarSize: scrollbarSize,\n noContentRenderer: renderNull,\n onScroll: function onScroll() {},\n onScrollbarPresenceChange: function onScrollbarPresenceChange() {},\n onSectionRendered: function onSectionRendered() {},\n overscanColumnCount: 0,\n overscanIndicesGetter: defaultOverscanIndicesGetter,\n overscanRowCount: 10,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n scrollToAlignment: 'auto',\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n tabIndex: 0,\n isScrollingOptOut: false\n});\n\npolyfill(Grid);\nexport default Grid;\nimport { bpfrpt_proptype_CellRenderer } from \"./types\";\nimport { bpfrpt_proptype_CellRangeRenderer } from \"./types\";\nimport { bpfrpt_proptype_CellPosition } from \"./types\";\nimport { bpfrpt_proptype_CellSize } from \"./types\";\nimport { bpfrpt_proptype_CellSizeGetter } from \"./types\";\nimport { bpfrpt_proptype_NoContentRenderer } from \"./types\";\nimport { bpfrpt_proptype_Scroll } from \"./types\";\nimport { bpfrpt_proptype_ScrollbarPresenceChange } from \"./types\";\nimport { bpfrpt_proptype_RenderedSection } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndicesGetter } from \"./types\";\nimport { bpfrpt_proptype_Alignment } from \"./types\";\nimport { bpfrpt_proptype_CellCache } from \"./types\";\nimport { bpfrpt_proptype_StyleCache } from \"./types\";\nimport { bpfrpt_proptype_AnimationTimeoutId } from \"../utils/requestAnimationTimeout\";\nimport PropTypes from \"prop-types\";","import { caf, raf } from './animationFrame';\nvar bpfrpt_proptype_AnimationTimeoutId = process.env.NODE_ENV === 'production' ? null : {\n \"id\": PropTypes.number.isRequired\n};\nexport var cancelAnimationTimeout = function cancelAnimationTimeout(frame) {\n return caf(frame.id);\n};\n/**\n * Recursively calls requestAnimationFrame until a specified delay has been met or exceeded.\n * When the delay time has been reached the function you're timing out will be called.\n *\n * Credit: Joe Lambert (https://gist.github.com/joelambert/1002116#file-requesttimeout-js)\n */\n\nexport var requestAnimationTimeout = function requestAnimationTimeout(callback, delay) {\n var start; // wait for end of processing current event handler, because event handler may be long\n\n Promise.resolve().then(function () {\n start = Date.now();\n });\n\n var timeout = function timeout() {\n if (Date.now() - start >= delay) {\n callback.call();\n } else {\n frame.id = raf(timeout);\n }\n };\n\n var frame = {\n id: raf(timeout)\n };\n return frame;\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_AnimationTimeoutId };","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n\n if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n return {\n overscanStartIndex: Math.max(0, startIndex),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex)\n };\n }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndices } from \"./types\";","/**\n * Default implementation of cellRangeRenderer used by Grid.\n * This renderer supports cell-caching while the user is scrolling.\n */\nexport default function defaultCellRangeRenderer(_ref) {\n var cellCache = _ref.cellCache,\n cellRenderer = _ref.cellRenderer,\n columnSizeAndPositionManager = _ref.columnSizeAndPositionManager,\n columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n deferredMeasurementCache = _ref.deferredMeasurementCache,\n horizontalOffsetAdjustment = _ref.horizontalOffsetAdjustment,\n isScrolling = _ref.isScrolling,\n isScrollingOptOut = _ref.isScrollingOptOut,\n parent = _ref.parent,\n rowSizeAndPositionManager = _ref.rowSizeAndPositionManager,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex,\n styleCache = _ref.styleCache,\n verticalOffsetAdjustment = _ref.verticalOffsetAdjustment,\n visibleColumnIndices = _ref.visibleColumnIndices,\n visibleRowIndices = _ref.visibleRowIndices;\n var renderedCells = []; // Browsers have native size limits for elements (eg Chrome 33M pixels, IE 1.5M pixes).\n // User cannot scroll beyond these size limitations.\n // In order to work around this, ScalingCellSizeAndPositionManager compresses offsets.\n // We should never cache styles for compressed offsets though as this can lead to bugs.\n // See issue #576 for more.\n\n var areOffsetsAdjusted = columnSizeAndPositionManager.areOffsetsAdjusted() || rowSizeAndPositionManager.areOffsetsAdjusted();\n var canCacheStyle = !isScrolling && !areOffsetsAdjusted;\n\n for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n var rowDatum = rowSizeAndPositionManager.getSizeAndPositionOfCell(rowIndex);\n\n for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n var columnDatum = columnSizeAndPositionManager.getSizeAndPositionOfCell(columnIndex);\n var isVisible = columnIndex >= visibleColumnIndices.start && columnIndex <= visibleColumnIndices.stop && rowIndex >= visibleRowIndices.start && rowIndex <= visibleRowIndices.stop;\n var key = \"\".concat(rowIndex, \"-\").concat(columnIndex);\n var style = void 0; // Cache style objects so shallow-compare doesn't re-render unnecessarily.\n\n if (canCacheStyle && styleCache[key]) {\n style = styleCache[key];\n } else {\n // In deferred mode, cells will be initially rendered before we know their size.\n // Don't interfere with CellMeasurer's measurements by setting an invalid size.\n if (deferredMeasurementCache && !deferredMeasurementCache.has(rowIndex, columnIndex)) {\n // Position not-yet-measured cells at top/left 0,0,\n // And give them width/height of 'auto' so they can grow larger than the parent Grid if necessary.\n // Positioning them further to the right/bottom influences their measured size.\n style = {\n height: 'auto',\n left: 0,\n position: 'absolute',\n top: 0,\n width: 'auto'\n };\n } else {\n style = {\n height: rowDatum.size,\n left: columnDatum.offset + horizontalOffsetAdjustment,\n position: 'absolute',\n top: rowDatum.offset + verticalOffsetAdjustment,\n width: columnDatum.size\n };\n styleCache[key] = style;\n }\n }\n\n var cellRendererParams = {\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent,\n rowIndex: rowIndex,\n style: style\n };\n var renderedCell = void 0; // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling completes.\n // However if we are scaling scroll positions and sizes, we should also avoid caching.\n // This is because the offset changes slightly as scroll position changes and caching leads to stale values.\n // For more info refer to issue #395\n //\n // If isScrollingOptOut is specified, we always cache cells.\n // For more info refer to issue #1028\n\n if ((isScrollingOptOut || isScrolling) && !horizontalOffsetAdjustment && !verticalOffsetAdjustment) {\n if (!cellCache[key]) {\n cellCache[key] = cellRenderer(cellRendererParams);\n }\n\n renderedCell = cellCache[key]; // If the user is no longer scrolling, don't cache cells.\n // This makes dynamic cell content difficult for users and would also lead to a heavier memory footprint.\n } else {\n renderedCell = cellRenderer(cellRendererParams);\n }\n\n if (renderedCell == null || renderedCell === false) {\n continue;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n warnAboutMissingStyle(parent, renderedCell);\n }\n\n renderedCells.push(renderedCell);\n }\n }\n\n return renderedCells;\n}\n\nfunction warnAboutMissingStyle(parent, renderedCell) {\n if (process.env.NODE_ENV !== 'production') {\n if (renderedCell) {\n // If the direct child is a CellMeasurer, then we should check its child\n // See issue #611\n if (renderedCell.type && renderedCell.type.__internalCellMeasurerFlag) {\n renderedCell = renderedCell.props.children;\n }\n\n if (renderedCell && renderedCell.props && renderedCell.props.style === undefined && parent.__warnedAboutMissingStyle !== true) {\n parent.__warnedAboutMissingStyle = true;\n console.warn('Rendered cell should include style property for positioning.');\n }\n }\n }\n}\n\nimport { bpfrpt_proptype_CellRangeRendererParams } from \"./types\";","export var SCROLL_DIRECTION_BACKWARD = -1;\nexport var SCROLL_DIRECTION_FORWARD = 1;\nexport var SCROLL_DIRECTION_HORIZONTAL = 'horizontal';\nexport var SCROLL_DIRECTION_VERTICAL = 'vertical';\n/**\n * Calculates the number of cells to overscan before and after a specified range.\n * This function ensures that overscanning doesn't exceed the available cells.\n */\n\nexport default function defaultOverscanIndicesGetter(_ref) {\n var cellCount = _ref.cellCount,\n overscanCellsCount = _ref.overscanCellsCount,\n scrollDirection = _ref.scrollDirection,\n startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n // Make sure we render at least 1 cell extra before and after (except near boundaries)\n // This is necessary in order to support keyboard navigation (TAB/SHIFT+TAB) in some cases\n // For more info see issues #625\n overscanCellsCount = Math.max(1, overscanCellsCount);\n\n if (scrollDirection === SCROLL_DIRECTION_FORWARD) {\n return {\n overscanStartIndex: Math.max(0, startIndex - 1),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount)\n };\n } else {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellCount - 1, stopIndex + 1)\n };\n }\n}\nimport { bpfrpt_proptype_OverscanIndicesGetterParams } from \"./types\";\nimport { bpfrpt_proptype_OverscanIndices } from \"./types\";","var bpfrpt_proptype_ScrollIndices = process.env.NODE_ENV === 'production' ? null : {\n \"scrollToColumn\": PropTypes.number.isRequired,\n \"scrollToRow\": PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_ScrollIndices };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\n/**\n * This HOC decorates a virtualized component and responds to arrow-key events by scrolling one row or column at a time.\n */\n\nvar ArrowKeyStepper = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ArrowKeyStepper, _React$PureComponent);\n\n function ArrowKeyStepper() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ArrowKeyStepper);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ArrowKeyStepper)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollToColumn: 0,\n scrollToRow: 0,\n instanceProps: {\n prevScrollToColumn: 0,\n prevScrollToRow: 0\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_columnStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStartIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_rowStopIndex\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onKeyDown\", function (event) {\n var _this$props = _this.props,\n columnCount = _this$props.columnCount,\n disabled = _this$props.disabled,\n mode = _this$props.mode,\n rowCount = _this$props.rowCount;\n\n if (disabled) {\n return;\n }\n\n var _this$_getScrollState = _this._getScrollState(),\n scrollToColumnPrevious = _this$_getScrollState.scrollToColumn,\n scrollToRowPrevious = _this$_getScrollState.scrollToRow;\n\n var _this$_getScrollState2 = _this._getScrollState(),\n scrollToColumn = _this$_getScrollState2.scrollToColumn,\n scrollToRow = _this$_getScrollState2.scrollToRow; // The above cases all prevent default event event behavior.\n // This is to keep the grid from scrolling after the snap-to update.\n\n\n switch (event.key) {\n case 'ArrowDown':\n scrollToRow = mode === 'cells' ? Math.min(scrollToRow + 1, rowCount - 1) : Math.min(_this._rowStopIndex + 1, rowCount - 1);\n break;\n\n case 'ArrowLeft':\n scrollToColumn = mode === 'cells' ? Math.max(scrollToColumn - 1, 0) : Math.max(_this._columnStartIndex - 1, 0);\n break;\n\n case 'ArrowRight':\n scrollToColumn = mode === 'cells' ? Math.min(scrollToColumn + 1, columnCount - 1) : Math.min(_this._columnStopIndex + 1, columnCount - 1);\n break;\n\n case 'ArrowUp':\n scrollToRow = mode === 'cells' ? Math.max(scrollToRow - 1, 0) : Math.max(_this._rowStartIndex - 1, 0);\n break;\n }\n\n if (scrollToColumn !== scrollToColumnPrevious || scrollToRow !== scrollToRowPrevious) {\n event.preventDefault();\n\n _this._updateScrollState({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref) {\n var columnStartIndex = _ref.columnStartIndex,\n columnStopIndex = _ref.columnStopIndex,\n rowStartIndex = _ref.rowStartIndex,\n rowStopIndex = _ref.rowStopIndex;\n _this._columnStartIndex = columnStartIndex;\n _this._columnStopIndex = columnStopIndex;\n _this._rowStartIndex = rowStartIndex;\n _this._rowStopIndex = rowStopIndex;\n });\n\n return _this;\n }\n\n _createClass(ArrowKeyStepper, [{\n key: \"setScrollIndexes\",\n value: function setScrollIndexes(_ref2) {\n var scrollToColumn = _ref2.scrollToColumn,\n scrollToRow = _ref2.scrollToRow;\n this.setState({\n scrollToRow: scrollToRow,\n scrollToColumn: scrollToColumn\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n children = _this$props2.children;\n\n var _this$_getScrollState3 = this._getScrollState(),\n scrollToColumn = _this$_getScrollState3.scrollToColumn,\n scrollToRow = _this$_getScrollState3.scrollToRow;\n\n return React.createElement(\"div\", {\n className: className,\n onKeyDown: this._onKeyDown\n }, children({\n onSectionRendered: this._onSectionRendered,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n }));\n }\n }, {\n key: \"_getScrollState\",\n value: function _getScrollState() {\n return this.props.isControlled ? this.props : this.state;\n }\n }, {\n key: \"_updateScrollState\",\n value: function _updateScrollState(_ref3) {\n var scrollToColumn = _ref3.scrollToColumn,\n scrollToRow = _ref3.scrollToRow;\n var _this$props3 = this.props,\n isControlled = _this$props3.isControlled,\n onScrollToChange = _this$props3.onScrollToChange;\n\n if (typeof onScrollToChange === 'function') {\n onScrollToChange({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n\n if (!isControlled) {\n this.setState({\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow\n });\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.isControlled) {\n return {};\n }\n\n if (nextProps.scrollToColumn !== prevState.instanceProps.prevScrollToColumn || nextProps.scrollToRow !== prevState.instanceProps.prevScrollToRow) {\n return _objectSpread({}, prevState, {\n scrollToColumn: nextProps.scrollToColumn,\n scrollToRow: nextProps.scrollToRow,\n instanceProps: {\n prevScrollToColumn: nextProps.scrollToColumn,\n prevScrollToRow: nextProps.scrollToRow\n }\n });\n }\n\n return {};\n }\n }]);\n\n return ArrowKeyStepper;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"children\": PropTypes.func.isRequired,\n \"className\": PropTypes.string,\n \"columnCount\": PropTypes.number.isRequired,\n \"disabled\": PropTypes.bool.isRequired,\n \"isControlled\": PropTypes.bool.isRequired,\n \"mode\": PropTypes.oneOf([\"cells\", \"edges\"]).isRequired,\n \"onScrollToChange\": PropTypes.func,\n \"rowCount\": PropTypes.number.isRequired,\n \"scrollToColumn\": PropTypes.number.isRequired,\n \"scrollToRow\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(ArrowKeyStepper, \"defaultProps\", {\n disabled: false,\n isControlled: false,\n mode: 'edges',\n scrollToColumn: 0,\n scrollToRow: 0\n});\n\npolyfill(ArrowKeyStepper);\nexport default ArrowKeyStepper;\nimport { bpfrpt_proptype_RenderedSection } from \"../Grid\";\nimport { bpfrpt_proptype_ScrollIndices } from \"./types\";\nimport PropTypes from \"prop-types\";","/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n * 5) Added support for injecting custom window object\n **/\nexport default function createDetectElementResize(nonce, hostWindow) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n\n if (typeof hostWindow !== 'undefined') {\n _window = hostWindow;\n } else if (typeof window !== 'undefined') {\n _window = window;\n } else if (typeof self !== 'undefined') {\n _window = self;\n } else {\n _window = global;\n }\n\n var attachEvent = typeof _window.document !== 'undefined' && _window.document.attachEvent;\n\n if (!attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className && typeof e.target.className.indexOf === 'function' && e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n /* Detect CSS Animations support to detect element display/re-attach */\n\n\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = _window.document.createElement('fakeelement');\n\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n }\n\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('detectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n style.id = 'detectElementResize';\n style.type = 'text/css';\n\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n };\n\n var addResizeListener = function addResizeListener(element, fn) {\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n\n var elementStyle = _window.getComputedStyle(element);\n\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n var resizeTriggersHtml = '' + '';\n\n if (window.trustedTypes) {\n var staticPolicy = trustedTypes.createPolicy('react-virtualized-auto-sizer', {\n createHTML: function createHTML() {\n return resizeTriggersHtml;\n }\n });\n element.__resizeTriggers__.innerHTML = staticPolicy.createHTML('');\n } else {\n element.__resizeTriggers__.innerHTML = resizeTriggersHtml;\n }\n\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n /* Listen for a css animation to detect element display/re-attach */\n\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n\n element.__resizeListeners__.push(fn);\n }\n };\n\n var removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n\n element.__resizeTriggers__.__animationListener__ = null;\n }\n\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {// Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport createDetectElementResize from '../vendor/detectElementResize';\nvar AutoSizer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(AutoSizer, _React$Component);\n\n function AutoSizer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AutoSizer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AutoSizer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_parentNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_autoSizer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_window\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n var _this$props = _this.props,\n disableHeight = _this$props.disableHeight,\n disableWidth = _this$props.disableWidth,\n onResize = _this$props.onResize;\n\n if (_this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n var height = _this._parentNode.offsetHeight || 0;\n var width = _this._parentNode.offsetWidth || 0;\n var win = _this._window || window;\n var style = win.getComputedStyle(_this._parentNode) || {};\n var paddingLeft = parseInt(style.paddingLeft, 10) || 0;\n var paddingRight = parseInt(style.paddingRight, 10) || 0;\n var paddingTop = parseInt(style.paddingTop, 10) || 0;\n var paddingBottom = parseInt(style.paddingBottom, 10) || 0;\n var newHeight = height - paddingTop - paddingBottom;\n var newWidth = width - paddingLeft - paddingRight;\n\n if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n _this.setState({\n height: height - paddingTop - paddingBottom,\n width: width - paddingLeft - paddingRight\n });\n\n onResize({\n height: height,\n width: width\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (autoSizer) {\n _this._autoSizer = autoSizer;\n });\n\n return _this;\n }\n\n _createClass(AutoSizer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var nonce = this.props.nonce;\n\n if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n this._window = this._autoSizer.parentNode.ownerDocument.defaultView; // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n\n this._detectElementResize = createDetectElementResize(nonce, this._window);\n\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\n this._onResize();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disableHeight = _this$props2.disableHeight,\n disableWidth = _this$props2.disableWidth,\n style = _this$props2.style;\n var _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width; // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n var outerStyle = {\n overflow: 'visible'\n };\n var childParams = {};\n\n if (!disableHeight) {\n outerStyle.height = 0;\n childParams.height = height;\n }\n\n if (!disableWidth) {\n outerStyle.width = 0;\n childParams.width = width;\n }\n /**\n * TODO: Avoid rendering children before the initial measurements have been collected.\n * At best this would just be wasting cycles.\n * Add this check into version 10 though as it could break too many ref callbacks in version 9.\n * Note that if default width/height props were provided this would still work with SSR.\n if (\n height !== 0 &&\n width !== 0\n ) {\n child = children({ height, width })\n }\n */\n\n\n return React.createElement(\"div\", {\n className: className,\n ref: this._setRef,\n style: _objectSpread({}, outerStyle, {}, style)\n }, children(childParams));\n }\n }]);\n\n return AutoSizer;\n}(React.Component), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /** Function responsible for rendering children.*/\n \"children\": PropTypes.func.isRequired,\n\n /** Optional custom CSS class name to attach to root AutoSizer element. */\n \"className\": PropTypes.string,\n\n /** Default height to use for initial render; useful for SSR */\n \"defaultHeight\": PropTypes.number,\n\n /** Default width to use for initial render; useful for SSR */\n \"defaultWidth\": PropTypes.number,\n\n /** Disable dynamic :height property */\n \"disableHeight\": PropTypes.bool.isRequired,\n\n /** Disable dynamic :width property */\n \"disableWidth\": PropTypes.bool.isRequired,\n\n /** Nonce of the inlined stylesheet for Content Security Policy */\n \"nonce\": PropTypes.string,\n\n /** Callback to be invoked on-resize */\n \"onResize\": PropTypes.func.isRequired,\n\n /** Optional inline style */\n \"style\": PropTypes.object\n}), _temp);\n\n_defineProperty(AutoSizer, \"defaultProps\", {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n});\n\nexport { AutoSizer as default };\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\n\n/**\n * Wraps a cell and measures its rendered content.\n * Measurements are stored in a per-cell cache.\n * Cached-content is not be re-measured.\n */\nvar CellMeasurer = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CellMeasurer, _React$PureComponent);\n\n function CellMeasurer() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CellMeasurer);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CellMeasurer)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_measure\", function () {\n var _this$props = _this.props,\n cache = _this$props.cache,\n _this$props$columnInd = _this$props.columnIndex,\n columnIndex = _this$props$columnInd === void 0 ? 0 : _this$props$columnInd,\n parent = _this$props.parent,\n _this$props$rowIndex = _this$props.rowIndex,\n rowIndex = _this$props$rowIndex === void 0 ? _this.props.index || 0 : _this$props$rowIndex;\n\n var _this$_getCellMeasure = _this._getCellMeasurements(),\n height = _this$_getCellMeasure.height,\n width = _this$_getCellMeasure.width;\n\n if (height !== cache.getHeight(rowIndex, columnIndex) || width !== cache.getWidth(rowIndex, columnIndex)) {\n cache.set(rowIndex, columnIndex, width, height);\n\n if (parent && typeof parent.recomputeGridSize === 'function') {\n parent.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('CellMeasurer registerChild expects to be passed Element or null');\n }\n\n _this._child = element;\n\n if (element) {\n _this._maybeMeasureCell();\n }\n });\n\n return _this;\n }\n\n _createClass(CellMeasurer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._maybeMeasureCell();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._maybeMeasureCell();\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return typeof children === 'function' ? children({\n measure: this._measure,\n registerChild: this._registerChild\n }) : children;\n }\n }, {\n key: \"_getCellMeasurements\",\n value: function _getCellMeasurements() {\n var cache = this.props.cache;\n var node = this._child || findDOMNode(this); // TODO Check for a bad combination of fixedWidth and missing numeric width or vice versa with height\n\n if (node && node.ownerDocument && node.ownerDocument.defaultView && node instanceof node.ownerDocument.defaultView.HTMLElement) {\n var styleWidth = node.style.width;\n var styleHeight = node.style.height; // If we are re-measuring a cell that has already been measured,\n // It will have a hard-coded width/height from the previous measurement.\n // The fact that we are measuring indicates this measurement is probably stale,\n // So explicitly clear it out (eg set to \"auto\") so we can recalculate.\n // See issue #593 for more info.\n // Even if we are measuring initially- if we're inside of a MultiGrid component,\n // Explicitly clear width/height before measuring to avoid being tainted by another Grid.\n // eg top/left Grid renders before bottom/right Grid\n // Since the CellMeasurerCache is shared between them this taints derived cell size values.\n\n if (!cache.hasFixedWidth()) {\n node.style.width = 'auto';\n }\n\n if (!cache.hasFixedHeight()) {\n node.style.height = 'auto';\n }\n\n var height = Math.ceil(node.offsetHeight);\n var width = Math.ceil(node.offsetWidth); // Reset after measuring to avoid breaking styles; see #660\n\n if (styleWidth) {\n node.style.width = styleWidth;\n }\n\n if (styleHeight) {\n node.style.height = styleHeight;\n }\n\n return {\n height: height,\n width: width\n };\n } else {\n return {\n height: 0,\n width: 0\n };\n }\n }\n }, {\n key: \"_maybeMeasureCell\",\n value: function _maybeMeasureCell() {\n var _this$props2 = this.props,\n cache = _this$props2.cache,\n _this$props2$columnIn = _this$props2.columnIndex,\n columnIndex = _this$props2$columnIn === void 0 ? 0 : _this$props2$columnIn,\n parent = _this$props2.parent,\n _this$props2$rowIndex = _this$props2.rowIndex,\n rowIndex = _this$props2$rowIndex === void 0 ? this.props.index || 0 : _this$props2$rowIndex;\n\n if (!cache.has(rowIndex, columnIndex)) {\n var _this$_getCellMeasure2 = this._getCellMeasurements(),\n height = _this$_getCellMeasure2.height,\n width = _this$_getCellMeasure2.width;\n\n cache.set(rowIndex, columnIndex, width, height); // If size has changed, let Grid know to re-render.\n\n if (parent && typeof parent.invalidateCellSizeAfterRender === 'function') {\n parent.invalidateCellSizeAfterRender({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n }\n }\n }\n }]);\n\n return CellMeasurer;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"cache\": function cache() {\n return (typeof bpfrpt_proptype_CellMeasureCache === \"function\" ? bpfrpt_proptype_CellMeasureCache.isRequired ? bpfrpt_proptype_CellMeasureCache.isRequired : bpfrpt_proptype_CellMeasureCache : PropTypes.shape(bpfrpt_proptype_CellMeasureCache).isRequired).apply(this, arguments);\n },\n \"children\": PropTypes.oneOfType([PropTypes.func, PropTypes.node]).isRequired,\n \"columnIndex\": PropTypes.number,\n \"index\": PropTypes.number,\n \"parent\": PropTypes.shape({\n invalidateCellSizeAfterRender: PropTypes.func,\n recomputeGridSize: PropTypes.func\n }).isRequired,\n \"rowIndex\": PropTypes.number\n}), _temp); // Used for DEV mode warning check\n\n_defineProperty(CellMeasurer, \"__internalCellMeasurerFlag\", false);\n\nexport { CellMeasurer as default };\n\nif (process.env.NODE_ENV !== 'production') {\n CellMeasurer.__internalCellMeasurerFlag = true;\n}\n\nimport { bpfrpt_proptype_CellMeasureCache } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nexport var DEFAULT_HEIGHT = 30;\nexport var DEFAULT_WIDTH = 100; // Enables more intelligent mapping of a given column and row index to an item ID.\n// This prevents a cell cache from being invalidated when its parent collection is modified.\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCache =\n/*#__PURE__*/\nfunction () {\n function CellMeasurerCache() {\n var _this = this;\n\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, CellMeasurerCache);\n\n _defineProperty(this, \"_cellHeightCache\", {});\n\n _defineProperty(this, \"_cellWidthCache\", {});\n\n _defineProperty(this, \"_columnWidthCache\", {});\n\n _defineProperty(this, \"_rowHeightCache\", {});\n\n _defineProperty(this, \"_defaultHeight\", void 0);\n\n _defineProperty(this, \"_defaultWidth\", void 0);\n\n _defineProperty(this, \"_minHeight\", void 0);\n\n _defineProperty(this, \"_minWidth\", void 0);\n\n _defineProperty(this, \"_keyMapper\", void 0);\n\n _defineProperty(this, \"_hasFixedHeight\", void 0);\n\n _defineProperty(this, \"_hasFixedWidth\", void 0);\n\n _defineProperty(this, \"_columnCount\", 0);\n\n _defineProperty(this, \"_rowCount\", 0);\n\n _defineProperty(this, \"columnWidth\", function (_ref) {\n var index = _ref.index;\n\n var key = _this._keyMapper(0, index);\n\n return _this._columnWidthCache[key] !== undefined ? _this._columnWidthCache[key] : _this._defaultWidth;\n });\n\n _defineProperty(this, \"rowHeight\", function (_ref2) {\n var index = _ref2.index;\n\n var key = _this._keyMapper(index, 0);\n\n return _this._rowHeightCache[key] !== undefined ? _this._rowHeightCache[key] : _this._defaultHeight;\n });\n\n var defaultHeight = params.defaultHeight,\n defaultWidth = params.defaultWidth,\n fixedHeight = params.fixedHeight,\n fixedWidth = params.fixedWidth,\n keyMapper = params.keyMapper,\n minHeight = params.minHeight,\n minWidth = params.minWidth;\n this._hasFixedHeight = fixedHeight === true;\n this._hasFixedWidth = fixedWidth === true;\n this._minHeight = minHeight || 0;\n this._minWidth = minWidth || 0;\n this._keyMapper = keyMapper || defaultKeyMapper;\n this._defaultHeight = Math.max(this._minHeight, typeof defaultHeight === 'number' ? defaultHeight : DEFAULT_HEIGHT);\n this._defaultWidth = Math.max(this._minWidth, typeof defaultWidth === 'number' ? defaultWidth : DEFAULT_WIDTH);\n\n if (process.env.NODE_ENV !== 'production') {\n if (this._hasFixedHeight === false && this._hasFixedWidth === false) {\n console.warn(\"CellMeasurerCache should only measure a cell's width or height. \" + 'You have configured CellMeasurerCache to measure both. ' + 'This will result in poor performance.');\n }\n\n if (this._hasFixedHeight === false && this._defaultHeight === 0) {\n console.warn('Fixed height CellMeasurerCache should specify a :defaultHeight greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');\n }\n\n if (this._hasFixedWidth === false && this._defaultWidth === 0) {\n console.warn('Fixed width CellMeasurerCache should specify a :defaultWidth greater than 0. ' + 'Failing to do so will lead to unnecessary layout and poor performance.');\n }\n }\n }\n\n _createClass(CellMeasurerCache, [{\n key: \"clear\",\n value: function clear(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var key = this._keyMapper(rowIndex, columnIndex);\n\n delete this._cellHeightCache[key];\n delete this._cellWidthCache[key];\n\n this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);\n }\n }, {\n key: \"clearAll\",\n value: function clearAll() {\n this._cellHeightCache = {};\n this._cellWidthCache = {};\n this._columnWidthCache = {};\n this._rowHeightCache = {};\n this._rowCount = 0;\n this._columnCount = 0;\n }\n }, {\n key: \"hasFixedHeight\",\n value: function hasFixedHeight() {\n return this._hasFixedHeight;\n }\n }, {\n key: \"hasFixedWidth\",\n value: function hasFixedWidth() {\n return this._hasFixedWidth;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (this._hasFixedHeight) {\n return this._defaultHeight;\n } else {\n var _key = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellHeightCache[_key] !== undefined ? Math.max(this._minHeight, this._cellHeightCache[_key]) : this._defaultHeight;\n }\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (this._hasFixedWidth) {\n return this._defaultWidth;\n } else {\n var _key2 = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellWidthCache[_key2] !== undefined ? Math.max(this._minWidth, this._cellWidthCache[_key2]) : this._defaultWidth;\n }\n }\n }, {\n key: \"has\",\n value: function has(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var key = this._keyMapper(rowIndex, columnIndex);\n\n return this._cellHeightCache[key] !== undefined;\n }\n }, {\n key: \"set\",\n value: function set(rowIndex, columnIndex, width, height) {\n var key = this._keyMapper(rowIndex, columnIndex);\n\n if (columnIndex >= this._columnCount) {\n this._columnCount = columnIndex + 1;\n }\n\n if (rowIndex >= this._rowCount) {\n this._rowCount = rowIndex + 1;\n } // Size is cached per cell so we don't have to re-measure if cells are re-ordered.\n\n\n this._cellHeightCache[key] = height;\n this._cellWidthCache[key] = width;\n\n this._updateCachedColumnAndRowSizes(rowIndex, columnIndex);\n }\n }, {\n key: \"_updateCachedColumnAndRowSizes\",\n value: function _updateCachedColumnAndRowSizes(rowIndex, columnIndex) {\n // :columnWidth and :rowHeight are derived based on all cells in a column/row.\n // Pre-cache these derived values for faster lookup later.\n // Reads are expected to occur more frequently than writes in this case.\n // Only update non-fixed dimensions though to avoid doing unnecessary work.\n if (!this._hasFixedWidth) {\n var columnWidth = 0;\n\n for (var i = 0; i < this._rowCount; i++) {\n columnWidth = Math.max(columnWidth, this.getWidth(i, columnIndex));\n }\n\n var columnKey = this._keyMapper(0, columnIndex);\n\n this._columnWidthCache[columnKey] = columnWidth;\n }\n\n if (!this._hasFixedHeight) {\n var rowHeight = 0;\n\n for (var _i = 0; _i < this._columnCount; _i++) {\n rowHeight = Math.max(rowHeight, this.getHeight(rowIndex, _i));\n }\n\n var rowKey = this._keyMapper(rowIndex, 0);\n\n this._rowHeightCache[rowKey] = rowHeight;\n }\n }\n }, {\n key: \"defaultHeight\",\n get: function get() {\n return this._defaultHeight;\n }\n }, {\n key: \"defaultWidth\",\n get: function get() {\n return this._defaultWidth;\n }\n }]);\n\n return CellMeasurerCache;\n}();\n\nexport { CellMeasurerCache as default };\n\nfunction defaultKeyMapper(rowIndex, columnIndex) {\n return \"\".concat(rowIndex, \"-\").concat(columnIndex);\n}\n\nimport { bpfrpt_proptype_CellMeasureCache } from \"./types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\nimport getScrollbarSize from 'dom-helpers/scrollbarSize'; // @TODO Merge Collection and CollectionView\n\n/**\n * Specifies the number of milliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nvar IS_SCROLLING_TIMEOUT = 150;\n/**\n * Controls whether the Grid updates the DOM element's scrollLeft/scrollTop based on the current state or just observes it.\n * This prevents Grid from interrupting mouse-wheel animations (see issue #2).\n */\n\nvar SCROLL_POSITION_CHANGE_REASONS = {\n OBSERVED: 'observed',\n REQUESTED: 'requested'\n};\n/**\n * Monitors changes in properties (eg. cellCount) and state (eg. scroll offsets) to determine when rendering needs to occur.\n * This component does not render any visible content itself; it defers to the specified :cellLayoutManager.\n */\n\nvar CollectionView =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(CollectionView, _React$PureComponent);\n\n // Invokes callbacks only when their values have changed.\n function CollectionView() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, CollectionView);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(CollectionView)).call.apply(_getPrototypeOf2, [this].concat(args))); // If this component is being rendered server-side, getScrollbarSize() will return undefined.\n // We handle this case in componentDidMount()\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_calculateSizeAndPositionDataOnNextUpdate\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRenderedMemoizer\", createCallbackMemoizer());\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollMemoizer\", createCallbackMemoizer(false));\n\n _defineProperty(_assertThisInitialized(_this), \"_invokeOnSectionRenderedHelper\", function () {\n var _this$props = _this.props,\n cellLayoutManager = _this$props.cellLayoutManager,\n onSectionRendered = _this$props.onSectionRendered;\n\n _this._onSectionRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n indices: cellLayoutManager.getLastRenderedIndices()\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateScrollPositionForScrollToCell\", function () {\n var _this$props2 = _this.props,\n cellLayoutManager = _this$props2.cellLayoutManager,\n height = _this$props2.height,\n scrollToAlignment = _this$props2.scrollToAlignment,\n scrollToCell = _this$props2.scrollToCell,\n width = _this$props2.width;\n var _this$state = _this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n\n if (scrollToCell >= 0) {\n var scrollPosition = cellLayoutManager.getScrollPositionForCell({\n align: scrollToAlignment,\n cellIndex: scrollToCell,\n height: height,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n\n if (scrollPosition.scrollLeft !== scrollLeft || scrollPosition.scrollTop !== scrollTop) {\n _this._setScrollPosition(scrollPosition);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== _this._scrollingContainer) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n\n _this._enablePointerEventsAfterDelay(); // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n\n\n var _this$props3 = _this.props,\n cellLayoutManager = _this$props3.cellLayoutManager,\n height = _this$props3.height,\n isScrollingChange = _this$props3.isScrollingChange,\n width = _this$props3.width;\n var scrollbarSize = _this._scrollbarSize;\n\n var _cellLayoutManager$ge = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge.height,\n totalWidth = _cellLayoutManager$ge.width;\n\n var scrollLeft = Math.max(0, Math.min(totalWidth - width + scrollbarSize, event.target.scrollLeft));\n var scrollTop = Math.max(0, Math.min(totalHeight - height + scrollbarSize, event.target.scrollTop)); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n if (_this.state.scrollLeft !== scrollLeft || _this.state.scrollTop !== scrollTop) {\n // Browsers with cancelable scroll events (eg. Firefox) interrupt scrolling animations if scrollTop/scrollLeft is set.\n // Other browsers (eg. Safari) don't scroll as well without the help under certain conditions (DOM or style changes during scrolling).\n // All things considered, this seems to be the best current work around that I'm aware of.\n // For more information see https://github.com/bvaughn/react-virtualized/pull/124\n var scrollPositionChangeReason = event.cancelable ? SCROLL_POSITION_CHANGE_REASONS.OBSERVED : SCROLL_POSITION_CHANGE_REASONS.REQUESTED; // Synchronously set :isScrolling the first time (since _setNextState will reschedule its animation frame each time it's called)\n\n if (!_this.state.isScrolling) {\n isScrollingChange(true);\n }\n\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollPositionChangeReason: scrollPositionChangeReason,\n scrollTop: scrollTop\n });\n }\n\n _this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n totalWidth: totalWidth,\n totalHeight: totalHeight\n });\n });\n\n _this._scrollbarSize = getScrollbarSize();\n\n if (_this._scrollbarSize === undefined) {\n _this._scrollbarSizeMeasured = false;\n _this._scrollbarSize = 0;\n } else {\n _this._scrollbarSizeMeasured = true;\n }\n\n return _this;\n }\n /**\n * Forced recompute of cell sizes and positions.\n * This function should be called if cell sizes have changed but nothing else has.\n * Since cell positions are calculated by callbacks, the collection view has no way of detecting when the underlying data has changed.\n */\n\n\n _createClass(CollectionView, [{\n key: \"recomputeCellSizesAndPositions\",\n value: function recomputeCellSizesAndPositions() {\n this._calculateSizeAndPositionDataOnNextUpdate = true;\n this.forceUpdate();\n }\n /* ---------------------------- Component lifecycle methods ---------------------------- */\n\n /**\n * @private\n * This method updates scrollLeft/scrollTop in state for the following conditions:\n * 1) Empty content (0 rows or columns)\n * 2) New scroll props overriding the current state\n * 3) Cells-count or cells-size has changed, making previous scroll offsets invalid\n */\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props4 = this.props,\n cellLayoutManager = _this$props4.cellLayoutManager,\n scrollLeft = _this$props4.scrollLeft,\n scrollToCell = _this$props4.scrollToCell,\n scrollTop = _this$props4.scrollTop; // If this component was first rendered server-side, scrollbar size will be undefined.\n // In that event we need to remeasure.\n\n if (!this._scrollbarSizeMeasured) {\n this._scrollbarSize = getScrollbarSize();\n this._scrollbarSizeMeasured = true;\n this.setState({});\n }\n\n if (scrollToCell >= 0) {\n this._updateScrollPositionForScrollToCell();\n } else if (scrollLeft >= 0 || scrollTop >= 0) {\n this._setScrollPosition({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n } // Update onSectionRendered callback.\n\n\n this._invokeOnSectionRenderedHelper();\n\n var _cellLayoutManager$ge2 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge2.height,\n totalWidth = _cellLayoutManager$ge2.width; // Initialize onScroll callback.\n\n\n this._invokeOnScrollMemoizer({\n scrollLeft: scrollLeft || 0,\n scrollTop: scrollTop || 0,\n totalHeight: totalHeight,\n totalWidth: totalWidth\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props5 = this.props,\n height = _this$props5.height,\n scrollToAlignment = _this$props5.scrollToAlignment,\n scrollToCell = _this$props5.scrollToCell,\n width = _this$props5.width;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollPositionChangeReason = _this$state2.scrollPositionChangeReason,\n scrollTop = _this$state2.scrollTop; // Make sure requested changes to :scrollLeft or :scrollTop get applied.\n // Assigning to scrollLeft/scrollTop tells the browser to interrupt any running scroll animations,\n // And to discard any pending async changes to the scroll position that may have happened in the meantime (e.g. on a separate scrolling thread).\n // So we only set these when we require an adjustment of the scroll position.\n // See issue #2 for more information.\n\n if (scrollPositionChangeReason === SCROLL_POSITION_CHANGE_REASONS.REQUESTED) {\n if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft && scrollLeft !== this._scrollingContainer.scrollLeft) {\n this._scrollingContainer.scrollLeft = scrollLeft;\n }\n\n if (scrollTop >= 0 && scrollTop !== prevState.scrollTop && scrollTop !== this._scrollingContainer.scrollTop) {\n this._scrollingContainer.scrollTop = scrollTop;\n }\n } // Update scroll offsets if the current :scrollToCell values requires it\n\n\n if (height !== prevProps.height || scrollToAlignment !== prevProps.scrollToAlignment || scrollToCell !== prevProps.scrollToCell || width !== prevProps.width) {\n this._updateScrollPositionForScrollToCell();\n } // Update onRowsRendered callback if start/stop indices have changed\n\n\n this._invokeOnSectionRenderedHelper();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n autoHeight = _this$props6.autoHeight,\n cellCount = _this$props6.cellCount,\n cellLayoutManager = _this$props6.cellLayoutManager,\n className = _this$props6.className,\n height = _this$props6.height,\n horizontalOverscanSize = _this$props6.horizontalOverscanSize,\n id = _this$props6.id,\n noContentRenderer = _this$props6.noContentRenderer,\n style = _this$props6.style,\n verticalOverscanSize = _this$props6.verticalOverscanSize,\n width = _this$props6.width;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollLeft = _this$state3.scrollLeft,\n scrollTop = _this$state3.scrollTop; // Memoization reset\n\n if (this._lastRenderedCellCount !== cellCount || this._lastRenderedCellLayoutManager !== cellLayoutManager || this._calculateSizeAndPositionDataOnNextUpdate) {\n this._lastRenderedCellCount = cellCount;\n this._lastRenderedCellLayoutManager = cellLayoutManager;\n this._calculateSizeAndPositionDataOnNextUpdate = false;\n cellLayoutManager.calculateSizeAndPositionData();\n }\n\n var _cellLayoutManager$ge3 = cellLayoutManager.getTotalSize(),\n totalHeight = _cellLayoutManager$ge3.height,\n totalWidth = _cellLayoutManager$ge3.width; // Safely expand the rendered area by the specified overscan amount\n\n\n var left = Math.max(0, scrollLeft - horizontalOverscanSize);\n var top = Math.max(0, scrollTop - verticalOverscanSize);\n var right = Math.min(totalWidth, scrollLeft + width + horizontalOverscanSize);\n var bottom = Math.min(totalHeight, scrollTop + height + verticalOverscanSize);\n var childrenToDisplay = height > 0 && width > 0 ? cellLayoutManager.cellRenderers({\n height: bottom - top,\n isScrolling: isScrolling,\n width: right - left,\n x: left,\n y: top\n }) : [];\n var collectionStyle = {\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n position: 'relative',\n WebkitOverflowScrolling: 'touch',\n width: width,\n willChange: 'transform'\n }; // Force browser to hide scrollbars when we know they aren't necessary.\n // Otherwise once scrollbars appear they may not disappear again.\n // For more info see issue #116\n\n var verticalScrollBarSize = totalHeight > height ? this._scrollbarSize : 0;\n var horizontalScrollBarSize = totalWidth > width ? this._scrollbarSize : 0; // Also explicitly init styles to 'auto' if scrollbars are required.\n // This works around an obscure edge case where external CSS styles have not yet been loaded,\n // But an initial scroll index of offset is set as an external prop.\n // Without this style, Grid would render the correct range of cells but would NOT update its internal offset.\n // This was originally reported via clauderic/react-infinite-calendar/issues/23\n\n collectionStyle.overflowX = totalWidth + verticalScrollBarSize <= width ? 'hidden' : 'auto';\n collectionStyle.overflowY = totalHeight + horizontalScrollBarSize <= height ? 'hidden' : 'auto';\n return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Collection', className),\n id: id,\n onScroll: this._onScroll,\n role: \"grid\",\n style: _objectSpread({}, collectionStyle, {}, style),\n tabIndex: 0\n }, cellCount > 0 && React.createElement(\"div\", {\n className: \"ReactVirtualized__Collection__innerScrollContainer\",\n style: {\n height: totalHeight,\n maxHeight: totalHeight,\n maxWidth: totalWidth,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n width: totalWidth\n }\n }, childrenToDisplay), cellCount === 0 && noContentRenderer());\n }\n /* ---------------------------- Helper methods ---------------------------- */\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Collection.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n\n }, {\n key: \"_enablePointerEventsAfterDelay\",\n value: function _enablePointerEventsAfterDelay() {\n var _this2 = this;\n\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId);\n }\n\n this._disablePointerEventsTimeoutId = setTimeout(function () {\n var isScrollingChange = _this2.props.isScrollingChange;\n isScrollingChange(false);\n _this2._disablePointerEventsTimeoutId = null;\n\n _this2.setState({\n isScrolling: false\n });\n }, IS_SCROLLING_TIMEOUT);\n }\n }, {\n key: \"_invokeOnScrollMemoizer\",\n value: function _invokeOnScrollMemoizer(_ref) {\n var _this3 = this;\n\n var scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n totalHeight = _ref.totalHeight,\n totalWidth = _ref.totalWidth;\n\n this._onScrollMemoizer({\n callback: function callback(_ref2) {\n var scrollLeft = _ref2.scrollLeft,\n scrollTop = _ref2.scrollTop;\n var _this3$props = _this3.props,\n height = _this3$props.height,\n onScroll = _this3$props.onScroll,\n width = _this3$props.width;\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: totalWidth\n });\n },\n indices: {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n }\n });\n }\n }, {\n key: \"_setScrollPosition\",\n value: function _setScrollPosition(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n var newState = {\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n\n if (scrollLeft >= 0) {\n newState.scrollLeft = scrollLeft;\n }\n\n if (scrollTop >= 0) {\n newState.scrollTop = scrollTop;\n }\n\n if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n this.setState(newState);\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.cellCount === 0 && (prevState.scrollLeft !== 0 || prevState.scrollTop !== 0)) {\n return {\n scrollLeft: 0,\n scrollTop: 0,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n } else if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null ? nextProps.scrollTop : prevState.scrollTop,\n scrollPositionChangeReason: SCROLL_POSITION_CHANGE_REASONS.REQUESTED\n };\n }\n\n return null;\n }\n }]);\n\n return CollectionView;\n}(React.PureComponent);\n\n_defineProperty(CollectionView, \"defaultProps\", {\n 'aria-label': 'grid',\n horizontalOverscanSize: 0,\n noContentRenderer: function noContentRenderer() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n onSectionRendered: function onSectionRendered() {\n return null;\n },\n scrollToAlignment: 'auto',\n scrollToCell: -1,\n style: {},\n verticalOverscanSize: 0\n});\n\nCollectionView.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /**\n * Number of cells in collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Calculates cell sizes and positions and manages rendering the appropriate cells given a specified window.\n */\n cellLayoutManager: PropTypes.object.isRequired,\n\n /**\n * Optional custom CSS class name to attach to root Collection element.\n */\n className: PropTypes.string,\n\n /**\n * Height of Collection; this property determines the number of visible (vs virtualized) rows.\n */\n height: PropTypes.number.isRequired,\n\n /**\n * Optional custom id to attach to root Collection element.\n */\n id: PropTypes.string,\n\n /**\n * Enables the `Collection` to horiontally \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n horizontalOverscanSize: PropTypes.number.isRequired,\n isScrollingChange: PropTypes.func,\n\n /**\n * Optional renderer to be used in place of rows when either :rowCount or :cellCount is 0.\n */\n noContentRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the section of the Collection that was just rendered.\n * This callback is passed a named :indices parameter which is an Array of the most recently rendered section indices.\n */\n onSectionRendered: PropTypes.func.isRequired,\n\n /**\n * Horizontal offset.\n */\n scrollLeft: PropTypes.number,\n\n /**\n * Controls scroll-to-cell behavior of the Grid.\n * The default (\"auto\") scrolls the least amount possible to ensure that the specified cell is fully visible.\n * Use \"start\" to align cells to the top/left of the Grid and \"end\" to align bottom/right.\n */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /**\n * Cell index to ensure visible (by forcefully scrolling if necessary).\n */\n scrollToCell: PropTypes.number.isRequired,\n\n /**\n * Vertical offset.\n */\n scrollTop: PropTypes.number,\n\n /**\n * Optional custom inline style to attach to root Collection element.\n */\n style: PropTypes.object,\n\n /**\n * Enables the `Collection` to vertically \"overscan\" its content similar to how `Grid` does.\n * This can reduce flicker around the edges when a user scrolls quickly.\n */\n verticalOverscanSize: PropTypes.number.isRequired,\n\n /**\n * Width of Collection; this property determines the number of visible (vs virtualized) columns.\n */\n width: PropTypes.number.isRequired\n} : {};\npolyfill(CollectionView);\nexport default CollectionView;","var bpfrpt_proptype_Index = process.env.NODE_ENV === 'production' ? null : {\n \"index\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_PositionInfo = process.env.NODE_ENV === 'production' ? null : {\n \"x\": PropTypes.number.isRequired,\n \"y\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_ScrollPosition = process.env.NODE_ENV === 'production' ? null : {\n \"scrollLeft\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_SizeAndPositionInfo = process.env.NODE_ENV === 'production' ? null : {\n \"height\": PropTypes.number.isRequired,\n \"width\": PropTypes.number.isRequired,\n \"x\": PropTypes.number.isRequired,\n \"y\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_SizeInfo = process.env.NODE_ENV === 'production' ? null : {\n \"height\": PropTypes.number.isRequired,\n \"width\": PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_Index };\nexport { bpfrpt_proptype_PositionInfo };\nexport { bpfrpt_proptype_ScrollPosition };\nexport { bpfrpt_proptype_SizeAndPositionInfo };\nexport { bpfrpt_proptype_SizeInfo };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\n/**\n * A section of the Window.\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * Sections have a fixed size and contain 0 to many cells (tracked by their indices).\n */\nvar Section =\n/*#__PURE__*/\nfunction () {\n function Section(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n\n _classCallCheck(this, Section);\n\n this.height = height;\n this.width = width;\n this.x = x;\n this.y = y;\n this._indexMap = {};\n this._indices = [];\n }\n /** Add a cell to this section. */\n\n\n _createClass(Section, [{\n key: \"addCellIndex\",\n value: function addCellIndex(_ref2) {\n var index = _ref2.index;\n\n if (!this._indexMap[index]) {\n this._indexMap[index] = true;\n\n this._indices.push(index);\n }\n }\n /** Get all cell indices that have been added to this section. */\n\n }, {\n key: \"getCellIndices\",\n value: function getCellIndices() {\n return this._indices;\n }\n /** Intended for debugger/test purposes only */\n\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.x, \",\").concat(this.y, \" \").concat(this.width, \"x\").concat(this.height);\n }\n }]);\n\n return Section;\n}();\n\nexport { Section as default };\nimport { bpfrpt_proptype_Index } from \"./types\";\nimport { bpfrpt_proptype_SizeAndPositionInfo } from \"./types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\n\n/**\n * Window Sections are used to group nearby cells.\n * This enables us to more quickly determine which cells to display in a given region of the Window.\n * \n */\nimport Section from './Section';\nvar SECTION_SIZE = 100;\n\n/**\n * Contains 0 to many Sections.\n * Grows (and adds Sections) dynamically as cells are registered.\n * Automatically adds cells to the appropriate Section(s).\n */\nvar SectionManager =\n/*#__PURE__*/\nfunction () {\n function SectionManager() {\n var sectionSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SECTION_SIZE;\n\n _classCallCheck(this, SectionManager);\n\n this._sectionSize = sectionSize;\n this._cellMetadata = [];\n this._sections = {};\n }\n /**\n * Gets all cell indices contained in the specified region.\n * A region may encompass 1 or more Sections.\n */\n\n\n _createClass(SectionManager, [{\n key: \"getCellIndices\",\n value: function getCellIndices(_ref) {\n var height = _ref.height,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n var indices = {};\n this.getSections({\n height: height,\n width: width,\n x: x,\n y: y\n }).forEach(function (section) {\n return section.getCellIndices().forEach(function (index) {\n indices[index] = index;\n });\n }); // Object keys are strings; this function returns numbers\n\n return Object.keys(indices).map(function (index) {\n return indices[index];\n });\n }\n /** Get size and position information for the cell specified. */\n\n }, {\n key: \"getCellMetadata\",\n value: function getCellMetadata(_ref2) {\n var index = _ref2.index;\n return this._cellMetadata[index];\n }\n /** Get all Sections overlapping the specified region. */\n\n }, {\n key: \"getSections\",\n value: function getSections(_ref3) {\n var height = _ref3.height,\n width = _ref3.width,\n x = _ref3.x,\n y = _ref3.y;\n var sectionXStart = Math.floor(x / this._sectionSize);\n var sectionXStop = Math.floor((x + width - 1) / this._sectionSize);\n var sectionYStart = Math.floor(y / this._sectionSize);\n var sectionYStop = Math.floor((y + height - 1) / this._sectionSize);\n var sections = [];\n\n for (var sectionX = sectionXStart; sectionX <= sectionXStop; sectionX++) {\n for (var sectionY = sectionYStart; sectionY <= sectionYStop; sectionY++) {\n var key = \"\".concat(sectionX, \".\").concat(sectionY);\n\n if (!this._sections[key]) {\n this._sections[key] = new Section({\n height: this._sectionSize,\n width: this._sectionSize,\n x: sectionX * this._sectionSize,\n y: sectionY * this._sectionSize\n });\n }\n\n sections.push(this._sections[key]);\n }\n }\n\n return sections;\n }\n /** Total number of Sections based on the currently registered cells. */\n\n }, {\n key: \"getTotalSectionCount\",\n value: function getTotalSectionCount() {\n return Object.keys(this._sections).length;\n }\n /** Intended for debugger/test purposes only */\n\n }, {\n key: \"toString\",\n value: function toString() {\n var _this = this;\n\n return Object.keys(this._sections).map(function (index) {\n return _this._sections[index].toString();\n });\n }\n /** Adds a cell to the appropriate Sections and registers it metadata for later retrievable. */\n\n }, {\n key: \"registerCell\",\n value: function registerCell(_ref4) {\n var cellMetadatum = _ref4.cellMetadatum,\n index = _ref4.index;\n this._cellMetadata[index] = cellMetadatum;\n this.getSections(cellMetadatum).forEach(function (section) {\n return section.addCellIndex({\n index: index\n });\n });\n }\n }]);\n\n return SectionManager;\n}();\n\nexport { SectionManager as default };\nimport { bpfrpt_proptype_Index } from \"./types\";\nimport { bpfrpt_proptype_SizeAndPositionInfo } from \"./types\";","/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param align Desired alignment within container; one of \"auto\" (default), \"start\", or \"end\"\n * @param cellOffset Offset (x or y) position for cell\n * @param cellSize Size (width or height) of cell\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return Offset to use to ensure the specified cell is visible\n */\nexport default function getUpdatedOffsetForIndex(_ref) {\n var _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'auto' : _ref$align,\n cellOffset = _ref.cellOffset,\n cellSize = _ref.cellSize,\n containerSize = _ref.containerSize,\n currentOffset = _ref.currentOffset;\n var maxOffset = cellOffset;\n var minOffset = maxOffset - containerSize + cellSize;\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return maxOffset - (containerSize - cellSize) / 2;\n\n default:\n return Math.max(minOffset, Math.min(maxOffset, currentOffset));\n }\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport CollectionView from './CollectionView';\nimport _calculateSizeAndPositionData from './utils/calculateSizeAndPositionData';\nimport getUpdatedOffsetForIndex from '../utils/getUpdatedOffsetForIndex';\n\n/**\n * Renders scattered or non-linear data.\n * Unlike Grid, which renders checkerboard data, Collection can render arbitrarily positioned- even overlapping- data.\n */\nvar Collection =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Collection, _React$PureComponent);\n\n function Collection(props, context) {\n var _this;\n\n _classCallCheck(this, Collection);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Collection).call(this, props, context));\n _this._cellMetadata = [];\n _this._lastRenderedCellIndices = []; // Cell cache during scroll (for performance)\n\n _this._cellCache = [];\n _this._isScrollingChange = _this._isScrollingChange.bind(_assertThisInitialized(_this));\n _this._setCollectionViewRef = _this._setCollectionViewRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Collection, [{\n key: \"forceUpdate\",\n value: function forceUpdate() {\n if (this._collectionView !== undefined) {\n this._collectionView.forceUpdate();\n }\n }\n /** See Collection#recomputeCellSizesAndPositions */\n\n }, {\n key: \"recomputeCellSizesAndPositions\",\n value: function recomputeCellSizesAndPositions() {\n this._cellCache = [];\n\n this._collectionView.recomputeCellSizesAndPositions();\n }\n /** React lifecycle methods */\n\n }, {\n key: \"render\",\n value: function render() {\n var props = _extends({}, this.props);\n\n return React.createElement(CollectionView, _extends({\n cellLayoutManager: this,\n isScrollingChange: this._isScrollingChange,\n ref: this._setCollectionViewRef\n }, props));\n }\n /** CellLayoutManager interface */\n\n }, {\n key: \"calculateSizeAndPositionData\",\n value: function calculateSizeAndPositionData() {\n var _this$props = this.props,\n cellCount = _this$props.cellCount,\n cellSizeAndPositionGetter = _this$props.cellSizeAndPositionGetter,\n sectionSize = _this$props.sectionSize;\n\n var data = _calculateSizeAndPositionData({\n cellCount: cellCount,\n cellSizeAndPositionGetter: cellSizeAndPositionGetter,\n sectionSize: sectionSize\n });\n\n this._cellMetadata = data.cellMetadata;\n this._sectionManager = data.sectionManager;\n this._height = data.height;\n this._width = data.width;\n }\n /**\n * Returns the most recently rendered set of cell indices.\n */\n\n }, {\n key: \"getLastRenderedIndices\",\n value: function getLastRenderedIndices() {\n return this._lastRenderedCellIndices;\n }\n /**\n * Calculates the minimum amount of change from the current scroll position to ensure the specified cell is (fully) visible.\n */\n\n }, {\n key: \"getScrollPositionForCell\",\n value: function getScrollPositionForCell(_ref) {\n var align = _ref.align,\n cellIndex = _ref.cellIndex,\n height = _ref.height,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n width = _ref.width;\n var cellCount = this.props.cellCount;\n\n if (cellIndex >= 0 && cellIndex < cellCount) {\n var cellMetadata = this._cellMetadata[cellIndex];\n scrollLeft = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.x,\n cellSize: cellMetadata.width,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: cellIndex\n });\n scrollTop = getUpdatedOffsetForIndex({\n align: align,\n cellOffset: cellMetadata.y,\n cellSize: cellMetadata.height,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: cellIndex\n });\n }\n\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n }\n }, {\n key: \"getTotalSize\",\n value: function getTotalSize() {\n return {\n height: this._height,\n width: this._width\n };\n }\n }, {\n key: \"cellRenderers\",\n value: function cellRenderers(_ref2) {\n var _this2 = this;\n\n var height = _ref2.height,\n isScrolling = _ref2.isScrolling,\n width = _ref2.width,\n x = _ref2.x,\n y = _ref2.y;\n var _this$props2 = this.props,\n cellGroupRenderer = _this$props2.cellGroupRenderer,\n cellRenderer = _this$props2.cellRenderer; // Store for later calls to getLastRenderedIndices()\n\n this._lastRenderedCellIndices = this._sectionManager.getCellIndices({\n height: height,\n width: width,\n x: x,\n y: y\n });\n return cellGroupRenderer({\n cellCache: this._cellCache,\n cellRenderer: cellRenderer,\n cellSizeAndPositionGetter: function cellSizeAndPositionGetter(_ref3) {\n var index = _ref3.index;\n return _this2._sectionManager.getCellMetadata({\n index: index\n });\n },\n indices: this._lastRenderedCellIndices,\n isScrolling: isScrolling\n });\n }\n }, {\n key: \"_isScrollingChange\",\n value: function _isScrollingChange(isScrolling) {\n if (!isScrolling) {\n this._cellCache = [];\n }\n }\n }, {\n key: \"_setCollectionViewRef\",\n value: function _setCollectionViewRef(ref) {\n this._collectionView = ref;\n }\n }]);\n\n return Collection;\n}(React.PureComponent);\n\n_defineProperty(Collection, \"defaultProps\", {\n 'aria-label': 'grid',\n cellGroupRenderer: defaultCellGroupRenderer\n});\n\nexport { Collection as default };\nCollection.propTypes = process.env.NODE_ENV !== \"production\" ? {\n 'aria-label': PropTypes.string,\n\n /**\n * Number of cells in Collection.\n */\n cellCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a group of cells given their indices.\n * Should implement the following interface: ({\n * cellSizeAndPositionGetter:Function,\n * indices: Array,\n * cellRenderer: Function\n * }): Array\n */\n cellGroupRenderer: PropTypes.func.isRequired,\n\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ index: number, key: string, style: object }): PropTypes.element\n */\n cellRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback responsible for returning size and offset/position information for a given cell (index).\n * ({ index: number }): { height: number, width: number, x: number, y: number }\n */\n cellSizeAndPositionGetter: PropTypes.func.isRequired,\n\n /**\n * Optionally override the size of the sections a Collection's cells are split into.\n */\n sectionSize: PropTypes.number\n} : {};\n\nfunction defaultCellGroupRenderer(_ref4) {\n var cellCache = _ref4.cellCache,\n cellRenderer = _ref4.cellRenderer,\n cellSizeAndPositionGetter = _ref4.cellSizeAndPositionGetter,\n indices = _ref4.indices,\n isScrolling = _ref4.isScrolling;\n return indices.map(function (index) {\n var cellMetadata = cellSizeAndPositionGetter({\n index: index\n });\n var cellRendererProps = {\n index: index,\n isScrolling: isScrolling,\n key: index,\n style: {\n height: cellMetadata.height,\n left: cellMetadata.x,\n position: 'absolute',\n top: cellMetadata.y,\n width: cellMetadata.width\n }\n }; // Avoid re-creating cells while scrolling.\n // This can lead to the same cell being created many times and can cause performance issues for \"heavy\" cells.\n // If a scroll is in progress- cache and reuse cells.\n // This cache will be thrown away once scrolling complets.\n\n if (isScrolling) {\n if (!(index in cellCache)) {\n cellCache[index] = cellRenderer(cellRendererProps);\n }\n\n return cellCache[index];\n } else {\n return cellRenderer(cellRendererProps);\n }\n }).filter(function (renderedCell) {\n return !!renderedCell;\n });\n}\n\nimport { bpfrpt_proptype_ScrollPosition } from \"./types\";\nimport { bpfrpt_proptype_SizeInfo } from \"./types\";","import SectionManager from '../SectionManager';\nexport default function calculateSizeAndPositionData(_ref) {\n var cellCount = _ref.cellCount,\n cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter,\n sectionSize = _ref.sectionSize;\n var cellMetadata = [];\n var sectionManager = new SectionManager(sectionSize);\n var height = 0;\n var width = 0;\n\n for (var index = 0; index < cellCount; index++) {\n var cellMetadatum = cellSizeAndPositionGetter({\n index: index\n });\n\n if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) {\n throw Error(\"Invalid metadata returned for cell \".concat(index, \":\\n x:\").concat(cellMetadatum.x, \", y:\").concat(cellMetadatum.y, \", width:\").concat(cellMetadatum.width, \", height:\").concat(cellMetadatum.height));\n }\n\n height = Math.max(height, cellMetadatum.y + cellMetadatum.height);\n width = Math.max(width, cellMetadatum.x + cellMetadatum.width);\n cellMetadata[index] = cellMetadatum;\n sectionManager.registerCell({\n cellMetadatum: cellMetadatum,\n index: index\n });\n }\n\n return {\n cellMetadata: cellMetadata,\n height: height,\n sectionManager: sectionManager,\n width: width\n };\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\n\nvar ColumnSizer =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnSizer, _React$PureComponent);\n\n function ColumnSizer(props, context) {\n var _this;\n\n _classCallCheck(this, ColumnSizer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ColumnSizer).call(this, props, context));\n _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ColumnSizer, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props = this.props,\n columnMaxWidth = _this$props.columnMaxWidth,\n columnMinWidth = _this$props.columnMinWidth,\n columnCount = _this$props.columnCount,\n width = _this$props.width;\n\n if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnCount !== prevProps.columnCount || width !== prevProps.width) {\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize();\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n children = _this$props2.children,\n columnMaxWidth = _this$props2.columnMaxWidth,\n columnMinWidth = _this$props2.columnMinWidth,\n columnCount = _this$props2.columnCount,\n width = _this$props2.width;\n var safeColumnMinWidth = columnMinWidth || 1;\n var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n var columnWidth = width / columnCount;\n columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n columnWidth = Math.floor(columnWidth);\n var adjustedWidth = Math.min(width, columnWidth * columnCount);\n return children({\n adjustedWidth: adjustedWidth,\n columnWidth: columnWidth,\n getColumnWidth: function getColumnWidth() {\n return columnWidth;\n },\n registerChild: this._registerChild\n });\n }\n }, {\n key: \"_registerChild\",\n value: function _registerChild(child) {\n if (child && typeof child.recomputeGridSize !== 'function') {\n throw Error('Unexpected child type registered; only Grid/MultiGrid children are supported.');\n }\n\n this._registeredChild = child;\n\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize();\n }\n }\n }]);\n\n return ColumnSizer;\n}(React.PureComponent);\n\nexport { ColumnSizer as default };\nColumnSizer.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized Grid.\n * This function should implement the following signature:\n * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n *\n * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n * The :registerChild should be passed to the Grid's :ref property.\n * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n */\n children: PropTypes.func.isRequired,\n\n /** Optional maximum allowed column width */\n columnMaxWidth: PropTypes.number,\n\n /** Optional minimum allowed column width */\n columnMinWidth: PropTypes.number,\n\n /** Number of columns in Grid or Table child */\n columnCount: PropTypes.number.isRequired,\n\n /** Width of Grid or Table child */\n width: PropTypes.number.isRequired\n} : {};","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport createCallbackMemoizer from '../utils/createCallbackMemoizer';\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\n\nvar InfiniteLoader =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(InfiniteLoader, _React$PureComponent);\n\n function InfiniteLoader(props, context) {\n var _this;\n\n _classCallCheck(this, InfiniteLoader);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(InfiniteLoader).call(this, props, context));\n _this._loadMoreRowsMemoizer = createCallbackMemoizer();\n _this._onRowsRendered = _this._onRowsRendered.bind(_assertThisInitialized(_this));\n _this._registerChild = _this._registerChild.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(InfiniteLoader, [{\n key: \"resetLoadMoreRowsCache\",\n value: function resetLoadMoreRowsCache(autoReload) {\n this._loadMoreRowsMemoizer = createCallbackMemoizer();\n\n if (autoReload) {\n this._doStuff(this._lastRenderedStartIndex, this._lastRenderedStopIndex);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n return children({\n onRowsRendered: this._onRowsRendered,\n registerChild: this._registerChild\n });\n }\n }, {\n key: \"_loadUnloadedRanges\",\n value: function _loadUnloadedRanges(unloadedRanges) {\n var _this2 = this;\n\n var loadMoreRows = this.props.loadMoreRows;\n unloadedRanges.forEach(function (unloadedRange) {\n var promise = loadMoreRows(unloadedRange);\n\n if (promise) {\n promise.then(function () {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (isRangeVisible({\n lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n startIndex: unloadedRange.startIndex,\n stopIndex: unloadedRange.stopIndex\n })) {\n if (_this2._registeredChild) {\n forceUpdateReactVirtualizedComponent(_this2._registeredChild, _this2._lastRenderedStartIndex);\n }\n }\n });\n }\n });\n }\n }, {\n key: \"_onRowsRendered\",\n value: function _onRowsRendered(_ref) {\n var startIndex = _ref.startIndex,\n stopIndex = _ref.stopIndex;\n this._lastRenderedStartIndex = startIndex;\n this._lastRenderedStopIndex = stopIndex;\n\n this._doStuff(startIndex, stopIndex);\n }\n }, {\n key: \"_doStuff\",\n value: function _doStuff(startIndex, stopIndex) {\n var _ref2,\n _this3 = this;\n\n var _this$props = this.props,\n isRowLoaded = _this$props.isRowLoaded,\n minimumBatchSize = _this$props.minimumBatchSize,\n rowCount = _this$props.rowCount,\n threshold = _this$props.threshold;\n var unloadedRanges = scanForUnloadedRanges({\n isRowLoaded: isRowLoaded,\n minimumBatchSize: minimumBatchSize,\n rowCount: rowCount,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(rowCount - 1, stopIndex + threshold)\n }); // For memoize comparison\n\n var squashedUnloadedRanges = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(unloadedRanges.map(function (_ref3) {\n var startIndex = _ref3.startIndex,\n stopIndex = _ref3.stopIndex;\n return [startIndex, stopIndex];\n })));\n\n this._loadMoreRowsMemoizer({\n callback: function callback() {\n _this3._loadUnloadedRanges(unloadedRanges);\n },\n indices: {\n squashedUnloadedRanges: squashedUnloadedRanges\n }\n });\n }\n }, {\n key: \"_registerChild\",\n value: function _registerChild(registeredChild) {\n this._registeredChild = registeredChild;\n }\n }]);\n\n return InfiniteLoader;\n}(React.PureComponent);\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\n\n\n_defineProperty(InfiniteLoader, \"defaultProps\", {\n minimumBatchSize: 10,\n rowCount: 0,\n threshold: 15\n});\n\nexport { InfiniteLoader as default };\nInfiniteLoader.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering a virtualized component.\n * This function should implement the following signature:\n * ({ onRowsRendered, registerChild }) => PropTypes.element\n *\n * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n * The :registerChild callback should be set as the virtualized component's :ref.\n */\n children: PropTypes.func.isRequired,\n\n /**\n * Function responsible for tracking the loaded state of each row.\n * It should implement the following signature: ({ index: number }): boolean\n */\n isRowLoaded: PropTypes.func.isRequired,\n\n /**\n * Callback to be invoked when more rows must be loaded.\n * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n * The returned Promise should be resolved once row data has finished loading.\n * It will be used to determine when to refresh the list with the newly-loaded data.\n * This callback may be called multiple times in reaction to a single scroll event.\n */\n loadMoreRows: PropTypes.func.isRequired,\n\n /**\n * Minimum number of rows to be loaded at a time.\n * This property can be used to batch requests to reduce HTTP requests.\n */\n minimumBatchSize: PropTypes.number.isRequired,\n\n /**\n * Number of rows in list; can be arbitrary high number if actual number is unknown.\n */\n rowCount: PropTypes.number.isRequired,\n\n /**\n * Threshold at which to pre-fetch data.\n * A threshold X means that data will start loading when a user scrolls within X rows.\n * This value defaults to 15.\n */\n threshold: PropTypes.number.isRequired\n} : {};\nexport function isRangeVisible(_ref4) {\n var lastRenderedStartIndex = _ref4.lastRenderedStartIndex,\n lastRenderedStopIndex = _ref4.lastRenderedStopIndex,\n startIndex = _ref4.startIndex,\n stopIndex = _ref4.stopIndex;\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n}\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\n\nexport function scanForUnloadedRanges(_ref5) {\n var isRowLoaded = _ref5.isRowLoaded,\n minimumBatchSize = _ref5.minimumBatchSize,\n rowCount = _ref5.rowCount,\n startIndex = _ref5.startIndex,\n stopIndex = _ref5.stopIndex;\n var unloadedRanges = [];\n var rangeStartIndex = null;\n var rangeStopIndex = null;\n\n for (var index = startIndex; index <= stopIndex; index++) {\n var loaded = isRowLoaded({\n index: index\n });\n\n if (!loaded) {\n rangeStopIndex = index;\n\n if (rangeStartIndex === null) {\n rangeStartIndex = index;\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n rangeStartIndex = rangeStopIndex = null;\n }\n } // If :rangeStopIndex is not null it means we haven't ran out of unloaded rows.\n // Scan forward to try filling our :minimumBatchSize.\n\n\n if (rangeStopIndex !== null) {\n var potentialStopIndex = Math.min(Math.max(rangeStopIndex, rangeStartIndex + minimumBatchSize - 1), rowCount - 1);\n\n for (var _index = rangeStopIndex + 1; _index <= potentialStopIndex; _index++) {\n if (!isRowLoaded({\n index: _index\n })) {\n rangeStopIndex = _index;\n } else {\n break;\n }\n }\n\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n });\n } // Check to see if our first range ended prematurely.\n // In this case we should scan backwards to try filling our :minimumBatchSize.\n\n\n if (unloadedRanges.length) {\n var firstUnloadedRange = unloadedRanges[0];\n\n while (firstUnloadedRange.stopIndex - firstUnloadedRange.startIndex + 1 < minimumBatchSize && firstUnloadedRange.startIndex > 0) {\n var _index2 = firstUnloadedRange.startIndex - 1;\n\n if (!isRowLoaded({\n index: _index2\n })) {\n firstUnloadedRange.startIndex = _index2;\n } else {\n break;\n }\n }\n }\n\n return unloadedRanges;\n}\n/**\n * Since RV components use shallowCompare we need to force a render (even though props haven't changed).\n * However InfiniteLoader may wrap a Grid or it may wrap a Table or List.\n * In the first case the built-in React forceUpdate() method is sufficient to force a re-render,\n * But in the latter cases we need to use the RV-specific forceUpdateGrid() method.\n * Else the inner Grid will not be re-rendered and visuals may be stale.\n *\n * Additionally, while a Grid is scrolling the cells can be cached,\n * So it's important to invalidate that cache by recalculating sizes\n * before forcing a rerender.\n */\n\nexport function forceUpdateReactVirtualizedComponent(component) {\n var currentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var recomputeSize = typeof component.recomputeGridSize === 'function' ? component.recomputeGridSize : component.recomputeRowHeights;\n\n if (recomputeSize) {\n recomputeSize.call(component, currentIndex);\n } else {\n component.forceUpdate();\n }\n}","import * as React from 'react';\nvar bpfrpt_proptype_RowRendererParams = process.env.NODE_ENV === 'production' ? null : {\n \"index\": PropTypes.number.isRequired,\n \"isScrolling\": PropTypes.bool.isRequired,\n \"isVisible\": PropTypes.bool.isRequired,\n \"key\": PropTypes.string.isRequired,\n \"parent\": PropTypes.object.isRequired,\n \"style\": PropTypes.object.isRequired\n};\nvar bpfrpt_proptype_RowRenderer = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nvar bpfrpt_proptype_RenderedRows = process.env.NODE_ENV === 'production' ? null : {\n \"overscanStartIndex\": PropTypes.number.isRequired,\n \"overscanStopIndex\": PropTypes.number.isRequired,\n \"startIndex\": PropTypes.number.isRequired,\n \"stopIndex\": PropTypes.number.isRequired\n};\nvar bpfrpt_proptype_Scroll = process.env.NODE_ENV === 'production' ? null : {\n \"clientHeight\": PropTypes.number.isRequired,\n \"scrollHeight\": PropTypes.number.isRequired,\n \"scrollTop\": PropTypes.number.isRequired\n};\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_RowRendererParams };\nexport { bpfrpt_proptype_RowRenderer };\nexport { bpfrpt_proptype_RenderedRows };\nexport { bpfrpt_proptype_Scroll };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport * as React from 'react';\nimport clsx from 'clsx';\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\n\nvar List = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(List, _React$PureComponent);\n\n function List() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, List);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(List)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"Grid\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRenderer\", function (_ref) {\n var parent = _ref.parent,\n rowIndex = _ref.rowIndex,\n style = _ref.style,\n isScrolling = _ref.isScrolling,\n isVisible = _ref.isVisible,\n key = _ref.key;\n var rowRenderer = _this.props.rowRenderer; // TRICKY The style object is sometimes cached by Grid.\n // This prevents new style objects from bypassing shallowCompare().\n // However as of React 16, style props are auto-frozen (at least in dev mode)\n // Check to make sure we can still modify the style before proceeding.\n // https://github.com/facebook/react/commit/977357765b44af8ff0cfea327866861073095c12#commitcomment-20648713\n\n var widthDescriptor = Object.getOwnPropertyDescriptor(style, 'width');\n\n if (widthDescriptor && widthDescriptor.writable) {\n // By default, List cells should be 100% width.\n // This prevents them from flowing under a scrollbar (if present).\n style.width = '100%';\n }\n\n return rowRenderer({\n index: rowIndex,\n style: style,\n isScrolling: isScrolling,\n isVisible: isVisible,\n key: key,\n parent: parent\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setRef\", function (ref) {\n _this.Grid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (_ref2) {\n var clientHeight = _ref2.clientHeight,\n scrollHeight = _ref2.scrollHeight,\n scrollTop = _ref2.scrollTop;\n var onScroll = _this.props.onScroll;\n onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onSectionRendered\", function (_ref3) {\n var rowOverscanStartIndex = _ref3.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref3.rowOverscanStopIndex,\n rowStartIndex = _ref3.rowStartIndex,\n rowStopIndex = _ref3.rowStopIndex;\n var onRowsRendered = _this.props.onRowsRendered;\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n });\n\n return _this;\n }\n\n _createClass(List, [{\n key: \"forceUpdateGrid\",\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n /** See Grid#getOffsetForCell */\n\n }, {\n key: \"getOffsetForRow\",\n value: function getOffsetForRow(_ref4) {\n var alignment = _ref4.alignment,\n index = _ref4.index;\n\n if (this.Grid) {\n var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index,\n columnIndex: 0\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n return scrollTop;\n }\n\n return 0;\n }\n /** CellMeasurer compatibility */\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref5) {\n var columnIndex = _ref5.columnIndex,\n rowIndex = _ref5.rowIndex;\n\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#measureAllCells */\n\n }, {\n key: \"measureAllRows\",\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n /** CellMeasurer compatibility */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref6$columnIndex = _ref6.columnIndex,\n columnIndex = _ref6$columnIndex === void 0 ? 0 : _ref6$columnIndex,\n _ref6$rowIndex = _ref6.rowIndex,\n rowIndex = _ref6$rowIndex === void 0 ? 0 : _ref6$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#recomputeGridSize */\n\n }, {\n key: \"recomputeRowHeights\",\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index,\n columnIndex: 0\n });\n }\n }\n /** See Grid#scrollToPosition */\n\n }, {\n key: \"scrollToPosition\",\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToPosition({\n scrollTop: scrollTop\n });\n }\n }\n /** See Grid#scrollToCell */\n\n }, {\n key: \"scrollToRow\",\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n noRowsRenderer = _this$props.noRowsRenderer,\n scrollToIndex = _this$props.scrollToIndex,\n width = _this$props.width;\n var classNames = clsx('ReactVirtualized__List', className);\n return React.createElement(Grid, _extends({}, this.props, {\n autoContainerWidth: true,\n cellRenderer: this._cellRenderer,\n className: classNames,\n columnWidth: width,\n columnCount: 1,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n scrollToRow: scrollToIndex\n }));\n }\n }]);\n\n return List;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"aria-label\": PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n \"autoHeight\": PropTypes.bool.isRequired,\n\n /** Optional CSS class name */\n \"className\": PropTypes.string,\n\n /**\n * Used to estimate the total height of a List before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n \"estimatedRowSize\": PropTypes.number.isRequired,\n\n /** Height constraint for list (determines how many actual rows are rendered) */\n \"height\": PropTypes.number.isRequired,\n\n /** Optional renderer to be used in place of rows when rowCount is 0 */\n \"noRowsRenderer\": function noRowsRenderer() {\n return (typeof bpfrpt_proptype_NoContentRenderer === \"function\" ? bpfrpt_proptype_NoContentRenderer.isRequired ? bpfrpt_proptype_NoContentRenderer.isRequired : bpfrpt_proptype_NoContentRenderer : PropTypes.shape(bpfrpt_proptype_NoContentRenderer).isRequired).apply(this, arguments);\n },\n\n /** Callback invoked with information about the slice of rows that were just rendered. */\n \"onRowsRendered\": PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n */\n \"onScroll\": PropTypes.func.isRequired,\n\n /** See Grid#overscanIndicesGetter */\n \"overscanIndicesGetter\": function overscanIndicesGetter() {\n return (typeof bpfrpt_proptype_OverscanIndicesGetter === \"function\" ? bpfrpt_proptype_OverscanIndicesGetter.isRequired ? bpfrpt_proptype_OverscanIndicesGetter.isRequired : bpfrpt_proptype_OverscanIndicesGetter : PropTypes.shape(bpfrpt_proptype_OverscanIndicesGetter).isRequired).apply(this, arguments);\n },\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n \"overscanRowCount\": PropTypes.number.isRequired,\n\n /** Either a fixed row height (number) or a function that returns the height of a row given its index. */\n \"rowHeight\": function rowHeight() {\n return (typeof bpfrpt_proptype_CellSize === \"function\" ? bpfrpt_proptype_CellSize.isRequired ? bpfrpt_proptype_CellSize.isRequired : bpfrpt_proptype_CellSize : PropTypes.shape(bpfrpt_proptype_CellSize).isRequired).apply(this, arguments);\n },\n\n /** Responsible for rendering a row given an index; ({ index: number }): node */\n \"rowRenderer\": function rowRenderer() {\n return (typeof bpfrpt_proptype_RowRenderer === \"function\" ? bpfrpt_proptype_RowRenderer.isRequired ? bpfrpt_proptype_RowRenderer.isRequired : bpfrpt_proptype_RowRenderer : PropTypes.shape(bpfrpt_proptype_RowRenderer).isRequired).apply(this, arguments);\n },\n\n /** Number of rows in list. */\n \"rowCount\": PropTypes.number.isRequired,\n\n /** See Grid#scrollToAlignment */\n \"scrollToAlignment\": function scrollToAlignment() {\n return (typeof bpfrpt_proptype_Alignment === \"function\" ? bpfrpt_proptype_Alignment.isRequired ? bpfrpt_proptype_Alignment.isRequired : bpfrpt_proptype_Alignment : PropTypes.shape(bpfrpt_proptype_Alignment).isRequired).apply(this, arguments);\n },\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n \"scrollToIndex\": PropTypes.number.isRequired,\n\n /** Vertical offset. */\n \"scrollTop\": PropTypes.number,\n\n /** Optional inline style */\n \"style\": PropTypes.object.isRequired,\n\n /** Tab index for focus */\n \"tabIndex\": PropTypes.number,\n\n /** Width of list */\n \"width\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(List, \"defaultProps\", {\n autoHeight: false,\n estimatedRowSize: 30,\n onScroll: function onScroll() {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {},\n overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n overscanRowCount: 10,\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n});\n\nexport { List as default };\nimport { bpfrpt_proptype_NoContentRenderer } from \"../Grid\";\nimport { bpfrpt_proptype_Alignment } from \"../Grid\";\nimport { bpfrpt_proptype_CellSize } from \"../Grid\";\nimport { bpfrpt_proptype_CellPosition } from \"../Grid\";\nimport { bpfrpt_proptype_OverscanIndicesGetter } from \"../Grid\";\nimport { bpfrpt_proptype_RenderedSection } from \"../Grid\";\nimport { bpfrpt_proptype_CellRendererParams } from \"../Grid\";\nimport { bpfrpt_proptype_Scroll as bpfrpt_proptype_GridScroll } from \"../Grid\";\nimport { bpfrpt_proptype_RowRenderer } from \"./types\";\nimport { bpfrpt_proptype_RenderedRows } from \"./types\";\nimport { bpfrpt_proptype_Scroll } from \"./types\";\nimport PropTypes from \"prop-types\";","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/binary-search-bounds\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nfunction _GEA(a, l, h, y) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x >= y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction _GEP(a, l, h, y, c) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction dispatchBsearchGE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _GTA(a, l, h, y) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x > y) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction _GTP(a, l, h, y, c) {\n var i = h + 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n\n return i;\n}\n\nfunction dispatchBsearchGT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _LTA(a, l, h, y) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x < y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction _LTP(a, l, h, y, c) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction dispatchBsearchLT(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _LEA(a, l, h, y) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x <= y) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction _LEP(a, l, h, y, c) {\n var i = l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (c(x, y) <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return i;\n}\n\nfunction dispatchBsearchLE(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nfunction _EQA(a, l, h, y) {\n l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n\n if (x === y) {\n return m;\n } else if (x <= y) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return -1;\n}\n\nfunction _EQP(a, l, h, y, c) {\n l - 1;\n\n while (l <= h) {\n var m = l + h >>> 1,\n x = a[m];\n var p = c(x, y);\n\n if (p === 0) {\n return m;\n } else if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n\n return -1;\n}\n\nfunction dispatchBsearchEQ(a, y, c, l, h) {\n if (typeof c === 'function') {\n return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c);\n } else {\n return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y);\n }\n}\n\nexport default {\n ge: dispatchBsearchGE,\n gt: dispatchBsearchGT,\n lt: dispatchBsearchLT,\n le: dispatchBsearchLE,\n eq: dispatchBsearchEQ\n};","/**\n * Binary Search Bounds\n * https://github.com/mikolalysenko/interval-tree-1d\n * Mikola Lysenko\n *\n * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax in an upstream dependency.\n * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5\n **/\nimport bounds from './binarySearchBounds';\nvar NOT_FOUND = 0;\nvar SUCCESS = 1;\nvar EMPTY = 2;\n\nfunction IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid;\n this.left = left;\n this.right = right;\n this.leftPoints = leftPoints;\n this.rightPoints = rightPoints;\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n}\n\nvar proto = IntervalTreeNode.prototype;\n\nfunction copy(a, b) {\n a.mid = b.mid;\n a.left = b.left;\n a.right = b.right;\n a.leftPoints = b.leftPoints;\n a.rightPoints = b.rightPoints;\n a.count = b.count;\n}\n\nfunction rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals);\n node.mid = ntree.mid;\n node.left = ntree.left;\n node.right = ntree.right;\n node.leftPoints = ntree.leftPoints;\n node.rightPoints = ntree.rightPoints;\n node.count = ntree.count;\n}\n\nfunction rebuildWithInterval(node, interval) {\n var intervals = node.intervals([]);\n intervals.push(interval);\n rebuild(node, intervals);\n}\n\nfunction rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([]);\n var idx = intervals.indexOf(interval);\n\n if (idx < 0) {\n return NOT_FOUND;\n }\n\n intervals.splice(idx, 1);\n rebuild(node, intervals);\n return SUCCESS;\n}\n\nproto.intervals = function (result) {\n result.push.apply(result, this.leftPoints);\n\n if (this.left) {\n this.left.intervals(result);\n }\n\n if (this.right) {\n this.right.intervals(result);\n }\n\n return result;\n};\n\nproto.insert = function (interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n\n if (interval[1] < this.mid) {\n if (this.left) {\n if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.left.insert(interval);\n }\n } else {\n this.left = createIntervalTree([interval]);\n }\n } else if (interval[0] > this.mid) {\n if (this.right) {\n if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.right.insert(interval);\n }\n } else {\n this.right = createIntervalTree([interval]);\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin);\n var r = bounds.ge(this.rightPoints, interval, compareEnd);\n this.leftPoints.splice(l, 0, interval);\n this.rightPoints.splice(r, 0, interval);\n }\n};\n\nproto.remove = function (interval) {\n var weight = this.count - this.leftPoints;\n\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n\n var rw = this.right ? this.right.count : 0;\n\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n\n var r = this.left.remove(interval);\n\n if (r === EMPTY) {\n this.left = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n\n var lw = this.left ? this.left.count : 0;\n\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n\n var r = this.right.remove(interval);\n\n if (r === EMPTY) {\n this.right = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n\n return r;\n } else {\n if (this.count === 1) {\n if (this.leftPoints[0] === interval) {\n return EMPTY;\n } else {\n return NOT_FOUND;\n }\n }\n\n if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if (this.left && this.right) {\n var p = this;\n var n = this.left;\n\n while (n.right) {\n p = n;\n n = n.right;\n }\n\n if (p === this) {\n n.right = this.right;\n } else {\n var l = this.left;\n var r = this.right;\n p.count -= n.count;\n p.right = n.left;\n n.left = l;\n n.right = r;\n }\n\n copy(this, n);\n this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n } else if (this.left) {\n copy(this, this.left);\n } else {\n copy(this, this.right);\n }\n\n return SUCCESS;\n }\n\n for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n if (this.leftPoints[l][0] !== interval[0]) {\n break;\n }\n\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n\n for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n if (this.rightPoints[r][1] !== interval[1]) {\n break;\n } else if (this.rightPoints[r] === interval) {\n this.rightPoints.splice(r, 1);\n return SUCCESS;\n }\n }\n }\n }\n\n return NOT_FOUND;\n }\n};\n\nfunction reportLeftRange(arr, hi, cb) {\n for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n var r = cb(arr[i]);\n\n if (r) {\n return r;\n }\n }\n}\n\nfunction reportRightRange(arr, lo, cb) {\n for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i]);\n\n if (r) {\n return r;\n }\n }\n}\n\nfunction reportRange(arr, cb) {\n for (var i = 0; i < arr.length; ++i) {\n var r = cb(arr[i]);\n\n if (r) {\n return r;\n }\n }\n}\n\nproto.queryPoint = function (x, cb) {\n if (x < this.mid) {\n if (this.left) {\n var r = this.left.queryPoint(x, cb);\n\n if (r) {\n return r;\n }\n }\n\n return reportLeftRange(this.leftPoints, x, cb);\n } else if (x > this.mid) {\n if (this.right) {\n var r = this.right.queryPoint(x, cb);\n\n if (r) {\n return r;\n }\n }\n\n return reportRightRange(this.rightPoints, x, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\n\nproto.queryInterval = function (lo, hi, cb) {\n if (lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb);\n\n if (r) {\n return r;\n }\n }\n\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n\n if (r) {\n return r;\n }\n }\n\n if (hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb);\n } else if (lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n};\n\nfunction compareNumbers(a, b) {\n return a - b;\n}\n\nfunction compareBegin(a, b) {\n var d = a[0] - b[0];\n\n if (d) {\n return d;\n }\n\n return a[1] - b[1];\n}\n\nfunction compareEnd(a, b) {\n var d = a[1] - b[1];\n\n if (d) {\n return d;\n }\n\n return a[0] - b[0];\n}\n\nfunction createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n\n var pts = [];\n\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n\n pts.sort(compareNumbers);\n var mid = pts[pts.length >> 1];\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n\n if (s[1] < mid) {\n leftIntervals.push(s);\n } else if (mid < s[0]) {\n rightIntervals.push(s);\n } else {\n centerIntervals.push(s);\n }\n } //Split center intervals\n\n\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n return new IntervalTreeNode(mid, createIntervalTree(leftIntervals), createIntervalTree(rightIntervals), leftPoints, rightPoints);\n} //User friendly wrapper that makes it possible to support empty trees\n\n\nfunction IntervalTree(root) {\n this.root = root;\n}\n\nvar tproto = IntervalTree.prototype;\n\ntproto.insert = function (interval) {\n if (this.root) {\n this.root.insert(interval);\n } else {\n this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n }\n};\n\ntproto.remove = function (interval) {\n if (this.root) {\n var r = this.root.remove(interval);\n\n if (r === EMPTY) {\n this.root = null;\n }\n\n return r !== NOT_FOUND;\n }\n\n return false;\n};\n\ntproto.queryPoint = function (p, cb) {\n if (this.root) {\n return this.root.queryPoint(p, cb);\n }\n};\n\ntproto.queryInterval = function (lo, hi, cb) {\n if (lo <= hi && this.root) {\n return this.root.queryInterval(lo, hi, cb);\n }\n};\n\nObject.defineProperty(tproto, 'count', {\n get: function get() {\n if (this.root) {\n return this.root.count;\n }\n\n return 0;\n }\n});\nObject.defineProperty(tproto, 'intervals', {\n get: function get() {\n if (this.root) {\n return this.root.intervals([]);\n }\n\n return [];\n }\n});\nexport default function createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\n\n return new IntervalTree(createIntervalTree(intervals));\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport createIntervalTree from '../vendor/intervalTree';\n\n// Position cache requirements:\n// O(log(n)) lookup of cells to render for a given viewport size\n// O(1) lookup of shortest measured column (so we know when to enter phase 1)\nvar PositionCache =\n/*#__PURE__*/\nfunction () {\n function PositionCache() {\n _classCallCheck(this, PositionCache);\n\n _defineProperty(this, \"_columnSizeMap\", {});\n\n _defineProperty(this, \"_intervalTree\", createIntervalTree());\n\n _defineProperty(this, \"_leftMap\", {});\n }\n\n _createClass(PositionCache, [{\n key: \"estimateTotalHeight\",\n value: function estimateTotalHeight(cellCount, columnCount, defaultCellHeight) {\n var unmeasuredCellCount = cellCount - this.count;\n return this.tallestColumnSize + Math.ceil(unmeasuredCellCount / columnCount) * defaultCellHeight;\n } // Render all cells visible within the viewport range defined.\n\n }, {\n key: \"range\",\n value: function range(scrollTop, clientHeight, renderCallback) {\n var _this = this;\n\n this._intervalTree.queryInterval(scrollTop, scrollTop + clientHeight, function (_ref) {\n var _ref2 = _slicedToArray(_ref, 3),\n top = _ref2[0],\n _ = _ref2[1],\n index = _ref2[2];\n\n return renderCallback(index, _this._leftMap[index], top);\n });\n }\n }, {\n key: \"setPosition\",\n value: function setPosition(index, left, top, height) {\n this._intervalTree.insert([top, top + height, index]);\n\n this._leftMap[index] = left;\n var columnSizeMap = this._columnSizeMap;\n var columnHeight = columnSizeMap[left];\n\n if (columnHeight === undefined) {\n columnSizeMap[left] = top + height;\n } else {\n columnSizeMap[left] = Math.max(columnHeight, top + height);\n }\n }\n }, {\n key: \"count\",\n get: function get() {\n return this._intervalTree.count;\n }\n }, {\n key: \"shortestColumnSize\",\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n var size = 0;\n\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = size === 0 ? height : Math.min(size, height);\n }\n\n return size;\n }\n }, {\n key: \"tallestColumnSize\",\n get: function get() {\n var columnSizeMap = this._columnSizeMap;\n var size = 0;\n\n for (var i in columnSizeMap) {\n var height = columnSizeMap[i];\n size = Math.max(size, height);\n }\n\n return size;\n }\n }]);\n\n return PositionCache;\n}();\n\nexport { PositionCache as default };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport PositionCache from './PositionCache';\nimport { requestAnimationTimeout, cancelAnimationTimeout } from '../utils/requestAnimationTimeout';\nvar emptyObject = {};\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\n/**\n * This component efficiently displays arbitrarily positioned cells using windowing techniques.\n * Cell position is determined by an injected `cellPositioner` property.\n * Windowing is vertical; this component does not support horizontal scrolling.\n *\n * Rendering occurs in two phases:\n * 1) First pass uses estimated cell sizes (provided by the cache) to determine how many cells to measure in a batch.\n * Batch size is chosen using a fast, naive layout algorithm that stacks images in order until the viewport has been filled.\n * After measurement is complete (componentDidMount or componentDidUpdate) this component evaluates positioned cells\n * in order to determine if another measurement pass is required (eg if actual cell sizes were less than estimated sizes).\n * All measurements are permanently cached (keyed by `keyMapper`) for performance purposes.\n * 2) Second pass uses the external `cellPositioner` to layout cells.\n * At this time the positioner has access to cached size measurements for all cells.\n * The positions it returns are cached by Masonry for fast access later.\n * Phase one is repeated if the user scrolls beyond the current layout's bounds.\n * If the layout is invalidated due to eg a resize, cached positions can be cleared using `recomputeCellPositions()`.\n *\n * Animation constraints:\n * Simple animations are supported (eg translate/slide into place on initial reveal).\n * More complex animations are not (eg flying from one position to another on resize).\n *\n * Layout constraints:\n * This component supports multi-column layout.\n * The height of each item may vary.\n * The width of each item must not exceed the width of the column it is \"in\".\n * The left position of all items within a column must align.\n * (Items may not span multiple columns.)\n */\n\nvar Masonry = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Masonry, _React$PureComponent);\n\n function Masonry() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Masonry);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Masonry)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isScrolling: false,\n scrollTop: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingId\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStartIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_invalidateOnUpdateStopIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionCache\", new PositionCache());\n\n _defineProperty(_assertThisInitialized(_this), \"_startIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_startIndexMemoized\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_stopIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_stopIndexMemoized\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_debounceResetIsScrollingCallback\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_setScrollingContainerRef\", function (ref) {\n _this._scrollingContainer = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (event) {\n var height = _this.props.height;\n var eventScrollTop = event.currentTarget.scrollTop; // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scroll offsets never exceed their bounds.\n\n var scrollTop = Math.min(Math.max(0, _this._getEstimatedTotalHeight() - height), eventScrollTop); // On iOS, we can arrive at negative offsets by swiping past the start or end.\n // Avoid re-rendering in this case as it can cause problems; see #532 for more.\n\n if (eventScrollTop !== scrollTop) {\n return;\n } // Prevent pointer events from interrupting a smooth scroll\n\n\n _this._debounceResetIsScrolling(); // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n\n\n if (_this.state.scrollTop !== scrollTop) {\n _this.setState({\n isScrolling: true,\n scrollTop: scrollTop\n });\n }\n });\n\n return _this;\n }\n\n _createClass(Masonry, [{\n key: \"clearCellPositions\",\n value: function clearCellPositions() {\n this._positionCache = new PositionCache();\n this.forceUpdate();\n } // HACK This method signature was intended for Grid\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref) {\n var index = _ref.rowIndex;\n\n if (this._invalidateOnUpdateStartIndex === null) {\n this._invalidateOnUpdateStartIndex = index;\n this._invalidateOnUpdateStopIndex = index;\n } else {\n this._invalidateOnUpdateStartIndex = Math.min(this._invalidateOnUpdateStartIndex, index);\n this._invalidateOnUpdateStopIndex = Math.max(this._invalidateOnUpdateStopIndex, index);\n }\n }\n }, {\n key: \"recomputeCellPositions\",\n value: function recomputeCellPositions() {\n var stopIndex = this._positionCache.count - 1;\n this._positionCache = new PositionCache();\n\n this._populatePositionCache(0, stopIndex);\n\n this.forceUpdate();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._checkInvalidateOnUpdate();\n\n this._invokeOnScrollCallback();\n\n this._invokeOnCellsRenderedCallback();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n this._checkInvalidateOnUpdate();\n\n this._invokeOnScrollCallback();\n\n this._invokeOnCellsRenderedCallback();\n\n if (this.props.scrollTop !== prevProps.scrollTop) {\n this._debounceResetIsScrolling();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n autoHeight = _this$props.autoHeight,\n cellCount = _this$props.cellCount,\n cellMeasurerCache = _this$props.cellMeasurerCache,\n cellRenderer = _this$props.cellRenderer,\n className = _this$props.className,\n height = _this$props.height,\n id = _this$props.id,\n keyMapper = _this$props.keyMapper,\n overscanByPixels = _this$props.overscanByPixels,\n role = _this$props.role,\n style = _this$props.style,\n tabIndex = _this$props.tabIndex,\n width = _this$props.width,\n rowDirection = _this$props.rowDirection;\n var _this$state = this.state,\n isScrolling = _this$state.isScrolling,\n scrollTop = _this$state.scrollTop;\n var children = [];\n\n var estimateTotalHeight = this._getEstimatedTotalHeight();\n\n var shortestColumnSize = this._positionCache.shortestColumnSize;\n var measuredCellCount = this._positionCache.count;\n var startIndex = 0;\n var stopIndex;\n\n this._positionCache.range(Math.max(0, scrollTop - overscanByPixels), height + overscanByPixels * 2, function (index, left, top) {\n var _style;\n\n if (typeof stopIndex === 'undefined') {\n startIndex = index;\n stopIndex = index;\n } else {\n startIndex = Math.min(startIndex, index);\n stopIndex = Math.max(stopIndex, index);\n }\n\n children.push(cellRenderer({\n index: index,\n isScrolling: isScrolling,\n key: keyMapper(index),\n parent: _this2,\n style: (_style = {\n height: cellMeasurerCache.getHeight(index)\n }, _defineProperty(_style, rowDirection === 'ltr' ? 'left' : 'right', left), _defineProperty(_style, \"position\", 'absolute'), _defineProperty(_style, \"top\", top), _defineProperty(_style, \"width\", cellMeasurerCache.getWidth(index)), _style)\n }));\n }); // We need to measure additional cells for this layout\n\n\n if (shortestColumnSize < scrollTop + height + overscanByPixels && measuredCellCount < cellCount) {\n var batchSize = Math.min(cellCount - measuredCellCount, Math.ceil((scrollTop + height + overscanByPixels - shortestColumnSize) / cellMeasurerCache.defaultHeight * width / cellMeasurerCache.defaultWidth));\n\n for (var _index = measuredCellCount; _index < measuredCellCount + batchSize; _index++) {\n stopIndex = _index;\n children.push(cellRenderer({\n index: _index,\n isScrolling: isScrolling,\n key: keyMapper(_index),\n parent: this,\n style: {\n width: cellMeasurerCache.getWidth(_index)\n }\n }));\n }\n }\n\n this._startIndex = startIndex;\n this._stopIndex = stopIndex;\n return React.createElement(\"div\", {\n ref: this._setScrollingContainerRef,\n \"aria-label\": this.props['aria-label'],\n className: clsx('ReactVirtualized__Masonry', className),\n id: id,\n onScroll: this._onScroll,\n role: role,\n style: _objectSpread({\n boxSizing: 'border-box',\n direction: 'ltr',\n height: autoHeight ? 'auto' : height,\n overflowX: 'hidden',\n overflowY: estimateTotalHeight < height ? 'hidden' : 'auto',\n position: 'relative',\n width: width,\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform'\n }, style),\n tabIndex: tabIndex\n }, React.createElement(\"div\", {\n className: \"ReactVirtualized__Masonry__innerScrollContainer\",\n style: {\n width: '100%',\n height: estimateTotalHeight,\n maxWidth: '100%',\n maxHeight: estimateTotalHeight,\n overflow: 'hidden',\n pointerEvents: isScrolling ? 'none' : '',\n position: 'relative'\n }\n }, children));\n }\n }, {\n key: \"_checkInvalidateOnUpdate\",\n value: function _checkInvalidateOnUpdate() {\n if (typeof this._invalidateOnUpdateStartIndex === 'number') {\n var startIndex = this._invalidateOnUpdateStartIndex;\n var stopIndex = this._invalidateOnUpdateStopIndex;\n this._invalidateOnUpdateStartIndex = null;\n this._invalidateOnUpdateStopIndex = null; // Query external layout logic for position of newly-measured cells\n\n this._populatePositionCache(startIndex, stopIndex);\n\n this.forceUpdate();\n }\n }\n }, {\n key: \"_debounceResetIsScrolling\",\n value: function _debounceResetIsScrolling() {\n var scrollingResetTimeInterval = this.props.scrollingResetTimeInterval;\n\n if (this._debounceResetIsScrollingId) {\n cancelAnimationTimeout(this._debounceResetIsScrollingId);\n }\n\n this._debounceResetIsScrollingId = requestAnimationTimeout(this._debounceResetIsScrollingCallback, scrollingResetTimeInterval);\n }\n }, {\n key: \"_getEstimatedTotalHeight\",\n value: function _getEstimatedTotalHeight() {\n var _this$props2 = this.props,\n cellCount = _this$props2.cellCount,\n cellMeasurerCache = _this$props2.cellMeasurerCache,\n width = _this$props2.width;\n var estimatedColumnCount = Math.max(1, Math.floor(width / cellMeasurerCache.defaultWidth));\n return this._positionCache.estimateTotalHeight(cellCount, estimatedColumnCount, cellMeasurerCache.defaultHeight);\n }\n }, {\n key: \"_invokeOnScrollCallback\",\n value: function _invokeOnScrollCallback() {\n var _this$props3 = this.props,\n height = _this$props3.height,\n onScroll = _this$props3.onScroll;\n var scrollTop = this.state.scrollTop;\n\n if (this._onScrollMemoized !== scrollTop) {\n onScroll({\n clientHeight: height,\n scrollHeight: this._getEstimatedTotalHeight(),\n scrollTop: scrollTop\n });\n this._onScrollMemoized = scrollTop;\n }\n }\n }, {\n key: \"_invokeOnCellsRenderedCallback\",\n value: function _invokeOnCellsRenderedCallback() {\n if (this._startIndexMemoized !== this._startIndex || this._stopIndexMemoized !== this._stopIndex) {\n var onCellsRendered = this.props.onCellsRendered;\n onCellsRendered({\n startIndex: this._startIndex,\n stopIndex: this._stopIndex\n });\n this._startIndexMemoized = this._startIndex;\n this._stopIndexMemoized = this._stopIndex;\n }\n }\n }, {\n key: \"_populatePositionCache\",\n value: function _populatePositionCache(startIndex, stopIndex) {\n var _this$props4 = this.props,\n cellMeasurerCache = _this$props4.cellMeasurerCache,\n cellPositioner = _this$props4.cellPositioner;\n\n for (var _index2 = startIndex; _index2 <= stopIndex; _index2++) {\n var _cellPositioner = cellPositioner(_index2),\n left = _cellPositioner.left,\n top = _cellPositioner.top;\n\n this._positionCache.setPosition(_index2, left, top, cellMeasurerCache.getHeight(_index2));\n }\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollTop !== undefined && prevState.scrollTop !== nextProps.scrollTop) {\n return {\n isScrolling: true,\n scrollTop: nextProps.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return Masonry;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n \"autoHeight\": PropTypes.bool.isRequired,\n \"cellCount\": PropTypes.number.isRequired,\n \"cellMeasurerCache\": function cellMeasurerCache() {\n return (typeof CellMeasurerCache === \"function\" ? PropTypes.instanceOf(CellMeasurerCache).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"cellPositioner\": function cellPositioner() {\n return (typeof Positioner === \"function\" ? PropTypes.instanceOf(Positioner).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"cellRenderer\": function cellRenderer() {\n return (typeof CellRenderer === \"function\" ? PropTypes.instanceOf(CellRenderer).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"className\": PropTypes.string,\n \"height\": PropTypes.number.isRequired,\n \"id\": PropTypes.string,\n \"keyMapper\": function keyMapper() {\n return (typeof KeyMapper === \"function\" ? PropTypes.instanceOf(KeyMapper).isRequired : PropTypes.any.isRequired).apply(this, arguments);\n },\n \"onCellsRendered\": function onCellsRendered() {\n return (typeof OnCellsRenderedCallback === \"function\" ? PropTypes.instanceOf(OnCellsRenderedCallback) : PropTypes.any).apply(this, arguments);\n },\n \"onScroll\": function onScroll() {\n return (typeof OnScrollCallback === \"function\" ? PropTypes.instanceOf(OnScrollCallback) : PropTypes.any).apply(this, arguments);\n },\n \"overscanByPixels\": PropTypes.number.isRequired,\n \"role\": PropTypes.string.isRequired,\n \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n \"style\": function style(props, propName, componentName) {\n if (!Object.prototype.hasOwnProperty.call(props, propName)) {\n throw new Error(\"Prop `\".concat(propName, \"` has type 'any' or 'mixed', but was not provided to `\").concat(componentName, \"`. Pass undefined or any other value.\"));\n }\n },\n \"tabIndex\": PropTypes.number.isRequired,\n \"width\": PropTypes.number.isRequired,\n \"rowDirection\": PropTypes.string.isRequired,\n \"scrollTop\": PropTypes.number\n}), _temp);\n\n_defineProperty(Masonry, \"defaultProps\", {\n autoHeight: false,\n keyMapper: identity,\n onCellsRendered: noop,\n onScroll: noop,\n overscanByPixels: 20,\n role: 'grid',\n scrollingResetTimeInterval: DEFAULT_SCROLLING_RESET_TIME_INTERVAL,\n style: emptyObject,\n tabIndex: 0,\n rowDirection: 'ltr'\n});\n\nfunction identity(value) {\n return value;\n}\n\nfunction noop() {}\n\nvar bpfrpt_proptype_CellMeasurerCache = process.env.NODE_ENV === 'production' ? null : {\n \"defaultHeight\": PropTypes.number.isRequired,\n \"defaultWidth\": PropTypes.number.isRequired,\n \"getHeight\": PropTypes.func.isRequired,\n \"getWidth\": PropTypes.func.isRequired\n};\npolyfill(Masonry);\nexport default Masonry;\nvar bpfrpt_proptype_Positioner = process.env.NODE_ENV === 'production' ? null : PropTypes.func;\nimport { bpfrpt_proptype_AnimationTimeoutId } from \"../utils/requestAnimationTimeout\";\nimport PropTypes from \"prop-types\";\nexport { bpfrpt_proptype_CellMeasurerCache };\nexport { bpfrpt_proptype_Positioner };","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport { CellMeasurerCache } from '../CellMeasurer';\n\n/**\n * Caches measurements for a given cell.\n */\nvar CellMeasurerCacheDecorator =\n/*#__PURE__*/\nfunction () {\n function CellMeasurerCacheDecorator() {\n var _this = this;\n\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, CellMeasurerCacheDecorator);\n\n _defineProperty(this, \"_cellMeasurerCache\", void 0);\n\n _defineProperty(this, \"_columnIndexOffset\", void 0);\n\n _defineProperty(this, \"_rowIndexOffset\", void 0);\n\n _defineProperty(this, \"columnWidth\", function (_ref) {\n var index = _ref.index;\n\n _this._cellMeasurerCache.columnWidth({\n index: index + _this._columnIndexOffset\n });\n });\n\n _defineProperty(this, \"rowHeight\", function (_ref2) {\n var index = _ref2.index;\n\n _this._cellMeasurerCache.rowHeight({\n index: index + _this._rowIndexOffset\n });\n });\n\n var cellMeasurerCache = params.cellMeasurerCache,\n _params$columnIndexOf = params.columnIndexOffset,\n columnIndexOffset = _params$columnIndexOf === void 0 ? 0 : _params$columnIndexOf,\n _params$rowIndexOffse = params.rowIndexOffset,\n rowIndexOffset = _params$rowIndexOffse === void 0 ? 0 : _params$rowIndexOffse;\n this._cellMeasurerCache = cellMeasurerCache;\n this._columnIndexOffset = columnIndexOffset;\n this._rowIndexOffset = rowIndexOffset;\n }\n\n _createClass(CellMeasurerCacheDecorator, [{\n key: \"clear\",\n value: function clear(rowIndex, columnIndex) {\n this._cellMeasurerCache.clear(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"clearAll\",\n value: function clearAll() {\n this._cellMeasurerCache.clearAll();\n }\n }, {\n key: \"hasFixedHeight\",\n value: function hasFixedHeight() {\n return this._cellMeasurerCache.hasFixedHeight();\n }\n }, {\n key: \"hasFixedWidth\",\n value: function hasFixedWidth() {\n return this._cellMeasurerCache.hasFixedWidth();\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.getHeight(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.getWidth(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"has\",\n value: function has(rowIndex) {\n var columnIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return this._cellMeasurerCache.has(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset);\n }\n }, {\n key: \"set\",\n value: function set(rowIndex, columnIndex, width, height) {\n this._cellMeasurerCache.set(rowIndex + this._rowIndexOffset, columnIndex + this._columnIndexOffset, width, height);\n }\n }, {\n key: \"defaultHeight\",\n get: function get() {\n return this._cellMeasurerCache.defaultHeight;\n }\n }, {\n key: \"defaultWidth\",\n get: function get() {\n return this._cellMeasurerCache.defaultWidth;\n }\n }]);\n\n return CellMeasurerCacheDecorator;\n}();\n\nexport { CellMeasurerCacheDecorator as default };","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { polyfill } from 'react-lifecycles-compat';\nimport CellMeasurerCacheDecorator from './CellMeasurerCacheDecorator';\nimport Grid from '../Grid';\nvar SCROLLBAR_SIZE_BUFFER = 20;\n/**\n * Renders 1, 2, or 4 Grids depending on configuration.\n * A main (body) Grid will always be rendered.\n * Optionally, 1-2 Grids for sticky header rows will also be rendered.\n * If no sticky columns, only 1 sticky header Grid will be rendered.\n * If sticky columns, 2 sticky header Grids will be rendered.\n */\n\nvar MultiGrid =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(MultiGrid, _React$PureComponent);\n\n function MultiGrid(props, context) {\n var _this;\n\n _classCallCheck(this, MultiGrid);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MultiGrid).call(this, props, context));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n scrollLeft: 0,\n scrollTop: 0,\n scrollbarSize: 0,\n showHorizontalScrollbar: false,\n showVerticalScrollbar: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateColumnIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_deferredInvalidateRowIndex\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"_bottomLeftGridRef\", function (ref) {\n _this._bottomLeftGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_bottomRightGridRef\", function (ref) {\n _this._bottomRightGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomLeftGrid\", function (_ref) {\n var rowIndex = _ref.rowIndex,\n rest = _objectWithoutProperties(_ref, [\"rowIndex\"]);\n\n var _this$props = _this.props,\n cellRenderer = _this$props.cellRenderer,\n fixedRowCount = _this$props.fixedRowCount,\n rowCount = _this$props.rowCount;\n\n if (rowIndex === rowCount - fixedRowCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread({}, rest.style, {\n height: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread({}, rest, {\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererBottomRightGrid\", function (_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex,\n rest = _objectWithoutProperties(_ref2, [\"columnIndex\", \"rowIndex\"]);\n\n var _this$props2 = _this.props,\n cellRenderer = _this$props2.cellRenderer,\n fixedColumnCount = _this$props2.fixedColumnCount,\n fixedRowCount = _this$props2.fixedRowCount;\n return cellRenderer(_objectSpread({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this),\n rowIndex: rowIndex + fixedRowCount\n }));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_cellRendererTopRightGrid\", function (_ref3) {\n var columnIndex = _ref3.columnIndex,\n rest = _objectWithoutProperties(_ref3, [\"columnIndex\"]);\n\n var _this$props3 = _this.props,\n cellRenderer = _this$props3.cellRenderer,\n columnCount = _this$props3.columnCount,\n fixedColumnCount = _this$props3.fixedColumnCount;\n\n if (columnIndex === columnCount - fixedColumnCount) {\n return React.createElement(\"div\", {\n key: rest.key,\n style: _objectSpread({}, rest.style, {\n width: SCROLLBAR_SIZE_BUFFER\n })\n });\n } else {\n return cellRenderer(_objectSpread({}, rest, {\n columnIndex: columnIndex + fixedColumnCount,\n parent: _assertThisInitialized(_this)\n }));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_columnWidthRightGrid\", function (_ref4) {\n var index = _ref4.index;\n var _this$props4 = _this.props,\n columnCount = _this$props4.columnCount,\n fixedColumnCount = _this$props4.fixedColumnCount,\n columnWidth = _this$props4.columnWidth;\n var _this$state = _this.state,\n scrollbarSize = _this$state.scrollbarSize,\n showHorizontalScrollbar = _this$state.showHorizontalScrollbar; // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showHorizontalScrollbar && index === columnCount - fixedColumnCount) {\n return scrollbarSize;\n }\n\n return typeof columnWidth === 'function' ? columnWidth({\n index: index + fixedColumnCount\n }) : columnWidth;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScroll\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft,\n scrollTop = scrollInfo.scrollTop;\n\n _this.setState({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n var onScroll = _this.props.onScroll;\n\n if (onScroll) {\n onScroll(scrollInfo);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollbarPresenceChange\", function (_ref5) {\n var horizontal = _ref5.horizontal,\n size = _ref5.size,\n vertical = _ref5.vertical;\n var _this$state2 = _this.state,\n showHorizontalScrollbar = _this$state2.showHorizontalScrollbar,\n showVerticalScrollbar = _this$state2.showVerticalScrollbar;\n\n if (horizontal !== showHorizontalScrollbar || vertical !== showVerticalScrollbar) {\n _this.setState({\n scrollbarSize: size,\n showHorizontalScrollbar: horizontal,\n showVerticalScrollbar: vertical\n });\n\n var onScrollbarPresenceChange = _this.props.onScrollbarPresenceChange;\n\n if (typeof onScrollbarPresenceChange === 'function') {\n onScrollbarPresenceChange({\n horizontal: horizontal,\n size: size,\n vertical: vertical\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollLeft\", function (scrollInfo) {\n var scrollLeft = scrollInfo.scrollLeft;\n\n _this._onScroll({\n scrollLeft: scrollLeft,\n scrollTop: _this.state.scrollTop\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onScrollTop\", function (scrollInfo) {\n var scrollTop = scrollInfo.scrollTop;\n\n _this._onScroll({\n scrollTop: scrollTop,\n scrollLeft: _this.state.scrollLeft\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_rowHeightBottomGrid\", function (_ref6) {\n var index = _ref6.index;\n var _this$props5 = _this.props,\n fixedRowCount = _this$props5.fixedRowCount,\n rowCount = _this$props5.rowCount,\n rowHeight = _this$props5.rowHeight;\n var _this$state3 = _this.state,\n scrollbarSize = _this$state3.scrollbarSize,\n showVerticalScrollbar = _this$state3.showVerticalScrollbar; // An extra cell is added to the count\n // This gives the smaller Grid extra room for offset,\n // In case the main (bottom right) Grid has a scrollbar\n // If no scrollbar, the extra space is overflow:hidden anyway\n\n if (showVerticalScrollbar && index === rowCount - fixedRowCount) {\n return scrollbarSize;\n }\n\n return typeof rowHeight === 'function' ? rowHeight({\n index: index + fixedRowCount\n }) : rowHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_topLeftGridRef\", function (ref) {\n _this._topLeftGrid = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_topRightGridRef\", function (ref) {\n _this._topRightGrid = ref;\n });\n\n var deferredMeasurementCache = props.deferredMeasurementCache,\n _fixedColumnCount = props.fixedColumnCount,\n _fixedRowCount = props.fixedRowCount;\n\n _this._maybeCalculateCachedStyles(true);\n\n if (deferredMeasurementCache) {\n _this._deferredMeasurementCacheBottomLeftGrid = _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: 0,\n rowIndexOffset: _fixedRowCount\n }) : deferredMeasurementCache;\n _this._deferredMeasurementCacheBottomRightGrid = _fixedColumnCount > 0 || _fixedRowCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: _fixedRowCount\n }) : deferredMeasurementCache;\n _this._deferredMeasurementCacheTopRightGrid = _fixedColumnCount > 0 ? new CellMeasurerCacheDecorator({\n cellMeasurerCache: deferredMeasurementCache,\n columnIndexOffset: _fixedColumnCount,\n rowIndexOffset: 0\n }) : deferredMeasurementCache;\n }\n\n return _this;\n }\n\n _createClass(MultiGrid, [{\n key: \"forceUpdateGrids\",\n value: function forceUpdateGrids() {\n this._bottomLeftGrid && this._bottomLeftGrid.forceUpdate();\n this._bottomRightGrid && this._bottomRightGrid.forceUpdate();\n this._topLeftGrid && this._topLeftGrid.forceUpdate();\n this._topRightGrid && this._topRightGrid.forceUpdate();\n }\n /** See Grid#invalidateCellSizeAfterRender */\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$columnIndex = _ref7.columnIndex,\n columnIndex = _ref7$columnIndex === void 0 ? 0 : _ref7$columnIndex,\n _ref7$rowIndex = _ref7.rowIndex,\n rowIndex = _ref7$rowIndex === void 0 ? 0 : _ref7$rowIndex;\n\n this._deferredInvalidateColumnIndex = typeof this._deferredInvalidateColumnIndex === 'number' ? Math.min(this._deferredInvalidateColumnIndex, columnIndex) : columnIndex;\n this._deferredInvalidateRowIndex = typeof this._deferredInvalidateRowIndex === 'number' ? Math.min(this._deferredInvalidateRowIndex, rowIndex) : rowIndex;\n }\n /** See Grid#measureAllCells */\n\n }, {\n key: \"measureAllCells\",\n value: function measureAllCells() {\n this._bottomLeftGrid && this._bottomLeftGrid.measureAllCells();\n this._bottomRightGrid && this._bottomRightGrid.measureAllCells();\n this._topLeftGrid && this._topLeftGrid.measureAllCells();\n this._topRightGrid && this._topRightGrid.measureAllCells();\n }\n /** See Grid#recomputeGridSize */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref8$columnIndex = _ref8.columnIndex,\n columnIndex = _ref8$columnIndex === void 0 ? 0 : _ref8$columnIndex,\n _ref8$rowIndex = _ref8.rowIndex,\n rowIndex = _ref8$rowIndex === void 0 ? 0 : _ref8$rowIndex;\n\n var _this$props6 = this.props,\n fixedColumnCount = _this$props6.fixedColumnCount,\n fixedRowCount = _this$props6.fixedRowCount;\n var adjustedColumnIndex = Math.max(0, columnIndex - fixedColumnCount);\n var adjustedRowIndex = Math.max(0, rowIndex - fixedRowCount);\n this._bottomLeftGrid && this._bottomLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: adjustedRowIndex\n });\n this._bottomRightGrid && this._bottomRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: adjustedRowIndex\n });\n this._topLeftGrid && this._topLeftGrid.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this._topRightGrid && this._topRightGrid.recomputeGridSize({\n columnIndex: adjustedColumnIndex,\n rowIndex: rowIndex\n });\n this._leftGridWidth = null;\n this._topGridHeight = null;\n\n this._maybeCalculateCachedStyles(true);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n scrollLeft = _this$props7.scrollLeft,\n scrollTop = _this$props7.scrollTop;\n\n if (scrollLeft > 0 || scrollTop > 0) {\n var newState = {};\n\n if (scrollLeft > 0) {\n newState.scrollLeft = scrollLeft;\n }\n\n if (scrollTop > 0) {\n newState.scrollTop = scrollTop;\n }\n\n this.setState(newState);\n }\n\n this._handleInvalidatedGridSize();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._handleInvalidatedGridSize();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props8 = this.props,\n onScroll = _this$props8.onScroll,\n onSectionRendered = _this$props8.onSectionRendered,\n onScrollbarPresenceChange = _this$props8.onScrollbarPresenceChange,\n scrollLeftProp = _this$props8.scrollLeft,\n scrollToColumn = _this$props8.scrollToColumn,\n scrollTopProp = _this$props8.scrollTop,\n scrollToRow = _this$props8.scrollToRow,\n rest = _objectWithoutProperties(_this$props8, [\"onScroll\", \"onSectionRendered\", \"onScrollbarPresenceChange\", \"scrollLeft\", \"scrollToColumn\", \"scrollTop\", \"scrollToRow\"]);\n\n this._prepareForRender(); // Don't render any of our Grids if there are no cells.\n // This mirrors what Grid does,\n // And prevents us from recording inaccurage measurements when used with CellMeasurer.\n\n\n if (this.props.width === 0 || this.props.height === 0) {\n return null;\n } // scrollTop and scrollLeft props are explicitly filtered out and ignored\n\n\n var _this$state4 = this.state,\n scrollLeft = _this$state4.scrollLeft,\n scrollTop = _this$state4.scrollTop;\n return React.createElement(\"div\", {\n style: this._containerOuterStyle\n }, React.createElement(\"div\", {\n style: this._containerTopStyle\n }, this._renderTopLeftGrid(rest), this._renderTopRightGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n scrollLeft: scrollLeft\n }))), React.createElement(\"div\", {\n style: this._containerBottomStyle\n }, this._renderBottomLeftGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n scrollTop: scrollTop\n })), this._renderBottomRightGrid(_objectSpread({}, rest, {\n onScroll: onScroll,\n onSectionRendered: onSectionRendered,\n scrollLeft: scrollLeft,\n scrollToColumn: scrollToColumn,\n scrollToRow: scrollToRow,\n scrollTop: scrollTop\n }))));\n }\n }, {\n key: \"_getBottomGridHeight\",\n value: function _getBottomGridHeight(props) {\n var height = props.height;\n\n var topGridHeight = this._getTopGridHeight(props);\n\n return height - topGridHeight;\n }\n }, {\n key: \"_getLeftGridWidth\",\n value: function _getLeftGridWidth(props) {\n var fixedColumnCount = props.fixedColumnCount,\n columnWidth = props.columnWidth;\n\n if (this._leftGridWidth == null) {\n if (typeof columnWidth === 'function') {\n var leftGridWidth = 0;\n\n for (var index = 0; index < fixedColumnCount; index++) {\n leftGridWidth += columnWidth({\n index: index\n });\n }\n\n this._leftGridWidth = leftGridWidth;\n } else {\n this._leftGridWidth = columnWidth * fixedColumnCount;\n }\n }\n\n return this._leftGridWidth;\n }\n }, {\n key: \"_getRightGridWidth\",\n value: function _getRightGridWidth(props) {\n var width = props.width;\n\n var leftGridWidth = this._getLeftGridWidth(props);\n\n return width - leftGridWidth;\n }\n }, {\n key: \"_getTopGridHeight\",\n value: function _getTopGridHeight(props) {\n var fixedRowCount = props.fixedRowCount,\n rowHeight = props.rowHeight;\n\n if (this._topGridHeight == null) {\n if (typeof rowHeight === 'function') {\n var topGridHeight = 0;\n\n for (var index = 0; index < fixedRowCount; index++) {\n topGridHeight += rowHeight({\n index: index\n });\n }\n\n this._topGridHeight = topGridHeight;\n } else {\n this._topGridHeight = rowHeight * fixedRowCount;\n }\n }\n\n return this._topGridHeight;\n }\n }, {\n key: \"_handleInvalidatedGridSize\",\n value: function _handleInvalidatedGridSize() {\n if (typeof this._deferredInvalidateColumnIndex === 'number') {\n var columnIndex = this._deferredInvalidateColumnIndex;\n var rowIndex = this._deferredInvalidateRowIndex;\n this._deferredInvalidateColumnIndex = null;\n this._deferredInvalidateRowIndex = null;\n this.recomputeGridSize({\n columnIndex: columnIndex,\n rowIndex: rowIndex\n });\n this.forceUpdate();\n }\n }\n /**\n * Avoid recreating inline styles each render; this bypasses Grid's shallowCompare.\n * This method recalculates styles only when specific props change.\n */\n\n }, {\n key: \"_maybeCalculateCachedStyles\",\n value: function _maybeCalculateCachedStyles(resetAll) {\n var _this$props9 = this.props,\n columnWidth = _this$props9.columnWidth,\n enableFixedColumnScroll = _this$props9.enableFixedColumnScroll,\n enableFixedRowScroll = _this$props9.enableFixedRowScroll,\n height = _this$props9.height,\n fixedColumnCount = _this$props9.fixedColumnCount,\n fixedRowCount = _this$props9.fixedRowCount,\n rowHeight = _this$props9.rowHeight,\n style = _this$props9.style,\n styleBottomLeftGrid = _this$props9.styleBottomLeftGrid,\n styleBottomRightGrid = _this$props9.styleBottomRightGrid,\n styleTopLeftGrid = _this$props9.styleTopLeftGrid,\n styleTopRightGrid = _this$props9.styleTopRightGrid,\n width = _this$props9.width;\n var sizeChange = resetAll || height !== this._lastRenderedHeight || width !== this._lastRenderedWidth;\n var leftSizeChange = resetAll || columnWidth !== this._lastRenderedColumnWidth || fixedColumnCount !== this._lastRenderedFixedColumnCount;\n var topSizeChange = resetAll || fixedRowCount !== this._lastRenderedFixedRowCount || rowHeight !== this._lastRenderedRowHeight;\n\n if (resetAll || sizeChange || style !== this._lastRenderedStyle) {\n this._containerOuterStyle = _objectSpread({\n height: height,\n overflow: 'visible',\n // Let :focus outline show through\n width: width\n }, style);\n }\n\n if (resetAll || sizeChange || topSizeChange) {\n this._containerTopStyle = {\n height: this._getTopGridHeight(this.props),\n position: 'relative',\n width: width\n };\n this._containerBottomStyle = {\n height: height - this._getTopGridHeight(this.props),\n overflow: 'visible',\n // Let :focus outline show through\n position: 'relative',\n width: width\n };\n }\n\n if (resetAll || styleBottomLeftGrid !== this._lastRenderedStyleBottomLeftGrid) {\n this._bottomLeftGridStyle = _objectSpread({\n left: 0,\n overflowX: 'hidden',\n overflowY: enableFixedColumnScroll ? 'auto' : 'hidden',\n position: 'absolute'\n }, styleBottomLeftGrid);\n }\n\n if (resetAll || leftSizeChange || styleBottomRightGrid !== this._lastRenderedStyleBottomRightGrid) {\n this._bottomRightGridStyle = _objectSpread({\n left: this._getLeftGridWidth(this.props),\n position: 'absolute'\n }, styleBottomRightGrid);\n }\n\n if (resetAll || styleTopLeftGrid !== this._lastRenderedStyleTopLeftGrid) {\n this._topLeftGridStyle = _objectSpread({\n left: 0,\n overflowX: 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopLeftGrid);\n }\n\n if (resetAll || leftSizeChange || styleTopRightGrid !== this._lastRenderedStyleTopRightGrid) {\n this._topRightGridStyle = _objectSpread({\n left: this._getLeftGridWidth(this.props),\n overflowX: enableFixedRowScroll ? 'auto' : 'hidden',\n overflowY: 'hidden',\n position: 'absolute',\n top: 0\n }, styleTopRightGrid);\n }\n\n this._lastRenderedColumnWidth = columnWidth;\n this._lastRenderedFixedColumnCount = fixedColumnCount;\n this._lastRenderedFixedRowCount = fixedRowCount;\n this._lastRenderedHeight = height;\n this._lastRenderedRowHeight = rowHeight;\n this._lastRenderedStyle = style;\n this._lastRenderedStyleBottomLeftGrid = styleBottomLeftGrid;\n this._lastRenderedStyleBottomRightGrid = styleBottomRightGrid;\n this._lastRenderedStyleTopLeftGrid = styleTopLeftGrid;\n this._lastRenderedStyleTopRightGrid = styleTopRightGrid;\n this._lastRenderedWidth = width;\n }\n }, {\n key: \"_prepareForRender\",\n value: function _prepareForRender() {\n if (this._lastRenderedColumnWidth !== this.props.columnWidth || this._lastRenderedFixedColumnCount !== this.props.fixedColumnCount) {\n this._leftGridWidth = null;\n }\n\n if (this._lastRenderedFixedRowCount !== this.props.fixedRowCount || this._lastRenderedRowHeight !== this.props.rowHeight) {\n this._topGridHeight = null;\n }\n\n this._maybeCalculateCachedStyles();\n\n this._lastRenderedColumnWidth = this.props.columnWidth;\n this._lastRenderedFixedColumnCount = this.props.fixedColumnCount;\n this._lastRenderedFixedRowCount = this.props.fixedRowCount;\n this._lastRenderedRowHeight = this.props.rowHeight;\n }\n }, {\n key: \"_renderBottomLeftGrid\",\n value: function _renderBottomLeftGrid(props) {\n var enableFixedColumnScroll = props.enableFixedColumnScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n hideBottomLeftGridScrollbar = props.hideBottomLeftGridScrollbar;\n var showVerticalScrollbar = this.state.showVerticalScrollbar;\n\n if (!fixedColumnCount) {\n return null;\n }\n\n var additionalRowCount = showVerticalScrollbar ? 1 : 0,\n height = this._getBottomGridHeight(props),\n width = this._getLeftGridWidth(props),\n scrollbarSize = this.state.showVerticalScrollbar ? this.state.scrollbarSize : 0,\n gridWidth = hideBottomLeftGridScrollbar ? width + scrollbarSize : width;\n\n var bottomLeftGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomLeftGrid,\n className: this.props.classNameBottomLeftGrid,\n columnCount: fixedColumnCount,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomLeftGrid,\n height: height,\n onScroll: enableFixedColumnScroll ? this._onScrollTop : undefined,\n ref: this._bottomLeftGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount) + additionalRowCount,\n rowHeight: this._rowHeightBottomGrid,\n style: this._bottomLeftGridStyle,\n tabIndex: null,\n width: gridWidth\n }));\n\n if (hideBottomLeftGridScrollbar) {\n return React.createElement(\"div\", {\n className: \"BottomLeftGrid_ScrollWrapper\",\n style: _objectSpread({}, this._bottomLeftGridStyle, {\n height: height,\n width: width,\n overflowY: 'hidden'\n })\n }, bottomLeftGrid);\n }\n\n return bottomLeftGrid;\n }\n }, {\n key: \"_renderBottomRightGrid\",\n value: function _renderBottomRightGrid(props) {\n var columnCount = props.columnCount,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n rowCount = props.rowCount,\n scrollToColumn = props.scrollToColumn,\n scrollToRow = props.scrollToRow;\n return React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererBottomRightGrid,\n className: this.props.classNameBottomRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount),\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheBottomRightGrid,\n height: this._getBottomGridHeight(props),\n onScroll: this._onScroll,\n onScrollbarPresenceChange: this._onScrollbarPresenceChange,\n ref: this._bottomRightGridRef,\n rowCount: Math.max(0, rowCount - fixedRowCount),\n rowHeight: this._rowHeightBottomGrid,\n scrollToColumn: scrollToColumn - fixedColumnCount,\n scrollToRow: scrollToRow - fixedRowCount,\n style: this._bottomRightGridStyle,\n width: this._getRightGridWidth(props)\n }));\n }\n }, {\n key: \"_renderTopLeftGrid\",\n value: function _renderTopLeftGrid(props) {\n var fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount;\n\n if (!fixedColumnCount || !fixedRowCount) {\n return null;\n }\n\n return React.createElement(Grid, _extends({}, props, {\n className: this.props.classNameTopLeftGrid,\n columnCount: fixedColumnCount,\n height: this._getTopGridHeight(props),\n ref: this._topLeftGridRef,\n rowCount: fixedRowCount,\n style: this._topLeftGridStyle,\n tabIndex: null,\n width: this._getLeftGridWidth(props)\n }));\n }\n }, {\n key: \"_renderTopRightGrid\",\n value: function _renderTopRightGrid(props) {\n var columnCount = props.columnCount,\n enableFixedRowScroll = props.enableFixedRowScroll,\n fixedColumnCount = props.fixedColumnCount,\n fixedRowCount = props.fixedRowCount,\n scrollLeft = props.scrollLeft,\n hideTopRightGridScrollbar = props.hideTopRightGridScrollbar;\n var _this$state5 = this.state,\n showHorizontalScrollbar = _this$state5.showHorizontalScrollbar,\n scrollbarSize = _this$state5.scrollbarSize;\n\n if (!fixedRowCount) {\n return null;\n }\n\n var additionalColumnCount = showHorizontalScrollbar ? 1 : 0,\n height = this._getTopGridHeight(props),\n width = this._getRightGridWidth(props),\n additionalHeight = showHorizontalScrollbar ? scrollbarSize : 0;\n\n var gridHeight = height,\n style = this._topRightGridStyle;\n\n if (hideTopRightGridScrollbar) {\n gridHeight = height + additionalHeight;\n style = _objectSpread({}, this._topRightGridStyle, {\n left: 0\n });\n }\n\n var topRightGrid = React.createElement(Grid, _extends({}, props, {\n cellRenderer: this._cellRendererTopRightGrid,\n className: this.props.classNameTopRightGrid,\n columnCount: Math.max(0, columnCount - fixedColumnCount) + additionalColumnCount,\n columnWidth: this._columnWidthRightGrid,\n deferredMeasurementCache: this._deferredMeasurementCacheTopRightGrid,\n height: gridHeight,\n onScroll: enableFixedRowScroll ? this._onScrollLeft : undefined,\n ref: this._topRightGridRef,\n rowCount: fixedRowCount,\n scrollLeft: scrollLeft,\n style: style,\n tabIndex: null,\n width: width\n }));\n\n if (hideTopRightGridScrollbar) {\n return React.createElement(\"div\", {\n className: \"TopRightGrid_ScrollWrapper\",\n style: _objectSpread({}, this._topRightGridStyle, {\n height: height,\n width: width,\n overflowX: 'hidden'\n })\n }, topRightGrid);\n }\n\n return topRightGrid;\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.scrollLeft !== prevState.scrollLeft || nextProps.scrollTop !== prevState.scrollTop) {\n return {\n scrollLeft: nextProps.scrollLeft != null && nextProps.scrollLeft >= 0 ? nextProps.scrollLeft : prevState.scrollLeft,\n scrollTop: nextProps.scrollTop != null && nextProps.scrollTop >= 0 ? nextProps.scrollTop : prevState.scrollTop\n };\n }\n\n return null;\n }\n }]);\n\n return MultiGrid;\n}(React.PureComponent);\n\n_defineProperty(MultiGrid, \"defaultProps\", {\n classNameBottomLeftGrid: '',\n classNameBottomRightGrid: '',\n classNameTopLeftGrid: '',\n classNameTopRightGrid: '',\n enableFixedColumnScroll: false,\n enableFixedRowScroll: false,\n fixedColumnCount: 0,\n fixedRowCount: 0,\n scrollToColumn: -1,\n scrollToRow: -1,\n style: {},\n styleBottomLeftGrid: {},\n styleBottomRightGrid: {},\n styleTopLeftGrid: {},\n styleTopRightGrid: {},\n hideTopRightGridScrollbar: false,\n hideBottomLeftGridScrollbar: false\n});\n\nMultiGrid.propTypes = process.env.NODE_ENV !== \"production\" ? {\n classNameBottomLeftGrid: PropTypes.string.isRequired,\n classNameBottomRightGrid: PropTypes.string.isRequired,\n classNameTopLeftGrid: PropTypes.string.isRequired,\n classNameTopRightGrid: PropTypes.string.isRequired,\n enableFixedColumnScroll: PropTypes.bool.isRequired,\n enableFixedRowScroll: PropTypes.bool.isRequired,\n fixedColumnCount: PropTypes.number.isRequired,\n fixedRowCount: PropTypes.number.isRequired,\n onScrollbarPresenceChange: PropTypes.func,\n style: PropTypes.object.isRequired,\n styleBottomLeftGrid: PropTypes.object.isRequired,\n styleBottomRightGrid: PropTypes.object.isRequired,\n styleTopLeftGrid: PropTypes.object.isRequired,\n styleTopRightGrid: PropTypes.object.isRequired,\n hideTopRightGridScrollbar: PropTypes.bool,\n hideBottomLeftGridScrollbar: PropTypes.bool\n} : {};\npolyfill(MultiGrid);\nexport default MultiGrid;","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\n\nvar ScrollSync =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ScrollSync, _React$PureComponent);\n\n function ScrollSync(props, context) {\n var _this;\n\n _classCallCheck(this, ScrollSync);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ScrollSync).call(this, props, context));\n _this.state = {\n clientHeight: 0,\n clientWidth: 0,\n scrollHeight: 0,\n scrollLeft: 0,\n scrollTop: 0,\n scrollWidth: 0\n };\n _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(ScrollSync, [{\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var _this$state = this.state,\n clientHeight = _this$state.clientHeight,\n clientWidth = _this$state.clientWidth,\n scrollHeight = _this$state.scrollHeight,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop,\n scrollWidth = _this$state.scrollWidth;\n return children({\n clientHeight: clientHeight,\n clientWidth: clientWidth,\n onScroll: this._onScroll,\n scrollHeight: scrollHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth\n });\n }\n }, {\n key: \"_onScroll\",\n value: function _onScroll(_ref) {\n var clientHeight = _ref.clientHeight,\n clientWidth = _ref.clientWidth,\n scrollHeight = _ref.scrollHeight,\n scrollLeft = _ref.scrollLeft,\n scrollTop = _ref.scrollTop,\n scrollWidth = _ref.scrollWidth;\n this.setState({\n clientHeight: clientHeight,\n clientWidth: clientWidth,\n scrollHeight: scrollHeight,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth\n });\n }\n }]);\n\n return ScrollSync;\n}(React.PureComponent);\n\nexport { ScrollSync as default };\nScrollSync.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Function responsible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: PropTypes.func.isRequired\n} : {};","import * as React from 'react';\nexport default function defaultHeaderRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n style = _ref.style;\n return React.createElement(\"div\", {\n className: className,\n role: \"row\",\n style: style\n }, columns);\n}\ndefaultHeaderRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRowRendererParams;\nimport { bpfrpt_proptype_HeaderRowRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","var SortDirection = {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC: 'ASC',\n\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC: 'DESC'\n};\nexport default SortDirection;","import clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport SortDirection from './SortDirection';\n/**\n * Displayed beside a header to indicate that a Table is currently sorted by this column.\n */\n\nexport default function SortIndicator(_ref) {\n var sortDirection = _ref.sortDirection;\n var classNames = clsx('ReactVirtualized__Table__sortableHeaderIcon', {\n 'ReactVirtualized__Table__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'ReactVirtualized__Table__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n });\n return React.createElement(\"svg\", {\n className: classNames,\n width: 18,\n height: 18,\n viewBox: \"0 0 24 24\"\n }, sortDirection === SortDirection.ASC ? React.createElement(\"path\", {\n d: \"M7 14l5-5 5 5z\"\n }) : React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n }), React.createElement(\"path\", {\n d: \"M0 0h24v24H0z\",\n fill: \"none\"\n }));\n}\nSortIndicator.propTypes = process.env.NODE_ENV !== \"production\" ? {\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n} : {};","import * as React from 'react';\nimport SortIndicator from './SortIndicator';\n\n/**\n * Default table header renderer.\n */\nexport default function defaultHeaderRenderer(_ref) {\n var dataKey = _ref.dataKey,\n label = _ref.label,\n sortBy = _ref.sortBy,\n sortDirection = _ref.sortDirection;\n var showSortIndicator = sortBy === dataKey;\n var children = [React.createElement(\"span\", {\n className: \"ReactVirtualized__Table__headerTruncatedText\",\n key: \"label\",\n title: typeof label === 'string' ? label : null\n }, label)];\n\n if (showSortIndicator) {\n children.push(React.createElement(SortIndicator, {\n key: \"SortIndicator\",\n sortDirection: sortDirection\n }));\n }\n\n return children;\n}\ndefaultHeaderRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_HeaderRendererParams === PropTypes.any ? {} : bpfrpt_proptype_HeaderRendererParams;\nimport { bpfrpt_proptype_HeaderRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","import _extends from \"@babel/runtime/helpers/extends\";\nimport * as React from 'react';\n\n/**\n * Default row renderer for Table.\n */\nexport default function defaultRowRenderer(_ref) {\n var className = _ref.className,\n columns = _ref.columns,\n index = _ref.index,\n key = _ref.key,\n onRowClick = _ref.onRowClick,\n onRowDoubleClick = _ref.onRowDoubleClick,\n onRowMouseOut = _ref.onRowMouseOut,\n onRowMouseOver = _ref.onRowMouseOver,\n onRowRightClick = _ref.onRowRightClick,\n rowData = _ref.rowData,\n style = _ref.style;\n var a11yProps = {\n 'aria-rowindex': index + 1\n };\n\n if (onRowClick || onRowDoubleClick || onRowMouseOut || onRowMouseOver || onRowRightClick) {\n a11yProps['aria-label'] = 'row';\n a11yProps.tabIndex = 0;\n\n if (onRowClick) {\n a11yProps.onClick = function (event) {\n return onRowClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowDoubleClick) {\n a11yProps.onDoubleClick = function (event) {\n return onRowDoubleClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowMouseOut) {\n a11yProps.onMouseOut = function (event) {\n return onRowMouseOut({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowMouseOver) {\n a11yProps.onMouseOver = function (event) {\n return onRowMouseOver({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n\n if (onRowRightClick) {\n a11yProps.onContextMenu = function (event) {\n return onRowRightClick({\n event: event,\n index: index,\n rowData: rowData\n });\n };\n }\n }\n\n return React.createElement(\"div\", _extends({}, a11yProps, {\n className: className,\n key: key,\n role: \"row\",\n style: style\n }), columns);\n}\ndefaultRowRenderer.propTypes = process.env.NODE_ENV === 'production' ? null : bpfrpt_proptype_RowRendererParams === PropTypes.any ? {} : bpfrpt_proptype_RowRendererParams;\nimport { bpfrpt_proptype_RowRendererParams } from \"./types\";\nimport PropTypes from \"prop-types\";","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport defaultHeaderRenderer from './defaultHeaderRenderer';\nimport defaultCellRenderer from './defaultCellRenderer';\nimport defaultCellDataGetter from './defaultCellDataGetter';\nimport SortDirection from './SortDirection';\n/**\n * Describes the header and cell contents of a table column.\n */\n\nvar Column =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Column, _React$Component);\n\n function Column() {\n _classCallCheck(this, Column);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Column).apply(this, arguments));\n }\n\n return Column;\n}(React.Component);\n\n_defineProperty(Column, \"defaultProps\", {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n defaultSortDirection: SortDirection.ASC,\n flexGrow: 0,\n flexShrink: 1,\n headerRenderer: defaultHeaderRenderer,\n style: {}\n});\n\nexport { Column as default };\nColumn.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** Optional aria-label value to set on the column header */\n 'aria-label': PropTypes.string,\n\n /**\n * Callback responsible for returning a cell's data, given its :dataKey\n * ({ columnData: any, dataKey: string, rowData: any }): any\n */\n cellDataGetter: PropTypes.func,\n\n /**\n * Callback responsible for rendering a cell's contents.\n * ({ cellData: any, columnData: any, dataKey: string, rowData: any, rowIndex: number }): node\n */\n cellRenderer: PropTypes.func,\n\n /** Optional CSS class to apply to cell */\n className: PropTypes.string,\n\n /** Optional additional data passed to this column's :cellDataGetter */\n columnData: PropTypes.object,\n\n /** Uniquely identifies the row-data attribute corresponding to this cell */\n dataKey: PropTypes.any.isRequired,\n\n /** Optional direction to be used when clicked the first time */\n defaultSortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** If sort is enabled for the table at large, disable it for this column */\n disableSort: PropTypes.bool,\n\n /** Flex grow style; defaults to 0 */\n flexGrow: PropTypes.number,\n\n /** Flex shrink style; defaults to 1 */\n flexShrink: PropTypes.number,\n\n /** Optional CSS class to apply to this column's header */\n headerClassName: PropTypes.string,\n\n /**\n * Optional callback responsible for rendering a column header contents.\n * ({ columnData: object, dataKey: string, disableSort: boolean, label: node, sortBy: string, sortDirection: string }): PropTypes.node\n */\n headerRenderer: PropTypes.func.isRequired,\n\n /** Optional inline style to apply to this column's header */\n headerStyle: PropTypes.object,\n\n /** Optional id to set on the column header */\n id: PropTypes.string,\n\n /** Header label for this column */\n label: PropTypes.node,\n\n /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n maxWidth: PropTypes.number,\n\n /** Minimum width of column. */\n minWidth: PropTypes.number,\n\n /** Optional inline style to apply to cell */\n style: PropTypes.object,\n\n /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n width: PropTypes.number.isRequired\n} : {};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport clsx from 'clsx';\nimport Column from './Column';\nimport PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport Grid, { accessibilityOverscanIndicesGetter } from '../Grid';\nimport defaultRowRenderer from './defaultRowRenderer';\nimport defaultHeaderRowRenderer from './defaultHeaderRowRenderer';\nimport SortDirection from './SortDirection';\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\n\nvar Table =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Table, _React$PureComponent);\n\n function Table(props) {\n var _this;\n\n _classCallCheck(this, Table);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Table).call(this, props));\n _this.state = {\n scrollbarWidth: 0\n };\n _this._createColumn = _this._createColumn.bind(_assertThisInitialized(_this));\n _this._createRow = _this._createRow.bind(_assertThisInitialized(_this));\n _this._onScroll = _this._onScroll.bind(_assertThisInitialized(_this));\n _this._onSectionRendered = _this._onSectionRendered.bind(_assertThisInitialized(_this));\n _this._setRef = _this._setRef.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(Table, [{\n key: \"forceUpdateGrid\",\n value: function forceUpdateGrid() {\n if (this.Grid) {\n this.Grid.forceUpdate();\n }\n }\n /** See Grid#getOffsetForCell */\n\n }, {\n key: \"getOffsetForRow\",\n value: function getOffsetForRow(_ref) {\n var alignment = _ref.alignment,\n index = _ref.index;\n\n if (this.Grid) {\n var _this$Grid$getOffsetF = this.Grid.getOffsetForCell({\n alignment: alignment,\n rowIndex: index\n }),\n scrollTop = _this$Grid$getOffsetF.scrollTop;\n\n return scrollTop;\n }\n\n return 0;\n }\n /** CellMeasurer compatibility */\n\n }, {\n key: \"invalidateCellSizeAfterRender\",\n value: function invalidateCellSizeAfterRender(_ref2) {\n var columnIndex = _ref2.columnIndex,\n rowIndex = _ref2.rowIndex;\n\n if (this.Grid) {\n this.Grid.invalidateCellSizeAfterRender({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#measureAllCells */\n\n }, {\n key: \"measureAllRows\",\n value: function measureAllRows() {\n if (this.Grid) {\n this.Grid.measureAllCells();\n }\n }\n /** CellMeasurer compatibility */\n\n }, {\n key: \"recomputeGridSize\",\n value: function recomputeGridSize() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$columnIndex = _ref3.columnIndex,\n columnIndex = _ref3$columnIndex === void 0 ? 0 : _ref3$columnIndex,\n _ref3$rowIndex = _ref3.rowIndex,\n rowIndex = _ref3$rowIndex === void 0 ? 0 : _ref3$rowIndex;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: rowIndex,\n columnIndex: columnIndex\n });\n }\n }\n /** See Grid#recomputeGridSize */\n\n }, {\n key: \"recomputeRowHeights\",\n value: function recomputeRowHeights() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.recomputeGridSize({\n rowIndex: index\n });\n }\n }\n /** See Grid#scrollToPosition */\n\n }, {\n key: \"scrollToPosition\",\n value: function scrollToPosition() {\n var scrollTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToPosition({\n scrollTop: scrollTop\n });\n }\n }\n /** See Grid#scrollToCell */\n\n }, {\n key: \"scrollToRow\",\n value: function scrollToRow() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.Grid) {\n this.Grid.scrollToCell({\n columnIndex: 0,\n rowIndex: index\n });\n }\n }\n }, {\n key: \"getScrollbarWidth\",\n value: function getScrollbarWidth() {\n if (this.Grid) {\n var _Grid = findDOMNode(this.Grid);\n\n var clientWidth = _Grid.clientWidth || 0;\n var offsetWidth = _Grid.offsetWidth || 0;\n return offsetWidth - clientWidth;\n }\n\n return 0;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._setScrollbarWidth();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._setScrollbarWidth();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n disableHeader = _this$props.disableHeader,\n gridClassName = _this$props.gridClassName,\n gridStyle = _this$props.gridStyle,\n headerHeight = _this$props.headerHeight,\n headerRowRenderer = _this$props.headerRowRenderer,\n height = _this$props.height,\n id = _this$props.id,\n noRowsRenderer = _this$props.noRowsRenderer,\n rowClassName = _this$props.rowClassName,\n rowStyle = _this$props.rowStyle,\n scrollToIndex = _this$props.scrollToIndex,\n style = _this$props.style,\n width = _this$props.width;\n var scrollbarWidth = this.state.scrollbarWidth;\n var availableRowsHeight = disableHeader ? height : height - headerHeight;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: -1\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: -1\n }) : rowStyle; // Precompute and cache column styles before rendering rows and columns to speed things up\n\n this._cachedColumnStyles = [];\n React.Children.toArray(children).forEach(function (column, index) {\n var flexStyles = _this2._getFlexStyleForColumn(column, column.props.style);\n\n _this2._cachedColumnStyles[index] = _objectSpread({\n overflow: 'hidden'\n }, flexStyles);\n }); // Note that we specify :rowCount, :scrollbarWidth, :sortBy, and :sortDirection as properties on Grid even though these have nothing to do with Grid.\n // This is done because Grid is a pure component and won't update unless its properties or state has changed.\n // Any property that should trigger a re-render of Grid then is specified here to avoid a stale display.\n\n return React.createElement(\"div\", {\n \"aria-label\": this.props['aria-label'],\n \"aria-labelledby\": this.props['aria-labelledby'],\n \"aria-colcount\": React.Children.toArray(children).length,\n \"aria-rowcount\": this.props.rowCount,\n className: clsx('ReactVirtualized__Table', className),\n id: id,\n role: \"grid\",\n style: style\n }, !disableHeader && headerRowRenderer({\n className: clsx('ReactVirtualized__Table__headerRow', rowClass),\n columns: this._getHeaderColumns(),\n style: _objectSpread({\n height: headerHeight,\n overflow: 'hidden',\n paddingRight: scrollbarWidth,\n width: width\n }, rowStyleObject)\n }), React.createElement(Grid, _extends({}, this.props, {\n \"aria-readonly\": null,\n autoContainerWidth: true,\n className: clsx('ReactVirtualized__Table__Grid', gridClassName),\n cellRenderer: this._createRow,\n columnWidth: width,\n columnCount: 1,\n height: availableRowsHeight,\n id: undefined,\n noContentRenderer: noRowsRenderer,\n onScroll: this._onScroll,\n onSectionRendered: this._onSectionRendered,\n ref: this._setRef,\n role: \"rowgroup\",\n scrollbarWidth: scrollbarWidth,\n scrollToRow: scrollToIndex,\n style: _objectSpread({}, gridStyle, {\n overflowX: 'hidden'\n })\n })));\n }\n }, {\n key: \"_createColumn\",\n value: function _createColumn(_ref4) {\n var column = _ref4.column,\n columnIndex = _ref4.columnIndex,\n isScrolling = _ref4.isScrolling,\n parent = _ref4.parent,\n rowData = _ref4.rowData,\n rowIndex = _ref4.rowIndex;\n var onColumnClick = this.props.onColumnClick;\n var _column$props = column.props,\n cellDataGetter = _column$props.cellDataGetter,\n cellRenderer = _column$props.cellRenderer,\n className = _column$props.className,\n columnData = _column$props.columnData,\n dataKey = _column$props.dataKey,\n id = _column$props.id;\n var cellData = cellDataGetter({\n columnData: columnData,\n dataKey: dataKey,\n rowData: rowData\n });\n var renderedCell = cellRenderer({\n cellData: cellData,\n columnData: columnData,\n columnIndex: columnIndex,\n dataKey: dataKey,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: rowIndex\n });\n\n var onClick = function onClick(event) {\n onColumnClick && onColumnClick({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n\n var style = this._cachedColumnStyles[columnIndex];\n var title = typeof renderedCell === 'string' ? renderedCell : null; // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n return React.createElement(\"div\", {\n \"aria-colindex\": columnIndex + 1,\n \"aria-describedby\": id,\n className: clsx('ReactVirtualized__Table__rowColumn', className),\n key: 'Row' + rowIndex + '-' + 'Col' + columnIndex,\n onClick: onClick,\n role: \"gridcell\",\n style: style,\n title: title\n }, renderedCell);\n }\n }, {\n key: \"_createHeader\",\n value: function _createHeader(_ref5) {\n var column = _ref5.column,\n index = _ref5.index;\n var _this$props2 = this.props,\n headerClassName = _this$props2.headerClassName,\n headerStyle = _this$props2.headerStyle,\n onHeaderClick = _this$props2.onHeaderClick,\n sort = _this$props2.sort,\n sortBy = _this$props2.sortBy,\n sortDirection = _this$props2.sortDirection;\n var _column$props2 = column.props,\n columnData = _column$props2.columnData,\n dataKey = _column$props2.dataKey,\n defaultSortDirection = _column$props2.defaultSortDirection,\n disableSort = _column$props2.disableSort,\n headerRenderer = _column$props2.headerRenderer,\n id = _column$props2.id,\n label = _column$props2.label;\n var sortEnabled = !disableSort && sort;\n var classNames = clsx('ReactVirtualized__Table__headerColumn', headerClassName, column.props.headerClassName, {\n ReactVirtualized__Table__sortableHeaderColumn: sortEnabled\n });\n\n var style = this._getFlexStyleForColumn(column, _objectSpread({}, headerStyle, {}, column.props.headerStyle));\n\n var renderedHeader = headerRenderer({\n columnData: columnData,\n dataKey: dataKey,\n disableSort: disableSort,\n label: label,\n sortBy: sortBy,\n sortDirection: sortDirection\n });\n var headerOnClick, headerOnKeyDown, headerTabIndex, headerAriaSort, headerAriaLabel;\n\n if (sortEnabled || onHeaderClick) {\n // If this is a sortable header, clicking it should update the table data's sorting.\n var isFirstTimeSort = sortBy !== dataKey; // If this is the firstTime sort of this column, use the column default sort order.\n // Otherwise, invert the direction of the sort.\n\n var newSortDirection = isFirstTimeSort ? defaultSortDirection : sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n\n var onClick = function onClick(event) {\n sortEnabled && sort({\n defaultSortDirection: defaultSortDirection,\n event: event,\n sortBy: dataKey,\n sortDirection: newSortDirection\n });\n onHeaderClick && onHeaderClick({\n columnData: columnData,\n dataKey: dataKey,\n event: event\n });\n };\n\n var onKeyDown = function onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n onClick(event);\n }\n };\n\n headerAriaLabel = column.props['aria-label'] || label || dataKey;\n headerAriaSort = 'none';\n headerTabIndex = 0;\n headerOnClick = onClick;\n headerOnKeyDown = onKeyDown;\n }\n\n if (sortBy === dataKey) {\n headerAriaSort = sortDirection === SortDirection.ASC ? 'ascending' : 'descending';\n } // Avoid using object-spread syntax with multiple objects here,\n // Since it results in an extra method call to 'babel-runtime/helpers/extends'\n // See PR https://github.com/bvaughn/react-virtualized/pull/942\n\n\n return React.createElement(\"div\", {\n \"aria-label\": headerAriaLabel,\n \"aria-sort\": headerAriaSort,\n className: classNames,\n id: id,\n key: 'Header-Col' + index,\n onClick: headerOnClick,\n onKeyDown: headerOnKeyDown,\n role: \"columnheader\",\n style: style,\n tabIndex: headerTabIndex\n }, renderedHeader);\n }\n }, {\n key: \"_createRow\",\n value: function _createRow(_ref6) {\n var _this3 = this;\n\n var index = _ref6.rowIndex,\n isScrolling = _ref6.isScrolling,\n key = _ref6.key,\n parent = _ref6.parent,\n style = _ref6.style;\n var _this$props3 = this.props,\n children = _this$props3.children,\n onRowClick = _this$props3.onRowClick,\n onRowDoubleClick = _this$props3.onRowDoubleClick,\n onRowRightClick = _this$props3.onRowRightClick,\n onRowMouseOver = _this$props3.onRowMouseOver,\n onRowMouseOut = _this$props3.onRowMouseOut,\n rowClassName = _this$props3.rowClassName,\n rowGetter = _this$props3.rowGetter,\n rowRenderer = _this$props3.rowRenderer,\n rowStyle = _this$props3.rowStyle;\n var scrollbarWidth = this.state.scrollbarWidth;\n var rowClass = typeof rowClassName === 'function' ? rowClassName({\n index: index\n }) : rowClassName;\n var rowStyleObject = typeof rowStyle === 'function' ? rowStyle({\n index: index\n }) : rowStyle;\n var rowData = rowGetter({\n index: index\n });\n var columns = React.Children.toArray(children).map(function (column, columnIndex) {\n return _this3._createColumn({\n column: column,\n columnIndex: columnIndex,\n isScrolling: isScrolling,\n parent: parent,\n rowData: rowData,\n rowIndex: index,\n scrollbarWidth: scrollbarWidth\n });\n });\n var className = clsx('ReactVirtualized__Table__row', rowClass);\n\n var flattenedStyle = _objectSpread({}, style, {\n height: this._getRowHeight(index),\n overflow: 'hidden',\n paddingRight: scrollbarWidth\n }, rowStyleObject);\n\n return rowRenderer({\n className: className,\n columns: columns,\n index: index,\n isScrolling: isScrolling,\n key: key,\n onRowClick: onRowClick,\n onRowDoubleClick: onRowDoubleClick,\n onRowRightClick: onRowRightClick,\n onRowMouseOver: onRowMouseOver,\n onRowMouseOut: onRowMouseOut,\n rowData: rowData,\n style: flattenedStyle\n });\n }\n /**\n * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n */\n\n }, {\n key: \"_getFlexStyleForColumn\",\n value: function _getFlexStyleForColumn(column) {\n var customStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var flexValue = \"\".concat(column.props.flexGrow, \" \").concat(column.props.flexShrink, \" \").concat(column.props.width, \"px\");\n\n var style = _objectSpread({}, customStyle, {\n flex: flexValue,\n msFlex: flexValue,\n WebkitFlex: flexValue\n });\n\n if (column.props.maxWidth) {\n style.maxWidth = column.props.maxWidth;\n }\n\n if (column.props.minWidth) {\n style.minWidth = column.props.minWidth;\n }\n\n return style;\n }\n }, {\n key: \"_getHeaderColumns\",\n value: function _getHeaderColumns() {\n var _this4 = this;\n\n var _this$props4 = this.props,\n children = _this$props4.children,\n disableHeader = _this$props4.disableHeader;\n var items = disableHeader ? [] : React.Children.toArray(children);\n return items.map(function (column, index) {\n return _this4._createHeader({\n column: column,\n index: index\n });\n });\n }\n }, {\n key: \"_getRowHeight\",\n value: function _getRowHeight(rowIndex) {\n var rowHeight = this.props.rowHeight;\n return typeof rowHeight === 'function' ? rowHeight({\n index: rowIndex\n }) : rowHeight;\n }\n }, {\n key: \"_onScroll\",\n value: function _onScroll(_ref7) {\n var clientHeight = _ref7.clientHeight,\n scrollHeight = _ref7.scrollHeight,\n scrollTop = _ref7.scrollTop;\n var onScroll = this.props.onScroll;\n onScroll({\n clientHeight: clientHeight,\n scrollHeight: scrollHeight,\n scrollTop: scrollTop\n });\n }\n }, {\n key: \"_onSectionRendered\",\n value: function _onSectionRendered(_ref8) {\n var rowOverscanStartIndex = _ref8.rowOverscanStartIndex,\n rowOverscanStopIndex = _ref8.rowOverscanStopIndex,\n rowStartIndex = _ref8.rowStartIndex,\n rowStopIndex = _ref8.rowStopIndex;\n var onRowsRendered = this.props.onRowsRendered;\n onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n });\n }\n }, {\n key: \"_setRef\",\n value: function _setRef(ref) {\n this.Grid = ref;\n }\n }, {\n key: \"_setScrollbarWidth\",\n value: function _setScrollbarWidth() {\n var scrollbarWidth = this.getScrollbarWidth();\n this.setState({\n scrollbarWidth: scrollbarWidth\n });\n }\n }]);\n\n return Table;\n}(React.PureComponent);\n\n_defineProperty(Table, \"defaultProps\", {\n disableHeader: false,\n estimatedRowSize: 30,\n headerHeight: 0,\n headerStyle: {},\n noRowsRenderer: function noRowsRenderer() {\n return null;\n },\n onRowsRendered: function onRowsRendered() {\n return null;\n },\n onScroll: function onScroll() {\n return null;\n },\n overscanIndicesGetter: accessibilityOverscanIndicesGetter,\n overscanRowCount: 10,\n rowRenderer: defaultRowRenderer,\n headerRowRenderer: defaultHeaderRowRenderer,\n rowStyle: {},\n scrollToAlignment: 'auto',\n scrollToIndex: -1,\n style: {}\n});\n\nexport { Table as default };\nTable.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /** This is just set on the grid top element. */\n 'aria-label': PropTypes.string,\n\n /** This is just set on the grid top element. */\n 'aria-labelledby': PropTypes.string,\n\n /**\n * Removes fixed height from the scrollingContainer so that the total height\n * of rows can stretch the window. Intended for use with WindowScroller\n */\n autoHeight: PropTypes.bool,\n\n /** One or more Columns describing the data displayed in this row */\n children: function children(props) {\n var children = React.Children.toArray(props.children);\n\n for (var i = 0; i < children.length; i++) {\n var childType = children[i].type;\n\n if (childType !== Column && !(childType.prototype instanceof Column)) {\n return new Error('Table only accepts children of type Column');\n }\n }\n },\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Disable rendering the header at all */\n disableHeader: PropTypes.bool,\n\n /**\n * Used to estimate the total height of a Table before all of its rows have actually been measured.\n * The estimated total height is adjusted as rows are rendered.\n */\n estimatedRowSize: PropTypes.number.isRequired,\n\n /** Optional custom CSS class name to attach to inner Grid element. */\n gridClassName: PropTypes.string,\n\n /** Optional inline style to attach to inner Grid element. */\n gridStyle: PropTypes.object,\n\n /** Optional CSS class to apply to all column headers */\n headerClassName: PropTypes.string,\n\n /** Fixed height of header row */\n headerHeight: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: any[],\n * style: any\n * }): PropTypes.node\n */\n headerRowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table header columns. */\n headerStyle: PropTypes.object,\n\n /** Fixed/available height for out DOM element */\n height: PropTypes.number.isRequired,\n\n /** Optional id */\n id: PropTypes.string,\n\n /** Optional renderer to be used in place of table body rows when rowCount is 0 */\n noRowsRenderer: PropTypes.func,\n\n /**\n * Optional callback when a column is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onColumnClick: PropTypes.func,\n\n /**\n * Optional callback when a column's header is clicked.\n * ({ columnData: any, dataKey: string }): void\n */\n onHeaderClick: PropTypes.func,\n\n /**\n * Callback invoked when a user clicks on a table row.\n * ({ index: number }): void\n */\n onRowClick: PropTypes.func,\n\n /**\n * Callback invoked when a user double-clicks on a table row.\n * ({ index: number }): void\n */\n onRowDoubleClick: PropTypes.func,\n\n /**\n * Callback invoked when the mouse leaves a table row.\n * ({ index: number }): void\n */\n onRowMouseOut: PropTypes.func,\n\n /**\n * Callback invoked when a user moves the mouse over a table row.\n * ({ index: number }): void\n */\n onRowMouseOver: PropTypes.func,\n\n /**\n * Callback invoked when a user right-clicks on a table row.\n * ({ index: number }): void\n */\n onRowRightClick: PropTypes.func,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /** See Grid#overscanIndicesGetter */\n overscanIndicesGetter: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowCount: PropTypes.number.isRequired,\n\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: ({ index: number }): string\n */\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Callback responsible for returning a data row given an index.\n * ({ index: number }): any\n */\n rowGetter: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * ({ index: number }): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Number of rows in table. */\n rowCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a table row given an array of columns:\n * Should implement the following interface: ({\n * className: string,\n * columns: Array,\n * index: number,\n * isScrolling: boolean,\n * onRowClick: ?Function,\n * onRowDoubleClick: ?Function,\n * onRowMouseOver: ?Function,\n * onRowMouseOut: ?Function,\n * rowData: any,\n * style: any\n * }): PropTypes.node\n */\n rowRenderer: PropTypes.func,\n\n /** Optional custom inline style to attach to table rows. */\n rowStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,\n\n /** See Grid#scrollToAlignment */\n scrollToAlignment: PropTypes.oneOf(['auto', 'end', 'start', 'center']).isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number.isRequired,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Sort function to be called if a sortable header is clicked.\n * Should implement the following interface: ({\n * defaultSortDirection: 'ASC' | 'DESC',\n * event: MouseEvent,\n * sortBy: string,\n * sortDirection: SortDirection\n * }): void\n */\n sort: PropTypes.func,\n\n /** Table data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: PropTypes.string,\n\n /** Table data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** Optional inline style */\n style: PropTypes.object,\n\n /** Tab index for focus */\n tabIndex: PropTypes.number,\n\n /** Width of list */\n width: PropTypes.number.isRequired\n} : {};\nimport { bpfrpt_proptype_CellPosition } from \"../Grid\";","/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nexport default function defaultCellDataGetter(_ref) {\n var dataKey = _ref.dataKey,\n rowData = _ref.rowData;\n\n if (typeof rowData.get === 'function') {\n return rowData.get(dataKey);\n } else {\n return rowData[dataKey];\n }\n}\nimport { bpfrpt_proptype_CellDataGetterParams } from \"./types\";","/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nexport default function defaultCellRenderer(_ref) {\n var cellData = _ref.cellData;\n\n if (cellData == null) {\n return '';\n } else {\n return String(cellData);\n }\n}\nimport { bpfrpt_proptype_CellRendererParams } from \"./types\";","import { requestAnimationTimeout, cancelAnimationTimeout } from '../../utils/requestAnimationTimeout';\nvar mountedInstances = [];\nvar originalBodyPointerEvents = null;\nvar disablePointerEventsTimeoutId = null;\n\nfunction enablePointerEventsIfDisabled() {\n if (disablePointerEventsTimeoutId) {\n disablePointerEventsTimeoutId = null;\n\n if (document.body && originalBodyPointerEvents != null) {\n document.body.style.pointerEvents = originalBodyPointerEvents;\n }\n\n originalBodyPointerEvents = null;\n }\n}\n\nfunction enablePointerEventsAfterDelayCallback() {\n enablePointerEventsIfDisabled();\n mountedInstances.forEach(function (instance) {\n return instance.__resetIsScrolling();\n });\n}\n\nfunction enablePointerEventsAfterDelay() {\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n }\n\n var maximumTimeout = 0;\n mountedInstances.forEach(function (instance) {\n maximumTimeout = Math.max(maximumTimeout, instance.props.scrollingResetTimeInterval);\n });\n disablePointerEventsTimeoutId = requestAnimationTimeout(enablePointerEventsAfterDelayCallback, maximumTimeout);\n}\n\nfunction onScrollWindow(event) {\n if (event.currentTarget === window && originalBodyPointerEvents == null && document.body) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n document.body.style.pointerEvents = 'none';\n }\n\n enablePointerEventsAfterDelay();\n mountedInstances.forEach(function (instance) {\n if (instance.props.scrollElement === event.currentTarget) {\n instance.__handleWindowScrollEvent();\n }\n });\n}\n\nexport function registerScrollListener(component, element) {\n if (!mountedInstances.some(function (instance) {\n return instance.props.scrollElement === element;\n })) {\n element.addEventListener('scroll', onScrollWindow);\n }\n\n mountedInstances.push(component);\n}\nexport function unregisterScrollListener(component, element) {\n mountedInstances = mountedInstances.filter(function (instance) {\n return instance !== component;\n });\n\n if (!mountedInstances.length) {\n element.removeEventListener('scroll', onScrollWindow);\n\n if (disablePointerEventsTimeoutId) {\n cancelAnimationTimeout(disablePointerEventsTimeoutId);\n enablePointerEventsIfDisabled();\n }\n }\n}\nimport { bpfrpt_proptype_WindowScroller } from \"../WindowScroller.js\";","/**\n * Gets the dimensions of the element, accounting for API differences between\n * `window` and other DOM elements.\n */\n// TODO Move this into WindowScroller and import from there\nvar isWindow = function isWindow(element) {\n return element === window;\n};\n\nvar getBoundingBox = function getBoundingBox(element) {\n return element.getBoundingClientRect();\n};\n\nexport function getDimensions(scrollElement, props) {\n if (!scrollElement) {\n return {\n height: props.serverHeight,\n width: props.serverWidth\n };\n } else if (isWindow(scrollElement)) {\n var _window = window,\n innerHeight = _window.innerHeight,\n innerWidth = _window.innerWidth;\n return {\n height: typeof innerHeight === 'number' ? innerHeight : 0,\n width: typeof innerWidth === 'number' ? innerWidth : 0\n };\n } else {\n return getBoundingBox(scrollElement);\n }\n}\n/**\n * Gets the vertical and horizontal position of an element within its scroll container.\n * Elements that have been “scrolled past” return negative values.\n * Handles edge-case where a user is navigating back (history) from an already-scrolled page.\n * In this case the body’s top or left position will be a negative number and this element’s top or left will be increased (by that amount).\n */\n\nexport function getPositionOffset(element, container) {\n if (isWindow(container) && document.documentElement) {\n var containerElement = document.documentElement;\n var elementRect = getBoundingBox(element);\n var containerRect = getBoundingBox(containerElement);\n return {\n top: elementRect.top - containerRect.top,\n left: elementRect.left - containerRect.left\n };\n } else {\n var scrollOffset = getScrollOffset(container);\n\n var _elementRect = getBoundingBox(element);\n\n var _containerRect = getBoundingBox(container);\n\n return {\n top: _elementRect.top + scrollOffset.top - _containerRect.top,\n left: _elementRect.left + scrollOffset.left - _containerRect.left\n };\n }\n}\n/**\n * Gets the vertical and horizontal scroll amount of the element, accounting for IE compatibility\n * and API differences between `window` and other DOM elements.\n */\n\nexport function getScrollOffset(element) {\n if (isWindow(element) && document.documentElement) {\n return {\n top: 'scrollY' in window ? window.scrollY : document.documentElement.scrollTop,\n left: 'scrollX' in window ? window.scrollX : document.documentElement.scrollLeft\n };\n } else {\n return {\n top: element.scrollTop,\n left: element.scrollLeft\n };\n }\n}","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _possibleConstructorReturn from \"@babel/runtime/helpers/possibleConstructorReturn\";\nimport _getPrototypeOf from \"@babel/runtime/helpers/getPrototypeOf\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nvar _class, _temp;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { registerScrollListener, unregisterScrollListener } from './utils/onScroll';\nimport { getDimensions, getPositionOffset, getScrollOffset } from './utils/dimensions';\nimport createDetectElementResize from '../vendor/detectElementResize';\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nexport var IS_SCROLLING_TIMEOUT = 150;\n\nvar getWindow = function getWindow() {\n return typeof window !== 'undefined' ? window : undefined;\n};\n\nvar WindowScroller = (_temp = _class =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(WindowScroller, _React$PureComponent);\n\n function WindowScroller() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, WindowScroller);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(WindowScroller)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_window\", getWindow());\n\n _defineProperty(_assertThisInitialized(_this), \"_isMounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionFromTop\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_positionFromLeft\", 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_detectElementResize\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_child\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"state\", _objectSpread({}, getDimensions(_this.props.scrollElement, _this.props), {\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"_registerChild\", function (element) {\n if (element && !(element instanceof Element)) {\n console.warn('WindowScroller registerChild expects to be passed Element or null');\n }\n\n _this._child = element;\n\n _this.updatePosition();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onChildScroll\", function (_ref) {\n var scrollTop = _ref.scrollTop;\n\n if (_this.state.scrollTop === scrollTop) {\n return;\n }\n\n var scrollElement = _this.props.scrollElement;\n\n if (scrollElement) {\n if (typeof scrollElement.scrollTo === 'function') {\n scrollElement.scrollTo(0, scrollTop + _this._positionFromTop);\n } else {\n scrollElement.scrollTop = scrollTop + _this._positionFromTop;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_registerResizeListener\", function (element) {\n if (element === window) {\n window.addEventListener('resize', _this._onResize, false);\n } else {\n _this._detectElementResize.addResizeListener(element, _this._onResize);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_unregisterResizeListener\", function (element) {\n if (element === window) {\n window.removeEventListener('resize', _this._onResize, false);\n } else if (element) {\n _this._detectElementResize.removeResizeListener(element, _this._onResize);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onResize\", function () {\n _this.updatePosition();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"__handleWindowScrollEvent\", function () {\n if (!_this._isMounted) {\n return;\n }\n\n var onScroll = _this.props.onScroll;\n var scrollElement = _this.props.scrollElement;\n\n if (scrollElement) {\n var scrollOffset = getScrollOffset(scrollElement);\n var scrollLeft = Math.max(0, scrollOffset.left - _this._positionFromLeft);\n var scrollTop = Math.max(0, scrollOffset.top - _this._positionFromTop);\n\n _this.setState({\n isScrolling: true,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n\n onScroll({\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"__resetIsScrolling\", function () {\n _this.setState({\n isScrolling: false\n });\n });\n\n return _this;\n }\n\n _createClass(WindowScroller, [{\n key: \"updatePosition\",\n value: function updatePosition() {\n var scrollElement = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.scrollElement;\n var onResize = this.props.onResize;\n var _this$state = this.state,\n height = _this$state.height,\n width = _this$state.width;\n var thisNode = this._child || ReactDOM.findDOMNode(this);\n\n if (thisNode instanceof Element && scrollElement) {\n var offset = getPositionOffset(thisNode, scrollElement);\n this._positionFromTop = offset.top;\n this._positionFromLeft = offset.left;\n }\n\n var dimensions = getDimensions(scrollElement, this.props);\n\n if (height !== dimensions.height || width !== dimensions.width) {\n this.setState({\n height: dimensions.height,\n width: dimensions.width\n });\n onResize({\n height: dimensions.height,\n width: dimensions.width\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var scrollElement = this.props.scrollElement;\n this._detectElementResize = createDetectElementResize();\n this.updatePosition(scrollElement);\n\n if (scrollElement) {\n registerScrollListener(this, scrollElement);\n\n this._registerResizeListener(scrollElement);\n }\n\n this._isMounted = true;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var scrollElement = this.props.scrollElement;\n var prevScrollElement = prevProps.scrollElement;\n\n if (prevScrollElement !== scrollElement && prevScrollElement != null && scrollElement != null) {\n this.updatePosition(scrollElement);\n unregisterScrollListener(this, prevScrollElement);\n registerScrollListener(this, scrollElement);\n\n this._unregisterResizeListener(prevScrollElement);\n\n this._registerResizeListener(scrollElement);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var scrollElement = this.props.scrollElement;\n\n if (scrollElement) {\n unregisterScrollListener(this, scrollElement);\n\n this._unregisterResizeListener(scrollElement);\n }\n\n this._isMounted = false;\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var _this$state2 = this.state,\n isScrolling = _this$state2.isScrolling,\n scrollTop = _this$state2.scrollTop,\n scrollLeft = _this$state2.scrollLeft,\n height = _this$state2.height,\n width = _this$state2.width;\n return children({\n onChildScroll: this._onChildScroll,\n registerChild: this._registerChild,\n height: height,\n isScrolling: isScrolling,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n width: width\n });\n }\n }]);\n\n return WindowScroller;\n}(React.PureComponent), _defineProperty(_class, \"propTypes\", process.env.NODE_ENV === 'production' ? null : {\n /**\n * Function responsible for rendering children.\n * This function should implement the following signature:\n * ({ height, isScrolling, scrollLeft, scrollTop, width }) => PropTypes.element\n */\n \"children\": PropTypes.func.isRequired,\n\n /** Callback to be invoked on-resize: ({ height, width }) */\n \"onResize\": PropTypes.func.isRequired,\n\n /** Callback to be invoked on-scroll: ({ scrollLeft, scrollTop }) */\n \"onScroll\": PropTypes.func.isRequired,\n\n /** Element to attach scroll event listeners. Defaults to window. */\n \"scrollElement\": PropTypes.oneOfType([PropTypes.any, function () {\n return (typeof Element === \"function\" ? PropTypes.instanceOf(Element) : PropTypes.any).apply(this, arguments);\n }]),\n\n /**\n * Wait this amount of time after the last scroll event before resetting child `pointer-events`.\n */\n \"scrollingResetTimeInterval\": PropTypes.number.isRequired,\n\n /** Height used for server-side rendering */\n \"serverHeight\": PropTypes.number.isRequired,\n\n /** Width used for server-side rendering */\n \"serverWidth\": PropTypes.number.isRequired\n}), _temp);\n\n_defineProperty(WindowScroller, \"defaultProps\", {\n onResize: function onResize() {},\n onScroll: function onScroll() {},\n scrollingResetTimeInterval: IS_SCROLLING_TIMEOUT,\n scrollElement: getWindow(),\n serverHeight: 0,\n serverWidth: 0\n});\n\nexport { WindowScroller as default };\nimport PropTypes from \"prop-types\";"],"names":["value","ref","React","current","stripDiacritics","string","normalize","replace","defaultFilterOptions","config","arguments","length","undefined","ignoreAccents","ignoreCase","limit","matchFrom","stringify","trim","options","_ref","inputValue","getOptionLabel","input","toLowerCase","filteredOptions","filter","option","candidate","startsWith","includes","slice","createFilterOptions","defaultIsActiveElementInListbox","listboxRef","parentElement","contains","document","activeElement","MULTIPLE_DEFAULT_VALUE","props","unstable_isActiveElementInListbox","unstable_classNamePrefix","autoComplete","autoHighlight","autoSelect","blurOnSelect","clearOnBlur","freeSolo","clearOnEscape","componentName","defaultValue","multiple","disableClearable","disableCloseOnSelect","disabled","disabledProp","disabledItemsFocusable","disableListWrap","filterOptions","filterSelectedOptions","getOptionDisabled","getOptionKey","getOptionLabelProp","label","groupBy","handleHomeEndKeys","id","idProp","includeInputInList","inputValueProp","isOptionEqualToValue","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openProp","openOnFocus","readOnly","selectOnFocus","valueProp","useId","optionLabel","String","ignoreFocus","firstFocus","inputRef","anchorEl","setAnchorEl","focusedTag","setFocusedTag","defaultHighlighted","highlightedIndexRef","setValueState","useControlled","controlled","default","name","setInputValueState","state","focused","setFocused","resetInputValue","event","newValue","reason","newInputValue","setOpenState","inputPristine","setInputPristine","inputValueIsSelectedValue","popupOpen","some","value2","previousProps","usePreviousProps","valueChange","listboxAvailable","focusTag","useEventCallback","tagToFocus","focus","querySelector","setHighlightedIndex","_ref2","index","removeAttribute","setAttribute","prev","classList","remove","listboxNode","getAttribute","scrollTop","add","scrollHeight","clientHeight","element","scrollBottom","elementBottom","offsetTop","offsetHeight","changeHighlightedIndex","_ref3","diff","direction","nextIndex","nextFocus","nextFocusDisabled","hasAttribute","validOptionIndex","getNextIndex","maxIndex","newIndex","Math","abs","indexOf","setSelectionRange","syncHighlightedIndex","previousHighlightedOptionIndex","getPreviousHighlightedOptionIndex","every","val","i","value1","previousHighlightedOption","findIndex","isSameValue","valueItem","currentOption","itemIndex","optionItem","handleListboxRef","node","setRef","handleOpen","handleClose","handleValue","details","isTouch","selectNewValue","origin","Array","isArray","push","splice","ctrlKey","metaKey","blur","handleFocusTag","nextTag","validTagIndex","handleClear","handleKeyDown","other","onKeyDown","defaultMuiPrevented","key","which","preventDefault","stopPropagation","handleFocus","handleBlur","handleInputChange","target","handleOptionMouseMove","Number","currentTarget","handleOptionTouchStart","handleOptionClick","handleTagDelete","handlePopupIndicator","handleMouseDown","handleClick","selectionEnd","selectionStart","select","handleInputMouseDown","dirty","groupedOptions","Map","reduce","acc","group","getRootProps","onMouseDown","onClick","getInputLabelProps","htmlFor","getInputProps","onBlur","onFocus","autoCapitalize","spellCheck","role","getClearProps","tabIndex","type","getPopupIndicatorProps","getTagProps","_ref4","onDelete","getListboxProps","getOptionProps","_ref5","selected","onMouseMove","onTouchStart","expanded","getListSubheaderUtilityClass","slot","generateUtilityClass","generateUtilityClasses","ListSubheaderRoot","styled","overridesResolver","styles","ownerState","root","color","capitalize","disableGutters","gutters","inset","disableSticky","sticky","memoTheme","theme","boxSizing","lineHeight","listStyle","vars","palette","text","secondary","fontFamily","typography","fontWeight","fontWeightMedium","fontSize","pxToRem","variants","style","primary","main","paddingLeft","paddingRight","position","top","zIndex","backgroundColor","background","paper","ListSubheader","inProps","useDefaultProps","className","component","classes","slots","composeClasses","useUtilityClasses","_jsx","as","clsx","muiSkipListHighlight","getAutocompleteUtilityClass","_ClearIcon","_ArrowDropDownIcon","AutocompleteRoot","fullWidth","hasClearIcon","hasPopupIcon","inputFocused","size","autocompleteClasses","tag","inputRoot","clearIndicator","visibility","margin","maxWidth","width","minWidth","inputClasses","paddingBottom","padding","inputBaseClasses","sizeSmall","outlinedInputClasses","endAdornment","right","paddingTop","filledInputClasses","hiddenLabel","flexGrow","textOverflow","opacity","flexWrap","AutocompleteEndAdornment","transform","AutocompleteClearIndicator","IconButton","marginRight","AutocompletePopupIndicator","popupIndicator","popupIndicatorOpen","AutocompletePopper","Popper","popper","disablePortal","popperDisablePortal","modal","AutocompletePaper","Paper","body1","overflow","AutocompleteLoading","loading","AutocompleteNoOptions","noOptions","AutocompleteListbox","listbox","_ref6","maxHeight","minHeight","display","justifyContent","alignItems","cursor","outline","WebkitTapHighlightColor","breakpoints","up","action","hover","disabledOpacity","pointerEvents","focusVisible","mainChannel","selectedOpacity","alpha","hoverOpacity","focusOpacity","AutocompleteGroupLabel","groupLabel","_ref7","AutocompleteGroupUl","groupUl","ChipProps","ChipPropsProp","clearIcon","ClearIcon","clearText","closeText","componentsProps","forcePopupIcon","getLimitTagsText","more","limitTags","ListboxComponent","ListboxComponentProp","ListboxProps","ListboxPropsProp","loadingText","noOptionsText","openText","PaperComponent","PaperComponentProp","PopperComponent","PopperComponentProp","popupIcon","ArrowDropDownIcon","renderGroup","renderGroupProp","renderInput","renderOption","renderOptionProp","renderTags","slotProps","useAutocomplete","otherListboxProps","externalForwardedProps","chip","ListboxSlot","listboxProps","useSlot","elementType","additionalProps","PaperSlot","paperProps","PopperSlot","popperProps","clientWidth","startAdornment","getCustomizedTagProps","params","map","customTagProps","Chip","children","_jsxs","defaultRenderOption","props2","otherProps","renderListOption","optionProps","clearIndicatorSlotProps","popupIndicatorSlotProps","renderAutocompletePopperChildren","autocompletePopper","option2","index2","InputLabelProps","InputProps","title","inputProps","isValueSelected","ToggleButtonRoot","ButtonBase","button","borderRadius","shape","border","divider","active","toggleButtonClasses","disabledBackground","textDecoration","primaryChannel","Object","entries","createSimplePaletteValueFilter","contextValue","contextProps","ToggleButtonGroupContext","toggleButtonGroupButtonContextPositionClassName","ToggleButtonGroupButtonContext","resolvedProps","resolveProps","disableFocusRipple","getToggleButtonUtilityClass","positionClassName","focusRipple","defaultPrevented","getToggleButtonGroupUtilityClass","ToggleButtonGroupRoot","toggleButtonGroupClasses","grouped","orientation","firstButton","lastButton","middleButton","vertical","flexDirection","borderTop","marginTop","borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius","borderLeft","marginLeft","exclusive","handleChange","buttonValue","concat","handleExclusiveChange","context","validChildren","toArray","child","getValidReactChildren","childrenCount","getButtonPositionClassName","isFirstButton","isLastButton","Provider","_classCallCheck","a","n","TypeError","_possibleConstructorReturn","t","e","assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","prototype","create","constructor","writable","configurable","defineProperty","_defineProperty","r","toPropertyKey","enumerable","componentWillMount","this","getDerivedStateFromProps","setState","componentWillReceiveProps","nextProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","Component","isReactComponent","Error","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","call","__suppressDeprecationWarning","f","calculateSizeAndPositionDataAndUpdateScrollOffset","cellCount","cellSize","computeMetadataCallback","computeMetadataCallbackProps","nextCellsCount","nextCellSize","nextScrollToIndex","scrollToIndex","updateScrollOffsetForScrollToIndex","_objectWithoutProperties","o","objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","CellSizeAndPositionManager","cellSizeGetter","estimatedCellSize","_cellSizeGetter","_cellCount","_estimatedCellSize","_createClass","_lastMeasuredIndex","lastMeasuredCellSizeAndPosition","getSizeAndPositionOfLastMeasuredCell","offset","isNaN","_cellSizeAndPositionData","_lastBatchedIndex","_ref3$align","align","containerSize","currentOffset","targetIndex","idealOffset","datum","getSizeAndPositionOfCell","maxOffset","minOffset","max","min","totalSize","getTotalSize","start","_findNearestCell","stop","high","low","middle","floor","interval","_binarySearch","lastMeasuredIndex","_exponentialSearch","getMaxElementSize","window","chrome","ScalingCellSizeAndPositionManager","_ref$maxScrollSize","maxScrollSize","_cellSizeAndPositionManager","_maxScrollSize","configure","getCellCount","getEstimatedCellSize","getLastMeasuredIndex","safeTotalSize","offsetPercentage","_getOffsetPercentage","round","_safeOffsetToOffset","getUpdatedOffsetForIndex","_offsetToSafeOffset","getVisibleCellRange","resetCell","createCallbackMemoizer","requireAllKeys","cachedIndices","callback","indices","keys","allInitialized","indexChanged","cachedValue","join","updateScrollIndexHelper","cellSizeAndPositionManager","previousCellsCount","previousCellSize","previousScrollToAlignment","previousScrollToIndex","previousSize","scrollOffset","scrollToAlignment","sizeJustIncreasedFromZero","updateScrollIndexCallback","hasScrollToIndex","createElement","win","scrollbarSize","recalc","canUseDOM","scrollDiv","height","body","appendChild","offsetWidth","removeChild","_class","_temp","request","self","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","cancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","clearTimeout","raf","caf","cancelAnimationTimeout","frame","requestAnimationTimeout","delay","Promise","resolve","then","Date","now","timeout","ownKeys","object","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","source","forEach","getOwnPropertyDescriptors","defineProperties","SCROLL_POSITION_CHANGE_REASONS","Grid","_React$PureComponent","_this","_assertThisInitialized","_disablePointerEventsTimeoutId","isScrolling","needToResetStyleCache","onSectionRendered","_onGridRenderedMemoizer","columnOverscanStartIndex","_columnStartIndex","columnOverscanStopIndex","_columnStopIndex","columnStartIndex","_renderedColumnStartIndex","columnStopIndex","_renderedColumnStopIndex","rowOverscanStartIndex","_rowStartIndex","rowOverscanStopIndex","_rowStopIndex","rowStartIndex","_renderedRowStartIndex","rowStopIndex","_renderedRowStopIndex","_scrollingContainer","handleScrollEvent","columnSizeAndPositionManager","columnCount","_wrapSizeGetter","columnWidth","_getEstimatedColumnSize","rowSizeAndPositionManager","rowCount","rowHeight","_getEstimatedRowSize","instanceProps","prevColumnWidth","prevRowHeight","prevColumnCount","prevRowCount","prevIsScrolling","prevScrollToColumn","scrollToColumn","prevScrollToRow","scrollToRow","scrollbarSizeMeasured","scrollDirectionHorizontal","scrollDirectionVertical","scrollLeft","scrollPositionChangeReason","_initialScrollTop","_getCalculatedScrollTop","_initialScrollLeft","_getCalculatedScrollLeft","_ref$alignment","alignment","_ref$columnIndex","columnIndex","_ref$rowIndex","rowIndex","offsetProps","_ref2$scrollLeft","scrollLeftParam","_ref2$scrollTop","scrollTopParam","_debounceScrollEnded","_this$props","autoHeight","autoWidth","totalRowsHeight","totalColumnsWidth","newState","_invokeOnScrollMemoizer","_deferredInvalidateColumnIndex","_deferredInvalidateRowIndex","_this$props2","_ref4$columnIndex","_ref4$rowIndex","_this$props3","_recomputeScrollLeftFlag","_recomputeScrollTopFlag","_styleCache","_cellCache","forceUpdate","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","_this$props4","getScrollbarSize","_handleInvalidatedGridSize","stateUpdate","_getScrollToPositionStateUpdate","sizeIsBiggerThanZero","_invokeOnGridRenderedHelper","_maybeCallOnScrollbarPresenceChange","_this2","_this$props5","_this$state","columnOrRowCountJustIncreasedFromZero","_this$props6","autoContainerWidth","containerProps","containerRole","containerStyle","noContentRenderer","_this$state2","_isScrolling","gridStyle","WebkitOverflowScrolling","willChange","_resetStyleCache","_calculateChildrenToRender","verticalScrollBarSize","horizontalScrollBarSize","_horizontalScrollBarSize","_verticalScrollBarSize","_scrollbarPresenceChanged","overflowX","overflowY","childrenToDisplay","_childrenToDisplay","showNoContentRenderer","_extends","_setScrollingContainerRef","onScroll","_onScroll","cellRenderer","cellRangeRenderer","deferredMeasurementCache","overscanColumnCount","overscanIndicesGetter","overscanRowCount","isScrollingOptOut","visibleColumnIndices","visibleRowIndices","horizontalOffsetAdjustment","getOffsetAdjustment","verticalOffsetAdjustment","overscanColumnIndices","overscanCellsCount","scrollDirection","startIndex","stopIndex","overscanRowIndices","overscanStartIndex","overscanStopIndex","hasFixedHeight","has","hasFixedWidth","cellCache","parent","styleCache","scrollingResetTimeInterval","_debounceScrollEndedCallback","recomputeGridSize","_this3","_onScrollMemoizer","_this3$props","scrollWidth","hasOwnProperty","Boolean","onScrollbarPresenceChange","horizontal","_ref8","_getScrollLeftForScrollToColumnStateUpdate","_getScrollTopForScrollToRowStateUpdate","assign","maybeStateA","maybeStateB","estimatedColumnSize","estimatedRowSize","_ref9","finalColumn","scrollBarSize","calculatedScrollLeft","finalRow","calculatedScrollTop","renderedCells","areOffsetsAdjusted","canCacheStyle","rowDatum","columnDatum","isVisible","left","cellRendererParams","renderedCell","defaultOverscanIndicesGetter","ArrowKeyStepper","_getPrototypeOf2","_len","args","_key","mode","_this$_getScrollState","_getScrollState","scrollToColumnPrevious","scrollToRowPrevious","_this$_getScrollState2","_updateScrollState","_this$_getScrollState3","_onKeyDown","_onSectionRendered","isControlled","onScrollToChange","createDetectElementResize","nonce","hostWindow","_window","attachEvent","global","requestFrame","fn","cancelFrame","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollListener","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","animation","keyframeprefix","animationstartevent","domPrefixes","split","startEvents","elm","animationName","animationKeyframes","animationStyle","addResizeListener","doc","ownerDocument","elementStyle","getComputedStyle","getElementById","css","head","getElementsByTagName","styleSheet","cssText","createTextNode","createStyles","resizeTriggersHtml","trustedTypes","staticPolicy","createPolicy","createHTML","innerHTML","addEventListener","__animationListener__","removeResizeListener","detachEvent","removeEventListener","AutoSizer","_React$Component","defaultHeight","defaultWidth","disableHeight","disableWidth","onResize","_parentNode","parseInt","newHeight","newWidth","autoSizer","_autoSizer","parentNode","defaultView","HTMLElement","_detectElementResize","_onResize","outerStyle","childParams","_setRef","CellMeasurer","cache","_this$props$columnInd","_this$props$rowIndex","_this$_getCellMeasure","_getCellMeasurements","getHeight","getWidth","set","Element","console","warn","_child","_maybeMeasureCell","measure","_measure","registerChild","_registerChild","findDOMNode","styleWidth","styleHeight","ceil","_this$props2$columnIn","_this$props2$rowIndex","_this$_getCellMeasure2","invalidateCellSizeAfterRender","CellMeasurerCache","_keyMapper","_columnWidthCache","_defaultWidth","_rowHeightCache","_defaultHeight","fixedHeight","fixedWidth","keyMapper","_hasFixedHeight","_hasFixedWidth","_minHeight","_minWidth","defaultKeyMapper","_cellHeightCache","_cellWidthCache","_updateCachedColumnAndRowSizes","_rowCount","_columnCount","_key2","columnKey","_i","rowKey","get","CollectionView","cellLayoutManager","_onSectionRenderedMemoizer","getLastRenderedIndices","scrollToCell","scrollPosition","getScrollPositionForCell","cellIndex","_setScrollPosition","_enablePointerEventsAfterDelay","isScrollingChange","_scrollbarSize","_cellLayoutManager$ge","totalHeight","totalWidth","cancelable","_scrollbarSizeMeasured","_calculateSizeAndPositionDataOnNextUpdate","_updateScrollPositionForScrollToCell","_invokeOnSectionRenderedHelper","_cellLayoutManager$ge2","horizontalOverscanSize","verticalOverscanSize","_this$state3","_lastRenderedCellCount","_lastRenderedCellLayoutManager","calculateSizeAndPositionData","_cellLayoutManager$ge3","bottom","cellRenderers","x","y","collectionStyle","propTypes","Section","_indexMap","_indices","SectionManager","sectionSize","_sectionSize","_cellMetadata","_sections","getSections","section","getCellIndices","sectionXStart","sectionXStop","sectionYStart","sectionYStop","sections","sectionX","sectionY","toString","cellMetadatum","addCellIndex","_ref$align","cellOffset","Collection","_lastRenderedCellIndices","_isScrollingChange","_setCollectionViewRef","_collectionView","recomputeCellSizesAndPositions","data","cellSizeAndPositionGetter","cellMetadata","sectionManager","registerCell","_calculateSizeAndPositionData","_sectionManager","_height","_width","cellGroupRenderer","getCellMetadata","cellRendererProps","ColumnSizer","columnMaxWidth","columnMinWidth","_registeredChild","safeColumnMinWidth","safeColumnMaxWidth","adjustedWidth","getColumnWidth","InfiniteLoader","_loadMoreRowsMemoizer","_onRowsRendered","autoReload","_doStuff","_lastRenderedStartIndex","_lastRenderedStopIndex","onRowsRendered","unloadedRanges","loadMoreRows","unloadedRange","promise","lastRenderedStartIndex","lastRenderedStopIndex","isRangeVisible","currentIndex","recomputeSize","recomputeRowHeights","forceUpdateReactVirtualizedComponent","isRowLoaded","minimumBatchSize","threshold","rangeStartIndex","rangeStopIndex","potentialStopIndex","_index","firstUnloadedRange","_index2","scanForUnloadedRanges","squashedUnloadedRanges","_toConsumableArray","_loadUnloadedRanges","registeredChild","List","rowRenderer","widthDescriptor","getOffsetForCell","measureAllCells","_ref6$columnIndex","_ref6$rowIndex","scrollToPosition","noRowsRenderer","classNames","_cellRenderer","accessibilityOverscanIndicesGetter","_slicedToArray","l","Symbol","iterator","u","next","done","unsupportedIterableToArray","ge","c","h","m","_GEP","_GEA","gt","_GTP","_GTA","lt","_LTP","_LTA","le","_LEP","_LEA","eq","p","_EQP","_EQA","IntervalTreeNode","mid","leftPoints","rightPoints","count","proto","copy","b","rebuild","intervals","ntree","createIntervalTree","rebuildWithInterval","rebuildWithoutInterval","idx","reportLeftRange","arr","hi","cb","reportRightRange","lo","reportRange","compareNumbers","compareBegin","d","compareEnd","pts","sort","leftIntervals","rightIntervals","centerIntervals","IntervalTree","result","insert","weight","bounds","queryPoint","queryInterval","tproto","PositionCache","defaultCellHeight","unmeasuredCellCount","tallestColumnSize","renderCallback","_intervalTree","_leftMap","columnSizeMap","_columnSizeMap","columnHeight","Masonry","eventScrollTop","_getEstimatedTotalHeight","_debounceResetIsScrolling","_positionCache","_invalidateOnUpdateStartIndex","_invalidateOnUpdateStopIndex","_populatePositionCache","_checkInvalidateOnUpdate","_invokeOnScrollCallback","_invokeOnCellsRenderedCallback","_debounceResetIsScrollingId","cellMeasurerCache","overscanByPixels","rowDirection","estimateTotalHeight","shortestColumnSize","measuredCellCount","range","_style","batchSize","_startIndex","_stopIndex","_debounceResetIsScrollingCallback","estimatedColumnCount","_onScrollMemoized","_startIndexMemoized","_stopIndexMemoized","onCellsRendered","cellPositioner","_cellPositioner","setPosition","noop","CellMeasurerCacheDecorator","_cellMeasurerCache","_columnIndexOffset","_rowIndexOffset","_params$columnIndexOf","columnIndexOffset","_params$rowIndexOffse","rowIndexOffset","clear","clearAll","MultiGrid","showHorizontalScrollbar","showVerticalScrollbar","_bottomLeftGrid","_bottomRightGrid","rest","fixedRowCount","fixedColumnCount","scrollInfo","_topLeftGrid","_topRightGrid","_fixedColumnCount","_fixedRowCount","_maybeCalculateCachedStyles","_deferredMeasurementCacheBottomLeftGrid","_deferredMeasurementCacheBottomRightGrid","_deferredMeasurementCacheTopRightGrid","_ref7$columnIndex","_ref7$rowIndex","_ref8$columnIndex","_ref8$rowIndex","adjustedColumnIndex","adjustedRowIndex","_leftGridWidth","_topGridHeight","_this$props7","_this$props8","_prepareForRender","_this$state4","_containerOuterStyle","_containerTopStyle","_renderTopLeftGrid","_renderTopRightGrid","_containerBottomStyle","_renderBottomLeftGrid","_renderBottomRightGrid","_getTopGridHeight","leftGridWidth","_getLeftGridWidth","topGridHeight","resetAll","_this$props9","enableFixedColumnScroll","enableFixedRowScroll","styleBottomLeftGrid","styleBottomRightGrid","styleTopLeftGrid","styleTopRightGrid","sizeChange","_lastRenderedHeight","_lastRenderedWidth","leftSizeChange","_lastRenderedColumnWidth","_lastRenderedFixedColumnCount","topSizeChange","_lastRenderedFixedRowCount","_lastRenderedRowHeight","_lastRenderedStyle","_lastRenderedStyleBottomLeftGrid","_bottomLeftGridStyle","_lastRenderedStyleBottomRightGrid","_bottomRightGridStyle","_lastRenderedStyleTopLeftGrid","_topLeftGridStyle","_lastRenderedStyleTopRightGrid","_topRightGridStyle","hideBottomLeftGridScrollbar","additionalRowCount","_getBottomGridHeight","gridWidth","bottomLeftGrid","_cellRendererBottomLeftGrid","classNameBottomLeftGrid","_onScrollTop","_bottomLeftGridRef","_rowHeightBottomGrid","_cellRendererBottomRightGrid","classNameBottomRightGrid","_columnWidthRightGrid","_onScrollbarPresenceChange","_bottomRightGridRef","_getRightGridWidth","classNameTopLeftGrid","_topLeftGridRef","hideTopRightGridScrollbar","_this$state5","additionalColumnCount","additionalHeight","gridHeight","topRightGrid","_cellRendererTopRightGrid","classNameTopRightGrid","_onScrollLeft","_topRightGridRef","ScrollSync","defaultHeaderRowRenderer","columns","ASC","DESC","SortIndicator","sortDirection","SortDirection","viewBox","fill","defaultHeaderRenderer","dataKey","sortBy","showSortIndicator","defaultRowRenderer","onRowClick","onRowDoubleClick","onRowMouseOut","onRowMouseOver","onRowRightClick","rowData","a11yProps","onDoubleClick","onMouseOut","onMouseOver","onContextMenu","Column","cellDataGetter","cellData","defaultSortDirection","flexShrink","headerRenderer","Table","scrollbarWidth","_createColumn","_createRow","_ref3$columnIndex","_ref3$rowIndex","_Grid","_setScrollbarWidth","disableHeader","gridClassName","headerHeight","headerRowRenderer","rowClassName","rowStyle","availableRowsHeight","rowClass","rowStyleObject","_cachedColumnStyles","column","flexStyles","_getFlexStyleForColumn","_getHeaderColumns","onColumnClick","_column$props","columnData","headerOnClick","headerOnKeyDown","headerTabIndex","headerAriaSort","headerAriaLabel","headerClassName","headerStyle","onHeaderClick","_column$props2","disableSort","sortEnabled","ReactVirtualized__Table__sortableHeaderColumn","renderedHeader","newSortDirection","rowGetter","flattenedStyle","_getRowHeight","customStyle","flexValue","flex","msFlex","WebkitFlex","_this4","_createHeader","getScrollbarWidth","mountedInstances","originalBodyPointerEvents","disablePointerEventsTimeoutId","enablePointerEventsIfDisabled","enablePointerEventsAfterDelayCallback","instance","__resetIsScrolling","onScrollWindow","maximumTimeout","enablePointerEventsAfterDelay","scrollElement","__handleWindowScrollEvent","registerScrollListener","unregisterScrollListener","isWindow","getBoundingBox","getBoundingClientRect","getDimensions","innerHeight","innerWidth","serverHeight","serverWidth","getScrollOffset","documentElement","scrollY","scrollX","getWindow","WindowScroller","updatePosition","scrollTo","_positionFromTop","_isMounted","_positionFromLeft","thisNode","ReactDOM","container","containerElement","elementRect","containerRect","_elementRect","_containerRect","getPositionOffset","dimensions","_registerResizeListener","prevScrollElement","_unregisterResizeListener","onChildScroll","_onChildScroll"],"sourceRoot":""}